From 3b3ea167f01d24cddc2b59453a000969a42d2234 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Fri, 18 Dec 2009 05:22:57 +0000 Subject: Renamed HotmailNotifier project to LEDNotifier. --- .../WindowsApp/MailNotifier.Designer.cs | 113 ++++++++++++++++++ Projects/LEDNotifier/WindowsApp/MailNotifier.cs | 111 ++++++++++++++++++ .../LEDNotifier/WindowsApp/MailNotifier.csproj | 98 ++++++++++++++++ Projects/LEDNotifier/WindowsApp/MailNotifier.resx | 126 +++++++++++++++++++++ Projects/LEDNotifier/WindowsApp/Program.cs | 20 ++++ .../WindowsApp/Properties/AssemblyInfo.cs | 36 ++++++ .../WindowsApp/Properties/Resources.Designer.cs | 63 +++++++++++ .../WindowsApp/Properties/Resources.resx | 117 +++++++++++++++++++ .../WindowsApp/Properties/Settings.Designer.cs | 26 +++++ .../WindowsApp/Properties/Settings.settings | 7 ++ 10 files changed, 717 insertions(+) create mode 100644 Projects/LEDNotifier/WindowsApp/MailNotifier.Designer.cs create mode 100644 Projects/LEDNotifier/WindowsApp/MailNotifier.cs create mode 100644 Projects/LEDNotifier/WindowsApp/MailNotifier.csproj create mode 100644 Projects/LEDNotifier/WindowsApp/MailNotifier.resx create mode 100644 Projects/LEDNotifier/WindowsApp/Program.cs create mode 100644 Projects/LEDNotifier/WindowsApp/Properties/AssemblyInfo.cs create mode 100644 Projects/LEDNotifier/WindowsApp/Properties/Resources.Designer.cs create mode 100644 Projects/LEDNotifier/WindowsApp/Properties/Resources.resx create mode 100644 Projects/LEDNotifier/WindowsApp/Properties/Settings.Designer.cs create mode 100644 Projects/LEDNotifier/WindowsApp/Properties/Settings.settings (limited to 'Projects/LEDNotifier/WindowsApp') diff --git a/Projects/LEDNotifier/WindowsApp/MailNotifier.Designer.cs b/Projects/LEDNotifier/WindowsApp/MailNotifier.Designer.cs new file mode 100644 index 000000000..9e4734dc1 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/MailNotifier.Designer.cs @@ -0,0 +1,113 @@ +namespace TestWinForms +{ + partial class MailNotifier + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.serSerialPort = new System.IO.Ports.SerialPort(this.components); + this.cmbComPort = new System.Windows.Forms.ComboBox(); + this.lblComPort = new System.Windows.Forms.Label(); + this.btnMinimize = new System.Windows.Forms.Button(); + this.btnExit = new System.Windows.Forms.Button(); + this.nicoNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components); + this.SuspendLayout(); + // + // cmbComPort + // + this.cmbComPort.FormattingEnabled = true; + this.cmbComPort.Location = new System.Drawing.Point(108, 12); + this.cmbComPort.Name = "cmbComPort"; + this.cmbComPort.Size = new System.Drawing.Size(126, 21); + this.cmbComPort.TabIndex = 0; + this.cmbComPort.SelectedIndexChanged += new System.EventHandler(this.cmbComPort_SelectedIndexChanged); + // + // lblComPort + // + this.lblComPort.AutoSize = true; + this.lblComPort.Location = new System.Drawing.Point(12, 15); + this.lblComPort.Name = "lblComPort"; + this.lblComPort.Size = new System.Drawing.Size(90, 13); + this.lblComPort.TabIndex = 1; + this.lblComPort.Text = "COM Port to Use:"; + // + // btnMinimize + // + this.btnMinimize.Location = new System.Drawing.Point(12, 42); + this.btnMinimize.Name = "btnMinimize"; + this.btnMinimize.Size = new System.Drawing.Size(109, 23); + this.btnMinimize.TabIndex = 2; + this.btnMinimize.Text = "Minimize to Tray"; + this.btnMinimize.UseVisualStyleBackColor = true; + this.btnMinimize.Click += new System.EventHandler(this.btnMinimize_Click); + // + // btnExit + // + this.btnExit.Location = new System.Drawing.Point(131, 42); + this.btnExit.Name = "btnExit"; + this.btnExit.Size = new System.Drawing.Size(109, 23); + this.btnExit.TabIndex = 3; + this.btnExit.Text = "Exit"; + this.btnExit.UseVisualStyleBackColor = true; + this.btnExit.Click += new System.EventHandler(this.btnExit_Click); + // + // nicoNotifyIcon + // + this.nicoNotifyIcon.Text = "Mail Notifier"; + this.nicoNotifyIcon.Visible = true; + // + // MailNotifier + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(252, 77); + this.Controls.Add(this.btnExit); + this.Controls.Add(this.btnMinimize); + this.Controls.Add(this.lblComPort); + this.Controls.Add(this.cmbComPort); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "MailNotifier"; + this.Text = "Mail Notifier Light"; + this.WindowState = System.Windows.Forms.FormWindowState.Minimized; + this.Load += new System.EventHandler(this.MailNotifier_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.IO.Ports.SerialPort serSerialPort; + private System.Windows.Forms.ComboBox cmbComPort; + private System.Windows.Forms.Label lblComPort; + private System.Windows.Forms.Button btnMinimize; + private System.Windows.Forms.Button btnExit; + private System.Windows.Forms.NotifyIcon nicoNotifyIcon; + } +} + diff --git a/Projects/LEDNotifier/WindowsApp/MailNotifier.cs b/Projects/LEDNotifier/WindowsApp/MailNotifier.cs new file mode 100644 index 000000000..742948fca --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/MailNotifier.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using Microsoft.Win32; + +namespace TestWinForms +{ + public partial class MailNotifier : Form + { + private MessengerAPI.Messenger Messenger; + private RegistryKey AppRegKey; + + private const int LIGHT_MAX = 0x1F; + + public MailNotifier() + { + InitializeComponent(); + + Messenger = new MessengerAPI.Messenger(); + AppRegKey = Registry.CurrentUser.CreateSubKey("Software\\MailNotifier"); + + for (int i = 1; i < 99; i++) + cmbComPort.Items.Add("COM" + i.ToString()); + + cmbComPort.SelectedIndex = System.Convert.ToInt32(AppRegKey.GetValue("Port", "1")) - 1; + serSerialPort.PortName = cmbComPort.Text; + + nicoNotifyIcon.Icon = this.Icon; + nicoNotifyIcon.MouseClick += new MouseEventHandler(TrayIconClick); + } + + private void MailNotifier_Load(object sender, EventArgs e) + { + Messenger.OnUnreadEmailChange += new MessengerAPI.DMessengerEvents_OnUnreadEmailChangeEventHandler(NewEmail); + + bool UnreadMail = (Messenger.get_UnreadEmailCount(MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX) > 0); + NotifyLight((!UnreadMail ? LIGHT_MAX : 0), (UnreadMail ? LIGHT_MAX : 0), 0); + + Hide(); + } + + private void TrayIconClick(object sender, MouseEventArgs e) + { + this.Show(); + this.WindowState = FormWindowState.Normal; + } + + private void NewEmail(MessengerAPI.MUAFOLDER folder, int amount, ref bool enableDefault) + { + if (folder == MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX) + { + bool UnreadMail = (Messenger.get_UnreadEmailCount(MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX) > 0); + NotifyLight((!UnreadMail ? LIGHT_MAX : 0), (UnreadMail ? LIGHT_MAX : 0), 0); + } + } + + private void NotifyLight(int Red, int Green, int Blue) + { + byte[] buffer = new byte[3]; + buffer[0] = (byte)(0x80 | (Red & LIGHT_MAX)); + buffer[1] = (byte)(0x40 | (Green & LIGHT_MAX)); + buffer[2] = (byte)(0x20 | (Blue & LIGHT_MAX)); + + try + { + serSerialPort.Open(); + serSerialPort.Write(buffer, 0, buffer.Length); + serSerialPort.Close(); + } + catch (Exception e) + { + + } + } + + private void btnExit_Click(object sender, EventArgs e) + { + Application.Exit(); + } + + private void cmbComPort_SelectedIndexChanged(object sender, EventArgs e) + { + AppRegKey.SetValue("Port", cmbComPort.SelectedIndex + 1); + serSerialPort.PortName = cmbComPort.Text; + + for (int i = 1; i < 10; i++) + { + NotifyLight((LIGHT_MAX / i), (LIGHT_MAX / (i * 10)), 0); + System.Threading.Thread.Sleep(10); + } + + for (int i = 10; i > 0; i--) + { + NotifyLight((LIGHT_MAX / i), (LIGHT_MAX / (i * 10)), 0); + System.Threading.Thread.Sleep(10); + } + + bool UnreadMail = (Messenger.get_UnreadEmailCount(MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX) > 0); + NotifyLight((!UnreadMail ? LIGHT_MAX : 0), (UnreadMail ? LIGHT_MAX : 0), 0); + } + + private void btnMinimize_Click(object sender, EventArgs e) + { + this.Hide(); + } + } +} diff --git a/Projects/LEDNotifier/WindowsApp/MailNotifier.csproj b/Projects/LEDNotifier/WindowsApp/MailNotifier.csproj new file mode 100644 index 000000000..3156b5d12 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/MailNotifier.csproj @@ -0,0 +1,98 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {64376AAC-32C5-4A78-80CC-407A6B9824FE} + WinExe + Properties + MailNotifier + MailNotifier + v2.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + 3.5 + + + 3.5 + + + + + + + + + + Form + + + MailNotifier.cs + + + + + MailNotifier.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {E02AD29E-80F5-46C6-B416-9B3EBDDF057E} + 1 + 0 + 0 + tlbimp + False + + + + + \ No newline at end of file diff --git a/Projects/LEDNotifier/WindowsApp/MailNotifier.resx b/Projects/LEDNotifier/WindowsApp/MailNotifier.resx new file mode 100644 index 000000000..bc1f8f67d --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/MailNotifier.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 126, 17 + + \ No newline at end of file diff --git a/Projects/LEDNotifier/WindowsApp/Program.cs b/Projects/LEDNotifier/WindowsApp/Program.cs new file mode 100644 index 000000000..1dd229d91 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace TestWinForms +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MailNotifier()); + } + } +} diff --git a/Projects/LEDNotifier/WindowsApp/Properties/AssemblyInfo.cs b/Projects/LEDNotifier/WindowsApp/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..86b056454 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 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: AssemblyTitle("MailNotifier")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Dean Camera")] +[assembly: AssemblyProduct("Mail LED Notifier")] +[assembly: AssemblyCopyright("Public Domain")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("25e10140-cf96-4619-adaa-9010abc62d0a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Projects/LEDNotifier/WindowsApp/Properties/Resources.Designer.cs b/Projects/LEDNotifier/WindowsApp/Properties/Resources.Designer.cs new file mode 100644 index 000000000..8eb902684 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MailNotifier.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MailNotifier.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Projects/LEDNotifier/WindowsApp/Properties/Resources.resx b/Projects/LEDNotifier/WindowsApp/Properties/Resources.resx new file mode 100644 index 000000000..ffecec851 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/Projects/LEDNotifier/WindowsApp/Properties/Settings.Designer.cs b/Projects/LEDNotifier/WindowsApp/Properties/Settings.Designer.cs new file mode 100644 index 000000000..bb55ab3e3 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MailNotifier.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Projects/LEDNotifier/WindowsApp/Properties/Settings.settings b/Projects/LEDNotifier/WindowsApp/Properties/Settings.settings new file mode 100644 index 000000000..abf36c5d3 --- /dev/null +++ b/Projects/LEDNotifier/WindowsApp/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + -- cgit v1.2.3