GUI/MainForm.cs
changeset 348 d8fa1e55acfa
parent 344 3145aadca3d2
child 360 c1a4377c11d1
     1.1 --- a/GUI/MainForm.cs	Sun May 27 16:50:01 2012 +0000
     1.2 +++ b/GUI/MainForm.cs	Sun May 27 20:15:32 2012 +0000
     1.3 @@ -6,6 +6,7 @@
     1.4   
     1.5    Copyright (C) 2009-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
     1.6  	Copyright (C) 2010 Paul Werelds <paul@werelds.net>
     1.7 +	Copyright (C) 2012 Prince Samuel <prince.samuel@gmail.com>
     1.8  
     1.9  */
    1.10  
    1.11 @@ -20,6 +21,7 @@
    1.12  using Aga.Controls.Tree.NodeControls;
    1.13  using OpenHardwareMonitor.Hardware;
    1.14  using OpenHardwareMonitor.WMI;
    1.15 +using OpenHardwareMonitor.Utilities;
    1.16  
    1.17  namespace OpenHardwareMonitor.GUI {
    1.18    public partial class MainForm : Form {
    1.19 @@ -51,8 +53,10 @@
    1.20      private UserOption readHddSensors;
    1.21      private UserOption showGadget;
    1.22      private UserRadioGroup plotLocation;
    1.23 +    private WmiProvider wmiProvider;
    1.24  
    1.25 -    private WmiProvider wmiProvider;
    1.26 +    private UserOption runWebServer;
    1.27 +    private HttpServer server;
    1.28  
    1.29      private bool selectionDragging = false;
    1.30  
    1.31 @@ -220,6 +224,18 @@
    1.32          unitManager.TemperatureUnit == TemperatureUnit.Celsius;
    1.33        fahrenheitMenuItem.Checked = !celsiusMenuItem.Checked;
    1.34  
    1.35 +      server = new HttpServer(root, this.settings.GetValue("listenerPort", 8085));
    1.36 +      runWebServer = new UserOption("runWebServerMenuItem", false,
    1.37 +        runWebServerMenuItem, settings);
    1.38 +      runWebServer.Changed += delegate(object sender, EventArgs e)
    1.39 +      {
    1.40 +          if (runWebServer.Value)
    1.41 +              runWebServer.Value = server.startHTTPListener();
    1.42 +          else
    1.43 +              server.stopHTTPListener();
    1.44 +      };
    1.45 +
    1.46 +
    1.47        InitializePlotForm();
    1.48  
    1.49        startupMenuItem.Visible = startupManager.IsAvailable;
    1.50 @@ -239,6 +255,9 @@
    1.51        // Make sure the settings are saved when the user logs off
    1.52        Microsoft.Win32.SystemEvents.SessionEnded += delegate {
    1.53          SaveConfiguration();
    1.54 +        if (runWebServer.Value) 
    1.55 +            server.Quit();
    1.56 +
    1.57        };
    1.58      }
    1.59  
    1.60 @@ -440,6 +459,8 @@
    1.61          settings.SetValue("treeView.Columns." + column.Header + ".Width",
    1.62            column.Width);
    1.63  
    1.64 +      this.settings.SetValue("listenerPort", server.ListenerPort);
    1.65 +
    1.66        string fileName = Path.ChangeExtension(
    1.67            System.Windows.Forms.Application.ExecutablePath, ".config");
    1.68        try {
    1.69 @@ -489,6 +510,8 @@
    1.70        timer.Enabled = false;            
    1.71        computer.Close();
    1.72        SaveConfiguration();
    1.73 +      if (runWebServer.Value)
    1.74 +          server.Quit();
    1.75        systemTray.Dispose();
    1.76      }
    1.77  
    1.78 @@ -732,5 +755,14 @@
    1.79      private void treeView_MouseUp(object sender, MouseEventArgs e) {
    1.80        selectionDragging = false;
    1.81      }
    1.82 +
    1.83 +    private void serverPortMenuItem_Click(object sender, EventArgs e) {
    1.84 +      new PortForm(this).ShowDialog();
    1.85 +    }
    1.86 +
    1.87 +    public HttpServer Server {
    1.88 +      get { return server; }
    1.89 +    }
    1.90 +
    1.91    }
    1.92  }