private void ShowroomButton_OnMouseDown(object sender, MouseButtonEventArgs e) {
if (e.ChangedButton == MouseButton.Left) {
if (Keyboard.Modifiers.HasFlag(ModifierKeys.Alt)) {
e.Handled = true;
CustomShowroomWrapper.StartAsync(Car, SelectedSkin);
return;
}
if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) ||
!CarOpenInShowroomDialog.Run(Car, SelectedSkin?.Id)) {
e.Handled = true;
new CarOpenInShowroomDialog(Car, SelectedSkin?.Id).ShowDialog();
}
} else if (e.ChangedButton == MouseButton.Right) {
e.Handled = true;
var contextMenu = new ContextMenu();
var item = new MenuItem { Header = ControlsStrings.Car_OpenInShowroom };
item.Click += (s, args) => CarOpenInShowroomDialog.Run(Car, SelectedSkin?.Id);
contextMenu.Items.Add(item);
item = new MenuItem { Header = ControlsStrings.Common_Presets };
foreach (var menuItem in PresetsMenuHelper.GroupPresets(CarOpenInShowroomDialog.PresetableKeyValue, p => {
CarOpenInShowroomDialog.RunPreset(p.Filename, Car, SelectedSkin?.Id);
})) {
item.Items.Add(menuItem);
}
contextMenu.Items.Add(item);
item = new MenuItem { Header = ControlsStrings.Common_Settings, InputGestureText = UiStrings.KeyShift };
item.Click += (s, args) => new CarOpenInShowroomDialog(Car, SelectedSkin?.Id).ShowDialog();
contextMenu.Items.Add(item);
// TODO: Presets!
item = new MenuItem { Header = ControlsStrings.Car_OpenInCustomShowroom, InputGestureText = UiStrings.KeyAlt };
item.Click += (s, args) => CustomShowroomWrapper.StartAsync(Car, SelectedSkin);
contextMenu.Items.Add(item);
contextMenu.IsOpen = true;
}
}
}