mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-19 21:44:30 -04:00
moved hosting, system tray out of common
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Reflection;
|
||||
using System.Windows.Forms;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Owin;
|
||||
|
||||
namespace NzbDrone.SysTray
|
||||
{
|
||||
public class SysTrayApp : Form
|
||||
{
|
||||
private readonly ProcessProvider _processProvider;
|
||||
private readonly IHostController _hostController;
|
||||
private readonly EnvironmentProvider _environmentProvider;
|
||||
|
||||
private readonly NotifyIcon _trayIcon = new NotifyIcon();
|
||||
private readonly ContextMenu _trayMenu = new ContextMenu();
|
||||
|
||||
public SysTrayApp(ProcessProvider processProvider, IHostController hostController, EnvironmentProvider environmentProvider)
|
||||
{
|
||||
_processProvider = processProvider;
|
||||
_hostController = hostController;
|
||||
_environmentProvider = environmentProvider;
|
||||
}
|
||||
|
||||
public SysTrayApp()
|
||||
{
|
||||
}
|
||||
|
||||
public void Create()
|
||||
{
|
||||
_trayMenu.MenuItems.Add("Launch Browser", LaunchBrowser);
|
||||
_trayMenu.MenuItems.Add("-");
|
||||
_trayMenu.MenuItems.Add("Exit", OnExit);
|
||||
|
||||
_trayIcon.Text = String.Format("NzbDrone - {0}", _environmentProvider.Version);
|
||||
_trayIcon.Icon = new Icon(Assembly.GetEntryAssembly().GetManifestResourceStream("NzbDrone.NzbDrone.ico"));
|
||||
|
||||
_trayIcon.ContextMenu = _trayMenu;
|
||||
_trayIcon.Visible = true;
|
||||
}
|
||||
|
||||
protected override void OnClosed(EventArgs e)
|
||||
{
|
||||
Console.WriteLine("Closing");
|
||||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
Visible = false;
|
||||
ShowInTaskbar = false;
|
||||
|
||||
base.OnLoad(e);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool isDisposing)
|
||||
{
|
||||
if (isDisposing)
|
||||
{
|
||||
_trayIcon.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose(isDisposing);
|
||||
}
|
||||
|
||||
private void OnExit(object sender, EventArgs e)
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
private void LaunchBrowser(object sender, EventArgs e)
|
||||
{
|
||||
_processProvider.Start(_hostController.AppUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace NzbDrone.SysTray
|
||||
{
|
||||
public class SysTrayProvider
|
||||
{
|
||||
private readonly SysTrayApp _sysTrayApp;
|
||||
|
||||
public SysTrayProvider(SysTrayApp sysTrayApp)
|
||||
{
|
||||
_sysTrayApp = sysTrayApp;
|
||||
}
|
||||
|
||||
public SysTrayProvider()
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void Start()
|
||||
{
|
||||
_sysTrayApp.Create();
|
||||
|
||||
Application.Run(_sysTrayApp);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user