Exemple #1
0
        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);
        }
Exemple #2
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);
        }
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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;
        }