From a1afd460a5b84b7a41fb7cf699bf7281a63e00a9 Mon Sep 17 00:00:00 2001 From: Fish <> Date: Wed, 23 Apr 2008 09:56:59 +0000 Subject: [PATCH] The Start of a GUI/Control Panel for NeoStats. Of course, still heavily in progress, and written in VS2008, so needs to be downgraded eventually. --- .gitattributes | 11 + src/win32/Gui/AssemblyInfo.cpp | 40 ++ src/win32/Gui/Form1.h | 395 ++++++++++++++++++++ src/win32/Gui/Form1.resx | 179 +++++++++ src/win32/Gui/NeoStats Control Panel.cpp | 23 ++ src/win32/Gui/NeoStats Control Panel.sln | 20 + src/win32/Gui/NeoStats Control Panel.vcproj | 277 ++++++++++++++ src/win32/Gui/app.ico | Bin 0 -> 1078 bytes src/win32/Gui/app.rc | 63 ++++ src/win32/Gui/resource.h | 3 + src/win32/Gui/stdafx.cpp | 7 + src/win32/Gui/stdafx.h | 6 + 12 files changed, 1024 insertions(+) create mode 100644 src/win32/Gui/AssemblyInfo.cpp create mode 100644 src/win32/Gui/Form1.h create mode 100644 src/win32/Gui/Form1.resx create mode 100644 src/win32/Gui/NeoStats Control Panel.cpp create mode 100644 src/win32/Gui/NeoStats Control Panel.sln create mode 100644 src/win32/Gui/NeoStats Control Panel.vcproj create mode 100644 src/win32/Gui/app.ico create mode 100644 src/win32/Gui/app.rc create mode 100644 src/win32/Gui/resource.h create mode 100644 src/win32/Gui/stdafx.cpp create mode 100644 src/win32/Gui/stdafx.h diff --git a/.gitattributes b/.gitattributes index 348f09fc..55f234fa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -557,6 +557,17 @@ src/neostats.pm.h -text src/neostats.vcproj -text src/nsevents.c -text src/typemap -text +src/win32/Gui/AssemblyInfo.cpp -text +src/win32/Gui/Form1.h -text +src/win32/Gui/Form1.resx -text +src/win32/Gui/NeoStats[!!-~]Control[!!-~]Panel.cpp -text +src/win32/Gui/NeoStats[!!-~]Control[!!-~]Panel.sln -text +src/win32/Gui/NeoStats[!!-~]Control[!!-~]Panel.vcproj -text +src/win32/Gui/app.ico -text +src/win32/Gui/app.rc -text +src/win32/Gui/resource.h -text +src/win32/Gui/stdafx.cpp -text +src/win32/Gui/stdafx.h -text src/win32/Rules.rules -text src/win32/icon1.ico -text src/win32/neostats.bmp -text diff --git a/src/win32/Gui/AssemblyInfo.cpp b/src/win32/Gui/AssemblyInfo.cpp new file mode 100644 index 00000000..2dee6ded --- /dev/null +++ b/src/win32/Gui/AssemblyInfo.cpp @@ -0,0 +1,40 @@ +#include "stdafx.h" + +using namespace System; +using namespace System::Reflection; +using namespace System::Runtime::CompilerServices; +using namespace System::Runtime::InteropServices; +using namespace System::Security::Permissions; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly:AssemblyTitleAttribute("NeoStatsControlPanel")]; +[assembly:AssemblyDescriptionAttribute("")]; +[assembly:AssemblyConfigurationAttribute("")]; +[assembly:AssemblyCompanyAttribute("")]; +[assembly:AssemblyProductAttribute("NeoStatsControlPanel")]; +[assembly:AssemblyCopyrightAttribute("Copyright (c) 2008")]; +[assembly:AssemblyTrademarkAttribute("")]; +[assembly:AssemblyCultureAttribute("")]; + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the value or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly:AssemblyVersionAttribute("1.0.*")]; + +[assembly:ComVisible(false)]; + +[assembly:CLSCompliantAttribute(true)]; + +[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; diff --git a/src/win32/Gui/Form1.h b/src/win32/Gui/Form1.h new file mode 100644 index 00000000..2f5cd448 --- /dev/null +++ b/src/win32/Gui/Form1.h @@ -0,0 +1,395 @@ +#pragma once + + +namespace NeoStatsControlPanel { + + using namespace System; + using namespace System::ComponentModel; + using namespace System::Collections; + using namespace System::Windows::Forms; + using namespace System::Data; + using namespace System::Drawing; + + /// + /// Summary for Form1 + /// + /// WARNING: If you change the name of this class, you will need to change the + /// 'Resource File Name' property for the managed resource compiler tool + /// associated with all .resx files this class depends on. Otherwise, + /// the designers will not be able to interact properly with localized + /// resources associated with this form. + /// + public ref class Form1 : public System::Windows::Forms::Form + { + public: + Form1(void) + { + InitializeComponent(); + //import System::ServiceProcess::ServiceControllerStatus; + // + //TODO: Add the constructor code here + // + notifyIcon1->BalloonTipText = "NeoStats Stopped"; + notifyIcon1->BalloonTipTitle = "Status"; + notifyIcon1->ContextMenuStrip = contextMenuStrip1; + notifyIcon1->ShowBalloonTip(10); + + } + + protected: + /// + /// Clean up any resources being used. + /// + ~Form1() + { + if (components) + { + delete components; + } + Application::Exit(); + } + private: System::Windows::Forms::NotifyIcon^ notifyIcon1; + private: System::Windows::Forms::ContextMenuStrip^ contextMenuStrip1; + private: System::Windows::Forms::ToolStripMenuItem^ openControlPanelToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ exitToolStripMenuItem; + private: System::ServiceProcess::ServiceController^ serviceController1; + private: System::Diagnostics::PerformanceCounter^ performanceCounter1; + private: System::Windows::Forms::Timer^ PerfUpdate; + private: System::Windows::Forms::ProgressBar^ PerfCPU; + private: System::Windows::Forms::Label^ label1; + private: System::Windows::Forms::Label^ label2; + private: System::Diagnostics::PerformanceCounter^ performanceCounter2; + private: System::Windows::Forms::Label^ label3; + private: System::Windows::Forms::Label^ label4; + private: System::Windows::Forms::MenuStrip^ menuStrip1; + private: System::Windows::Forms::ToolStripMenuItem^ serviceToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ startToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ stopToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ debugToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ installToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ unInstallToolStripMenuItem; + private: System::Windows::Forms::ToolStripSeparator^ toolStripSeparator1; + private: System::Windows::Forms::ToolStripMenuItem^ quitNeoStatsControlPanelToolStripMenuItem; + private: System::Windows::Forms::ToolStripMenuItem^ logViewerToolStripMenuItem; + + + + protected: + private: System::ComponentModel::IContainer^ components; + + private: + /// + /// Required designer variable. + /// + + +#pragma region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + void InitializeComponent(void) + { + this->components = (gcnew System::ComponentModel::Container()); + System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid)); + this->notifyIcon1 = (gcnew System::Windows::Forms::NotifyIcon(this->components)); + this->contextMenuStrip1 = (gcnew System::Windows::Forms::ContextMenuStrip(this->components)); + this->openControlPanelToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->serviceController1 = (gcnew System::ServiceProcess::ServiceController()); + this->performanceCounter1 = (gcnew System::Diagnostics::PerformanceCounter()); + this->PerfUpdate = (gcnew System::Windows::Forms::Timer(this->components)); + this->PerfCPU = (gcnew System::Windows::Forms::ProgressBar()); + this->label1 = (gcnew System::Windows::Forms::Label()); + this->label2 = (gcnew System::Windows::Forms::Label()); + this->performanceCounter2 = (gcnew System::Diagnostics::PerformanceCounter()); + this->label3 = (gcnew System::Windows::Forms::Label()); + this->label4 = (gcnew System::Windows::Forms::Label()); + this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip()); + this->serviceToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->startToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->stopToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->debugToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->installToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->unInstallToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->toolStripSeparator1 = (gcnew System::Windows::Forms::ToolStripSeparator()); + this->quitNeoStatsControlPanelToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->logViewerToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); + this->contextMenuStrip1->SuspendLayout(); + (cli::safe_cast(this->performanceCounter1))->BeginInit(); + (cli::safe_cast(this->performanceCounter2))->BeginInit(); + this->menuStrip1->SuspendLayout(); + this->SuspendLayout(); + // + // notifyIcon1 + // + this->notifyIcon1->Icon = (cli::safe_cast(resources->GetObject(L"notifyIcon1.Icon"))); + this->notifyIcon1->Text = L"NeoStats Control Panel"; + this->notifyIcon1->Visible = true; + this->notifyIcon1->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::notifyIcon1_MouseDoubleClick); + // + // contextMenuStrip1 + // + this->contextMenuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->openControlPanelToolStripMenuItem, + this->exitToolStripMenuItem}); + this->contextMenuStrip1->Name = L"contextMenuStrip1"; + this->contextMenuStrip1->Size = System::Drawing::Size(179, 48); + // + // openControlPanelToolStripMenuItem + // + this->openControlPanelToolStripMenuItem->Name = L"openControlPanelToolStripMenuItem"; + this->openControlPanelToolStripMenuItem->Size = System::Drawing::Size(178, 22); + this->openControlPanelToolStripMenuItem->Text = L"&Open Control Panel"; + this->openControlPanelToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::openControlPanelToolStripMenuItem_Click); + // + // exitToolStripMenuItem + // + this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem"; + this->exitToolStripMenuItem->Size = System::Drawing::Size(178, 22); + this->exitToolStripMenuItem->Text = L"E&xit"; + this->exitToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::exitToolStripMenuItem_Click); + // + // serviceController1 + // + this->serviceController1->ServiceName = L"McShield"; + // + // performanceCounter1 + // + this->performanceCounter1->CategoryName = L"Process"; + this->performanceCounter1->CounterName = L"% Processor Time"; + this->performanceCounter1->InstanceName = L"taskmgr"; + // + // PerfUpdate + // + this->PerfUpdate->Interval = 1000; + this->PerfUpdate->Tick += gcnew System::EventHandler(this, &Form1::PerfUpdate_Tick); + // + // PerfCPU + // + this->PerfCPU->Location = System::Drawing::Point(2, 238); + this->PerfCPU->Name = L"PerfCPU"; + this->PerfCPU->Size = System::Drawing::Size(283, 23); + this->PerfCPU->TabIndex = 1; + // + // label1 + // + this->label1->AutoSize = true; + this->label1->Location = System::Drawing::Point(80, 222); + this->label1->Name = L"label1"; + this->label1->Size = System::Drawing::Size(13, 13); + this->label1->TabIndex = 2; + this->label1->Text = L"0"; + // + // label2 + // + this->label2->AutoSize = true; + this->label2->Location = System::Drawing::Point(8, 221); + this->label2->Name = L"label2"; + this->label2->Size = System::Drawing::Size(66, 13); + this->label2->TabIndex = 3; + this->label2->Text = L"CPU Usage:"; + // + // performanceCounter2 + // + this->performanceCounter2->CategoryName = L"Process"; + this->performanceCounter2->CounterName = L"Working Set"; + this->performanceCounter2->InstanceName = L"taskmgr"; + // + // label3 + // + this->label3->AutoSize = true; + this->label3->Location = System::Drawing::Point(99, 222); + this->label3->Name = L"label3"; + this->label3->Size = System::Drawing::Size(81, 13); + this->label3->TabIndex = 4; + this->label3->Text = L"Memory Usage:"; + // + // label4 + // + this->label4->AutoSize = true; + this->label4->Location = System::Drawing::Point(187, 222); + this->label4->Name = L"label4"; + this->label4->Size = System::Drawing::Size(13, 13); + this->label4->TabIndex = 5; + this->label4->Text = L"0"; + // + // menuStrip1 + // + this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->serviceToolStripMenuItem, + this->logViewerToolStripMenuItem}); + this->menuStrip1->Location = System::Drawing::Point(0, 0); + this->menuStrip1->Name = L"menuStrip1"; + this->menuStrip1->Size = System::Drawing::Size(284, 24); + this->menuStrip1->TabIndex = 6; + this->menuStrip1->Text = L"menuStrip1"; + // + // serviceToolStripMenuItem + // + this->serviceToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(7) {this->startToolStripMenuItem, + this->stopToolStripMenuItem, this->debugToolStripMenuItem, this->installToolStripMenuItem, this->unInstallToolStripMenuItem, + this->toolStripSeparator1, this->quitNeoStatsControlPanelToolStripMenuItem}); + this->serviceToolStripMenuItem->Name = L"serviceToolStripMenuItem"; + this->serviceToolStripMenuItem->Size = System::Drawing::Size(56, 20); + this->serviceToolStripMenuItem->Text = L"Service"; + // + // startToolStripMenuItem + // + this->startToolStripMenuItem->Enabled = false; + this->startToolStripMenuItem->Name = L"startToolStripMenuItem"; + this->startToolStripMenuItem->Size = System::Drawing::Size(222, 22); + this->startToolStripMenuItem->Text = L"Start"; + this->startToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::startToolStripMenuItem_Click); + // + // stopToolStripMenuItem + // + this->stopToolStripMenuItem->Enabled = false; + this->stopToolStripMenuItem->Name = L"stopToolStripMenuItem"; + this->stopToolStripMenuItem->Size = System::Drawing::Size(222, 22); + this->stopToolStripMenuItem->Text = L"Stop"; + this->stopToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::stopToolStripMenuItem_Click); + // + // debugToolStripMenuItem + // + this->debugToolStripMenuItem->Name = L"debugToolStripMenuItem"; + this->debugToolStripMenuItem->Size = System::Drawing::Size(222, 22); + this->debugToolStripMenuItem->Text = L"Debug"; + // + // installToolStripMenuItem + // + this->installToolStripMenuItem->Enabled = false; + this->installToolStripMenuItem->Name = L"installToolStripMenuItem"; + this->installToolStripMenuItem->Size = System::Drawing::Size(222, 22); + this->installToolStripMenuItem->Text = L"Install"; + // + // unInstallToolStripMenuItem + // + this->unInstallToolStripMenuItem->Enabled = false; + this->unInstallToolStripMenuItem->Name = L"unInstallToolStripMenuItem"; + this->unInstallToolStripMenuItem->Size = System::Drawing::Size(222, 22); + this->unInstallToolStripMenuItem->Text = L"Uninstall"; + // + // toolStripSeparator1 + // + this->toolStripSeparator1->Name = L"toolStripSeparator1"; + this->toolStripSeparator1->Size = System::Drawing::Size(219, 6); + // + // quitNeoStatsControlPanelToolStripMenuItem + // + this->quitNeoStatsControlPanelToolStripMenuItem->Name = L"quitNeoStatsControlPanelToolStripMenuItem"; + this->quitNeoStatsControlPanelToolStripMenuItem->Size = System::Drawing::Size(222, 22); + this->quitNeoStatsControlPanelToolStripMenuItem->Text = L"Quit NeoStats Control Panel"; + this->quitNeoStatsControlPanelToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::quitNeoStatsControlPanelToolStripMenuItem_Click); + // + // logViewerToolStripMenuItem + // + this->logViewerToolStripMenuItem->Name = L"logViewerToolStripMenuItem"; + this->logViewerToolStripMenuItem->Size = System::Drawing::Size(77, 20); + this->logViewerToolStripMenuItem->Text = L"Log Viewer"; + // + // Form1 + // + this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); + this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; + this->ClientSize = System::Drawing::Size(284, 264); + this->Controls->Add(this->menuStrip1); + this->Controls->Add(this->label4); + this->Controls->Add(this->label3); + this->Controls->Add(this->label2); + this->Controls->Add(this->PerfCPU); + this->Controls->Add(this->label1); + this->Icon = (cli::safe_cast(resources->GetObject(L"$this.Icon"))); + this->MainMenuStrip = this->menuStrip1; + this->MinimizeBox = false; + this->Name = L"Form1"; + this->Text = L"NeoStats Control Panel"; + this->contextMenuStrip1->ResumeLayout(false); + (cli::safe_cast(this->performanceCounter1))->EndInit(); + (cli::safe_cast(this->performanceCounter2))->EndInit(); + this->menuStrip1->ResumeLayout(false); + this->menuStrip1->PerformLayout(); + this->ResumeLayout(false); + this->PerformLayout(); + + } +#pragma endregion + private: System::Void openControlPanelToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { + if (this->Visible == true) { + this->Hide(); + this->openControlPanelToolStripMenuItem->Text = L"&Open Control Panel"; + this->PerfUpdate->Enabled = false; + } else { + this->openControlPanelToolStripMenuItem->Text = L"&Close Control Panel"; + this->Show(); + this->PerfUpdate->Enabled = true; + } + } + private: System::Void exitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { + this->Close(); + Application::Exit(); + }; +private: System::Void notifyIcon1_MouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { + openControlPanelToolStripMenuItem_Click(sender, e); + } +private: System::Void PerfUpdate_Tick(System::Object^ sender, System::EventArgs^ e) { + try { + this->PerfCPU->Value = this->performanceCounter1->NextValue(); + } catch(...) { + this->PerfCPU->Value = 0; + } + try { + this->label4->Text = (this->performanceCounter2->NextValue()/1024/1024).ToString("N01") + "Mb"; + } catch(...) { + this->label4->Text = "0"; + } + this->label1->Text= this->PerfCPU->Value.ToString(); + switch (serviceController1->Status) { + case System::ServiceProcess::ServiceControllerStatus::Running: + notifyIcon1->BalloonTipText = "NeoStats Running"; + this->PerfUpdate->Enabled = true; + this->startToolStripMenuItem->Enabled = false; + this->stopToolStripMenuItem->Enabled = true; + this->debugToolStripMenuItem->Enabled = false; + this->installToolStripMenuItem->Enabled = false; + this->unInstallToolStripMenuItem->Enabled = false; + break; + case System::ServiceProcess::ServiceControllerStatus::StartPending: + notifyIcon1->BalloonTipText = "NeoStats Starting"; + this->PerfUpdate->Enabled = true; + this->startToolStripMenuItem->Enabled = false; + this->stopToolStripMenuItem->Enabled = true; + this->debugToolStripMenuItem->Enabled = false; + this->installToolStripMenuItem->Enabled = false; + this->unInstallToolStripMenuItem->Enabled = false; + break; + default: + notifyIcon1->BalloonTipText = "NeoStats Stopped"; + this->startToolStripMenuItem->Enabled = true; + this->stopToolStripMenuItem->Enabled = false; + this->debugToolStripMenuItem->Enabled = true; + this->installToolStripMenuItem->Enabled = false; + this->unInstallToolStripMenuItem->Enabled = true; + this->PerfUpdate->Enabled = false; + } + } + + +private: System::Void quitNeoStatsControlPanelToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { + exitToolStripMenuItem_Click(sender, e); + } +private: System::Void stopToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { + try { + serviceController1->Stop(); + } catch(InvalidOperationException^ e ) { + MessageBox::Show(e->Message + ":\r\n" + e->InnerException->Message, "Error Stopping Service"); + } + } +private: System::Void startToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { + try { + serviceController1->Start(); + } catch(InvalidOperationException^ e ) { + MessageBox::Show(e->Message + ":\r\n" + e->InnerException->Message, "Error Starting Service"); + } + } +}; +} + diff --git a/src/win32/Gui/Form1.resx b/src/win32/Gui/Form1.resx new file mode 100644 index 00000000..87081b52 --- /dev/null +++ b/src/win32/Gui/Form1.resx @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAEAAAABAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiAAAAAAAAACIiIiAAAB3d3cAAA + AAAAAId3d3cAAAd3d3gAAAAAAAh3d3d3gAAHd3d4AAAAAACId3d3d4AAB3d3eAAAAAAIh3d3d3eAAAd3 + d3gAAAAAiHd3d3d3gAAHd3d4AAAAAId3d3d3d4AAB3d3eAAAAAh3d3d3d3eAAAd3d3gAAACId3d3d3d3 + gAAHd3d4AAAIh3d3d3d3d4AAB3d3eAAACHd3d3d3d3eAAAd3d3gAAId3d3d3d3d3gAAHd3d4AAh3d3d3 + h3d3d4AAB3d3eACId3d3eId3d3eAAAd3d3gIh3d3d4iHd3d3gAAHd3d4iHd3d3eIh3d3d4AAB3d3eId3 + d3d4gId3d3eAAAd3d3h3d3d3iACHd3d3gAAHd3d4d3d3eIAAh3d3d4AAB3d3d3d3d4gAAId3d3eAAAd3 + d3d3d3eAAACHd3d3gAAHd3d3d3d4AAAAh3d3d4AAB3d3d3d3gAAAAId3d3eAAAd3d3d3eIAAAACHd3d3 + gAAHd3d3d3gAAAAAh3d3d4AAB3d3d3eAAAAAAAd3d3eAAAd3d3d4AAAAAAAHd3d3gAAHd3dwgAAAAAAA + AAd3cIAAAAAACAAAAAAAAAAAAAAAAACIiIAAAAAAAAAACIiAAAAAAAAAAAAAAAAAAACAAAAIgAAAAIAA + AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAA + AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAgAgAAIAIEADhD+AA/wAAAAAA== + + + + 132, 25 + + + 287, 25 + + + 437, 25 + + + 609, 25 + + + 722, 25 + + + 17, 64 + + + True + + + + AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAEAAAABAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiAAAAAAAAACIiIiAAAB3d3cAAA + AAAAAId3d3cAAAd3d3gAAAAAAAh3d3d3gAAHd3d4AAAAAACId3d3d4AAB3d3eAAAAAAIh3d3d3eAAAd3 + d3gAAAAAiHd3d3d3gAAHd3d4AAAAAId3d3d3d4AAB3d3eAAAAAh3d3d3d3eAAAd3d3gAAACId3d3d3d3 + gAAHd3d4AAAIh3d3d3d3d4AAB3d3eAAACHd3d3d3d3eAAAd3d3gAAId3d3d3d3d3gAAHd3d4AAh3d3d3 + h3d3d4AAB3d3eACId3d3eId3d3eAAAd3d3gIh3d3d4iHd3d3gAAHd3d4iHd3d3eIh3d3d4AAB3d3eId3 + d3d4gId3d3eAAAd3d3h3d3d3iACHd3d3gAAHd3d4d3d3eIAAh3d3d4AAB3d3d3d3d4gAAId3d3eAAAd3 + d3d3d3eAAACHd3d3gAAHd3d3d3d4AAAAh3d3d4AAB3d3d3d3gAAAAId3d3eAAAd3d3d3eIAAAACHd3d3 + gAAHd3d3d3gAAAAAh3d3d4AAB3d3d3eAAAAAAAd3d3eAAAd3d3d4AAAAAAAHd3d3gAAHd3dwgAAAAAAA + AAd3cIAAAAAACAAAAAAAAAAAAAAAAACIiIAAAAAAAAAACIiAAAAAAAAAAAAAAAAAAACAAAAIgAAAAIAA + AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAA + AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAgAgAAIAIEADhD+AA/wAAAAAA== + + + \ No newline at end of file diff --git a/src/win32/Gui/NeoStats Control Panel.cpp b/src/win32/Gui/NeoStats Control Panel.cpp new file mode 100644 index 00000000..4f1feb89 --- /dev/null +++ b/src/win32/Gui/NeoStats Control Panel.cpp @@ -0,0 +1,23 @@ +// NeoStats Control Panel.cpp : main project file. + +#include "stdafx.h" +#include "Form1.h" + +using namespace NeoStatsControlPanel; + +[STAThreadAttribute] +int main(array ^args) +{ + Form1 ^ NeoStatsGui; + // Enabling Windows XP visual effects before any controls are created + Application::EnableVisualStyles(); + Application::SetCompatibleTextRenderingDefault(false); + + // Create the main window and run it + NeoStatsGui = gcnew Form1(); + NeoStatsGui->Hide(); + + Application::Run(); + // Application::Run(gcnew Form1()); + return 0; +} diff --git a/src/win32/Gui/NeoStats Control Panel.sln b/src/win32/Gui/NeoStats Control Panel.sln new file mode 100644 index 00000000..075eb974 --- /dev/null +++ b/src/win32/Gui/NeoStats Control Panel.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NeoStats Control Panel", "NeoStats Control Panel.vcproj", "{FACB5498-CC3E-415A-96E5-91737F986A52}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FACB5498-CC3E-415A-96E5-91737F986A52}.Debug|Win32.ActiveCfg = Debug|Win32 + {FACB5498-CC3E-415A-96E5-91737F986A52}.Debug|Win32.Build.0 = Debug|Win32 + {FACB5498-CC3E-415A-96E5-91737F986A52}.Release|Win32.ActiveCfg = Release|Win32 + {FACB5498-CC3E-415A-96E5-91737F986A52}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/win32/Gui/NeoStats Control Panel.vcproj b/src/win32/Gui/NeoStats Control Panel.vcproj new file mode 100644 index 00000000..39354537 --- /dev/null +++ b/src/win32/Gui/NeoStats Control Panel.vcproj @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/win32/Gui/app.ico b/src/win32/Gui/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6 GIT binary patch literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 literal 0 HcmV?d00001 diff --git a/src/win32/Gui/app.rc b/src/win32/Gui/app.rc new file mode 100644 index 00000000..b6e512df --- /dev/null +++ b/src/win32/Gui/app.rc @@ -0,0 +1,63 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon placed first or with lowest ID value becomes application icon + +LANGUAGE 9, 18 +#pragma code_page(1252) +1 ICON "app.ico" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" + "\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\0" +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/win32/Gui/resource.h b/src/win32/Gui/resource.h new file mode 100644 index 00000000..1f2251c2 --- /dev/null +++ b/src/win32/Gui/resource.h @@ -0,0 +1,3 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by app.rc diff --git a/src/win32/Gui/stdafx.cpp b/src/win32/Gui/stdafx.cpp new file mode 100644 index 00000000..1846834b --- /dev/null +++ b/src/win32/Gui/stdafx.cpp @@ -0,0 +1,7 @@ +// stdafx.cpp : source file that includes just the standard includes +// NeoStats Control Panel.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + + diff --git a/src/win32/Gui/stdafx.h b/src/win32/Gui/stdafx.h new file mode 100644 index 00000000..bab74c01 --- /dev/null +++ b/src/win32/Gui/stdafx.h @@ -0,0 +1,6 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +#pragma once + +// TODO: reference additional headers your program requires here