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; } }
public void InitializeShowroomPresets() { if (ShowroomPresets == null) { ShowroomPresets = _helper.Create(CarOpenInShowroomDialog.PresetableKeyValue, p => { CarOpenInShowroomDialog.RunPreset(p.Filename, SelectedObject, SelectedObject.SelectedSkin?.Id); }); } }