├── .gitignore ├── src ├── MibewTray │ ├── sound.au │ ├── icons │ │ ├── App.ico │ │ ├── Notify.ico │ │ ├── Options.ico │ │ ├── Notify_offl.ico │ │ └── about_head.bmp │ ├── toolbarImages │ │ ├── hide.bmp │ │ ├── history.bmp │ │ ├── options.bmp │ │ ├── refresh.bmp │ │ └── visitors.bmp │ ├── options │ │ ├── OptionPanel.cs │ │ ├── OptionsSoundsPanel.cs │ │ ├── About.cs │ │ ├── OptionsGeneralPanel.cs │ │ ├── OptionsConnectionPanel.cs │ │ ├── OptionsSoundsPanel.Designer.cs │ │ ├── OptionsDialog.cs │ │ ├── OptionsGeneralPanel.Designer.cs │ │ ├── OptionsDialog.Designer.cs │ │ ├── About.Designer.cs │ │ ├── OptionsConnectionPanel.Designer.cs │ │ ├── OptionsSoundsPanel.resx │ │ ├── OptionsDialog.resx │ │ ├── OptionsGeneralPanel.resx │ │ └── OptionsConnectionPanel.resx │ ├── mibewTray.csproj.user │ ├── AssemblyInfo.cs │ ├── LockNotificationForm.cs │ ├── Options.cs │ ├── App.Designer.cs │ ├── Main.cs │ ├── App.resx │ ├── Main.Designer.cs │ ├── mibewTray.csproj │ └── Main.resx ├── MibewInstaller │ └── mibew.bmp └── mibewTray.sln ├── .gitattributes ├── README.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | mibew.ini 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /src/MibewTray/sound.au: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/sound.au -------------------------------------------------------------------------------- /src/MibewTray/icons/App.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/icons/App.ico -------------------------------------------------------------------------------- /src/MibewInstaller/mibew.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewInstaller/mibew.bmp -------------------------------------------------------------------------------- /src/MibewTray/icons/Notify.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/icons/Notify.ico -------------------------------------------------------------------------------- /src/MibewTray/icons/Options.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/icons/Options.ico -------------------------------------------------------------------------------- /src/MibewTray/icons/Notify_offl.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/icons/Notify_offl.ico -------------------------------------------------------------------------------- /src/MibewTray/icons/about_head.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/icons/about_head.bmp -------------------------------------------------------------------------------- /src/MibewTray/toolbarImages/hide.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/toolbarImages/hide.bmp -------------------------------------------------------------------------------- /src/MibewTray/toolbarImages/history.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/toolbarImages/history.bmp -------------------------------------------------------------------------------- /src/MibewTray/toolbarImages/options.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/toolbarImages/options.bmp -------------------------------------------------------------------------------- /src/MibewTray/toolbarImages/refresh.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/toolbarImages/refresh.bmp -------------------------------------------------------------------------------- /src/MibewTray/toolbarImages/visitors.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mibew/tray/master/src/MibewTray/toolbarImages/visitors.bmp -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.php text 2 | *.pl text 3 | properties text 4 | *.html text 5 | *.css text 6 | *.tpl text 7 | *.xml text 8 | *.java text 9 | *.sh eol=lf 10 | *.txt text 11 | .project text 12 | .classpath text 13 | .buildpath text 14 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Resources; 5 | 6 | namespace webImTray { 7 | 8 | public delegate void ModifiedEvent(); 9 | 10 | interface OptionsPanel { 11 | void initialize(); 12 | void apply(); 13 | string getDescription(); 14 | 15 | event ModifiedEvent PanelModified; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/MibewTray/mibewTray.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | F:\mibewtray\MibewInstaller\|publish\ 5 | 6 | 7 | 8 | 9 | 10 | en-US 11 | false 12 | 13 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsSoundsPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | using System.Resources; 9 | 10 | namespace webImTray { 11 | public partial class OptionsSoundsPanel : UserControl, OptionsPanel { 12 | public event ModifiedEvent PanelModified; 13 | 14 | public OptionsSoundsPanel() { 15 | InitializeComponent(); 16 | } 17 | 18 | private void OptionsSoundsPanel_Load(object sender, EventArgs e) { 19 | 20 | } 21 | 22 | void OptionsPanel.apply() { 23 | } 24 | 25 | void OptionsPanel.initialize() { 26 | } 27 | 28 | string OptionsPanel.getDescription() { 29 | return "Sound"; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/mibewTray.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 10.00 2 | # Visual Studio 2008 3 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mibewTray", "MibewTray\mibewTray.csproj", "{21C7CA72-7F77-416C-9FD7-2DF748443E46}" 4 | EndProject 5 | Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "mibewInstaller", "MibewInstaller\MibewInstaller.vdproj", "{3B38021D-FBAB-4038-8220-F8C569A3C658}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Any CPU = Debug|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {21C7CA72-7F77-416C-9FD7-2DF748443E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {21C7CA72-7F77-416C-9FD7-2DF748443E46}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {21C7CA72-7F77-416C-9FD7-2DF748443E46}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | {21C7CA72-7F77-416C-9FD7-2DF748443E46}.Release|Any CPU.Build.0 = Release|Any CPU 17 | {3B38021D-FBAB-4038-8220-F8C569A3C658}.Debug|Any CPU.ActiveCfg = Debug 18 | {3B38021D-FBAB-4038-8220-F8C569A3C658}.Release|Any CPU.ActiveCfg = Release 19 | EndGlobalSection 20 | GlobalSection(SolutionProperties) = preSolution 21 | HideSolutionNode = FALSE 22 | EndGlobalSection 23 | EndGlobal 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Mibew Tray 2 | 3 | Mibew Tray is a .NET desktop application designed to work with Mibew Messenger 4 | live support application. 5 | 6 | Mibew Tray should be treated as a separate desktop application tied 7 | to 1.6.x branch of Mibew Messenger by technology as well as by ideology. 8 | 9 | ## Mibew Tray requirements 10 | 11 | 1. .NET Framework 3.5 12 | 2. Windows Installer 3.1 13 | 14 | ## Terms of Use 15 | 16 | Mibew Tray is a part of the Mibew project and licensed under the 17 | terms of [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). 18 | 19 | ## Other repositories of the Mibew project 20 | 21 | 1. [Mibew Messenger core repository](https://github.com/Mibew/mibew) 22 | 2. [Mibew Messenger i18n repository](https://github.com/Mibew/i18n) 23 | 3. [Mibew Messenger design repository](https://github.com/Mibew/design) 24 | 4. [Mibew Java applications repository](https://github.com/Mibew/java) 25 | -------------------------------------------------------------------------------- /src/MibewTray/options/About.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | using System.Resources; 9 | 10 | namespace webImTray { 11 | public partial class About : UserControl, OptionsPanel { 12 | public About() { 13 | InitializeComponent(); 14 | } 15 | 16 | #region OptionsPanel Members 17 | 18 | public void initialize() { 19 | } 20 | 21 | public void apply() { 22 | } 23 | 24 | public string getDescription() { 25 | return "About"; 26 | } 27 | 28 | #endregion 29 | 30 | private void i_services_ru_link(object sender, LinkLabelLinkClickedEventArgs e) { 31 | System.Diagnostics.Process.Start("http://mibew.org/"); 32 | } 33 | 34 | private void webim_ru_link(object sender, LinkLabelLinkClickedEventArgs e) { 35 | System.Diagnostics.Process.Start("http://mibew.org/"); 36 | } 37 | 38 | public event ModifiedEvent PanelModified; 39 | 40 | private void About_Load(object sender, EventArgs e) 41 | { 42 | 43 | } 44 | 45 | private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 46 | { 47 | System.Diagnostics.Process.Start("http://mibew.org/forums/"); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsGeneralPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | using System.Resources; 9 | using System.Threading; 10 | using System.Globalization; 11 | 12 | namespace webImTray { 13 | public partial class OptionsGeneralPanel : UserControl, OptionsPanel { 14 | bool modified = false; 15 | public event ModifiedEvent PanelModified; 16 | 17 | public OptionsGeneralPanel() { 18 | InitializeComponent(); 19 | } 20 | 21 | private void checkboxChanged(object sender, EventArgs e) { 22 | modified = true; 23 | PanelModified.Invoke(); 24 | } 25 | 26 | void OptionsPanel.apply() { 27 | if (modified) { 28 | Options.ShowInTaskBar = showInTaskBar.Checked; 29 | Options.AutoStart = autoStart.Checked; 30 | Options.HideAfterStart = hideWhenStarted.Checked; 31 | 32 | // Save locale 33 | // Options.AppLocale = ... 34 | 35 | // Apply locale 36 | // Thread.CurrentThread.CurrentUICulture = Options.englishCulture; 37 | 38 | // Update UI according to the current locale 39 | OptionsDialog.updateUI(); 40 | modified = false; 41 | } 42 | } 43 | 44 | void OptionsPanel.initialize() { 45 | showInTaskBar.Checked = Options.ShowInTaskBar; 46 | autoStart.Checked = Options.AutoStart; 47 | hideWhenStarted.Checked = Options.HideAfterStart; 48 | 49 | // Restore previously set locale 50 | languageSelector.Items.Add("English"); 51 | languageSelector.SelectedIndex = 0; 52 | 53 | // Update UI according to the current locale 54 | OptionsDialog.updateUI(); 55 | 56 | modified = false; 57 | } 58 | 59 | string OptionsPanel.getDescription() { 60 | return "General"; 61 | } 62 | 63 | private void radioEnglish_CheckedChanged(object sender, EventArgs e) { 64 | modified = true; 65 | PanelModified.Invoke(); 66 | } 67 | 68 | private void radioRussian_CheckedChanged(object sender, EventArgs e) { 69 | modified = true; 70 | PanelModified.Invoke(); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsConnectionPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | using System.Resources; 9 | 10 | namespace webImTray { 11 | public partial class OptionsConnectionPanel : UserControl, OptionsPanel { 12 | bool modified = false; 13 | 14 | public OptionsConnectionPanel() { 15 | InitializeComponent(); 16 | } 17 | 18 | void OptionsPanel.apply() { 19 | if (modified) { 20 | Options.WebIMServer = webimServer.Text; 21 | Options.DisconnectOnLock = autoDisconnect.Checked; 22 | if (forceRefresh.Checked) { 23 | Options.ForceRefreshTime = forceRefreshTime.Value; 24 | } else { 25 | Options.ForceRefreshTime = 0; 26 | } 27 | } 28 | } 29 | 30 | void OptionsPanel.initialize() { 31 | webimServer.Text = Options.WebIMServer; 32 | autoDisconnect.Checked = Options.DisconnectOnLock; 33 | 34 | decimal refreshTime = Options.ForceRefreshTime; 35 | forceRefreshTime.Enabled = forceRefresh.Checked = refreshTime != 0; 36 | forceRefreshTime.Value = refreshTime != 0 ? refreshTime : 15; 37 | 38 | modified = false; 39 | } 40 | 41 | string OptionsPanel.getDescription() { 42 | return "Connection"; 43 | } 44 | 45 | public event ModifiedEvent PanelModified; 46 | 47 | private void webimServer_TextChanged(object sender, EventArgs e) { 48 | modified = true; 49 | PanelModified.Invoke(); 50 | } 51 | 52 | private void forceRefresh_CheckedChanged(object sender, EventArgs e) { 53 | modified = true; 54 | PanelModified.Invoke(); 55 | forceRefreshTime.Enabled = forceRefresh.Checked; 56 | } 57 | 58 | private void forceRefreshTime_Changed(object sender, EventArgs e) { 59 | modified = true; 60 | PanelModified.Invoke(); 61 | } 62 | 63 | private void showUserPropertiesOnline(object sender, LinkLabelLinkClickedEventArgs e) { 64 | System.Diagnostics.Process.Start(Options.WebIMServer + Options.SETTINGS_PAGE); 65 | } 66 | 67 | private void autoDisconnect_CheckedChanged(object sender, EventArgs e) { 68 | modified = true; 69 | PanelModified.Invoke(); 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/MibewTray/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | // 9 | [assembly: AssemblyTitle("Mibew Tray")] 10 | [assembly: AssemblyDescription("Tray application for Mibew Messenger users")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("Mibew Community")] 13 | [assembly: AssemblyProduct("Mibew Tray")] 14 | [assembly: AssemblyCopyright("")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Revision and Build Numbers 27 | // by using the '*' as shown below: 28 | 29 | [assembly: AssemblyVersion("1.1.1")] 30 | 31 | // 32 | // In order to sign your assembly you must specify a key to use. Refer to the 33 | // Microsoft .NET Framework documentation for more information on assembly signing. 34 | // 35 | // Use the attributes below to control which key is used for signing. 36 | // 37 | // Notes: 38 | // (*) If no key is specified, the assembly is not signed. 39 | // (*) KeyName refers to a key that has been installed in the Crypto Service 40 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 41 | // a key. 42 | // (*) If the KeyFile and the KeyName values are both specified, the 43 | // following processing occurs: 44 | // (1) If the KeyName can be found in the CSP, that key is used. 45 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 46 | // in the KeyFile is installed into the CSP and used. 47 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 48 | // When specifying the KeyFile, the location of the KeyFile should be 49 | // relative to the project output directory which is 50 | // %Project Directory%\obj\. For example, if your KeyFile is 51 | // located in the project directory, you would specify the AssemblyKeyFile 52 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 53 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 54 | // documentation for more information on this. 55 | // 56 | [assembly: AssemblyDelaySign(false)] 57 | [assembly: AssemblyKeyFile("")] 58 | [assembly: AssemblyKeyName("")] 59 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsSoundsPanel.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace webImTray { 2 | partial class OptionsSoundsPanel { 3 | /// 4 | /// Required designer variable. 5 | /// 6 | private System.ComponentModel.IContainer components = null; 7 | 8 | /// 9 | /// Clean up any resources being used. 10 | /// 11 | /// true if managed resources should be disposed; otherwise, false. 12 | protected override void Dispose(bool disposing) { 13 | if (disposing && (components != null)) { 14 | components.Dispose(); 15 | } 16 | base.Dispose(disposing); 17 | } 18 | 19 | #region Component Designer generated code 20 | 21 | /// 22 | /// Required method for Designer support - do not modify 23 | /// the contents of this method with the code editor. 24 | /// 25 | private void InitializeComponent() { 26 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsSoundsPanel)); 27 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 28 | this.playSoundOnVisitor = new System.Windows.Forms.CheckBox(); 29 | this.groupBox1.SuspendLayout(); 30 | this.SuspendLayout(); 31 | // 32 | // groupBox1 33 | // 34 | this.groupBox1.Controls.Add(this.playSoundOnVisitor); 35 | resources.ApplyResources(this.groupBox1, "groupBox1"); 36 | this.groupBox1.Name = "groupBox1"; 37 | this.groupBox1.TabStop = false; 38 | // 39 | // playSoundOnVisitor 40 | // 41 | resources.ApplyResources(this.playSoundOnVisitor, "playSoundOnVisitor"); 42 | this.playSoundOnVisitor.Name = "playSoundOnVisitor"; 43 | this.playSoundOnVisitor.UseVisualStyleBackColor = true; 44 | // 45 | // OptionsSoundsPanel 46 | // 47 | resources.ApplyResources(this, "$this"); 48 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 49 | this.Controls.Add(this.groupBox1); 50 | this.Name = "OptionsSoundsPanel"; 51 | this.Load += new System.EventHandler(this.OptionsSoundsPanel_Load); 52 | this.groupBox1.ResumeLayout(false); 53 | this.groupBox1.PerformLayout(); 54 | this.ResumeLayout(false); 55 | 56 | } 57 | 58 | #endregion 59 | 60 | private System.Windows.Forms.GroupBox groupBox1; 61 | private System.Windows.Forms.CheckBox playSoundOnVisitor; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/MibewTray/LockNotificationForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Runtime.InteropServices; 4 | using System.Windows.Forms; 5 | 6 | namespace webImTray { 7 | 8 | /// 9 | /// Base class for a form that wants to be notified of Windows 10 | /// session lock / unlock events 11 | /// 12 | public class LockNotificationForm : Form { 13 | // from wtsapi32.h 14 | private const int NotifyForThisSession = 0; 15 | 16 | // from winuser.h 17 | private const int SessionChangeMessage = 0x02B1; 18 | private const int SessionLockParam = 0x7; 19 | private const int SessionUnlockParam = 0x8; 20 | 21 | [DllImport("wtsapi32.dll")] 22 | private static extern bool WTSRegisterSessionNotification(IntPtr hWnd, int dwFlags); 23 | 24 | [DllImport("wtsapi32.dll")] 25 | private static extern bool WTSUnRegisterSessionNotification(IntPtr hWnd); 26 | 27 | // flag to indicate if we've registered for notifications or not 28 | private bool registered = false; 29 | 30 | /// 31 | /// Is this form receiving lock / unlock notifications 32 | /// 33 | protected bool ReceivingLockNotifications { 34 | get { return registered; } 35 | } 36 | 37 | /// 38 | /// Unregister for event notifications 39 | /// 40 | protected override void Dispose(bool disposing) { 41 | if (registered) { 42 | WTSUnRegisterSessionNotification(Handle); 43 | registered = false; 44 | } 45 | 46 | base.Dispose(disposing); 47 | return; 48 | } 49 | 50 | /// 51 | /// Register for event notifications 52 | /// 53 | protected override void OnHandleCreated(EventArgs e) { 54 | base.OnHandleCreated(e); 55 | 56 | // WtsRegisterSessionNotification requires Windows XP or higher 57 | bool haveXp = Environment.OSVersion.Platform == PlatformID.Win32NT && 58 | (Environment.OSVersion.Version.Major > 5 || 59 | (Environment.OSVersion.Version.Major == 5 && 60 | Environment.OSVersion.Version.Minor >= 1)); 61 | 62 | if (haveXp) 63 | registered = WTSRegisterSessionNotification(Handle, NotifyForThisSession); 64 | 65 | return; 66 | } 67 | 68 | /// 69 | /// The windows session has been locked 70 | /// 71 | protected virtual void OnSessionLock() { 72 | return; 73 | } 74 | 75 | /// 76 | /// The windows session has been unlocked 77 | /// 78 | protected virtual void OnSessionUnlock() { 79 | return; 80 | } 81 | 82 | /// 83 | /// Process windows messages 84 | /// 85 | protected override void WndProc(ref Message m) { 86 | // check for session change notifications 87 | if (m.Msg == SessionChangeMessage) { 88 | if (m.WParam.ToInt32() == SessionLockParam) 89 | OnSessionLock(); 90 | else if (m.WParam.ToInt32() == SessionUnlockParam) 91 | OnSessionUnlock(); 92 | } 93 | 94 | base.WndProc(ref m); 95 | return; 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsDialog.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 System.Resources; 9 | using System.Globalization; 10 | 11 | namespace webImTray { 12 | public partial class OptionsDialog : Form { 13 | 14 | static OptionsPanel[] panels = new OptionsPanel[] { 15 | new OptionsGeneralPanel(), 16 | new OptionsConnectionPanel(), 17 | // new OptionsSoundsPanel(), 18 | new About() 19 | }; 20 | 21 | OptionsPanel currentPanel = null; 22 | 23 | // FIXME: we have only one OptionsDialog instance 24 | // thus it's safe to keep it in a static variable. 25 | private static OptionsDialog currentInstance = null; 26 | 27 | public OptionsDialog() { 28 | InitializeComponent(); 29 | currentInstance = this; 30 | } 31 | 32 | private void changePanel(OptionsPanel panel) { 33 | if (currentPanel == panel) 34 | return; 35 | 36 | if (currentPanel != null) 37 | container.Controls.Clear(); 38 | currentPanel = panel; 39 | container.Controls.Add((Control)currentPanel); 40 | } 41 | 42 | private void updatePageSelector() { 43 | bool inited = false; 44 | pageSelector.Items.Clear(); 45 | foreach (OptionsPanel p in panels) { 46 | ListViewItem item = new ListViewItem(p.getDescription()); 47 | if (!inited) { 48 | item.Selected = true; 49 | changePanel(p); 50 | inited = true; 51 | } 52 | pageSelector.Items.Add(item); 53 | } 54 | } 55 | private void optionsDialogLoaded(object sender, EventArgs e) { 56 | updatePageSelector(); 57 | foreach (OptionsPanel p in panels) { 58 | p.PanelModified += new ModifiedEvent(panelModified); 59 | p.initialize(); 60 | } 61 | apply.Enabled = false; 62 | } 63 | 64 | void panelModified() { 65 | apply.Enabled = true; 66 | } 67 | 68 | OptionsPanel getPanel(string s) { 69 | foreach (OptionsPanel p in panels) { 70 | if (s.Equals(p.getDescription())) 71 | return p; 72 | } 73 | 74 | return null; 75 | } 76 | 77 | private void panelSelectionChanged(object sender, EventArgs e) { 78 | if (pageSelector.SelectedItems.Count == 1) { 79 | ListViewItem item = pageSelector.SelectedItems[0]; 80 | OptionsPanel panel = getPanel(item.Text); 81 | if (panel != null) { 82 | changePanel(panel); 83 | } 84 | } 85 | } 86 | 87 | private void openWebIMSite(object sender, LinkLabelLinkClickedEventArgs e) { 88 | System.Diagnostics.Process.Start("http://mibew.org/"); 89 | } 90 | 91 | private void applyChanges() { 92 | foreach (OptionsPanel p in panels) { 93 | p.apply(); 94 | } 95 | } 96 | 97 | private void ok_Click(object sender, EventArgs e) { 98 | applyChanges(); 99 | Close(); 100 | } 101 | 102 | private void apply_Click(object sender, EventArgs e) { 103 | applyChanges(); 104 | apply.Enabled = false; 105 | } 106 | 107 | public static void updateUI() { 108 | currentInstance.updatePageSelector(); 109 | } 110 | } 111 | } -------------------------------------------------------------------------------- /src/MibewTray/Options.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Windows.Forms; 5 | using System.Resources; 6 | using System.Threading; 7 | using System.Globalization; 8 | 9 | namespace webImTray { 10 | class Options { 11 | 12 | public const string DEFAULT_SERVER = "http://demo.mibew.org"; 13 | public const string PENDING_USERS_PAGE = "/operator/users.php?nomenu"; 14 | public const string HISTORY_PAGE = "/operator/history.php"; 15 | public const string SETTINGS_PAGE = "/operator/operators.php"; 16 | private const string HTTP_PREFIX = "http://"; 17 | 18 | public static string WebIMServer { 19 | get { 20 | String server = Application.UserAppDataRegistry.GetValue("server", DEFAULT_SERVER).ToString(); 21 | while (server.EndsWith("/")) { 22 | server = server.Substring(0, server.Length - 1); 23 | } 24 | if (!server.StartsWith(HTTP_PREFIX)) { 25 | return DEFAULT_SERVER; 26 | } 27 | return server; 28 | } 29 | set { 30 | if (!value.StartsWith(HTTP_PREFIX)) 31 | return; 32 | Application.UserAppDataRegistry.SetValue("server", value.ToString()); 33 | } 34 | } 35 | 36 | public static decimal ForceRefreshTime { 37 | get { 38 | return Decimal.Parse(Application.UserAppDataRegistry.GetValue("refreshtime", "15").ToString()); 39 | } 40 | set { 41 | Application.UserAppDataRegistry.SetValue("refreshtime", value.ToString()); 42 | } 43 | } 44 | 45 | public static bool DisconnectOnLock { 46 | get { 47 | return Application.UserAppDataRegistry.GetValue("disconnectonlock", "true").ToString().ToLower().Equals("true"); 48 | } 49 | set { 50 | Application.UserAppDataRegistry.SetValue("disconnectonlock", value.ToString()); 51 | } 52 | } 53 | 54 | public static bool ShowInTaskBar { 55 | get { 56 | return Application.UserAppDataRegistry.GetValue("showintaskbar", "false").ToString().ToLower().Equals("true"); 57 | } 58 | set { 59 | Application.UserAppDataRegistry.SetValue("showintaskbar", value.ToString()); 60 | } 61 | } 62 | 63 | public static bool HideAfterStart { 64 | get { 65 | return Application.UserAppDataRegistry.GetValue("hideafterstart", "false").ToString().ToLower().Equals("true"); 66 | } 67 | set { 68 | Application.UserAppDataRegistry.SetValue("hideafterstart", value.ToString()); 69 | } 70 | } 71 | 72 | private const string autoRunUserRegistry = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; 73 | private const string autoRunRegistry = "HKEY_CURRENT_USER\\" + autoRunUserRegistry; 74 | private const string autoRunKey = "mibewTray.exe"; 75 | 76 | public static bool AutoStart { 77 | get { 78 | return Microsoft.Win32.Registry.GetValue(autoRunRegistry, autoRunKey, "").ToString().Length > 0; 79 | } 80 | set { 81 | if (value) { 82 | Microsoft.Win32.Registry.SetValue(autoRunRegistry, autoRunKey, Application.ExecutablePath); 83 | } else { 84 | try { 85 | Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(autoRunUserRegistry, true); 86 | key.DeleteValue(autoRunKey, false); 87 | key.Close(); 88 | } 89 | catch (Exception) { 90 | Microsoft.Win32.Registry.SetValue(autoRunRegistry, autoRunKey, ""); 91 | } 92 | } 93 | } 94 | } 95 | 96 | public static bool HideMainWindow { 97 | get { 98 | if (forceShowWindow) 99 | return false; 100 | return HideAfterStart; 101 | } 102 | } 103 | 104 | 105 | static bool forceShowWindow = false; 106 | 107 | internal static void parseParameters(string[] args) { 108 | if (args.Length == 1 && args[0].Equals("/show")) 109 | forceShowWindow = true; 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsGeneralPanel.Designer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace webImTray { 4 | partial class OptionsGeneralPanel { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) { 15 | if (disposing && (components != null)) { 16 | components.Dispose(); 17 | } 18 | base.Dispose(disposing); 19 | } 20 | 21 | #region Component Designer generated code 22 | 23 | /// 24 | /// Required method for Designer support - do not modify 25 | /// the contents of this method with the code editor. 26 | /// 27 | private void InitializeComponent() { 28 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsGeneralPanel)); 29 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 30 | this.hideWhenStarted = new System.Windows.Forms.CheckBox(); 31 | this.autoStart = new System.Windows.Forms.CheckBox(); 32 | this.showInTaskBar = new System.Windows.Forms.CheckBox(); 33 | this.languageBox = new System.Windows.Forms.GroupBox(); 34 | this.languageSelector = new System.Windows.Forms.ComboBox(); 35 | this.groupBox1.SuspendLayout(); 36 | this.languageBox.SuspendLayout(); 37 | this.SuspendLayout(); 38 | // 39 | // groupBox1 40 | // 41 | this.groupBox1.Controls.Add(this.hideWhenStarted); 42 | this.groupBox1.Controls.Add(this.autoStart); 43 | this.groupBox1.Controls.Add(this.showInTaskBar); 44 | resources.ApplyResources(this.groupBox1, "groupBox1"); 45 | this.groupBox1.Name = "groupBox1"; 46 | this.groupBox1.TabStop = false; 47 | // 48 | // hideWhenStarted 49 | // 50 | resources.ApplyResources(this.hideWhenStarted, "hideWhenStarted"); 51 | this.hideWhenStarted.Name = "hideWhenStarted"; 52 | this.hideWhenStarted.UseVisualStyleBackColor = true; 53 | this.hideWhenStarted.CheckedChanged += new System.EventHandler(this.checkboxChanged); 54 | // 55 | // autoStart 56 | // 57 | resources.ApplyResources(this.autoStart, "autoStart"); 58 | this.autoStart.Name = "autoStart"; 59 | this.autoStart.UseVisualStyleBackColor = true; 60 | this.autoStart.CheckedChanged += new System.EventHandler(this.checkboxChanged); 61 | // 62 | // showInTaskBar 63 | // 64 | resources.ApplyResources(this.showInTaskBar, "showInTaskBar"); 65 | this.showInTaskBar.Name = "showInTaskBar"; 66 | this.showInTaskBar.UseVisualStyleBackColor = true; 67 | this.showInTaskBar.CheckedChanged += new System.EventHandler(this.checkboxChanged); 68 | // 69 | // languageBox 70 | // 71 | this.languageBox.Controls.Add(this.languageSelector); 72 | resources.ApplyResources(this.languageBox, "languageBox"); 73 | this.languageBox.Name = "languageBox"; 74 | this.languageBox.TabStop = false; 75 | // 76 | // languageSelector 77 | // 78 | this.languageSelector.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 79 | resources.ApplyResources(this.languageSelector, "languageSelector"); 80 | this.languageSelector.FormattingEnabled = true; 81 | this.languageSelector.Name = "languageSelector"; 82 | // 83 | // OptionsGeneralPanel 84 | // 85 | resources.ApplyResources(this, "$this"); 86 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 87 | this.Controls.Add(this.languageBox); 88 | this.Controls.Add(this.groupBox1); 89 | this.Name = "OptionsGeneralPanel"; 90 | this.groupBox1.ResumeLayout(false); 91 | this.groupBox1.PerformLayout(); 92 | this.languageBox.ResumeLayout(false); 93 | this.ResumeLayout(false); 94 | 95 | } 96 | 97 | #endregion 98 | 99 | private System.Windows.Forms.GroupBox groupBox1; 100 | private System.Windows.Forms.CheckBox showInTaskBar; 101 | private System.Windows.Forms.CheckBox autoStart; 102 | private System.Windows.Forms.CheckBox hideWhenStarted; 103 | private System.Windows.Forms.GroupBox languageBox; 104 | private System.Windows.Forms.ComboBox languageSelector; 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsDialog.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace webImTray { 2 | partial class OptionsDialog { 3 | /// 4 | /// Required designer variable. 5 | /// 6 | private System.ComponentModel.IContainer components = null; 7 | 8 | /// 9 | /// Clean up any resources being used. 10 | /// 11 | /// true if managed resources should be disposed; otherwise, false. 12 | protected override void Dispose(bool disposing) { 13 | if (disposing && (components != null)) { 14 | components.Dispose(); 15 | } 16 | base.Dispose(disposing); 17 | } 18 | 19 | #region Windows Form Designer generated code 20 | 21 | /// 22 | /// Required method for Designer support - do not modify 23 | /// the contents of this method with the code editor. 24 | /// 25 | private void InitializeComponent() { 26 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsDialog)); 27 | this.pageSelector = new System.Windows.Forms.ListView(); 28 | this.ok = new System.Windows.Forms.Button(); 29 | this.cancel = new System.Windows.Forms.Button(); 30 | this.apply = new System.Windows.Forms.Button(); 31 | this.container = new System.Windows.Forms.Panel(); 32 | this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 33 | this.SuspendLayout(); 34 | // 35 | // pageSelector 36 | // 37 | resources.ApplyResources(this.pageSelector, "pageSelector"); 38 | this.pageSelector.FullRowSelect = true; 39 | this.pageSelector.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; 40 | this.pageSelector.HideSelection = false; 41 | this.pageSelector.MultiSelect = false; 42 | this.pageSelector.Name = "pageSelector"; 43 | this.pageSelector.ShowGroups = false; 44 | this.pageSelector.UseCompatibleStateImageBehavior = false; 45 | this.pageSelector.View = System.Windows.Forms.View.List; 46 | this.pageSelector.SelectedIndexChanged += new System.EventHandler(this.panelSelectionChanged); 47 | // 48 | // ok 49 | // 50 | resources.ApplyResources(this.ok, "ok"); 51 | this.ok.Name = "ok"; 52 | this.ok.UseVisualStyleBackColor = true; 53 | this.ok.Click += new System.EventHandler(this.ok_Click); 54 | // 55 | // cancel 56 | // 57 | this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 58 | resources.ApplyResources(this.cancel, "cancel"); 59 | this.cancel.Name = "cancel"; 60 | this.cancel.UseVisualStyleBackColor = true; 61 | // 62 | // apply 63 | // 64 | resources.ApplyResources(this.apply, "apply"); 65 | this.apply.Name = "apply"; 66 | this.apply.UseVisualStyleBackColor = true; 67 | this.apply.Click += new System.EventHandler(this.apply_Click); 68 | // 69 | // container 70 | // 71 | resources.ApplyResources(this.container, "container"); 72 | this.container.Name = "container"; 73 | // 74 | // linkLabel1 75 | // 76 | resources.ApplyResources(this.linkLabel1, "linkLabel1"); 77 | this.linkLabel1.Name = "linkLabel1"; 78 | this.linkLabel1.TabStop = true; 79 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.openWebIMSite); 80 | // 81 | // OptionsDialog 82 | // 83 | this.AcceptButton = this.ok; 84 | resources.ApplyResources(this, "$this"); 85 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 86 | this.CancelButton = this.cancel; 87 | this.Controls.Add(this.linkLabel1); 88 | this.Controls.Add(this.container); 89 | this.Controls.Add(this.apply); 90 | this.Controls.Add(this.cancel); 91 | this.Controls.Add(this.ok); 92 | this.Controls.Add(this.pageSelector); 93 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 94 | this.MaximizeBox = false; 95 | this.MinimizeBox = false; 96 | this.Name = "OptionsDialog"; 97 | this.Load += new System.EventHandler(this.optionsDialogLoaded); 98 | this.ResumeLayout(false); 99 | this.PerformLayout(); 100 | 101 | } 102 | 103 | #endregion 104 | 105 | private System.Windows.Forms.ListView pageSelector; 106 | private System.Windows.Forms.Button ok; 107 | private System.Windows.Forms.Button cancel; 108 | private System.Windows.Forms.Button apply; 109 | private System.Windows.Forms.Panel container; 110 | private System.Windows.Forms.LinkLabel linkLabel1; 111 | } 112 | } -------------------------------------------------------------------------------- /src/MibewTray/App.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.18034 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace webImTray { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class App { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal App() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("webImTray.App", typeof(App).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap hide { 67 | get { 68 | object obj = ResourceManager.GetObject("hide", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap history { 77 | get { 78 | object obj = ResourceManager.GetObject("history", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). 85 | /// 86 | internal static System.Drawing.Icon Notify { 87 | get { 88 | object obj = ResourceManager.GetObject("Notify", resourceCulture); 89 | return ((System.Drawing.Icon)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). 95 | /// 96 | internal static System.Drawing.Icon Notify_offl { 97 | get { 98 | object obj = ResourceManager.GetObject("Notify_offl", resourceCulture); 99 | return ((System.Drawing.Icon)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized resource of type System.Drawing.Bitmap. 105 | /// 106 | internal static System.Drawing.Bitmap options { 107 | get { 108 | object obj = ResourceManager.GetObject("options", resourceCulture); 109 | return ((System.Drawing.Bitmap)(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// Looks up a localized resource of type System.Drawing.Bitmap. 115 | /// 116 | internal static System.Drawing.Bitmap refresh { 117 | get { 118 | object obj = ResourceManager.GetObject("refresh", resourceCulture); 119 | return ((System.Drawing.Bitmap)(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// Looks up a localized resource of type System.Drawing.Bitmap. 125 | /// 126 | internal static System.Drawing.Bitmap visitors { 127 | get { 128 | object obj = ResourceManager.GetObject("visitors", resourceCulture); 129 | return ((System.Drawing.Bitmap)(obj)); 130 | } 131 | } 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /src/MibewTray/options/About.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace webImTray { 2 | partial class About { 3 | /// 4 | /// Required designer variable. 5 | /// 6 | private System.ComponentModel.IContainer components = null; 7 | 8 | /// 9 | /// Clean up any resources being used. 10 | /// 11 | /// true if managed resources should be disposed; otherwise, false. 12 | protected override void Dispose(bool disposing) { 13 | if (disposing && (components != null)) { 14 | components.Dispose(); 15 | } 16 | base.Dispose(disposing); 17 | } 18 | 19 | #region Component Designer generated code 20 | 21 | /// 22 | /// Required method for Designer support - do not modify 23 | /// the contents of this method with the code editor. 24 | /// 25 | private void InitializeComponent() { 26 | System.Windows.Forms.Label label3; 27 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About)); 28 | System.Windows.Forms.Label label4; 29 | System.Windows.Forms.Label label5; 30 | System.Windows.Forms.Label label6; 31 | this.label1 = new System.Windows.Forms.Label(); 32 | this.label2 = new System.Windows.Forms.Label(); 33 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 34 | this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 35 | this.linkLabel2 = new System.Windows.Forms.LinkLabel(); 36 | this.linkLabel3 = new System.Windows.Forms.LinkLabel(); 37 | label3 = new System.Windows.Forms.Label(); 38 | label4 = new System.Windows.Forms.Label(); 39 | label5 = new System.Windows.Forms.Label(); 40 | label6 = new System.Windows.Forms.Label(); 41 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 42 | this.SuspendLayout(); 43 | // 44 | // label3 45 | // 46 | resources.ApplyResources(label3, "label3"); 47 | label3.Name = "label3"; 48 | // 49 | // label4 50 | // 51 | resources.ApplyResources(label4, "label4"); 52 | label4.Name = "label4"; 53 | // 54 | // label5 55 | // 56 | resources.ApplyResources(label5, "label5"); 57 | label5.Name = "label5"; 58 | // 59 | // label6 60 | // 61 | resources.ApplyResources(label6, "label6"); 62 | label6.Name = "label6"; 63 | // 64 | // label1 65 | // 66 | resources.ApplyResources(this.label1, "label1"); 67 | this.label1.ForeColor = System.Drawing.Color.Maroon; 68 | this.label1.Name = "label1"; 69 | // 70 | // label2 71 | // 72 | resources.ApplyResources(this.label2, "label2"); 73 | this.label2.Name = "label2"; 74 | // 75 | // pictureBox1 76 | // 77 | resources.ApplyResources(this.pictureBox1, "pictureBox1"); 78 | this.pictureBox1.Name = "pictureBox1"; 79 | this.pictureBox1.TabStop = false; 80 | // 81 | // linkLabel1 82 | // 83 | resources.ApplyResources(this.linkLabel1, "linkLabel1"); 84 | this.linkLabel1.Name = "linkLabel1"; 85 | this.linkLabel1.TabStop = true; 86 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.webim_ru_link); 87 | // 88 | // linkLabel2 89 | // 90 | resources.ApplyResources(this.linkLabel2, "linkLabel2"); 91 | this.linkLabel2.Name = "linkLabel2"; 92 | this.linkLabel2.TabStop = true; 93 | // 94 | // linkLabel3 95 | // 96 | resources.ApplyResources(this.linkLabel3, "linkLabel3"); 97 | this.linkLabel3.Name = "linkLabel3"; 98 | this.linkLabel3.TabStop = true; 99 | this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); 100 | // 101 | // About 102 | // 103 | resources.ApplyResources(this, "$this"); 104 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 105 | this.BackColor = System.Drawing.Color.White; 106 | this.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; 107 | this.Controls.Add(this.linkLabel3); 108 | this.Controls.Add(label6); 109 | this.Controls.Add(this.linkLabel2); 110 | this.Controls.Add(label5); 111 | this.Controls.Add(this.linkLabel1); 112 | this.Controls.Add(label4); 113 | this.Controls.Add(label3); 114 | this.Controls.Add(this.pictureBox1); 115 | this.Controls.Add(this.label2); 116 | this.Controls.Add(this.label1); 117 | this.Name = "About"; 118 | this.Load += new System.EventHandler(this.About_Load); 119 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 120 | this.ResumeLayout(false); 121 | this.PerformLayout(); 122 | 123 | } 124 | 125 | #endregion 126 | 127 | private System.Windows.Forms.Label label1; 128 | private System.Windows.Forms.Label label2; 129 | private System.Windows.Forms.PictureBox pictureBox1; 130 | private System.Windows.Forms.LinkLabel linkLabel1; 131 | private System.Windows.Forms.LinkLabel linkLabel2; 132 | private System.Windows.Forms.LinkLabel linkLabel3; 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /src/MibewTray/Main.cs: -------------------------------------------------------------------------------- 1 | //#define DEBUG 2 | 3 | using System; 4 | using System.Drawing; 5 | using System.Collections; 6 | using System.ComponentModel; 7 | using System.Windows.Forms; 8 | using System.Data; 9 | using System.Threading; 10 | 11 | namespace webImTray { 12 | 13 | public partial class MainWindow : LockNotificationForm { 14 | public MainWindow() { 15 | InitializeComponent(); 16 | PostInitialize(); 17 | } 18 | 19 | [STAThread] 20 | static void Main(string[] args) { 21 | Options.parseParameters(args); 22 | Application.Run(new MainWindow()); 23 | } 24 | 25 | void PostInitialize() { 26 | 27 | webBrowser1.DocumentTitleChanged += new EventHandler(webBrowser1_DocumentTitleChanged); 28 | 29 | if (Options.ShowInTaskBar) { 30 | this.ShowInTaskbar = true; 31 | } 32 | 33 | if (Options.HideMainWindow) { 34 | this.WindowState = FormWindowState.Minimized; 35 | } 36 | 37 | navigateThere(); 38 | setupReloadTimer(); 39 | 40 | // Restore previously set locale 41 | // TODO Thread.CurrentThread.CurrentUICulture = 42 | } 43 | 44 | void navigateThere() { 45 | #if DEBUG 46 | webBrowser1.Navigate("http://demo.mibew.org/operator/users.php?nomenu"); 47 | #else 48 | webBrowser1.Navigate(Options.WebIMServer + Options.PENDING_USERS_PAGE); 49 | #endif 50 | } 51 | 52 | void navigateBlank() { 53 | webBrowser1.Navigate("about:blank"); 54 | } 55 | 56 | private void showWindow() { 57 | this.Visible = true; 58 | this.Activate(); 59 | this.WindowState = FormWindowState.Normal; 60 | } 61 | 62 | private void hideWindow() { 63 | this.Visible = false; 64 | } 65 | 66 | private void notifyIconClick(object sender, System.Windows.Forms.MouseEventArgs e) { 67 | if (e.Button != MouseButtons.Left) 68 | return; 69 | 70 | bool wasVisible = this.Visible; 71 | 72 | if (wasVisible) 73 | hideWindow(); 74 | else 75 | showWindow(); 76 | } 77 | 78 | bool forceClosing = false; 79 | 80 | private void menuExitClick(object sender, System.EventArgs e) { 81 | forceClosing = true; 82 | this.Close(); 83 | } 84 | 85 | private void gotFocus(object sender, System.EventArgs e) { 86 | if (this.Visible == false) { 87 | showWindow(); 88 | } 89 | } 90 | 91 | void webBrowser1_DocumentTitleChanged(object sender, EventArgs e) { 92 | string s = webBrowser1.DocumentTitle; 93 | if (s == null || s.Length == 0) { 94 | s = "Mibew Messenger [loading]"; 95 | this.notifyIcon.Icon = App.Notify_offl; 96 | } else { 97 | this.notifyIcon.Icon = App.Notify; 98 | } 99 | this.Text = s; 100 | } 101 | 102 | private void Client_FormClosing(object sender, FormClosingEventArgs e) { 103 | if( !forceClosing && e.CloseReason == CloseReason.UserClosing 104 | && MessageBox.Show(this, "Do you want to quit?", 105 | "Mibew Messenger", 106 | MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { 107 | e.Cancel = true; 108 | } 109 | } 110 | 111 | private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { 112 | if (e.KeyCode == Keys.Escape && this.Visible) { 113 | hideWindow(); 114 | } 115 | } 116 | 117 | private void optionsMenu_Click(object sender, EventArgs e) { 118 | OptionsDialog dialog = new OptionsDialog(); 119 | dialog.ShowDialog(this); 120 | 121 | // apply options 122 | if (Options.ShowInTaskBar != this.ShowInTaskbar) 123 | this.ShowInTaskbar = !this.ShowInTaskbar; 124 | 125 | setupReloadTimer(); 126 | } 127 | 128 | private void toolNavigate_Click(object sender, EventArgs e) { 129 | navigateThere(); 130 | } 131 | 132 | private void timer1_Tick(object sender, EventArgs e) { 133 | navigateThere(); 134 | } 135 | 136 | private void MainWindow_Shown(object sender, EventArgs e) { 137 | if (Options.HideMainWindow) { 138 | hideWindow(); 139 | } 140 | } 141 | 142 | private void setupReloadTimer() { 143 | int reloadSettings = (int)Options.ForceRefreshTime; 144 | if (reloadSettings != currentReloadTime) { 145 | if( currentReloadTime > 0 ) 146 | reloadPageTimer.Stop(); 147 | 148 | if (reloadSettings != 0) { 149 | reloadPageTimer.Interval = reloadSettings * 60 * 1000; 150 | reloadPageTimer.Start(); 151 | } 152 | 153 | currentReloadTime = reloadSettings; 154 | } 155 | } 156 | 157 | private int currentReloadTime = 0; 158 | 159 | private void toolHideWindow_Click(object sender, EventArgs e) { 160 | hideWindow(); 161 | } 162 | 163 | protected override void OnSessionLock() { 164 | if (Options.DisconnectOnLock) { 165 | navigateBlank(); 166 | } 167 | } 168 | 169 | protected override void OnSessionUnlock() { 170 | if (Options.DisconnectOnLock) { 171 | navigateThere(); 172 | } 173 | } 174 | 175 | private void optionsToolStripMenuItem1_Click(object sender, EventArgs e) { 176 | OptionsDialog dialog = new OptionsDialog(); 177 | dialog.ShowDialog(this); 178 | 179 | // apply options 180 | if (Options.ShowInTaskBar != this.ShowInTaskbar) { 181 | this.ShowInTaskbar = !this.ShowInTaskbar; 182 | } 183 | 184 | setupReloadTimer(); 185 | } 186 | 187 | private void refreshToolStripMenuItem_Click(object sender, EventArgs e) { 188 | webBrowser1.Refresh(); 189 | } 190 | 191 | private void hideWindowToolStripMenuItem_Click(object sender, EventArgs e) { 192 | hideWindow(); 193 | } 194 | 195 | private void FormResize(object sender, System.EventArgs e) { 196 | if (FormWindowState.Minimized == WindowState) { 197 | hideWindow(); 198 | } 199 | } 200 | 201 | private void hideApp(object sender, EventArgs e) 202 | { 203 | hideWindow(); 204 | } 205 | 206 | private void toolHistory_Click(object sender, EventArgs e) 207 | { 208 | webBrowser1.Navigate(Options.WebIMServer + Options.HISTORY_PAGE); 209 | } 210 | } 211 | } 212 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsConnectionPanel.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace webImTray { 2 | partial class OptionsConnectionPanel { 3 | /// 4 | /// Required designer variable. 5 | /// 6 | private System.ComponentModel.IContainer components = null; 7 | 8 | /// 9 | /// Clean up any resources being used. 10 | /// 11 | /// true if managed resources should be disposed; otherwise, false. 12 | protected override void Dispose(bool disposing) { 13 | if (disposing && (components != null)) { 14 | components.Dispose(); 15 | } 16 | base.Dispose(disposing); 17 | } 18 | 19 | #region Component Designer generated code 20 | 21 | /// 22 | /// Required method for Designer support - do not modify 23 | /// the contents of this method with the code editor. 24 | /// 25 | private void InitializeComponent() { 26 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsConnectionPanel)); 27 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 28 | this.label2 = new System.Windows.Forms.Label(); 29 | this.forceRefreshTime = new System.Windows.Forms.NumericUpDown(); 30 | this.forceRefresh = new System.Windows.Forms.CheckBox(); 31 | this.autoDesconnectOnSS = new System.Windows.Forms.CheckBox(); 32 | this.webimServer = new System.Windows.Forms.TextBox(); 33 | this.label1 = new System.Windows.Forms.Label(); 34 | this.autoDisconnect = new System.Windows.Forms.CheckBox(); 35 | this.groupBox2 = new System.Windows.Forms.GroupBox(); 36 | this.showUserPreferences = new System.Windows.Forms.LinkLabel(); 37 | this.groupBox1.SuspendLayout(); 38 | ((System.ComponentModel.ISupportInitialize)(this.forceRefreshTime)).BeginInit(); 39 | this.groupBox2.SuspendLayout(); 40 | this.SuspendLayout(); 41 | // 42 | // groupBox1 43 | // 44 | this.groupBox1.Controls.Add(this.label2); 45 | this.groupBox1.Controls.Add(this.forceRefreshTime); 46 | this.groupBox1.Controls.Add(this.forceRefresh); 47 | this.groupBox1.Controls.Add(this.autoDesconnectOnSS); 48 | this.groupBox1.Controls.Add(this.webimServer); 49 | this.groupBox1.Controls.Add(this.label1); 50 | this.groupBox1.Controls.Add(this.autoDisconnect); 51 | resources.ApplyResources(this.groupBox1, "groupBox1"); 52 | this.groupBox1.Name = "groupBox1"; 53 | this.groupBox1.TabStop = false; 54 | // 55 | // label2 56 | // 57 | resources.ApplyResources(this.label2, "label2"); 58 | this.label2.Name = "label2"; 59 | // 60 | // forceRefreshTime 61 | // 62 | resources.ApplyResources(this.forceRefreshTime, "forceRefreshTime"); 63 | this.forceRefreshTime.Maximum = new decimal(new int[] { 64 | 120, 65 | 0, 66 | 0, 67 | 0}); 68 | this.forceRefreshTime.Minimum = new decimal(new int[] { 69 | 5, 70 | 0, 71 | 0, 72 | 0}); 73 | this.forceRefreshTime.Name = "forceRefreshTime"; 74 | this.forceRefreshTime.Value = new decimal(new int[] { 75 | 15, 76 | 0, 77 | 0, 78 | 0}); 79 | this.forceRefreshTime.ValueChanged += new System.EventHandler(this.forceRefreshTime_Changed); 80 | // 81 | // forceRefresh 82 | // 83 | resources.ApplyResources(this.forceRefresh, "forceRefresh"); 84 | this.forceRefresh.Name = "forceRefresh"; 85 | this.forceRefresh.UseVisualStyleBackColor = true; 86 | this.forceRefresh.CheckedChanged += new System.EventHandler(this.forceRefresh_CheckedChanged); 87 | // 88 | // autoDesconnectOnSS 89 | // 90 | resources.ApplyResources(this.autoDesconnectOnSS, "autoDesconnectOnSS"); 91 | this.autoDesconnectOnSS.Name = "autoDesconnectOnSS"; 92 | this.autoDesconnectOnSS.UseVisualStyleBackColor = true; 93 | // 94 | // webimServer 95 | // 96 | resources.ApplyResources(this.webimServer, "webimServer"); 97 | this.webimServer.Name = "webimServer"; 98 | this.webimServer.TextChanged += new System.EventHandler(this.webimServer_TextChanged); 99 | // 100 | // label1 101 | // 102 | resources.ApplyResources(this.label1, "label1"); 103 | this.label1.Name = "label1"; 104 | // 105 | // autoDisconnect 106 | // 107 | resources.ApplyResources(this.autoDisconnect, "autoDisconnect"); 108 | this.autoDisconnect.Name = "autoDisconnect"; 109 | this.autoDisconnect.UseVisualStyleBackColor = true; 110 | this.autoDisconnect.CheckedChanged += new System.EventHandler(this.autoDisconnect_CheckedChanged); 111 | // 112 | // groupBox2 113 | // 114 | this.groupBox2.Controls.Add(this.showUserPreferences); 115 | resources.ApplyResources(this.groupBox2, "groupBox2"); 116 | this.groupBox2.Name = "groupBox2"; 117 | this.groupBox2.TabStop = false; 118 | // 119 | // showUserPreferences 120 | // 121 | resources.ApplyResources(this.showUserPreferences, "showUserPreferences"); 122 | this.showUserPreferences.Name = "showUserPreferences"; 123 | this.showUserPreferences.TabStop = true; 124 | this.showUserPreferences.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.showUserPropertiesOnline); 125 | // 126 | // OptionsConnectionPanel 127 | // 128 | resources.ApplyResources(this, "$this"); 129 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 130 | this.Controls.Add(this.groupBox2); 131 | this.Controls.Add(this.groupBox1); 132 | this.Name = "OptionsConnectionPanel"; 133 | this.groupBox1.ResumeLayout(false); 134 | this.groupBox1.PerformLayout(); 135 | ((System.ComponentModel.ISupportInitialize)(this.forceRefreshTime)).EndInit(); 136 | this.groupBox2.ResumeLayout(false); 137 | this.groupBox2.PerformLayout(); 138 | this.ResumeLayout(false); 139 | 140 | } 141 | 142 | #endregion 143 | 144 | private System.Windows.Forms.GroupBox groupBox1; 145 | private System.Windows.Forms.Label label1; 146 | private System.Windows.Forms.CheckBox autoDisconnect; 147 | private System.Windows.Forms.CheckBox autoDesconnectOnSS; 148 | private System.Windows.Forms.TextBox webimServer; 149 | private System.Windows.Forms.GroupBox groupBox2; 150 | private System.Windows.Forms.LinkLabel showUserPreferences; 151 | private System.Windows.Forms.Label label2; 152 | private System.Windows.Forms.NumericUpDown forceRefreshTime; 153 | private System.Windows.Forms.CheckBox forceRefresh; 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /src/MibewTray/App.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | toolbarImages\hide.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | toolbarImages\history.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | icons\Notify.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | icons\Notify_offl.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | 134 | toolbarImages\options.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 135 | 136 | 137 | toolbarImages\refresh.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 138 | 139 | 140 | toolbarImages\visitors.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 141 | 142 | -------------------------------------------------------------------------------- /src/MibewTray/Main.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace webImTray { 2 | partial class MainWindow { 3 | private System.Windows.Forms.NotifyIcon notifyIcon; 4 | private System.ComponentModel.IContainer components; 5 | 6 | protected override void Dispose(bool disposing) { 7 | if (disposing) { 8 | if (components != null) { 9 | components.Dispose(); 10 | } 11 | } 12 | base.Dispose(disposing); 13 | } 14 | 15 | #region Windows Form Designer generated code 16 | /// 17 | /// Required method for Designer support - do not modify 18 | /// the contents of this method with the code editor. 19 | /// 20 | private void InitializeComponent() { 21 | this.components = new System.ComponentModel.Container(); 22 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow)); 23 | this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components); 24 | this.notifyMenu = new System.Windows.Forms.ContextMenuStrip(this.components); 25 | this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 26 | this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); 27 | this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 28 | this.webBrowser1 = new System.Windows.Forms.WebBrowser(); 29 | this.reloadPageTimer = new System.Windows.Forms.Timer(this.components); 30 | this.menuStrip1 = new System.Windows.Forms.MenuStrip(); 31 | this.visitorsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 32 | this.historyMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 33 | this.refreshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 34 | this.optionsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 35 | this.hideToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.notifyMenu.SuspendLayout(); 37 | this.menuStrip1.SuspendLayout(); 38 | this.SuspendLayout(); 39 | // 40 | // notifyIcon 41 | // 42 | this.notifyIcon.ContextMenuStrip = this.notifyMenu; 43 | resources.ApplyResources(this.notifyIcon, "notifyIcon"); 44 | this.notifyIcon.MouseDown += new System.Windows.Forms.MouseEventHandler(this.notifyIconClick); 45 | // 46 | // notifyMenu 47 | // 48 | this.notifyMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 49 | this.optionsToolStripMenuItem, 50 | this.toolStripMenuItem1, 51 | this.exitToolStripMenuItem}); 52 | this.notifyMenu.Name = "notifyMenu"; 53 | resources.ApplyResources(this.notifyMenu, "notifyMenu"); 54 | // 55 | // optionsToolStripMenuItem 56 | // 57 | resources.ApplyResources(this.optionsToolStripMenuItem, "optionsToolStripMenuItem"); 58 | this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; 59 | this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsMenu_Click); 60 | // 61 | // toolStripMenuItem1 62 | // 63 | this.toolStripMenuItem1.Name = "toolStripMenuItem1"; 64 | resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1"); 65 | // 66 | // exitToolStripMenuItem 67 | // 68 | this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; 69 | resources.ApplyResources(this.exitToolStripMenuItem, "exitToolStripMenuItem"); 70 | this.exitToolStripMenuItem.Click += new System.EventHandler(this.menuExitClick); 71 | // 72 | // webBrowser1 73 | // 74 | resources.ApplyResources(this.webBrowser1, "webBrowser1"); 75 | this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); 76 | this.webBrowser1.Name = "webBrowser1"; 77 | this.webBrowser1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.webBrowser1_PreviewKeyDown); 78 | // 79 | // reloadPageTimer 80 | // 81 | this.reloadPageTimer.Interval = 5000; 82 | this.reloadPageTimer.Tick += new System.EventHandler(this.timer1_Tick); 83 | // 84 | // menuStrip1 85 | // 86 | this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 87 | this.visitorsMenuItem, 88 | this.historyMenuItem, 89 | this.refreshToolStripMenuItem, 90 | this.optionsMenuItem, 91 | this.hideToolStripMenuItem}); 92 | resources.ApplyResources(this.menuStrip1, "menuStrip1"); 93 | this.menuStrip1.Name = "menuStrip1"; 94 | this.menuStrip1.ShowItemToolTips = true; 95 | // 96 | // visitorsMenuItem 97 | // 98 | this.visitorsMenuItem.Image = global::webImTray.App.visitors; 99 | resources.ApplyResources(this.visitorsMenuItem, "visitorsMenuItem"); 100 | this.visitorsMenuItem.Name = "visitorsMenuItem"; 101 | this.visitorsMenuItem.Click += new System.EventHandler(this.toolNavigate_Click); 102 | // 103 | // historyMenuItem 104 | // 105 | this.historyMenuItem.Image = global::webImTray.App.history; 106 | resources.ApplyResources(this.historyMenuItem, "historyMenuItem"); 107 | this.historyMenuItem.Name = "historyMenuItem"; 108 | this.historyMenuItem.Click += new System.EventHandler(this.toolHistory_Click); 109 | // 110 | // refreshToolStripMenuItem 111 | // 112 | this.refreshToolStripMenuItem.Image = global::webImTray.App.refresh; 113 | resources.ApplyResources(this.refreshToolStripMenuItem, "refreshToolStripMenuItem"); 114 | this.refreshToolStripMenuItem.Name = "refreshToolStripMenuItem"; 115 | this.refreshToolStripMenuItem.Click += new System.EventHandler(this.refreshToolStripMenuItem_Click); 116 | // 117 | // optionsMenuItem 118 | // 119 | this.optionsMenuItem.Image = global::webImTray.App.options; 120 | resources.ApplyResources(this.optionsMenuItem, "optionsMenuItem"); 121 | this.optionsMenuItem.Name = "optionsMenuItem"; 122 | this.optionsMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem1_Click); 123 | // 124 | // hideToolStripMenuItem 125 | // 126 | this.hideToolStripMenuItem.Image = global::webImTray.App.hide; 127 | resources.ApplyResources(this.hideToolStripMenuItem, "hideToolStripMenuItem"); 128 | this.hideToolStripMenuItem.Name = "hideToolStripMenuItem"; 129 | this.hideToolStripMenuItem.Click += new System.EventHandler(this.hideApp); 130 | // 131 | // MainWindow 132 | // 133 | resources.ApplyResources(this, "$this"); 134 | this.Controls.Add(this.webBrowser1); 135 | this.Controls.Add(this.menuStrip1); 136 | this.MainMenuStrip = this.menuStrip1; 137 | this.Name = "MainWindow"; 138 | this.ShowInTaskbar = false; 139 | this.Shown += new System.EventHandler(this.MainWindow_Shown); 140 | this.GotFocus += new System.EventHandler(this.gotFocus); 141 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Client_FormClosing); 142 | this.Resize += new System.EventHandler(this.FormResize); 143 | this.notifyMenu.ResumeLayout(false); 144 | this.menuStrip1.ResumeLayout(false); 145 | this.menuStrip1.PerformLayout(); 146 | this.ResumeLayout(false); 147 | this.PerformLayout(); 148 | 149 | } 150 | #endregion 151 | 152 | private System.Windows.Forms.WebBrowser webBrowser1; 153 | private System.Windows.Forms.Timer reloadPageTimer; 154 | private System.Windows.Forms.ContextMenuStrip notifyMenu; 155 | private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; 156 | private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; 157 | private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; 158 | private System.Windows.Forms.MenuStrip menuStrip1; 159 | private System.Windows.Forms.ToolStripMenuItem refreshToolStripMenuItem; 160 | private System.Windows.Forms.ToolStripMenuItem optionsMenuItem; 161 | private System.Windows.Forms.ToolStripMenuItem hideToolStripMenuItem; 162 | private System.Windows.Forms.ToolStripMenuItem visitorsMenuItem; 163 | private System.Windows.Forms.ToolStripMenuItem historyMenuItem; 164 | 165 | } 166 | } 167 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsSoundsPanel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | True 123 | 124 | 125 | False 126 | 127 | 128 | 129 | Microsoft Sans Serif, 8.25pt 130 | 131 | 132 | 15, 28 133 | 134 | 135 | 171, 17 136 | 137 | 138 | 0 139 | 140 | 141 | Play sound when visitor comes 142 | 143 | 144 | playSoundOnVisitor 145 | 146 | 147 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 148 | 149 | 150 | groupBox1 151 | 152 | 153 | 0 154 | 155 | 156 | Tahoma, 9.75pt, style=Bold 157 | 158 | 159 | 3, 3 160 | 161 | 162 | 163 | 12, 12, 12, 12 164 | 165 | 166 | 368, 156 167 | 168 | 169 | 2 170 | 171 | 172 | Notifications 173 | 174 | 175 | groupBox1 176 | 177 | 178 | System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 179 | 180 | 181 | $this 182 | 183 | 184 | 0 185 | 186 | 187 | True 188 | 189 | 190 | 6, 13 191 | 192 | 193 | 374, 329 194 | 195 | 196 | OptionsSoundsPanel 197 | 198 | 199 | System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 200 | 201 | -------------------------------------------------------------------------------- /src/MibewTray/mibewTray.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Local 5 | 9.0.21022 6 | 2.0 7 | {21C7CA72-7F77-416C-9FD7-2DF748443E46} 8 | Debug 9 | AnyCPU 10 | icons\App.ico 11 | 12 | 13 | mibewTray 14 | 15 | 16 | JScript 17 | Grid 18 | IE50 19 | false 20 | WinExe 21 | webImTray 22 | OnBuildSuccess 23 | 24 | 25 | 26 | 27 | 28 | 29 | 3.5 30 | v3.5 31 | false 32 | F:\mibewtray\MibewInstaller\ 33 | true 34 | Disk 35 | false 36 | Foreground 37 | 7 38 | Days 39 | false 40 | false 41 | true 42 | 2 43 | 1.0.0.%2a 44 | false 45 | true 46 | true 47 | 48 | 49 | bin\Debug\ 50 | false 51 | 285212672 52 | false 53 | 54 | 55 | DEBUG;TRACE 56 | 57 | 58 | true 59 | 4096 60 | false 61 | 62 | 63 | false 64 | false 65 | false 66 | false 67 | 4 68 | full 69 | prompt 70 | 71 | 72 | bin\Release\ 73 | false 74 | 285212672 75 | false 76 | 77 | 78 | TRACE 79 | 80 | 81 | false 82 | 4096 83 | false 84 | 85 | 86 | true 87 | false 88 | false 89 | false 90 | 4 91 | none 92 | prompt 93 | AnyCPU 94 | 95 | 96 | 140A3DB550346C895737527D0E4FE4D49ED69092 97 | 98 | 99 | mibewTray_TemporaryKey.pfx 100 | 101 | 102 | true 103 | 104 | 105 | false 106 | 107 | 108 | 109 | System 110 | 111 | 112 | 3.5 113 | 114 | 115 | System.Data 116 | 117 | 118 | System.Drawing 119 | 120 | 121 | System.Windows.Forms 122 | 123 | 124 | System.XML 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | True 139 | True 140 | App.resx 141 | 142 | 143 | Form 144 | 145 | 146 | 147 | UserControl 148 | 149 | 150 | About.cs 151 | 152 | 153 | 154 | UserControl 155 | 156 | 157 | OptionsGeneralPanel.cs 158 | 159 | 160 | Code 161 | 162 | 163 | Form 164 | 165 | 166 | Main.cs 167 | 168 | 169 | Form 170 | 171 | 172 | OptionsDialog.cs 173 | 174 | 175 | UserControl 176 | 177 | 178 | OptionsConnectionPanel.cs 179 | 180 | 181 | UserControl 182 | 183 | 184 | OptionsSoundsPanel.cs 185 | 186 | 187 | 188 | Designer 189 | ResXFileCodeGenerator 190 | App.Designer.cs 191 | 192 | 193 | Designer 194 | About.cs 195 | 196 | 197 | Designer 198 | OptionsGeneralPanel.cs 199 | 200 | 201 | Main.cs 202 | Designer 203 | 204 | 205 | Designer 206 | OptionsConnectionPanel.cs 207 | 208 | 209 | Designer 210 | OptionsDialog.cs 211 | 212 | 213 | Designer 214 | OptionsSoundsPanel.cs 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | False 223 | .NET Framework 3.5 SP1 Client Profile 224 | false 225 | 226 | 227 | False 228 | .NET Framework 3.5 SP1 229 | true 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsDialog.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | Microsoft Sans Serif, 9.75pt 123 | 124 | 125 | 12, 14 126 | 127 | 128 | 175, 329 129 | 130 | 131 | 132 | 0 133 | 134 | 135 | pageSelector 136 | 137 | 138 | System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 139 | 140 | 141 | $this 142 | 143 | 144 | 5 145 | 146 | 147 | 341, 360 148 | 149 | 150 | 75, 23 151 | 152 | 153 | 1 154 | 155 | 156 | OK 157 | 158 | 159 | ok 160 | 161 | 162 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 163 | 164 | 165 | $this 166 | 167 | 168 | 4 169 | 170 | 171 | 422, 360 172 | 173 | 174 | 75, 23 175 | 176 | 177 | 2 178 | 179 | 180 | Cancel 181 | 182 | 183 | cancel 184 | 185 | 186 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 187 | 188 | 189 | $this 190 | 191 | 192 | 3 193 | 194 | 195 | False 196 | 197 | 198 | 503, 360 199 | 200 | 201 | 75, 23 202 | 203 | 204 | 3 205 | 206 | 207 | Apply 208 | 209 | 210 | apply 211 | 212 | 213 | System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 214 | 215 | 216 | $this 217 | 218 | 219 | 2 220 | 221 | 222 | 204, 14 223 | 224 | 225 | 374, 329 226 | 227 | 228 | 4 229 | 230 | 231 | container 232 | 233 | 234 | System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 235 | 236 | 237 | $this 238 | 239 | 240 | 1 241 | 242 | 243 | True 244 | 245 | 246 | Tahoma, 9.75pt 247 | 248 | 249 | 12, 360 250 | 251 | 252 | 0, 16 253 | 254 | 255 | 5 256 | 257 | 258 | linkLabel1 259 | 260 | 261 | System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 262 | 263 | 264 | $this 265 | 266 | 267 | 0 268 | 269 | 270 | True 271 | 272 | 273 | 6, 13 274 | 275 | 276 | 590, 395 277 | 278 | 279 | 280 | AAABAAEAEhIAAAAACADYBQAAFgAAACgAAAASAAAAJAAAAAEACAAAAAAAaAEAAAAAAAAAAAAAAAEAAAAB 281 | AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW 282 | FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA 283 | MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm 284 | /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ 285 | zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm 286 | ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM 287 | /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz 288 | mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM 289 | MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz 290 | MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM 291 | AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA 292 | mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ 293 | MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ 294 | zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m 295 | zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ 296 | ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy 297 | sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// 298 | AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3s7Ozs7Ozs7Ozs7Ozs 299 | 7OzsbQAA7PLz8/Pz8/Pz8/Pz8/Pz8/LsAADs8vPz8/Pz8/Pz8/Pz8/Pz8uwAAOzy8fHx8fHx8fHx8fHx 300 | 8fHy7AAA7PKZUpmZ8uvr6+vr6+vr6/LsAADs81IxUlLz8/Pz8/Pz8/Pz8+wAAOzzmlKamvPr6+vr6+vr 301 | 6+vz7AAA7PT09PT09PT09PT09PT09PTsAADs9Luzu7v09Ovr6+vr6+v09OwAAOz/s6yzs/////////// 302 | ////7AAA7P+7s7u7/+vr6+vr6+vr6//sAADs/7uzu7v/6+vr6+vr6+vr/+wAAOz///////////////// 303 | ////7AAAbezs7Ozs7Ozs7Ozs7Ozs7OxtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 304 | AAAAAAAA///AAP//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 305 | AAAAAAAAAAAAAP//wAD//8AA 306 | 307 | 308 | 309 | Mibew Tray Options 310 | 311 | 312 | OptionsDialog 313 | 314 | 315 | System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 316 | 317 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsGeneralPanel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | hideWhenStarted 122 | 123 | 124 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 125 | 126 | 127 | groupBox1 128 | 129 | 130 | 0 131 | 132 | 133 | autoStart 134 | 135 | 136 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 137 | 138 | 139 | groupBox1 140 | 141 | 142 | 1 143 | 144 | 145 | showInTaskBar 146 | 147 | 148 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 149 | 150 | 151 | groupBox1 152 | 153 | 154 | 2 155 | 156 | 157 | 158 | Tahoma, 9.75pt, style=Bold 159 | 160 | 161 | 3, 3 162 | 163 | 164 | 165 | 12, 12, 12, 12 166 | 167 | 168 | 368, 154 169 | 170 | 171 | 172 | 0 173 | 174 | 175 | Application 176 | 177 | 178 | groupBox1 179 | 180 | 181 | System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 182 | 183 | 184 | $this 185 | 186 | 187 | 1 188 | 189 | 190 | True 191 | 192 | 193 | Microsoft Sans Serif, 8.25pt 194 | 195 | 196 | 15, 122 197 | 198 | 199 | 134, 17 200 | 201 | 202 | 3 203 | 204 | 205 | Hide window after start 206 | 207 | 208 | hideWhenStarted 209 | 210 | 211 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 212 | 213 | 214 | groupBox1 215 | 216 | 217 | 0 218 | 219 | 220 | True 221 | 222 | 223 | Microsoft Sans Serif, 8.25pt 224 | 225 | 226 | 15, 76 227 | 228 | 229 | 225, 17 230 | 231 | 232 | 1 233 | 234 | 235 | Start automatically when starting Windows 236 | 237 | 238 | autoStart 239 | 240 | 241 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 242 | 243 | 244 | groupBox1 245 | 246 | 247 | 1 248 | 249 | 250 | True 251 | 252 | 253 | Microsoft Sans Serif, 8.25pt 254 | 255 | 256 | 15, 30 257 | 258 | 259 | 102, 17 260 | 261 | 262 | 0 263 | 264 | 265 | Show in taskbar 266 | 267 | 268 | showInTaskBar 269 | 270 | 271 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 272 | 273 | 274 | groupBox1 275 | 276 | 277 | 2 278 | 279 | 280 | False 281 | 282 | 283 | Tahoma, 9.75pt 284 | 285 | 286 | 75, 39 287 | 288 | 289 | 209, 24 290 | 291 | 292 | 0 293 | 294 | 295 | languageSelector 296 | 297 | 298 | System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 299 | 300 | 301 | languageBox 302 | 303 | 304 | 0 305 | 306 | 307 | Tahoma, 9.75pt, style=Bold 308 | 309 | 310 | 3, 189 311 | 312 | 313 | 368, 93 314 | 315 | 316 | 2 317 | 318 | 319 | Language 320 | 321 | 322 | languageBox 323 | 324 | 325 | System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 326 | 327 | 328 | $this 329 | 330 | 331 | 0 332 | 333 | 334 | True 335 | 336 | 337 | 6, 13 338 | 339 | 340 | 374, 329 341 | 342 | 343 | OptionsGeneralPanel 344 | 345 | 346 | System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 347 | 348 | -------------------------------------------------------------------------------- /src/MibewTray/options/OptionsConnectionPanel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | True 123 | 124 | 125 | 126 | Microsoft Sans Serif, 8.25pt 127 | 128 | 129 | 239, 125 130 | 131 | 132 | 43, 13 133 | 134 | 135 | 9 136 | 137 | 138 | minutes 139 | 140 | 141 | label2 142 | 143 | 144 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 145 | 146 | 147 | groupBox1 148 | 149 | 150 | 0 151 | 152 | 153 | False 154 | 155 | 156 | Microsoft Sans Serif, 8.25pt 157 | 158 | 159 | 188, 123 160 | 161 | 162 | 45, 20 163 | 164 | 165 | 8 166 | 167 | 168 | forceRefreshTime 169 | 170 | 171 | System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 172 | 173 | 174 | groupBox1 175 | 176 | 177 | 1 178 | 179 | 180 | True 181 | 182 | 183 | Microsoft Sans Serif, 8.25pt 184 | 185 | 186 | 17, 124 187 | 188 | 189 | 145, 17 190 | 191 | 192 | 7 193 | 194 | 195 | Force page update every 196 | 197 | 198 | forceRefresh 199 | 200 | 201 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 202 | 203 | 204 | groupBox1 205 | 206 | 207 | 2 208 | 209 | 210 | True 211 | 212 | 213 | False 214 | 215 | 216 | Microsoft Sans Serif, 8.25pt 217 | 218 | 219 | 17, 101 220 | 221 | 222 | 231, 17 223 | 224 | 225 | 6 226 | 227 | 228 | Become idle if the screen saver is activated 229 | 230 | 231 | autoDesconnectOnSS 232 | 233 | 234 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 235 | 236 | 237 | groupBox1 238 | 239 | 240 | 3 241 | 242 | 243 | Microsoft Sans Serif, 8.25pt 244 | 245 | 246 | 17, 46 247 | 248 | 249 | 307, 20 250 | 251 | 252 | 5 253 | 254 | 255 | webimServer 256 | 257 | 258 | System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 259 | 260 | 261 | groupBox1 262 | 263 | 264 | 4 265 | 266 | 267 | True 268 | 269 | 270 | Microsoft Sans Serif, 8.25pt 271 | 272 | 273 | 15, 28 274 | 275 | 276 | 125, 13 277 | 278 | 279 | 4 280 | 281 | 282 | Mibew Messenger Installation Location 283 | 284 | 285 | label1 286 | 287 | 288 | System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 289 | 290 | 291 | groupBox1 292 | 293 | 294 | 5 295 | 296 | 297 | True 298 | 299 | 300 | Microsoft Sans Serif, 8.25pt 301 | 302 | 303 | 17, 78 304 | 305 | 306 | 202, 17 307 | 308 | 309 | 3 310 | 311 | 312 | Become idle if the computer is locked 313 | 314 | 315 | autoDisconnect 316 | 317 | 318 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 319 | 320 | 321 | groupBox1 322 | 323 | 324 | 6 325 | 326 | 327 | Tahoma, 9.75pt, style=Bold 328 | 329 | 330 | 3, 3 331 | 332 | 333 | 334 | 12, 12, 12, 12 335 | 336 | 337 | 368, 203 338 | 339 | 340 | 1 341 | 342 | 343 | Connection 344 | 345 | 346 | groupBox1 347 | 348 | 349 | System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 350 | 351 | 352 | $this 353 | 354 | 355 | 1 356 | 357 | 358 | True 359 | 360 | 361 | Tahoma, 9pt 362 | 363 | 364 | 54, 43 365 | 366 | 367 | 252, 14 368 | 369 | 370 | 0 371 | 372 | 373 | Click here to change your preferences online 374 | 375 | 376 | showUserPreferences 377 | 378 | 379 | System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 380 | 381 | 382 | groupBox2 383 | 384 | 385 | 0 386 | 387 | 388 | Tahoma, 9.75pt, style=Bold 389 | 390 | 391 | 3, 213 392 | 393 | 394 | 12, 12, 12, 12 395 | 396 | 397 | 368, 87 398 | 399 | 400 | 2 401 | 402 | 403 | Operator preferences 404 | 405 | 406 | groupBox2 407 | 408 | 409 | System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 410 | 411 | 412 | $this 413 | 414 | 415 | 0 416 | 417 | 418 | True 419 | 420 | 421 | 6, 13 422 | 423 | 424 | 374, 329 425 | 426 | 427 | OptionsConnectionPanel 428 | 429 | 430 | System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 431 | 432 | -------------------------------------------------------------------------------- /src/MibewTray/Main.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 134, 99 122 | 123 | 124 | 245, 102 125 | 126 | 127 | 128 | 129 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 130 | YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAIVJREFUOE/dk0EO 131 | gCAMBPlgv+l/DBcTH4O2WrLCFi56kaQJgXbYbUNKXy4RKSz2bT3PF4vwfS3MOdO4oAOAF48hN4BJ1Jdn 132 | kKpAE321RRHkYcEBmKxABnO12rhOgV9WOQ3Eodh1mwJawGK0hftubDNAqygEoAU2GWbBYD9REH0adv76 133 | 5z0AIQLwRor4ZGsAAAAASUVORK5CYII= 134 | 135 | 136 | 137 | Silver 138 | 139 | 140 | 130, 22 141 | 142 | 143 | Options.. 144 | 145 | 146 | 127, 6 147 | 148 | 149 | 130, 22 150 | 151 | 152 | Exit 153 | 154 | 155 | 131, 54 156 | 157 | 158 | notifyMenu 159 | 160 | 161 | System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 162 | 163 | 164 | 165 | AAABAAEAEBAAAAAACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAB 166 | AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW 167 | FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA 168 | MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm 169 | /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ 170 | zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm 171 | ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM 172 | /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz 173 | mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM 174 | MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz 175 | MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM 176 | AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA 177 | mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ 178 | MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ 179 | zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m 180 | zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ 181 | ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy 182 | sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// 183 | AAD///8ACgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK7Ozs7Ozs7OzsCgrs7OwKCuzs7Ozs 184 | 7Ozs7AoK7OzsCgqSkuzs7Ozs7OwKCuzs7AoKCpKSkpKSkpIKCpKSkgoKCgoKkpKSkpIKCpKSkgoKCgoK 185 | CgqSkpIKCpKSkgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCu/39woK9/f3CgoKCgoKCu/v7+/vCvf39/cK 186 | CgoKCgrv7+/v7wr39/f3CgoKCgoK7+/v7+8K7+/v7woKCgoKCgrv7+8KCu/v7woKCgoKCgoKCgoKCgoK 187 | CgoKCgoKCgoKCgoKCgoKCgoKCgoKCv//AAD//wAAgDEAAIAxAACAMQAAwGMAAODHAADxjwAA//8AAPGP 188 | AADghwAA4IcAAOCHAADxjwAA//8AAP//AAA= 189 | 190 | 191 | 192 | 193 | True 194 | 195 | 196 | 197 | Fill 198 | 199 | 200 | 0, 24 201 | 202 | 203 | 864, 461 204 | 205 | 206 | 2 207 | 208 | 209 | webBrowser1 210 | 211 | 212 | System.Windows.Forms.WebBrowser, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 213 | 214 | 215 | $this 216 | 217 | 218 | 1 219 | 220 | 221 | 384, 102 222 | 223 | 224 | 0, 0 225 | 226 | 227 | Black 228 | 229 | 230 | 69, 20 231 | 232 | 233 | Visitors 234 | 235 | 236 | Black 237 | 238 | 239 | 69, 20 240 | 241 | 242 | History 243 | 244 | 245 | Black 246 | 247 | 248 | 73, 20 249 | 250 | 251 | Refresh 252 | 253 | 254 | Black 255 | 256 | 257 | 72, 20 258 | 259 | 260 | Options 261 | 262 | 263 | Black 264 | 265 | 266 | Esc 267 | 268 | 269 | 56, 20 270 | 271 | 272 | Hide 273 | 274 | 275 | Hides application into tray 276 | 277 | 278 | 0, 0 279 | 280 | 281 | 864, 24 282 | 283 | 284 | 3 285 | 286 | 287 | menuStrip1 288 | 289 | 290 | menuStrip1 291 | 292 | 293 | System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 294 | 295 | 296 | $this 297 | 298 | 299 | 2 300 | 301 | 302 | True 303 | 304 | 305 | 173 306 | 307 | 308 | 5, 13 309 | 310 | 311 | 864, 485 312 | 313 | 314 | 315 | AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 316 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAktmIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 317 | AAAAAAAAAAAAAAAAAAAAAAAAAAAktmIktmIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 318 | AAAAAAAAAACa3bcktmIktmIAAAAAAAAAAAAAAAAktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIk 319 | tmIktmIktmIktmIAAAAktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIk 320 | tmIktmIktmIktmIktmI4vHCq4sLp+O/2/Pn2/Pnn9+686c89vnQktmIktmIktmIktmIktmIktmIktmKD 321 | 1qbi9eqc3rlMw34ktmIktmJHwnuc3rnn9+6j4b0ktmIktmIktmIktmIktmKD1qaq4sIktmIktmIktmIk 322 | tmIktmIktmIktmIktmKc3rmV3LMktmIktmIktmIktmI4vHAktmIktmJVx4RHwnsktmIktmI9vnRZx4gk 323 | tmIktmIktmIktmIktmIktmIktmIktmIktmIquGb////y+/UktmIktmLt+fP///89vnQktmIktmIktmIk 324 | tmIktmIktmIktmIktmIktmK258uD1qYktmIktmKH16m258sktmIktmIktmIktmIktmIktmIktmIktmIk 325 | tmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIktmIAAAAktmIktmIktmIktmIktmIktmIk 326 | tmIktmIktmIktmIktmIktmIktmIktmIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 327 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 328 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3wAA/88AAP/H 329 | AACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA//8AAP//AAD//wAA 330 | 331 | 332 | 333 | notifyIcon 334 | 335 | 336 | System.Windows.Forms.NotifyIcon, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 337 | 338 | 339 | optionsToolStripMenuItem 340 | 341 | 342 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 343 | 344 | 345 | toolStripMenuItem1 346 | 347 | 348 | System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 349 | 350 | 351 | exitToolStripMenuItem 352 | 353 | 354 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 355 | 356 | 357 | reloadPageTimer 358 | 359 | 360 | System.Windows.Forms.Timer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 361 | 362 | 363 | visitorsMenuItem 364 | 365 | 366 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 367 | 368 | 369 | historyMenuItem 370 | 371 | 372 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 373 | 374 | 375 | refreshToolStripMenuItem 376 | 377 | 378 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 379 | 380 | 381 | optionsMenuItem 382 | 383 | 384 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 385 | 386 | 387 | hideToolStripMenuItem 388 | 389 | 390 | System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 391 | 392 | 393 | MainWindow 394 | 395 | 396 | webImTray.LockNotificationForm, webImTray, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null 397 | 398 | --------------------------------------------------------------------------------