public TelescopeRenderer(ISkyMap map, ISettings settings) { ascom = Ascom.Proxy; ascom.PropertyChanged += Ascom_PropertyChanged; this.map = map; this.settings = settings; }
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; }