GUI/MainForm.cs
changeset 360 c1a4377c11d1
parent 348 d8fa1e55acfa
child 362 1dfe9dac1651
     1.1 --- a/GUI/MainForm.cs	Sun Jul 08 19:26:00 2012 +0000
     1.2 +++ b/GUI/MainForm.cs	Wed Jul 11 17:35:30 2012 +0000
     1.3 @@ -12,6 +12,7 @@
     1.4  
     1.5  using System;
     1.6  using System.Collections.Generic;
     1.7 +using System.Collections.ObjectModel;
     1.8  using System.ComponentModel;
     1.9  using System.Drawing;
    1.10  using System.IO;
    1.11 @@ -50,7 +51,13 @@
    1.12      private UserOption minimizeToTray;
    1.13      private UserOption minimizeOnClose;
    1.14      private UserOption autoStart;
    1.15 +
    1.16 +    private UserOption readMainboardSensors;
    1.17 +    private UserOption readCpuSensors;
    1.18 +    private UserOption readGpuSensors;
    1.19 +    private UserOption readFanControllersSensors;
    1.20      private UserOption readHddSensors;
    1.21 +
    1.22      private UserOption showGadget;
    1.23      private UserRadioGroup plotLocation;
    1.24      private WmiProvider wmiProvider;
    1.25 @@ -207,6 +214,30 @@
    1.26          }
    1.27        };
    1.28  
    1.29 +      readMainboardSensors = new UserOption("mainboardMenuItem", true, 
    1.30 +        mainboardMenuItem, settings);
    1.31 +      readMainboardSensors.Changed += delegate(object sender, EventArgs e) {
    1.32 +        computer.MainboardEnabled = readMainboardSensors.Value;
    1.33 +      };
    1.34 +
    1.35 +      readCpuSensors = new UserOption("cpuMenuItem", true,
    1.36 +        cpuMenuItem, settings);
    1.37 +      readCpuSensors.Changed += delegate(object sender, EventArgs e) {
    1.38 +        computer.CPUEnabled = readCpuSensors.Value;
    1.39 +      };
    1.40 +
    1.41 +      readGpuSensors = new UserOption("gpuMenuItem", true,
    1.42 +        gpuMenuItem, settings);
    1.43 +      readGpuSensors.Changed += delegate(object sender, EventArgs e) {
    1.44 +        computer.GPUEnabled = readGpuSensors.Value;
    1.45 +      };
    1.46 +
    1.47 +      readFanControllersSensors = new UserOption("fanControllerMenuItem", true,
    1.48 +        fanControllerMenuItem, settings);
    1.49 +      readFanControllersSensors.Changed += delegate(object sender, EventArgs e) {
    1.50 +        computer.FanControllerEnabled = readFanControllersSensors.Value;
    1.51 +      };
    1.52 +
    1.53        readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem,
    1.54          settings);
    1.55        readHddSensors.Changed += delegate(object sender, EventArgs e) {
    1.56 @@ -227,15 +258,13 @@
    1.57        server = new HttpServer(root, this.settings.GetValue("listenerPort", 8085));
    1.58        runWebServer = new UserOption("runWebServerMenuItem", false,
    1.59          runWebServerMenuItem, settings);
    1.60 -      runWebServer.Changed += delegate(object sender, EventArgs e)
    1.61 -      {
    1.62 -          if (runWebServer.Value)
    1.63 -              runWebServer.Value = server.startHTTPListener();
    1.64 -          else
    1.65 -              server.stopHTTPListener();
    1.66 +      runWebServer.Changed += delegate(object sender, EventArgs e) {
    1.67 +        if (runWebServer.Value)
    1.68 +          runWebServer.Value = server.startHTTPListener();
    1.69 +        else
    1.70 +          server.stopHTTPListener();
    1.71        };
    1.72  
    1.73 -
    1.74        InitializePlotForm();
    1.75  
    1.76        startupMenuItem.Visible = startupManager.IsAvailable;
    1.77 @@ -357,13 +386,23 @@
    1.78            plotForm.Hide();
    1.79        };
    1.80      }
    1.81 +
    1.82 +    private void InsertSorted(Collection<Node> nodes, HardwareNode node) {
    1.83 +      int i = 0;
    1.84 +      while (i < nodes.Count && nodes[i] is HardwareNode &&
    1.85 +        ((HardwareNode)nodes[i]).Hardware.HardwareType < 
    1.86 +          node.Hardware.HardwareType)
    1.87 +        i++;
    1.88 +      nodes.Insert(i, node);
    1.89 +    }
    1.90      
    1.91      private void SubHardwareAdded(IHardware hardware, Node node) {
    1.92        HardwareNode hardwareNode = 
    1.93          new HardwareNode(hardware, settings, unitManager);
    1.94        hardwareNode.PlotSelectionChanged += PlotSelectionChanged;
    1.95  
    1.96 -      node.Nodes.Add(hardwareNode);
    1.97 +      InsertSorted(node.Nodes, hardwareNode);
    1.98 +
    1.99        foreach (IHardware subHardware in hardware.SubHardware)
   1.100          SubHardwareAdded(subHardware, hardwareNode);  
   1.101      }