Files
2019-03-05 20:26:02 +00:00

82 lines
2.5 KiB
C#

using System.Windows.Forms;
namespace VMwareLauncher
{
public class TrayIcon
{
private static NotifyIcon trayIcon = new NotifyIcon();
private static MenuItem itemKeepLauncherRunning = new MenuItem();
private static MenuItem itemHelp = new MenuItem();
private static ContextMenu contextMenu = new ContextMenu();
private static bool keepLauncherRunning { get; set; }
public static bool KeepLauncherRunning
{
get
{
return keepLauncherRunning;
}
set
{
itemKeepLauncherRunning.Checked = value;
keepLauncherRunning = value;
}
}
public void Create()
{
// Assign icon to tray object.
trayIcon.Icon = Properties.Resources.VMwareLauncher;
trayIcon.DoubleClick += TrayIcon_DoubleClick;
itemKeepLauncherRunning.Text = "Keep Launcher Running";
itemKeepLauncherRunning.Click += KeepLauncherRunning_Click;
contextMenu.MenuItems.Add(itemKeepLauncherRunning);
itemHelp.Text ="Help";
itemHelp.Click += ItemHelp_Click;
contextMenu.MenuItems.Add(itemHelp);
// Wire context menu to tray icon and show.
trayIcon.ContextMenu = contextMenu;
trayIcon.Visible = true;
}
private void TrayIcon_DoubleClick(object sender, System.EventArgs e)
{
var proc = new ProcessControl();
proc.ProcessName = ProcessControl.DefaultVmwarePath;
proc.StartProcess();
}
private void ItemHelp_Click(object sender, System.EventArgs e)
{
trayIcon.ShowBalloonTip(5000,
"VMware Launcher",
"VMware Launcher will continue to run in the background until Workstation has been terminated.",
ToolTipIcon.Info);
}
private void KeepLauncherRunning_Click(object sender, System.EventArgs e)
{
if (KeepLauncherRunning == false)
{
KeepLauncherRunning = true;
}
else
{
KeepLauncherRunning = false;
}
}
public void Destroy()
{
trayIcon.ShowBalloonTip(3000,
"VMware Launcher",
"VMware Launcher has stopped all background Workstation services. Enjoy your day :-)",
ToolTipIcon.None);
trayIcon.Dispose();
}
}
}