Files
FSI.BT.IR.Tools/FSI.BT.Tools/SystemTrayMenu/UserInterface/AppContextMenu.cs
Stephan Maier 647f938eee v1.2
2024-08-27 08:10:27 +02:00

73 lines
2.5 KiB
C#

using System;
using System.Diagnostics;
using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
using FSI.BT.Tools.Global.Utilities;
namespace FSI.BT.Tools.SystemTrayMenu.Helper
{
internal class AppContextMenu
{
public event Action ClickedOpenLog;
public ContextMenuStrip Create()
{
ContextMenuStrip menu = new()
{
BackColor = SystemColors.Control,
};
AddItem(menu, "Settings", () => Global.UserInterface.SettingsForm.ShowSingleInstance());
AddSeperator(menu);
AddItem(menu, "Log File", () => ClickedOpenLog?.Invoke());
AddSeperator(menu);
//AddItem(menu, "Frequently Asked Questions", Config.ShowHelpFAQ);
AddItem(menu, "Support SystemTrayMenu", Config.ShowSupportSystemTrayMenu);
AddItem(menu, "About SystemTrayMenu", About);
//AddItem(menu, "Check for updates", () => GitHubUpdate.ActivateNewVersionFormOrCheckForUpdates(showWhenUpToDate: true));
AddSeperator(menu);
AddItem(menu, "Restart", AppRestart.ByAppContextMenu);
AddItem(menu, "Exit app", Application.Exit);
return menu;
}
private static void AddSeperator(ContextMenuStrip menu)
{
menu.Items.Add(new ToolStripSeparator());
}
private static void AddItem(
ContextMenuStrip menu,
string text,
Action actionClick)
{
ToolStripMenuItem toolStripMenuItem = new()
{
Text = Translator.GetText(text),
};
toolStripMenuItem.Click += (sender, e) => actionClick();
menu.Items.Add(toolStripMenuItem);
}
private static void About()
{
FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(
Assembly.GetEntryAssembly().Location);
Global.UserInterface.AboutBox aboutBox = new()
{
AppTitle = versionInfo.ProductName,
AppDescription = versionInfo.FileDescription,
AppVersion = $"Version {versionInfo.FileVersion}",
AppCopyright = versionInfo.LegalCopyright,
AppMoreInfo = versionInfo.LegalCopyright,
AppImage = SystemTrayMenu.Properties.Resources.SystemTrayMenu.ToBitmap(),
};
aboutBox.AppDetailsButton = true;
aboutBox.ShowDialog();
}
}
}