d7f05168740da6b984bd3b76eb6e72af2ca24620
[pub/USBasp.git] / Projects / HotmailNotifier / WindowsApp / MailNotifier.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Text;
7 using System.Windows.Forms;
8 using Microsoft.Win32;
9
10 namespace TestWinForms
11 {
12 public partial class MailNotifier : Form
13 {
14 private MessengerAPI.Messenger Messenger;
15 private RegistryKey AppRegKey;
16
17 public MailNotifier()
18 {
19 InitializeComponent();
20
21 Messenger = new MessengerAPI.Messenger();
22 AppRegKey = Registry.CurrentUser.CreateSubKey("Software\\MailNotifier");
23
24 for (int i = 1; i < 99; i++)
25 cmbComPort.Items.Add("COM" + i.ToString());
26
27 cmbComPort.SelectedIndex = System.Convert.ToInt32(AppRegKey.GetValue("Port", "1")) - 1;
28 serSerialPort.PortName = cmbComPort.Text;
29
30 nicoNotifyIcon.Icon = this.Icon;
31 nicoNotifyIcon.MouseClick += new MouseEventHandler(TrayIconClick);
32 }
33
34 private void MailNotifier_Load(object sender, EventArgs e)
35 {
36 Messenger.OnUnreadEmailChange += new MessengerAPI.DMessengerEvents_OnUnreadEmailChangeEventHandler(NewEmail);
37 NotifyLight(Messenger.get_UnreadEmailCount(MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX) > 0);
38
39 Hide();
40 }
41
42 private void TrayIconClick(object sender, MouseEventArgs e)
43 {
44 this.Show();
45 this.WindowState = FormWindowState.Normal;
46 }
47
48 private void NewEmail(MessengerAPI.MUAFOLDER folder, int amount, ref bool enableDefault)
49 {
50 if (folder == MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX)
51 NotifyLight(amount > 0);
52 }
53
54 private void NotifyLight(bool ShowGreen)
55 {
56 char[] buffer = new char[1];
57 buffer[0] = ShowGreen ? '0' : '1';
58
59 try
60 {
61 serSerialPort.Open();
62 serSerialPort.Write(buffer, 0, 1);
63 serSerialPort.Close();
64 }
65 catch (Exception e)
66 {
67
68 }
69 }
70
71 private void btnExit_Click(object sender, EventArgs e)
72 {
73 Application.Exit();
74 }
75
76 private void cmbComPort_SelectedIndexChanged(object sender, EventArgs e)
77 {
78 AppRegKey.SetValue("Port", cmbComPort.SelectedIndex + 1);
79 serSerialPort.PortName = cmbComPort.Text;
80
81 for (int i = 0; i < 5; i++)
82 {
83 NotifyLight(true);
84 System.Threading.Thread.Sleep(20);
85 NotifyLight(false);
86 System.Threading.Thread.Sleep(20);
87 }
88
89 NotifyLight(Messenger.get_UnreadEmailCount(MessengerAPI.MUAFOLDER.MUAFOLDER_INBOX) > 0);
90 }
91
92 private void btnMinimize_Click(object sender, EventArgs e)
93 {
94 this.Hide();
95 }
96 }
97 }