| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | 
							- using MediaBrowser.Controller;
 
- using MediaBrowser.Controller.Configuration;
 
- using MediaBrowser.Model.Logging;
 
- using System;
 
- using MonoMac.Foundation;
 
- using MonoMac.AppKit;
 
- using Emby.Server.Implementations.Browser;
 
- namespace MediaBrowser.Server.Mac
 
- {
 
- 	public class MenuBarIcon
 
- 	{
 
- 		private NSMenuItem browseMenuItem;
 
- 		private NSMenuItem configureMenuItem;
 
- 		private NSMenuItem quitMenuItem;
 
- 		private NSMenuItem communityMenuItem;
 
- 		public static MenuBarIcon Instance;
 
- 		public MenuBarIcon (ILogger logger)
 
- 		{
 
- 			Instance = this;
 
- 			Logger = logger;
 
- 		}
 
- 		public void ShowIcon() {
 
- 			NSApplication.SharedApplication.BeginInvokeOnMainThread (CreateMenus);
 
- 		}
 
- 		private void CreateMenus() {
 
- 			CreateNsMenu ();
 
- 		}
 
- 		public void Localize() 
 
- 		{
 
- 			NSApplication.SharedApplication.BeginInvokeOnMainThread (() => {
 
- 				var configManager = MainClass.AppHost.ServerConfigurationManager;
 
- 				configManager.ConfigurationUpdated -= Instance_ConfigurationUpdated;
 
- 				LocalizeText ();
 
- 				configManager.ConfigurationUpdated += Instance_ConfigurationUpdated;
 
- 			});
 
- 		}
 
- 		private NSStatusItem statusItem;
 
- 		private void CreateNsMenu() {
 
- 			var menu = new NSMenu ();
 
- 			statusItem = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
 
- 			statusItem.Menu = menu;
 
- 			statusItem.Image = NSImage.ImageNamed("statusicon");
 
- 			statusItem.HighlightMode = true;
 
- 			menu.RemoveAllItems ();
 
- 			browseMenuItem = new NSMenuItem ("Browse Media Library", "b", delegate {
 
- 				Browse (NSApplication.SharedApplication);
 
- 			});
 
- 			menu.AddItem (browseMenuItem);
 
- 			configureMenuItem = new NSMenuItem ("Configure Media Browser", "c", delegate {
 
- 				Configure (NSApplication.SharedApplication);
 
- 			});
 
- 			menu.AddItem (configureMenuItem);
 
- 			communityMenuItem = new NSMenuItem ("Visit Community", "v", delegate {
 
- 				Community (NSApplication.SharedApplication);
 
- 			});
 
- 			menu.AddItem (communityMenuItem);
 
- 			quitMenuItem = new NSMenuItem ("Quit", "q", delegate {
 
- 				Quit (NSApplication.SharedApplication);
 
- 			});
 
- 			menu.AddItem (quitMenuItem);
 
- 		}
 
- 		private ILogger Logger{ get; set;}
 
- 		private void Quit(NSObject sender)
 
- 		{
 
- 			MainClass.AppHost.Shutdown();
 
- 		}
 
- 		private void Community(NSObject sender)
 
- 		{
 
- 			BrowserLauncher.OpenCommunity(MainClass.AppHost);
 
- 		}
 
- 		private void Configure(NSObject sender)
 
- 		{
 
- 			BrowserLauncher.OpenDashboard(MainClass.AppHost);
 
- 		}
 
- 		private void Browse(NSObject sender)
 
- 		{
 
- 			BrowserLauncher.OpenWebClient(MainClass.AppHost);
 
- 		}
 
- 		public void Terminate() 
 
- 		{
 
- 			NSApplication.SharedApplication.InvokeOnMainThread (() => NSApplication.SharedApplication.Terminate(NSApplication.SharedApplication));
 
- 		}
 
- 		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)
 
- 		{
 
- 			var configManager = MainClass.AppHost.ServerConfigurationManager;
 
- 			if (!string.Equals(configManager.Configuration.UICulture, _uiCulture,
 
- 				StringComparison.OrdinalIgnoreCase))
 
- 			{
 
- 				LocalizeText();
 
- 			}
 
- 		}
 
- 		private void LocalizeText()
 
- 		{
 
- 			var configManager = MainClass.AppHost.ServerConfigurationManager;
 
- 			_uiCulture = configManager.Configuration.UICulture;
 
- 			NSApplication.SharedApplication.BeginInvokeOnMainThread (LocalizeInternal);
 
- 		}
 
- 		private void LocalizeInternal() {
 
- 			var localization = MainClass.AppHost.LocalizationManager;
 
- 			quitMenuItem.Title = localization.GetLocalizedString("LabelExit");
 
- 			communityMenuItem.Title = localization.GetLocalizedString("LabelVisitCommunity");
 
- 			browseMenuItem.Title = localization.GetLocalizedString("LabelBrowseLibrary");
 
- 			configureMenuItem.Title = localization.GetLocalizedString("LabelConfigureServer");
 
- 		}
 
- 	}
 
- }
 
 
  |