GUI/MainForm.cs
changeset 28 9b205b2ab056
parent 27 beed5a9e1b78
child 34 dc276daadb2c
     1.1 --- a/GUI/MainForm.cs	Fri Feb 05 22:45:15 2010 +0000
     1.2 +++ b/GUI/MainForm.cs	Sun Feb 07 16:37:15 2010 +0000
     1.3 @@ -45,19 +45,19 @@
     1.4  using Aga.Controls.Tree;
     1.5  using Aga.Controls.Tree.NodeControls;
     1.6  using OpenHardwareMonitor.Hardware;
     1.7 +using OpenHardwareMonitor.Utilities;
     1.8  
     1.9  namespace OpenHardwareMonitor.GUI {
    1.10    public partial class MainForm : Form {
    1.11  
    1.12 +    private Computer computer = new Computer();
    1.13      private Node root;
    1.14 -    private List<IGroup> groupList = new List<IGroup>();
    1.15      private TreeModel treeModel;
    1.16      private IDictionary<ISensor, Color> sensorPlotColors = 
    1.17        new Dictionary<ISensor, Color>();
    1.18      private Color[] plotColorPalette;
    1.19  
    1.20 -    public MainForm() {
    1.21 -      
    1.22 +    public MainForm() {      
    1.23        InitializeComponent();
    1.24        this.Font = SystemFonts.MessageBoxFont;
    1.25        treeView.Font = SystemFonts.MessageBoxFont;
    1.26 @@ -99,13 +99,10 @@
    1.27        treeModel.Nodes.Add(root);
    1.28        treeView.Model = treeModel;
    1.29  
    1.30 -      AddGroup(new Hardware.SMBIOS.SMBIOSGroup());
    1.31 -      AddGroup(new Hardware.LPC.LPCGroup());
    1.32 -      AddGroup(new Hardware.CPU.CPUGroup());
    1.33 -      AddGroup(new Hardware.ATI.ATIGroup());
    1.34 -      AddGroup(new Hardware.Nvidia.NvidiaGroup());
    1.35 -      AddGroup(new Hardware.TBalancer.TBalancerGroup());
    1.36 -      
    1.37 +      computer.HardwareAdded += new HardwareEventHandler(HardwareAdded);
    1.38 +      computer.HardwareRemoved += new HardwareEventHandler(HardwareRemoved);
    1.39 +      computer.Open();
    1.40 +
    1.41        plotColorPalette = new Color[14];
    1.42        plotColorPalette[0] = Color.Blue;
    1.43        plotColorPalette[1] = Color.OrangeRed;
    1.44 @@ -122,38 +119,36 @@
    1.45        plotColorPalette[12] = Color.Olive;
    1.46        plotColorPalette[13] = Color.Firebrick;
    1.47  
    1.48 -      plotMenuItem.Checked = Utilities.Config.Get(plotMenuItem.Name, false);
    1.49 -      minMenuItem.Checked = Utilities.Config.Get(minMenuItem.Name, false);
    1.50 -      maxMenuItem.Checked = Utilities.Config.Get(maxMenuItem.Name, true);
    1.51 -      limitMenuItem.Checked = Utilities.Config.Get(limitMenuItem.Name, false);
    1.52 -      hddMenuItem.Checked = Utilities.Config.Get(hddMenuItem.Name, true);
    1.53 +      plotMenuItem.Checked = Config.Get(plotMenuItem.Name, false);
    1.54 +      minMenuItem.Checked = Config.Get(minMenuItem.Name, false);
    1.55 +      maxMenuItem.Checked = Config.Get(maxMenuItem.Name, true);
    1.56 +      limitMenuItem.Checked = Config.Get(limitMenuItem.Name, false);
    1.57  
    1.58 -      voltMenuItem.Checked = Utilities.Config.Get(voltMenuItem.Name, true);
    1.59 -      clocksMenuItem.Checked = Utilities.Config.Get(clocksMenuItem.Name, true);
    1.60 -      loadMenuItem.Checked = Utilities.Config.Get(loadMenuItem.Name, true);
    1.61 -      tempMenuItem.Checked = Utilities.Config.Get(tempMenuItem.Name, true);
    1.62 -      fansMenuItem.Checked = Utilities.Config.Get(fansMenuItem.Name, true);
    1.63 +      minTrayMenuItem.Checked = Config.Get(minTrayMenuItem.Name, true);
    1.64 +      hddMenuItem.Checked = Config.Get(hddMenuItem.Name, true);
    1.65  
    1.66 -      timer.Enabled = true;
    1.67 +      voltMenuItem.Checked = Config.Get(voltMenuItem.Name, true);
    1.68 +      clocksMenuItem.Checked = Config.Get(clocksMenuItem.Name, true);
    1.69 +      loadMenuItem.Checked = Config.Get(loadMenuItem.Name, true);
    1.70 +      tempMenuItem.Checked = Config.Get(tempMenuItem.Name, true);
    1.71 +      fansMenuItem.Checked = Config.Get(fansMenuItem.Name, true);
    1.72 +     
    1.73 +      timer.Enabled = true;   
    1.74      }
    1.75  
    1.76 -    private void AddGroup(IGroup group) {
    1.77 -      groupList.Add(group);
    1.78 -      foreach (IHardware hardware in group.Hardware)
    1.79 -        root.Nodes.Add(new HardwareNode(hardware));
    1.80 +    private void HardwareAdded(IHardware hardware) {
    1.81 +      root.Nodes.Add(new HardwareNode(hardware));
    1.82      }
    1.83  
    1.84 -    private void RemoveGroup(IGroup group) {
    1.85 +    private void HardwareRemoved(IHardware hardware) {      
    1.86        List<Node> nodesToRemove = new List<Node>();
    1.87 -      foreach (IHardware hardware in group.Hardware)
    1.88 -        foreach (Node node in root.Nodes) {
    1.89 -          HardwareNode hardwareNode = node as HardwareNode;
    1.90 -          if (hardwareNode != null && hardwareNode.Hardware == hardware)
    1.91 -            nodesToRemove.Add(node);
    1.92 -        }
    1.93 +      foreach (Node node in root.Nodes) {
    1.94 +        HardwareNode hardwareNode = node as HardwareNode;
    1.95 +        if (hardwareNode != null && hardwareNode.Hardware == hardware)
    1.96 +          nodesToRemove.Add(node);
    1.97 +      }
    1.98        foreach (Node node in nodesToRemove)
    1.99          root.Nodes.Remove(node);
   1.100 -      groupList.Remove(group);
   1.101      }
   1.102  
   1.103      private void nodeTextBoxLimit_DrawText(object sender, DrawEventArgs e) {
   1.104 @@ -213,12 +208,10 @@
   1.105        #if !DEBUG
   1.106        try {
   1.107        #endif
   1.108 -        foreach (IGroup group in groupList)
   1.109 -          foreach (IHardware hardware in group.Hardware)
   1.110 -            hardware.Update();
   1.111 +        computer.Update();        
   1.112        #if !DEBUG
   1.113        } catch (Exception exception) {
   1.114 -        Utilities.CrashReport.Save(exception);
   1.115 +        CrashReport.Save(exception);
   1.116          Close();
   1.117        }
   1.118        #endif
   1.119 @@ -228,27 +221,29 @@
   1.120      }
   1.121  
   1.122      private void MainForm_FormClosed(object sender, FormClosedEventArgs e) {
   1.123 -      Utilities.Config.Set(plotMenuItem.Name, plotMenuItem.Checked);
   1.124 -      Utilities.Config.Set(minMenuItem.Name, minMenuItem.Checked);
   1.125 -      Utilities.Config.Set(maxMenuItem.Name, maxMenuItem.Checked);
   1.126 -      Utilities.Config.Set(limitMenuItem.Name, limitMenuItem.Checked);
   1.127 -      Utilities.Config.Set(hddMenuItem.Name, hddMenuItem.Checked);
   1.128 +            
   1.129 +      Config.Set(plotMenuItem.Name, plotMenuItem.Checked);
   1.130 +      Config.Set(minMenuItem.Name, minMenuItem.Checked);
   1.131 +      Config.Set(maxMenuItem.Name, maxMenuItem.Checked);
   1.132 +      Config.Set(limitMenuItem.Name, limitMenuItem.Checked);
   1.133  
   1.134 -      Utilities.Config.Set(voltMenuItem.Name, voltMenuItem.Checked);
   1.135 -      Utilities.Config.Set(clocksMenuItem.Name, clocksMenuItem.Checked);
   1.136 -      Utilities.Config.Set(loadMenuItem.Name, loadMenuItem.Checked);
   1.137 -      Utilities.Config.Set(tempMenuItem.Name, tempMenuItem.Checked);
   1.138 -      Utilities.Config.Set(fansMenuItem.Name, fansMenuItem.Checked);
   1.139 +      Config.Set(minTrayMenuItem.Name, minTrayMenuItem.Checked);
   1.140 +      Config.Set(hddMenuItem.Name, hddMenuItem.Checked);
   1.141 +
   1.142 +      Config.Set(voltMenuItem.Name, voltMenuItem.Checked);
   1.143 +      Config.Set(clocksMenuItem.Name, clocksMenuItem.Checked);
   1.144 +      Config.Set(loadMenuItem.Name, loadMenuItem.Checked);
   1.145 +      Config.Set(tempMenuItem.Name, tempMenuItem.Checked);
   1.146 +      Config.Set(fansMenuItem.Name, fansMenuItem.Checked);
   1.147  
   1.148        if (WindowState != FormWindowState.Minimized) {
   1.149 -        Utilities.Config.Set("mainForm.Location.X", Location.X);
   1.150 -        Utilities.Config.Set("mainForm.Location.Y", Location.Y);
   1.151 -        Utilities.Config.Set("mainForm.Width", Width);
   1.152 -        Utilities.Config.Set("mainForm.Height", Height);
   1.153 +        Config.Set("mainForm.Location.X", Location.X);
   1.154 +        Config.Set("mainForm.Location.Y", Location.Y);
   1.155 +        Config.Set("mainForm.Width", Width);
   1.156 +        Config.Set("mainForm.Height", Height);
   1.157        }
   1.158  
   1.159 -      foreach (IGroup group in groupList)
   1.160 -        group.Close();
   1.161 +      computer.Close();
   1.162      }
   1.163  
   1.164      private void aboutToolStripMenuItem_Click(object sender, EventArgs e) {
   1.165 @@ -290,31 +285,21 @@
   1.166          return;
   1.167  
   1.168        NodeControlInfo info = treeView.GetNodeControlInfoAt(new Point(m.X, m.Y));
   1.169 -      if (info.Control == null)
   1.170 +      if (info.Control == null) {
   1.171          columnsContextMenuStrip.Show(treeView, m.X, m.Y);
   1.172 +      } 
   1.173      }
   1.174  
   1.175      private void saveReportToolStripMenuItem_Click(object sender, EventArgs e) {
   1.176 -      ReportWriter.Save(groupList, new Version(Application.ProductVersion));
   1.177 +      computer.SaveReport(new Version(Application.ProductVersion));      
   1.178      }
   1.179  
   1.180      private void hddsensorsToolStripMenuItem_CheckedChanged(object sender, 
   1.181        EventArgs e) 
   1.182      {
   1.183 -      if (hddMenuItem.Checked) {
   1.184 -        AddGroup(new Hardware.HDD.HDDGroup());
   1.185 -        UpdateSensorTypeChecked(null, null);
   1.186 -      } else {
   1.187 -        List<IGroup> groupsToRemove = new List<IGroup>();
   1.188 -        foreach (IGroup group in groupList) 
   1.189 -          if (group is Hardware.HDD.HDDGroup)
   1.190 -            groupsToRemove.Add(group);
   1.191 -        foreach (IGroup group in groupsToRemove) {
   1.192 -          group.Close();
   1.193 -          RemoveGroup(group);
   1.194 -        }
   1.195 -        UpdatePlotSelection(null, null);        
   1.196 -      }
   1.197 +      computer.HDDEnabled = hddMenuItem.Checked;
   1.198 +      UpdateSensorTypeChecked(null, null);
   1.199 +      UpdatePlotSelection(null, null);      
   1.200      }
   1.201  
   1.202      private void UpdateSensorTypeChecked(object sender, EventArgs e) {
   1.203 @@ -334,29 +319,24 @@
   1.204        } else {
   1.205          Visible = true;
   1.206          notifyIcon.Visible = false;
   1.207 +        BringToFront();
   1.208        }
   1.209      }
   1.210  
   1.211      protected override void WndProc(ref Message m) {
   1.212        const int WM_SYSCOMMAND = 0x112;
   1.213        const int SC_MINIMIZE = 0xF020;
   1.214 -      if (m.Msg == WM_SYSCOMMAND && m.WParam.ToInt32() == SC_MINIMIZE) {
   1.215 +      if (minTrayMenuItem.Checked && 
   1.216 +        m.Msg == WM_SYSCOMMAND && m.WParam.ToInt32() == SC_MINIMIZE) {
   1.217          ToggleSysTray();
   1.218        } else {      
   1.219          base.WndProc(ref m);
   1.220        }
   1.221      }
   1.222  
   1.223 -    private void notifyIcon_Click(object sender, EventArgs e) {
   1.224 -      MouseEventArgs m = e as MouseEventArgs;
   1.225 -      if (m == null || m.Button != MouseButtons.Left)
   1.226 -        return;
   1.227 -
   1.228 -      ToggleSysTray(); 
   1.229 +    private void restoreClick(object sender, EventArgs e) {
   1.230 +      ToggleSysTray();
   1.231      }
   1.232  
   1.233 -    private void restoreToolStripMenuItem_Click(object sender, EventArgs e) {
   1.234 -      ToggleSysTray(); 
   1.235 -    }
   1.236    }
   1.237  }