예제 #1
0
        public Plugin(ISky sky, ISkyMap map, TrackCalc trackCalc)
        {
            this.sky       = sky;
            this.map       = map;
            this.trackCalc = trackCalc;

            this.map.SelectedObjectChanged          += (o) => NotifyPropertyChanged(nameof(IsMotionTrackEnabled));
            this.trackCalc.Tracks.CollectionChanged += (s, e) => NotifyPropertyChanged(nameof(IsTracksListEnabled));

            var contextMenuTrack = new MenuItem("$Astrarium.Plugins.Tracks.ContextMenu", new Command(ShowMotionTrackWindow));

            contextMenuTrack.AddBinding(new SimpleBinding(this, nameof(IsMotionTrackEnabled), nameof(MenuItem.IsEnabled)));
            MenuItems.Add(MenuItemPosition.ContextMenu, contextMenuTrack);

            var toolsMenuTracks = new MenuItem("$Astrarium.Plugins.Tracks.ToolsMenu", new Command(ShowTracksListWindow));

            var menuAddTrack = new MenuItem("$Astrarium.Plugins.Tracks.ToolsMenu.Add", new Command(ShowMotionTrackWindow));

            menuAddTrack.HotKey = new KeyGesture(Key.T, ModifierKeys.Control, "Ctrl+T");

            var menuTracksList = new MenuItem("$Astrarium.Plugins.Tracks.ToolsMenu.List", new Command(ShowTracksListWindow));

            menuTracksList.AddBinding(new SimpleBinding(this, nameof(IsTracksListEnabled), nameof(MenuItem.IsEnabled)));
            menuTracksList.HotKey = new KeyGesture(Key.T, ModifierKeys.Control | ModifierKeys.Shift, "Ctrl+Shift+T");

            toolsMenuTracks.SubItems.Add(menuAddTrack);
            toolsMenuTracks.SubItems.Add(menuTracksList);

            MenuItems.Add(MenuItemPosition.MainMenuTools, toolsMenuTracks);
        }
예제 #2
0
 public TrackRenderer(TrackCalc trackCalc)
 {
     this.trackCalc = trackCalc;
 }