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