1.1 --- a/GUI/MainForm.cs Thu Oct 14 17:30:51 2010 +0000
1.2 +++ b/GUI/MainForm.cs Sat Oct 16 13:29:06 2010 +0000
1.3 @@ -19,7 +19,7 @@
1.4 Portions created by the Initial Developer are Copyright (C) 2009-2010
1.5 the Initial Developer. All Rights Reserved.
1.6
1.7 - Contributor(s):
1.8 + Contributor(s): Paul Werelds
1.9
1.10 Alternatively, the contents of this file may be used under the terms of
1.11 either the GNU General Public License Version 2 or later (the "GPL"), or
1.12 @@ -38,15 +38,13 @@
1.13 using System;
1.14 using System.Collections.Generic;
1.15 using System.ComponentModel;
1.16 -using System.Configuration;
1.17 using System.Drawing;
1.18 using System.IO;
1.19 -using System.Text;
1.20 using System.Windows.Forms;
1.21 using Aga.Controls.Tree;
1.22 using Aga.Controls.Tree.NodeControls;
1.23 using OpenHardwareMonitor.Hardware;
1.24 -using OpenHardwareMonitor.Utilities;
1.25 +using OpenHardwareMonitor.WMIProvider;
1.26
1.27 namespace OpenHardwareMonitor.GUI {
1.28 public partial class MainForm : Form {
1.29 @@ -75,6 +73,9 @@
1.30 private UserOption autoStart;
1.31 private UserOption readHddSensors;
1.32 private UserOption showGadget;
1.33 + private UserOption enableWmiProvider;
1.34 +
1.35 + private WmiProvider wmiProvider;
1.36
1.37 public MainForm() {
1.38 InitializeComponent();
1.39 @@ -133,6 +134,10 @@
1.40
1.41 computer.HardwareAdded += new HardwareEventHandler(HardwareAdded);
1.42 computer.HardwareRemoved += new HardwareEventHandler(HardwareRemoved);
1.43 +
1.44 + if (settings.GetValue("enableWmiProvider", false))
1.45 + wmiProvider = new WmiProvider(computer);
1.46 +
1.47 computer.Open();
1.48
1.49 timer.Enabled = true;
1.50 @@ -152,7 +157,8 @@
1.51 plotColorPalette[11] = Color.Olive;
1.52 plotColorPalette[12] = Color.Firebrick;
1.53
1.54 - showHiddenSensors = new UserOption("hiddenMenuItem", false, hiddenMenuItem, settings);
1.55 + showHiddenSensors = new UserOption("hiddenMenuItem", false,
1.56 + hiddenMenuItem, settings);
1.57 showHiddenSensors.Changed += delegate(object sender, EventArgs e) {
1.58 treeModel.ForceVisible = showHiddenSensors.Value;
1.59 };
1.60 @@ -163,7 +169,8 @@
1.61 treeView.Invalidate();
1.62 };
1.63
1.64 - showValue = new UserOption("valueMenuItem", true, valueMenuItem, settings);
1.65 + showValue = new UserOption("valueMenuItem", true, valueMenuItem,
1.66 + settings);
1.67 showValue.Changed += delegate(object sender, EventArgs e) {
1.68 treeView.Columns[1].IsVisible = showValue.Value;
1.69 };
1.70 @@ -178,16 +185,20 @@
1.71 treeView.Columns[3].IsVisible = showMax.Value;
1.72 };
1.73
1.74 - startMinimized = new UserOption("startMinMenuItem", false, startMinMenuItem, settings);
1.75 + startMinimized = new UserOption("startMinMenuItem", false,
1.76 + startMinMenuItem, settings);
1.77
1.78 - minimizeToTray = new UserOption("minTrayMenuItem", true, minTrayMenuItem, settings);
1.79 + minimizeToTray = new UserOption("minTrayMenuItem", true,
1.80 + minTrayMenuItem, settings);
1.81 minimizeToTray.Changed += delegate(object sender, EventArgs e) {
1.82 systemTray.IsMainIconEnabled = minimizeToTray.Value;
1.83 };
1.84
1.85 - minimizeOnClose = new UserOption("minCloseMenuItem", false, minCloseMenuItem, settings);
1.86 + minimizeOnClose = new UserOption("minCloseMenuItem", false,
1.87 + minCloseMenuItem, settings);
1.88
1.89 - autoStart = new UserOption(null, startupManager.Startup, startupMenuItem, settings);
1.90 + autoStart = new UserOption(null, startupManager.Startup,
1.91 + startupMenuItem, settings);
1.92 autoStart.Changed += delegate(object sender, EventArgs e) {
1.93 try {
1.94 startupManager.Startup = autoStart.Value;
1.95 @@ -198,18 +209,31 @@
1.96 }
1.97 };
1.98
1.99 - readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem, settings);
1.100 + readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem,
1.101 + settings);
1.102 readHddSensors.Changed += delegate(object sender, EventArgs e) {
1.103 computer.HDDEnabled = readHddSensors.Value;
1.104 UpdatePlotSelection(null, null);
1.105 };
1.106
1.107 - showGadget = new UserOption("gadgetMenuItem", false, gadgetMenuItem, settings);
1.108 + showGadget = new UserOption("gadgetMenuItem", false, gadgetMenuItem,
1.109 + settings);
1.110 showGadget.Changed += delegate(object sender, EventArgs e) {
1.111 if (gadget != null)
1.112 gadget.Visible = showGadget.Value;
1.113 };
1.114
1.115 + enableWmiProvider = new UserOption("enableWmiProvider", false,
1.116 + wmiMenuItem, settings);
1.117 + enableWmiProvider.Changed += delegate {
1.118 + if (enableWmiProvider.Value && wmiProvider == null)
1.119 + wmiProvider = new WmiProvider(computer);
1.120 + else if (!enableWmiProvider.Value && wmiProvider != null) {
1.121 + wmiProvider.Dispose();
1.122 + wmiProvider = null;
1.123 + }
1.124 + };
1.125 +
1.126 celciusMenuItem.Checked =
1.127 unitManager.TemperatureUnit == TemperatureUnit.Celcius;
1.128 fahrenheitMenuItem.Checked = !celciusMenuItem.Checked;
1.129 @@ -229,10 +253,9 @@
1.130 IntPtr handle = Handle;
1.131
1.132 // Make sure the settings are saved when the user logs off
1.133 - Microsoft.Win32.SystemEvents.SessionEnded +=
1.134 - delegate(object sender, Microsoft.Win32.SessionEndedEventArgs e) {
1.135 - SaveConfiguration();
1.136 - };
1.137 + Microsoft.Win32.SystemEvents.SessionEnded += delegate {
1.138 + SaveConfiguration();
1.139 + };
1.140 }
1.141
1.142 private void SubHardwareAdded(IHardware hardware, Node node) {
1.143 @@ -297,7 +320,8 @@
1.144 plotPanel.SetSensors(selected, colors);
1.145 }
1.146
1.147 - private void nodeTextBoxText_EditorShowing(object sender, CancelEventArgs e)
1.148 + private void nodeTextBoxText_EditorShowing(object sender,
1.149 + CancelEventArgs e)
1.150 {
1.151 e.Cancel = !(treeView.CurrentNode != null &&
1.152 treeView.CurrentNode.Tag is SensorNode);
1.153 @@ -319,9 +343,12 @@
1.154 computer.Accept(updateVisitor);
1.155 treeView.Invalidate();
1.156 plotPanel.Invalidate();
1.157 - systemTray.Redraw();
1.158 + systemTray.Redraw();
1.159 if (gadget != null)
1.160 gadget.Redraw();
1.161 +
1.162 + if (wmiProvider != null)
1.163 + wmiProvider.Update();
1.164 }
1.165
1.166 private void SaveConfiguration() {
1.167 @@ -355,13 +382,13 @@
1.168 Height = settings.GetValue("mainForm.Height", 640)
1.169 };
1.170
1.171 - Rectangle totalWorkingArea = new Rectangle(int.MaxValue, int.MaxValue,
1.172 + Rectangle fullWorkingArea = new Rectangle(int.MaxValue, int.MaxValue,
1.173 int.MinValue, int.MinValue);
1.174
1.175 foreach (Screen screen in Screen.AllScreens)
1.176 - totalWorkingArea = Rectangle.Union(totalWorkingArea, screen.Bounds);
1.177 + fullWorkingArea = Rectangle.Union(fullWorkingArea, screen.Bounds);
1.178
1.179 - Rectangle intersection = Rectangle.Intersect(totalWorkingArea, newBounds);
1.180 + Rectangle intersection = Rectangle.Intersect(fullWorkingArea, newBounds);
1.181 if (intersection.Width < 20 || intersection.Height < 20 ||
1.182 !settings.Contains("mainForm.Location.X")
1.183 ) {
1.184 @@ -394,7 +421,9 @@
1.185 if (m == null || m.Button != MouseButtons.Right)
1.186 return;
1.187
1.188 - NodeControlInfo info = treeView.GetNodeControlInfoAt(new Point(m.X, m.Y));
1.189 + NodeControlInfo info = treeView.GetNodeControlInfoAt(
1.190 + new Point(m.X, m.Y)
1.191 + );
1.192 treeView.SelectedNode = info.Node;
1.193 if (info.Node != null) {
1.194 SensorNode node = info.Node.Tag as SensorNode;