Files
Dunestorm f5b9c8f7a7 [VMware Launcher 2.0.9.7]
- Enhancement: #4 Verify Windows services have properly terminated upon shutdown.
- Moved instanciation of ServiceControl class from Startup.xaml.cs to StatusWindow.xaml.cs.
2021-04-13 12:04:14 +01:00

94 lines
2.9 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 WarnServiceShutdownFailure()
{
trayIcon.ShowBalloonTip(5000,
"VMware Launcher",
"VMware Launcher was unable to shutdown one or more Workstation services.",
ToolTipIcon.Warning);
}
public void ShowShutdownSuccessMessage()
{
trayIcon.ShowBalloonTip(3000,
"VMware Launcher",
"VMware Launcher has stopped all background Workstation services. Enjoy your day :-)",
ToolTipIcon.Info);
}
public void Destroy()
{
trayIcon.Dispose();
}
}
}