Beispiel #1
0
        private void Driver_OnContextMenuButtonClick(object sender, ContextMenuButtonEventArgs e)
        {
            var driver = ((FrameworkElement)sender).DataContext as ServerEntry.CurrentDriver;

            if (driver == null)
            {
                return;
            }

            var menu = new ContextMenu();

            foreach (var tag in ServerEntry.DriverTag.GetTags().OrderBy(x => x.DisplayName))
            {
                var icon = TryFindResource(@"PlayerTagIcon") as Shape;
                icon?.SetBinding(Shape.FillProperty, new Binding {
                    Source    = tag,
                    Path      = new PropertyPath(nameof(tag.Color)),
                    Converter = ColorPicker.ColorToBrushConverter
                });

                var header = new BbCodeBlock();
                header.SetBinding(BbCodeBlock.BbCodeProperty, new Binding {
                    Source = tag,
                    Path   = new PropertyPath(nameof(tag.DisplayName))
                });

                var item = new MenuItem {
                    Header = icon == null ? (FrameworkElement)header : new DockPanel {
                        Children = { icon, header }
                    },
                    IsChecked        = driver.Tags.GetByIdOrDefault(tag.Id) != null,
                    StaysOpenOnClick = true,
                    IsCheckable      = true
                };

                item.Click += (o, args) => {
                    (((MenuItem)o).IsChecked ? driver.AddTagCommand : driver.RemoveTagCommand).Execute(tag.Id);
                };

                menu.Items.Add(item);
            }

            menu.AddSeparator();

            menu.Items.Add(new MenuItem {
                Header  = "New Tag…",
                Command = new DelegateCommand(() => {
                    new OnlineNewDriverTag(driver).ShowDialog();
                })
            });

            menu.Items.Add(new MenuItem {
                Header  = "Edit Tags…",
                Command = new DelegateCommand(() => {
                    new OnlineDriverTags().ShowDialog();
                })
            });

            e.Menu = menu;
        }
Beispiel #2
0
 private void SelectedTrackContextMenuButton_OnClick(object sender, ContextMenuButtonEventArgs e)
 {
     e.Menu = new ContextMenu()
              .AddItem("Change track to random", Model.RandomTrackCommand, @"Ctrl+Alt+2")
              .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData"))
              .AddSeparator()
              .AddItem("Open track in Content tab", () => {
         TracksListPage.Show(Model.SelectedTrack);
     }, isEnabled: AppKeyHolder.IsAllRight);
 }
Beispiel #3
0
 private void OnPowerGraphContextMenuClick(object sender, ContextMenuButtonEventArgs e)
 {
     e.Menu = new ContextMenu()
              .AddItem(AppStrings.CarSpecs_ScaleCurvesToPowerTorqueHeader, _model.ScaleCurvesCommand,
                       toolTip: AppStrings.CarSpecs_ScaleCurvesToPowerTorque_Tooltip)
              .AddItem(AppStrings.CarSpecs_RecalculateCurvesUsingDataAndPowerTorqueHeader, _model.RecalculateAndScaleCurvesCommand,
                       toolTip: AppStrings.CarSpecs_RecalculateCurvesUsingDataAndPowerTorque_Tooltip)
              .AddItem(AppStrings.CarSpecs_RecalculateCurvesUsingDataOnlyHeader, _model.RecalculateCurvesCommand,
                       toolTip: AppStrings.CarSpecs_RecalculateCurvesUsingDataOnly_Tooltip);
 }
Beispiel #4
0
 private void SelectedCarContextMenuButton_OnClick(object sender, ContextMenuButtonEventArgs e)
 {
     e.Menu = new ContextMenu()
              .AddItem("Change car to random", Model.RandomCarCommand, @"Ctrl+Alt+1")
              .AddItem("Change skin to random", Model.RandomCarSkinCommand, @"Ctrl+Alt+R")
              .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData"))
              .AddSeparator()
              .AddItem("Open car in Content tab", () => {
         CarsListPage.Show(Model.SelectedCar, Model.SelectedCar.SelectedSkin?.Id);
     });
 }
Beispiel #5
0
 private void ConditionsContextMenuButton_OnClick(object sender, ContextMenuButtonEventArgs e)
 {
     if (Model.RealConditions)
     {
         e.Menu = (TryFindResource(@"RealConditionsContextMenu") as ContextMenu)?
                  .AddSeparator()
                  .AddItem("Set random time", Model.RandomTimeCommand, @"Ctrl+Alt+3")
                  .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData"));
     }
     else
     {
         e.Menu = new ContextMenu()
                  .AddItem("Set random time", Model.RandomTimeCommand, @"Ctrl+Alt+3")
                  .AddItem("Set random weather", Model.RandomWeatherCommand, @"Ctrl+Alt+4")
                  .AddItem("Set random temperature", Model.RandomTemperatureCommand, @"Ctrl+Alt+5")
                  .AddItem("Randomize everything", Model.RandomizeCommand, @"Alt+R", iconData: (Geometry)TryFindResource(@"ShuffleIconData"));
     }
 }