public Monitor() { // setup the context menu menu = new ContextMenu(); menu.MenuItems.Clear(); menu.MenuItems.Add(new MenuItem("Quit", delegate(Object sender, System.EventArgs e) { shutdown(); Application.Exit(); })); // listen for app closes Application.ApplicationExit += delegate(object sender, EventArgs e) { shutdown(); }; // setup the tray icon trayIcon = new NotifyIcon(); trayIcon.Text = "Chrome RapidReload"; trayIcon.Visible = true; trayIcon.Icon = new Icon(typeof(Monitor), "icon.ico"); trayIcon.ContextMenu = menu; trayIcon.Click += delegate(object sender, EventArgs e) { if(selector == null) { selector = new DirectorySelector(this); selector.ShowDialog(); } else { selector.Focus(); } }; // deserialized the monitored directories saved in settings file using(var reader = new StreamReader(new IsolatedStorageFileStream("settings", FileMode.OpenOrCreate,FileAccess.Read,FileShare.ReadWrite, settingsStorage))) { foreach(var dir in reader.ReadToEnd().Split('|')) { if(dir != "") { MonitorDirectory(new DirectoryInfo(dir)); } } }; // start a listener thread Thread t = new Thread(new ThreadStart(websocketListen)); t.IsBackground = true; t.Start(); }
public void SelectorWindowClosed() { selector = null; }