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 }