mirror of
https://github.com/ckaczor/FeedCenter.git
synced 2026-01-13 17:22:48 -05:00
Move application files to sub-folder
This commit is contained in:
81
Application/NotificationIcon.cs
Normal file
81
Application/NotificationIcon.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using FeedCenter.Properties;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace FeedCenter
|
||||
{
|
||||
internal static class NotificationIcon
|
||||
{
|
||||
private static MainWindow _mainForm;
|
||||
private static NotifyIcon _notificationIcon;
|
||||
|
||||
public static void Initialize(MainWindow mainForm)
|
||||
{
|
||||
// Store the main window
|
||||
_mainForm = mainForm;
|
||||
|
||||
// Create the notification icon
|
||||
_notificationIcon = new NotifyIcon { Icon = Resources.Application };
|
||||
_notificationIcon.DoubleClick += HandleNotificationIconDoubleClick;
|
||||
|
||||
// Setup the menu
|
||||
var contextMenuStrip = new ContextMenuStrip();
|
||||
|
||||
var toolStripMenuItem = new ToolStripMenuItem(Resources.NotificationIconContextMenuLocked, null, HandleLockWindowClicked)
|
||||
{
|
||||
Checked = Settings.Default.WindowLocked
|
||||
};
|
||||
contextMenuStrip.Items.Add(toolStripMenuItem);
|
||||
|
||||
contextMenuStrip.Items.Add(new ToolStripSeparator());
|
||||
|
||||
contextMenuStrip.Items.Add(Resources.NotificationIconContextMenuExit, null, HandleContextMenuExitClick);
|
||||
|
||||
// Set the menu into the icon
|
||||
_notificationIcon.ContextMenuStrip = contextMenuStrip;
|
||||
|
||||
// Show the icon
|
||||
_notificationIcon.Visible = true;
|
||||
}
|
||||
|
||||
private static void HandleNotificationIconDoubleClick(object sender, System.EventArgs e)
|
||||
{
|
||||
// Bring the main form to the front
|
||||
_mainForm.Activate();
|
||||
}
|
||||
|
||||
private static void HandleContextMenuExitClick(object sender, System.EventArgs e)
|
||||
{
|
||||
// Close the main form
|
||||
_mainForm.Close();
|
||||
}
|
||||
|
||||
private static void HandleLockWindowClicked(object sender, System.EventArgs e)
|
||||
{
|
||||
// Toggle the lock setting
|
||||
Settings.Default.WindowLocked = !Settings.Default.WindowLocked;
|
||||
|
||||
// Reset the menu choice
|
||||
((ToolStripMenuItem) sender).Checked = Settings.Default.WindowLocked;
|
||||
}
|
||||
|
||||
public static void Dispose()
|
||||
{
|
||||
// Get rid of the icon
|
||||
_notificationIcon.Visible = false;
|
||||
_notificationIcon.Dispose();
|
||||
_notificationIcon = null;
|
||||
|
||||
_mainForm = null;
|
||||
}
|
||||
|
||||
public static void ShowBalloonTip(string text, ToolTipIcon icon)
|
||||
{
|
||||
ShowBalloonTip(text, icon, Settings.Default.BalloonTipTimeout);
|
||||
}
|
||||
|
||||
public static void ShowBalloonTip(string text, ToolTipIcon icon, int timeout)
|
||||
{
|
||||
_notificationIcon.ShowBalloonTip(timeout, Resources.ApplicationDisplayName, text, icon);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user