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 }