GUI/MainForm.cs
changeset 176 c16fd81b520a
parent 166 fa9dfbfc4145
child 178 67b9b4d8c5fc
     1.1 --- a/GUI/MainForm.cs	Tue Aug 24 22:11:10 2010 +0000
     1.2 +++ b/GUI/MainForm.cs	Mon Sep 06 19:53:13 2010 +0000
     1.3 @@ -62,6 +62,7 @@
     1.4      private SystemTray systemTray;    
     1.5      private StartupManager startupManager = new StartupManager();
     1.6      private UpdateVisitor updateVisitor = new UpdateVisitor();
     1.7 +    private SensorGadget gadget;
     1.8  
     1.9      private UserOption showHiddenSensors;
    1.10      private UserOption showPlot;
    1.11 @@ -72,6 +73,7 @@
    1.12      private UserOption minimizeToTray;
    1.13      private UserOption autoStart;
    1.14      private UserOption readHddSensors;
    1.15 +    private UserOption showGadget;
    1.16  
    1.17      public MainForm() {      
    1.18        InitializeComponent();
    1.19 @@ -138,6 +140,8 @@
    1.20        systemTray.HideShowCommand += hideShowClick;
    1.21        systemTray.ExitCommand += exitClick;
    1.22  
    1.23 +      gadget = new SensorGadget(computer, settings, unitManager);
    1.24 +
    1.25        computer.HardwareAdded += new HardwareEventHandler(HardwareAdded);
    1.26        computer.HardwareRemoved += new HardwareEventHandler(HardwareRemoved);
    1.27        computer.Open();
    1.28 @@ -194,7 +198,7 @@
    1.29  
    1.30        autoStart = new UserOption(null, startupManager.Startup, startupMenuItem, settings);
    1.31        autoStart.Changed += delegate(object sender, EventArgs e) {
    1.32 -        startupManager.Startup = autoStart.Value; ;
    1.33 +        startupManager.Startup = autoStart.Value; 
    1.34        };
    1.35  
    1.36        readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem, settings);
    1.37 @@ -203,6 +207,11 @@
    1.38          UpdatePlotSelection(null, null);
    1.39        };
    1.40  
    1.41 +      showGadget = new UserOption("gadgetMenuItem", false, gadgetMenuItem, settings);
    1.42 +      showGadget.Changed += delegate(object sender, EventArgs e) {
    1.43 +        gadget.Visible = showGadget.Value;
    1.44 +      };
    1.45 +
    1.46        celciusMenuItem.Checked = 
    1.47          unitManager.TemperatureUnit == TemperatureUnit.Celcius;
    1.48        fahrenheitMenuItem.Checked = !celciusMenuItem.Checked;
    1.49 @@ -225,7 +234,7 @@
    1.50        Microsoft.Win32.SystemEvents.SessionEnded +=
    1.51          delegate(object sender, Microsoft.Win32.SessionEndedEventArgs e) {
    1.52            SaveConfiguration();
    1.53 -        };
    1.54 +        };  
    1.55      }
    1.56      
    1.57      private void SubHardwareAdded(IHardware hardware, Node node) {
    1.58 @@ -313,6 +322,7 @@
    1.59        treeView.Invalidate();
    1.60        plotPanel.Invalidate();
    1.61        systemTray.Redraw();
    1.62 +      gadget.Redraw();
    1.63      }
    1.64  
    1.65      private void SaveConfiguration() {
    1.66 @@ -369,7 +379,7 @@
    1.67                nodeTextBoxText.BeginEdit();
    1.68              };
    1.69              sensorContextMenu.MenuItems.Add(item);
    1.70 -          }          
    1.71 +          }
    1.72            if (node.IsVisible) {
    1.73              MenuItem item = new MenuItem("Hide");
    1.74              item.Click += delegate(object obj, EventArgs args) {
    1.75 @@ -382,20 +392,30 @@
    1.76                node.IsVisible = true;
    1.77              };
    1.78              sensorContextMenu.MenuItems.Add(item);
    1.79 -          }         
    1.80 -          if (systemTray.Contains(node.Sensor)) {
    1.81 -            MenuItem item = new MenuItem("Remove From Tray");
    1.82 -            item.Click += delegate(object obj, EventArgs args) {
    1.83 +          }
    1.84 +          sensorContextMenu.MenuItems.Add(new MenuItem("-"));
    1.85 +
    1.86 +          MenuItem menuItem = new MenuItem("Show in Tray");
    1.87 +          menuItem.Checked = systemTray.Contains(node.Sensor);
    1.88 +          menuItem.Click += delegate(object obj, EventArgs args) {
    1.89 +            if (menuItem.Checked)
    1.90                systemTray.Remove(node.Sensor);
    1.91 -            };
    1.92 -            sensorContextMenu.MenuItems.Add(item);
    1.93 -          } else {
    1.94 -            MenuItem item = new MenuItem("Add To Tray");
    1.95 -            item.Click += delegate(object obj, EventArgs args) {
    1.96 +            else
    1.97                systemTray.Add(node.Sensor, true);
    1.98 -            };
    1.99 -            sensorContextMenu.MenuItems.Add(item);
   1.100 -          }
   1.101 +          };
   1.102 +          sensorContextMenu.MenuItems.Add(menuItem);
   1.103 +
   1.104 +          menuItem = new MenuItem("Show in Gadget");
   1.105 +          menuItem.Checked = gadget.Contains(node.Sensor);
   1.106 +          menuItem.Click += delegate(object obj, EventArgs args) {
   1.107 +            if (menuItem.Checked) {
   1.108 +              gadget.Remove(node.Sensor);
   1.109 +            } else {
   1.110 +              gadget.Add(node.Sensor);
   1.111 +            }
   1.112 +          };
   1.113 +          sensorContextMenu.MenuItems.Add(menuItem);
   1.114 +
   1.115            sensorContextMenu.Show(treeView, new Point(m.X, m.Y));
   1.116          }
   1.117        }