public PlannerPlugin(ISky sky, ISkyMap map, ISettings settings, IRecentPlansManager recentPlansManager, IPlanManagerFactory planManagerFactory) { this.sky = sky; this.map = map; this.settings = settings; this.map.SelectedObjectChanged += (x) => NotifyPropertyChanged(nameof(HasSelectedObject)); this.planManagerFactory = planManagerFactory; this.recentPlansManager = recentPlansManager; DefineSetting("PlannerDefaultSettings", new PlanningFilter(), isPermanent: true); /* Main app menu */ MenuItem plannerMenu = new MenuItem("$Planner.Menu.Planner"); MenuItem recentPlansMenu = new MenuItem("$Planner.Menu.RecentPlans"); recentPlansMenu.AddBinding(new SimpleBinding(this, nameof(RecentPlansMenuItems), nameof(MenuItem.SubItems))); recentPlansMenu.AddBinding(new SimpleBinding(this, nameof(HasRecentPlans), nameof(MenuItem.IsEnabled))); plannerMenu.SubItems = new ObservableCollection <MenuItem>(new[] { new MenuItem("$Planner.Menu.CreateNewPlan", new Command <PlanImportData>(CreateNewPlan), null), new MenuItem("$Planner.Menu.OpenPlan", new Command(OpenPlan)), recentPlansMenu, null, new MenuItem("$Planner.Menu.Defaults", new Command(ShowPlannerDefaults)) }); MenuItems.Add(MenuItemPosition.MainMenuTop, plannerMenu); /* Context menu */ MenuItem contextMenu = new MenuItem("$Planner.ContextMenu.AddToObservationPlan"); contextMenu.AddBinding(new SimpleBinding(this, nameof(HasSelectedObject), nameof(MenuItem.IsEnabled))); contextMenu.AddBinding(new SimpleBinding(this, nameof(ActivePlansMenuItems), nameof(MenuItem.SubItems))); MenuItems.Add(MenuItemPosition.ContextMenu, contextMenu); }
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); }
public FieldOfViewPlugin(ISkyMap map, ISettings settings) { this.map = map; this.settings = settings; DefineSetting("FovFrames", new List <FovFrame>(), isPermanent: true); MenuItem fovMenu = new MenuItem("$FovPlugin.Menu.FOV"); fovMenu.AddBinding(new SimpleBinding(this, nameof(FrameMenuItems), nameof(MenuItem.SubItems))); MenuItems.Add(MenuItemPosition.MainMenuTools, fovMenu); MenuItem scaleToFOVMenu = new MenuItem("$FovPlugin.ContextMenu.ScaleToFOV"); scaleToFOVMenu.AddBinding(new SimpleBinding(this, nameof(FrameContextMenuItems), nameof(MenuItem.SubItems))); scaleToFOVMenu.AddBinding(new SimpleBinding(this, nameof(IsContextMenuVisible), nameof(MenuItem.IsVisible))); MenuItems.Add(MenuItemPosition.ContextMenu, scaleToFOVMenu); }
public Plugin(ISkyMap map, MeasureToolRenderer renderer) { this.map = map; this.renderer = renderer; var menuItem = new MenuItem("$Astrarium.Plugins.MeasureTool.ContextMenu") { Command = new Command(SwitchMeasureTool), HotKey = new KeyGesture(Key.M, ModifierKeys.Control, "Ctrl+M") }; menuItem.AddBinding(new SimpleBinding(renderer, nameof(renderer.IsMeasureToolOn), "IsChecked")); MenuItems.Add(MenuItemPosition.ContextMenu, menuItem); }
public Plugin(ISkyMap map, ISky sky, ISettings settings) { var menuAscom = new MenuItem("$Menu.Telescope"); this.ascom = Ascom.Proxy; this.map = map; this.sky = sky; this.settings = settings; DefineSetting("ASCOMTelescopeId", "", isPermanent: true); var menuConnectTelescope = new MenuItem("$Menu.ConnectToTelescope", new Command(ConnectTelescope)); menuConnectTelescope.AddBinding(new SimpleBinding(this, nameof(IsConnectTelescopeVisible), nameof(MenuItem.IsVisible))); var menuDisconnectTelescope = new MenuItem("$Menu.DisconnectTelescope", new Command(DisconnectTelescope)); menuDisconnectTelescope.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsVisible))); menuDisconnectTelescope.AddBinding(new SimpleBinding(this, nameof(DisconnectTitle), nameof(MenuItem.Header))); var menuFindCurrentPoint = new MenuItem("$Menu.FindCurrentPoint", new Command(FindCurrentPoint)); menuFindCurrentPoint.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsEnabled))); var menuAbortSlew = new MenuItem("$Menu.AbortSlew", new Command(AbortSlew)); menuAbortSlew.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsSlewing), nameof(MenuItem.IsEnabled))); var menuFindHome = new MenuItem("$Menu.Home", new Command(FindHome)); menuFindHome.AddBinding(new SimpleBinding(ascom, nameof(ascom.AtHome), nameof(MenuItem.IsChecked))); menuFindHome.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsEnabled))); var menuPark = new MenuItem("$Menu.Park", new Command(ParkOrUnpark)); menuPark.AddBinding(new SimpleBinding(ascom, nameof(ascom.AtPark), nameof(MenuItem.IsChecked))); menuPark.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsEnabled))); var menuTrack = new MenuItem("$Menu.Track", new Command(SwitchTracking)); menuTrack.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsTracking), nameof(MenuItem.IsChecked))); menuTrack.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsEnabled))); var menuSetup = new MenuItem("$Menu.Setup", new Command(ShowSetupDialog)); menuSetup.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsEnabled))); var menuInfo = new MenuItem("$Menu.AscomInformation", new Command(ShowInfo)); menuInfo.AddBinding(new SimpleBinding(ascom, nameof(ascom.IsConnected), nameof(MenuItem.IsEnabled))); menuAscom.SubItems.Add(menuConnectTelescope); menuAscom.SubItems.Add(menuDisconnectTelescope); menuAscom.SubItems.Add(null); menuAscom.SubItems.Add(menuFindCurrentPoint); menuAscom.SubItems.Add(menuAbortSlew); menuAscom.SubItems.Add(null); menuAscom.SubItems.Add(menuFindHome); menuAscom.SubItems.Add(menuPark); menuAscom.SubItems.Add(menuTrack); menuAscom.SubItems.Add(null); menuAscom.SubItems.Add(menuSetup); menuAscom.SubItems.Add(menuInfo); MenuItems.Add(MenuItemPosition.MainMenuTop, menuAscom); var contextMenuAscom = new MenuItem("$ContextMenu.Telescope"); contextMenuAscom.AddBinding(new SimpleBinding(this, nameof(IsContextMenuEnabled), nameof(MenuItem.IsEnabled))); var contextMenuSyncTo = new MenuItem("$ContextMenu.Telescope.Sync", new Command(SyncToPosition)); contextMenuSyncTo.AddBinding(new SimpleBinding(this, nameof(IsContextMenuEnabled), nameof(MenuItem.IsEnabled))); var contextMenuSlewTo = new MenuItem("$ContextMenu.Telescope.Slew", new Command(SlewToPosition)); contextMenuSlewTo.AddBinding(new SimpleBinding(this, nameof(IsContextMenuEnabled), nameof(MenuItem.IsEnabled))); contextMenuAscom.SubItems.Add(contextMenuSyncTo); contextMenuAscom.SubItems.Add(contextMenuSlewTo); MenuItems.Add(MenuItemPosition.ContextMenu, contextMenuAscom); ascom.PropertyChanged += Ascom_PropertyChanged; ascom.OnMessageShow += Ascom_OnMessageShow; DefineSetting("TelescopeMarkerColor", new SkyColor(Color.DarkOrange)); DefineSetting("TelescopeMarkerFont", SystemFonts.DefaultFont); DefineSetting("TelescopeMarkerLabel", true); DefineSetting("TelescopeFindCurrentPointAfterConnect", false); DefineSetting("TelescopePollingPeriod", 500m); DefineSettingsSection <AscomSettingsSection, SettingsViewModel>(); settings.SettingValueChanged += Settings_SettingValueChanged; }