GUI/MainForm.cs
changeset 165 813d8bc3192f
parent 159 eda3e3458cf4
child 166 fa9dfbfc4145
     1.1 --- a/GUI/MainForm.cs	Thu Aug 05 19:28:50 2010 +0000
     1.2 +++ b/GUI/MainForm.cs	Sun Aug 08 13:57:26 2010 +0000
     1.3 @@ -51,7 +51,9 @@
     1.4  namespace OpenHardwareMonitor.GUI {
     1.5    public partial class MainForm : Form {
     1.6  
     1.7 -    private Computer computer = new Computer();
     1.8 +    private PersistentSettings settings;
     1.9 +    private UnitManager unitManager;
    1.10 +    private Computer computer;
    1.11      private Node root;
    1.12      private TreeModel treeModel;
    1.13      private IDictionary<ISensor, Color> sensorPlotColors = 
    1.14 @@ -74,6 +76,12 @@
    1.15      public MainForm() {      
    1.16        InitializeComponent();
    1.17  
    1.18 +      this.settings = new PersistentSettings();      
    1.19 +      this.settings.Load(Path.ChangeExtension(
    1.20 +        System.Windows.Forms.Application.ExecutablePath, ".config"));
    1.21 +
    1.22 +      this.unitManager = new UnitManager(settings);
    1.23 +
    1.24        // set the DockStyle here, to avoid conflicts with the MainMenu
    1.25        this.splitContainer.Dock = DockStyle.Fill;
    1.26        
    1.27 @@ -98,10 +106,10 @@
    1.28        nodeTextBoxMax.DrawText += nodeTextBoxText_DrawText;
    1.29        nodeTextBoxText.EditorShowing += nodeTextBoxText_EditorShowing;
    1.30  
    1.31 -      if (Utilities.Config.Contains("mainForm.Location.X")) {
    1.32 -        int x = Utilities.Config.Get("mainForm.Location.X", Location.X);
    1.33 +      if (settings.Contains("mainForm.Location.X")) {
    1.34 +        int x = settings.Get("mainForm.Location.X", Location.X);
    1.35          x = x < 0 ? 0 : x;
    1.36 -        int y = Utilities.Config.Get("mainForm.Location.Y", Location.Y);
    1.37 +        int y = settings.Get("mainForm.Location.Y", Location.Y);
    1.38          y = y < 0 ? 0 : y;
    1.39          this.Location = new Point(x, y);
    1.40        } else {
    1.41 @@ -109,12 +117,12 @@
    1.42        }
    1.43  
    1.44        ClientSize = new Size(
    1.45 -        Utilities.Config.Get("mainForm.Width", 470),
    1.46 -        Utilities.Config.Get("mainForm.Height", 640));
    1.47 +        settings.Get("mainForm.Width", 470),
    1.48 +        settings.Get("mainForm.Height", 640));
    1.49  
    1.50        foreach (TreeColumn column in treeView.Columns) 
    1.51 -        column.Width = Math.Max(20, Math.Min(400, 
    1.52 -          Config.Get("treeView.Columns." + column.Header + ".Width",
    1.53 +        column.Width = Math.Max(20, Math.Min(400,
    1.54 +          settings.Get("treeView.Columns." + column.Header + ".Width",
    1.55            column.Width)));
    1.56  
    1.57        treeModel = new TreeModel();
    1.58 @@ -122,9 +130,11 @@
    1.59        root.Image = Utilities.EmbeddedResources.GetImage("computer.png");
    1.60        
    1.61        treeModel.Nodes.Add(root);
    1.62 -      treeView.Model = treeModel;     
    1.63 +      treeView.Model = treeModel;
    1.64  
    1.65 -      systemTray = new SystemTray(computer);
    1.66 +      this.computer = new Computer(settings);
    1.67 +
    1.68 +      systemTray = new SystemTray(computer, settings);
    1.69        systemTray.HideShowCommand += hideShowClick;
    1.70        systemTray.ExitCommand += exitClick;
    1.71  
    1.72 @@ -149,52 +159,52 @@
    1.73        plotColorPalette[11] = Color.Olive;
    1.74        plotColorPalette[12] = Color.Firebrick;
    1.75  
    1.76 -      showHiddenSensors = new UserOption("hiddenMenuItem", false, hiddenMenuItem);
    1.77 +      showHiddenSensors = new UserOption("hiddenMenuItem", false, hiddenMenuItem, settings);
    1.78        showHiddenSensors.Changed += delegate(object sender, EventArgs e) {
    1.79          treeModel.ForceVisible = showHiddenSensors.Value;
    1.80        };
    1.81  
    1.82 -      showPlot = new UserOption("plotMenuItem", false, plotMenuItem);
    1.83 +      showPlot = new UserOption("plotMenuItem", false, plotMenuItem, settings);
    1.84        showPlot.Changed += delegate(object sender, EventArgs e) {
    1.85          splitContainer.Panel2Collapsed = !showPlot.Value;
    1.86          treeView.Invalidate();
    1.87        };
    1.88  
    1.89 -      showValue = new UserOption("valueMenuItem", true, valueMenuItem);
    1.90 +      showValue = new UserOption("valueMenuItem", true, valueMenuItem, settings);
    1.91        showValue.Changed += delegate(object sender, EventArgs e) {
    1.92          treeView.Columns[1].IsVisible = showValue.Value;
    1.93        };
    1.94  
    1.95 -      showMin = new UserOption("minMenuItem", false, minMenuItem);
    1.96 +      showMin = new UserOption("minMenuItem", false, minMenuItem, settings);
    1.97        showMin.Changed += delegate(object sender, EventArgs e) {
    1.98          treeView.Columns[2].IsVisible = showMin.Value;
    1.99        };
   1.100  
   1.101 -      showMax = new UserOption("maxMenuItem", true, maxMenuItem);
   1.102 +      showMax = new UserOption("maxMenuItem", true, maxMenuItem, settings);
   1.103        showMax.Changed += delegate(object sender, EventArgs e) {
   1.104          treeView.Columns[3].IsVisible = showMax.Value;
   1.105        };
   1.106  
   1.107 -      startMinimized = new UserOption("startMinMenuItem", false, startMinMenuItem);
   1.108 +      startMinimized = new UserOption("startMinMenuItem", false, startMinMenuItem, settings);
   1.109  
   1.110 -      minimizeToTray = new UserOption("minTrayMenuItem", true, minTrayMenuItem);
   1.111 +      minimizeToTray = new UserOption("minTrayMenuItem", true, minTrayMenuItem, settings);
   1.112        minimizeToTray.Changed += delegate(object sender, EventArgs e) {
   1.113          systemTray.IsMainIconEnabled = minimizeToTray.Value;
   1.114        };
   1.115  
   1.116 -      autoStart = new UserOption(null, startupManager.Startup, startupMenuItem);
   1.117 +      autoStart = new UserOption(null, startupManager.Startup, startupMenuItem, settings);
   1.118        autoStart.Changed += delegate(object sender, EventArgs e) {
   1.119          startupManager.Startup = autoStart.Value; ;
   1.120        };
   1.121  
   1.122 -      readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem);
   1.123 +      readHddSensors = new UserOption("hddMenuItem", true, hddMenuItem, settings);
   1.124        readHddSensors.Changed += delegate(object sender, EventArgs e) {
   1.125          computer.HDDEnabled = readHddSensors.Value;
   1.126          UpdatePlotSelection(null, null);
   1.127        };
   1.128  
   1.129        celciusMenuItem.Checked = 
   1.130 -        UnitManager.TemperatureUnit == TemperatureUnit.Celcius;
   1.131 +        unitManager.TemperatureUnit == TemperatureUnit.Celcius;
   1.132        fahrenheitMenuItem.Checked = !celciusMenuItem.Checked;
   1.133  
   1.134        startupMenuItem.Visible = startupManager.IsAvailable;
   1.135 @@ -219,14 +229,14 @@
   1.136      }
   1.137      
   1.138      private void SubHardwareAdded(IHardware hardware, Node node) {
   1.139 -      Node hardwareNode = new HardwareNode(hardware);
   1.140 +      Node hardwareNode = new HardwareNode(hardware, settings, unitManager);
   1.141        node.Nodes.Add(hardwareNode);
   1.142        foreach (IHardware subHardware in hardware.SubHardware)
   1.143          SubHardwareAdded(subHardware, hardwareNode);  
   1.144      }
   1.145  
   1.146      private void HardwareAdded(IHardware hardware) {
   1.147 -      Node hardwareNode = new HardwareNode(hardware);
   1.148 +      Node hardwareNode = new HardwareNode(hardware, settings, unitManager);
   1.149        root.Nodes.Add(hardwareNode);
   1.150        foreach (IHardware subHardware in hardware.SubHardware)
   1.151          SubHardwareAdded(subHardware, hardwareNode);     
   1.152 @@ -307,17 +317,18 @@
   1.153  
   1.154      private void SaveConfiguration() {
   1.155        if (WindowState != FormWindowState.Minimized) {
   1.156 -        Config.Set("mainForm.Location.X", Location.X);
   1.157 -        Config.Set("mainForm.Location.Y", Location.Y);
   1.158 -        Config.Set("mainForm.Width", ClientSize.Width);
   1.159 -        Config.Set("mainForm.Height", ClientSize.Height);
   1.160 +        settings.Set("mainForm.Location.X", Location.X);
   1.161 +        settings.Set("mainForm.Location.Y", Location.Y);
   1.162 +        settings.Set("mainForm.Width", ClientSize.Width);
   1.163 +        settings.Set("mainForm.Height", ClientSize.Height);
   1.164        }
   1.165  
   1.166        foreach (TreeColumn column in treeView.Columns)
   1.167 -        Config.Set("treeView.Columns." + column.Header + ".Width",
   1.168 +        settings.Set("treeView.Columns." + column.Header + ".Width",
   1.169            column.Width);
   1.170  
   1.171 -      Config.Save();
   1.172 +      settings.Save(Path.ChangeExtension(
   1.173 +        System.Windows.Forms.Application.ExecutablePath, ".config"));
   1.174      }
   1.175  
   1.176      private void MainForm_FormClosed(object sender, FormClosedEventArgs e) {
   1.177 @@ -451,13 +462,13 @@
   1.178      private void celciusMenuItem_Click(object sender, EventArgs e) {
   1.179        celciusMenuItem.Checked = true;
   1.180        fahrenheitMenuItem.Checked = false;
   1.181 -      UnitManager.TemperatureUnit = TemperatureUnit.Celcius;
   1.182 +      unitManager.TemperatureUnit = TemperatureUnit.Celcius;
   1.183      }
   1.184  
   1.185      private void fahrenheitMenuItem_Click(object sender, EventArgs e) {
   1.186        celciusMenuItem.Checked = false;
   1.187        fahrenheitMenuItem.Checked = true;
   1.188 -      UnitManager.TemperatureUnit = TemperatureUnit.Fahrenheit;
   1.189 +      unitManager.TemperatureUnit = TemperatureUnit.Fahrenheit;
   1.190      }
   1.191  
   1.192      private void sumbitReportMenuItem_Click(object sender, EventArgs e)