| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 | using MediaBrowser.Controller;using MediaBrowser.Controller.Configuration;using MediaBrowser.Model.Logging;using System;using System.ComponentModel;using System.Windows.Forms;using Emby.Server.Implementations.Browser;using MediaBrowser.Model.Globalization;namespace MediaBrowser.ServerApplication{    public class ServerNotifyIcon : IDisposable    {        private NotifyIcon notifyIcon1;        private ContextMenuStrip contextMenuStrip1;        private ToolStripMenuItem cmdExit;        private ToolStripMenuItem cmdBrowse;        private ToolStripMenuItem cmdConfigure;        private ToolStripSeparator toolStripSeparator2;        private ToolStripMenuItem cmdRestart;        private ToolStripSeparator toolStripSeparator1;        private ToolStripMenuItem cmdCommunity;        private ToolStripMenuItem cmdPremiere;        private Container components;        private readonly ILogger _logger;        private readonly IServerApplicationHost _appHost;        private readonly IServerConfigurationManager _configurationManager;        private readonly ILocalizationManager _localization;        public void Invoke(Action action)        {            contextMenuStrip1.Invoke(action);        }        public ServerNotifyIcon(ILogManager logManager,            IServerApplicationHost appHost,            IServerConfigurationManager configurationManager,            ILocalizationManager localization)        {            _logger = logManager.GetLogger("MainWindow");            _localization = localization;            _appHost = appHost;            _configurationManager = configurationManager;            components = new System.ComponentModel.Container();            var resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));            contextMenuStrip1 = new ContextMenuStrip(components);            notifyIcon1 = new NotifyIcon(components);            cmdExit = new ToolStripMenuItem();            cmdCommunity = new ToolStripMenuItem();            cmdPremiere = new ToolStripMenuItem();            toolStripSeparator1 = new ToolStripSeparator();            cmdRestart = new ToolStripMenuItem();            toolStripSeparator2 = new ToolStripSeparator();            cmdConfigure = new ToolStripMenuItem();            cmdBrowse = new ToolStripMenuItem();            //             // notifyIcon1            //             notifyIcon1.ContextMenuStrip = contextMenuStrip1;            notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));            notifyIcon1.Text = "Emby";            notifyIcon1.Visible = true;            //             // contextMenuStrip1            //             contextMenuStrip1.Items.AddRange(new ToolStripItem[] {            cmdBrowse,            cmdConfigure,            cmdPremiere,            toolStripSeparator2,            cmdRestart,            toolStripSeparator1,            cmdCommunity,            cmdExit});            contextMenuStrip1.Name = "contextMenuStrip1";            contextMenuStrip1.ShowCheckMargin = true;            contextMenuStrip1.ShowImageMargin = false;            contextMenuStrip1.Size = new System.Drawing.Size(209, 214);            //             // cmdExit            //             cmdExit.Name = "cmdExit";            cmdExit.Size = new System.Drawing.Size(208, 22);            //             // cmdCommunity            //             cmdCommunity.Name = "cmdCommunity";            cmdCommunity.Size = new System.Drawing.Size(208, 22);            //             // cmdPremiere            //             cmdPremiere.Name = "cmdPremiere";            cmdPremiere.Size = new System.Drawing.Size(208, 22);            //             // toolStripSeparator1            //             toolStripSeparator1.Name = "toolStripSeparator1";            toolStripSeparator1.Size = new System.Drawing.Size(205, 6);            //             // cmdRestart            //             cmdRestart.Name = "cmdRestart";            cmdRestart.Size = new System.Drawing.Size(208, 22);            //             // toolStripSeparator2            //             toolStripSeparator2.Name = "toolStripSeparator2";            toolStripSeparator2.Size = new System.Drawing.Size(205, 6);            //             // cmdConfigure            //             cmdConfigure.Name = "cmdConfigure";            cmdConfigure.Size = new System.Drawing.Size(208, 22);            //             // cmdBrowse            //             cmdBrowse.Name = "cmdBrowse";            cmdBrowse.Size = new System.Drawing.Size(208, 22);            cmdExit.Click += cmdExit_Click;            cmdRestart.Click += cmdRestart_Click;            cmdConfigure.Click += cmdConfigure_Click;            cmdCommunity.Click += cmdCommunity_Click;            cmdPremiere.Click += cmdPremiere_Click;            cmdBrowse.Click += cmdBrowse_Click;            _configurationManager.ConfigurationUpdated += Instance_ConfigurationUpdated;            LocalizeText();            notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;        }        void notifyIcon1_DoubleClick(object sender, EventArgs e)        {            BrowserLauncher.OpenDashboard(_appHost);        }        private void LocalizeText()        {            _uiCulture = _configurationManager.Configuration.UICulture;            cmdExit.Text = _localization.GetLocalizedString("LabelExit");            cmdCommunity.Text = _localization.GetLocalizedString("LabelVisitCommunity");            cmdPremiere.Text = _localization.GetLocalizedString("Emby Premiere");            cmdBrowse.Text = _localization.GetLocalizedString("LabelBrowseLibrary");            cmdConfigure.Text = _localization.GetLocalizedString("LabelConfigureServer");            cmdRestart.Text = _localization.GetLocalizedString("LabelRestartServer");        }        private string _uiCulture;        /// <summary>        /// Handles the ConfigurationUpdated event of the Instance control.        /// </summary>        /// <param name="sender">The source of the event.</param>        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>        void Instance_ConfigurationUpdated(object sender, EventArgs e)        {            if (!string.Equals(_configurationManager.Configuration.UICulture, _uiCulture,                    StringComparison.OrdinalIgnoreCase))            {                LocalizeText();            }        }        void cmdBrowse_Click(object sender, EventArgs e)        {            BrowserLauncher.OpenWebClient(_appHost);        }        void cmdPremiere_Click(object sender, EventArgs e)        {            BrowserLauncher.OpenEmbyPremiere(_appHost);        }        void cmdCommunity_Click(object sender, EventArgs e)        {            BrowserLauncher.OpenCommunity(_appHost);        }        void cmdConfigure_Click(object sender, EventArgs e)        {            BrowserLauncher.OpenDashboard(_appHost);        }        void cmdRestart_Click(object sender, EventArgs e)        {            _appHost.Restart();        }        void cmdExit_Click(object sender, EventArgs e)        {            _appHost.Shutdown();        }        public void Dispose()        {            Dispose(true);        }        protected virtual void Dispose(bool disposing)        {            if (disposing)            {                if (notifyIcon1 != null)                {                    notifyIcon1.Visible = false;                    notifyIcon1.Dispose();                    notifyIcon1 = null;                }                if (components != null)                {                    components.Dispose();                }            }        }    }}
 |