You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jellyfin/MediaBrowser.Server.Mac/AppController.cs

110 lines
2.6 KiB

10 years ago
using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Localization;
using MediaBrowser.Model.Logging;
using MediaBrowser.Server.Startup.Common.Browser;
10 years ago
using System;
using MonoMac.Foundation;
using MonoMac.AppKit;
10 years ago
namespace MediaBrowser.Server.Mac
10 years ago
{
[Register("AppController")]
public partial class AppController : NSObject
{
10 years ago
private NSMenuItem browseMenuItem;
private NSMenuItem configureMenuItem;
private NSMenuItem developerMenuItem;
private NSMenuItem quitMenuItem;
private NSMenuItem githubMenuItem;
private NSMenuItem apiMenuItem;
private NSMenuItem communityMenuItem;
10 years ago
public AppController()
{
}
public override void AwakeFromNib()
{
10 years ago
var statusItem = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
statusItem.Menu = statusMenu;
statusItem.Image = NSImage.ImageNamed("touchicon");
statusItem.HighlightMode = true;
10 years ago
10 years ago
statusItem.Menu.RemoveAllItems ();
10 years ago
10 years ago
browseMenuItem = new NSMenuItem ("Browse Media Library", "b", delegate {
Browse (this);
});
statusItem.Menu.AddItem (browseMenuItem);
10 years ago
10 years ago
configureMenuItem = new NSMenuItem ("Configure Media Browser", "c", delegate {
Configure (this);
});
statusItem.Menu.AddItem (configureMenuItem);
10 years ago
10 years ago
developerMenuItem = new NSMenuItem ("Developer Resources");
statusItem.Menu.AddItem (developerMenuItem);
10 years ago
10 years ago
var developerMenu = new NSMenu ();
developerMenuItem.Submenu = developerMenu;
apiMenuItem = new NSMenuItem ("Api Documentation", "a", delegate {
ApiDocs (this);
});
developerMenu.AddItem (apiMenuItem);
githubMenuItem = new NSMenuItem ("Github", "g", delegate {
Github (this);
});
developerMenu.AddItem (githubMenuItem);
10 years ago
10 years ago
communityMenuItem = new NSMenuItem ("Visit Community", "v", delegate {
Community (this);
});
statusItem.Menu.AddItem (communityMenuItem);
quitMenuItem = new NSMenuItem ("Quit", "q", delegate {
Quit (this);
});
statusItem.Menu.AddItem (quitMenuItem);
10 years ago
}
10 years ago
private IServerApplicationHost AppHost{ get; set;}
private ILogger Logger{ get; set;}
private void Quit(NSObject sender)
10 years ago
{
10 years ago
NSApplication.SharedApplication.Terminate(this);
//AppHost.Shutdown();
}
10 years ago
10 years ago
private void Community(NSObject sender)
{
BrowserLauncher.OpenCommunity(Logger);
10 years ago
}
10 years ago
private void Configure(NSObject sender)
10 years ago
{
10 years ago
BrowserLauncher.OpenDashboard(AppHost, Logger);
}
10 years ago
10 years ago
private void Browse(NSObject sender)
{
BrowserLauncher.OpenWebClient(AppHost, Logger);
10 years ago
}
10 years ago
private void Github(NSObject sender)
10 years ago
{
10 years ago
BrowserLauncher.OpenGithub(Logger);
}
10 years ago
10 years ago
private void ApiDocs(NSObject sender)
{
BrowserLauncher.OpenSwagger(AppHost, Logger);
10 years ago
}
}
}