public SysTrayApp() { settingsForm = null; // Create a simple tray menu with only one item. trayMenu = new ContextMenu(); //Add Settings settingsItem = new MenuItem(); settingsItem.Index = 0; settingsItem.Text = "&Settings"; settingsItem.Click += new System.EventHandler(SettingsClick); trayMenu.MenuItems.Add(settingsItem); //Add Running checkbox runningCheckItem = new MenuItem(); runningCheckItem.Index = 1; runningCheckItem.Click += new System.EventHandler(runningCheckItem_Click); trayMenu.MenuItems.Add(runningCheckItem); //Add Exit trayMenu.MenuItems.Add("E&xit", OnExit); //Add notify icon trayIcon = new NotifyIcon(); trayIcon.Text = "FFXIV Server Status Notifier"; trayIcon.Icon = Properties.Resources.smallicon; trayIcon.DoubleClick += new System.EventHandler(SettingsClick); //Add menu to tray icon and show it trayIcon.ContextMenu = trayMenu; trayIcon.Visible = true; //Initialise Status Checker statusChecker = new StatusChecker(); statusChecker.OnServerOnline += ServerStatusCheckComplete; EnableServerStatusChecking(); }
/// <summary> /// Occurs when a user clicks the Settings context menu item /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SettingsClick(object sender, EventArgs e) { //If there's already a settings open set focus to it if (settingsForm != null && !settingsForm.IsDisposed) { settingsForm.WindowState = FormWindowState.Normal; settingsForm.Settings_Load(); settingsForm.BringToFront(); settingsForm.Focus(); return; } //Create a new settings form, and show it settingsForm = new SettingsForm(OnSettingsChanged); settingsForm.Show(); settingsForm.Settings_Load(); }