[statusicon][osx] Make it not crash
This commit is contained in:
parent
ab3cdb7dca
commit
2c8d19be8b
|
@ -9,12 +9,17 @@ namespace SparkleShare
|
||||||
{
|
{
|
||||||
public partial class AppDelegate : NSApplicationDelegate
|
public partial class AppDelegate : NSApplicationDelegate
|
||||||
{
|
{
|
||||||
|
|
||||||
MainWindowController mainWindowController;
|
MainWindowController mainWindowController;
|
||||||
NSStatusItem statusItem;
|
NSStatusItem StatusItem;
|
||||||
|
|
||||||
NSMenu menu;
|
|
||||||
NSMenuItem item;
|
|
||||||
|
|
||||||
|
NSMenu Menu;
|
||||||
|
NSMenuItem FolderMenuItem;
|
||||||
|
NSMenuItem [] FolderMenuItems;
|
||||||
|
NSMenuItem SyncMenuItem;
|
||||||
|
NSMenuItem NotificationsMenuItem;
|
||||||
|
NSMenuItem AboutMenuItem;
|
||||||
|
NSMenuItem QuitMenuItem;
|
||||||
|
|
||||||
|
|
||||||
public AppDelegate ()
|
public AppDelegate ()
|
||||||
|
@ -23,109 +28,127 @@ namespace SparkleShare
|
||||||
|
|
||||||
public override void FinishedLaunching (NSObject notification)
|
public override void FinishedLaunching (NSObject notification)
|
||||||
{
|
{
|
||||||
mainWindowController = new MainWindowController ();
|
|
||||||
mainWindowController.Window.MakeKeyAndOrderFront (this);
|
// mainWindowController = new MainWindowController ();
|
||||||
|
// mainWindowController.Window.MakeKeyAndOrderFront (this);
|
||||||
|
|
||||||
// SparkleStatusIcon = new SparkleStatusIcon ();
|
// SparkleStatusIcon = new SparkleStatusIcon ();
|
||||||
|
|
||||||
SparkleRepo repo = new SparkleRepo ("/Users/hbons/SparkleShare/SparkleShare-Test");
|
// SparkleRepo repo = new SparkleRepo ("/Users/hbons/SparkleShare/SparkleShare-Test");
|
||||||
statusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (32);
|
|
||||||
|
|
||||||
statusItem.Enabled = true;
|
StatusItem = NSStatusBar.SystemStatusBar.CreateStatusItem (32);
|
||||||
|
|
||||||
statusItem.Image = NSImage.ImageNamed ("sparkleshare-idle.png");
|
StatusItem.Enabled = true;
|
||||||
statusItem.AlternateImage = NSImage.ImageNamed ("sparkleshare-idle-focus.png");
|
StatusItem.Image = NSImage.ImageNamed ("sparkleshare-idle.png");
|
||||||
statusItem.Image.Size = new SizeF (16, 16);
|
StatusItem.AlternateImage = NSImage.ImageNamed ("sparkleshare-idle-focus.png");
|
||||||
statusItem.AlternateImage.Size = new SizeF (16, 16);
|
StatusItem.Image.Size = new SizeF (13, 13);
|
||||||
|
StatusItem.AlternateImage.Size = new SizeF (13, 13);
|
||||||
|
StatusItem.HighlightMode = true;
|
||||||
|
|
||||||
menu = new NSMenu() {};
|
Menu = new NSMenu ();
|
||||||
// menu.AddItem (new NSMenuItem () { Title="Up to date (102 MB)", Enabled = true });
|
|
||||||
// menu.AddItem (NSMenuItem.SeparatorItem);
|
|
||||||
|
|
||||||
item = new NSMenuItem () {
|
|
||||||
|
Menu.AddItem (new NSMenuItem () { Title="Up to date (102 ᴍʙ)", Enabled = true });
|
||||||
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
|
FolderMenuItem = new NSMenuItem () {
|
||||||
Title="SparkleShare", Enabled = true,
|
Title="SparkleShare", Enabled = true,
|
||||||
Action = new Selector ("ddd")
|
Action = new Selector ("ddd")
|
||||||
};
|
};
|
||||||
|
|
||||||
item.Activated += delegate {
|
FolderMenuItem.Activated += delegate {
|
||||||
Console.WriteLine ("DDDD");
|
Console.WriteLine ("DDDD");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
FolderMenuItem.Image = NSImage.ImageNamed ("NSFolder");
|
||||||
|
FolderMenuItem.Image.Size = new SizeF (16, 16);
|
||||||
|
|
||||||
|
Menu.AddItem (FolderMenuItem);
|
||||||
|
|
||||||
|
FolderMenuItems = new NSMenuItem [2] {
|
||||||
|
new NSMenuItem () { Title = "gnome-design" },
|
||||||
|
new NSMenuItem () { Title = "tango-icons" }
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (NSMenuItem item in FolderMenuItems) {
|
||||||
|
|
||||||
|
item.Activated += delegate {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
item.Image = NSImage.ImageNamed ("NSFolder");
|
item.Image = NSImage.ImageNamed ("NSFolder");
|
||||||
item.Image.Size = new SizeF (16, 16);
|
Menu.AddItem (item);
|
||||||
|
|
||||||
menu.AddItem (item);
|
|
||||||
|
|
||||||
/* var tmp = new NSMenuItem () {
|
|
||||||
Title="gnome-design", Enabled = true,
|
|
||||||
Action = new Selector ("ddd")
|
|
||||||
};
|
};
|
||||||
|
|
||||||
tmp.Activated += delegate {
|
|
||||||
Console.WriteLine ("DDDD");
|
|
||||||
};
|
|
||||||
|
|
||||||
tmp.Image = NSImage.ImageNamed ("NSFolder");
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
tmp.Image.Size = new SizeF (16, 16);
|
|
||||||
|
|
||||||
menu.AddItem (tmp);
|
|
||||||
menu.AddItem (NSMenuItem.SeparatorItem);
|
|
||||||
|
|
||||||
Console.WriteLine (item.Action.Name);
|
SyncMenuItem = new NSMenuItem () {
|
||||||
|
|
||||||
NSMenuItem sync_menu_item = new NSMenuItem () {
|
|
||||||
Title = "Sync Remote Folder..."
|
Title = "Sync Remote Folder..."
|
||||||
};
|
};
|
||||||
|
|
||||||
sync_menu_item.Activated += delegate {
|
SyncMenuItem.Activated += delegate {
|
||||||
Console.WriteLine ("DDDD");
|
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.AddItem (sync_menu_item);
|
Menu.AddItem (SyncMenuItem);
|
||||||
menu.AddItem (NSMenuItem.SeparatorItem);
|
|
||||||
|
|
||||||
NSMenuItem notifications_menu_item = new NSMenuItem () {
|
|
||||||
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
|
NotificationsMenuItem = new NSMenuItem () {
|
||||||
Title = "Show Notifications",
|
Title = "Show Notifications",
|
||||||
State = NSCellStateValue.On
|
State = NSCellStateValue.On
|
||||||
};
|
};
|
||||||
|
|
||||||
notifications_menu_item.Activated += delegate {
|
NotificationsMenuItem.Activated += delegate {
|
||||||
statusItem.Image = NSImage.ImageNamed ("NSComputer");
|
|
||||||
if (notifications_menu_item.State == NSCellStateValue.On)
|
//StatusItem.Image = NSImage.ImageNamed ("NSComputer");
|
||||||
notifications_menu_item.State = NSCellStateValue.Off;
|
if (NotificationsMenuItem.State == NSCellStateValue.On)
|
||||||
|
|
||||||
|
NotificationsMenuItem.State = NSCellStateValue.Off;
|
||||||
|
|
||||||
else
|
else
|
||||||
notifications_menu_item.State = NSCellStateValue.On;
|
|
||||||
|
NotificationsMenuItem.State = NSCellStateValue.On;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.AddItem (notifications_menu_item);
|
Menu.AddItem (NotificationsMenuItem);
|
||||||
menu.AddItem (NSMenuItem.SeparatorItem);
|
|
||||||
|
|
||||||
NSMenuItem about_menu_item = new NSMenuItem () {
|
|
||||||
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
|
AboutMenuItem = new NSMenuItem () {
|
||||||
Title = "About"
|
Title = "About"
|
||||||
};
|
};
|
||||||
|
|
||||||
about_menu_item.Activated += delegate {
|
AboutMenuItem.Activated += delegate {
|
||||||
Console.WriteLine ("DDDD");
|
|
||||||
statusItem.Title = "bla";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.AddItem (about_menu_item);
|
Menu.AddItem (AboutMenuItem);
|
||||||
menu.AddItem (NSMenuItem.SeparatorItem);
|
|
||||||
|
|
||||||
NSMenuItem quit_menu_item = new NSMenuItem () {
|
|
||||||
|
Menu.AddItem (NSMenuItem.SeparatorItem);
|
||||||
|
|
||||||
|
|
||||||
|
QuitMenuItem = new NSMenuItem () {
|
||||||
Title = "Quit"
|
Title = "Quit"
|
||||||
};
|
};
|
||||||
quit_menu_item.Activated += delegate {
|
|
||||||
Console.WriteLine ("DDDD");
|
QuitMenuItem.Activated += delegate {
|
||||||
Environment.Exit (0);
|
Environment.Exit (0);
|
||||||
};
|
};
|
||||||
|
|
||||||
menu.AddItem (quit_menu_item);
|
Menu.AddItem (QuitMenuItem);
|
||||||
|
|
||||||
*/
|
StatusItem.Menu = Menu;
|
||||||
|
|
||||||
statusItem.Menu = menu;
|
|
||||||
statusItem.HighlightMode = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 283 B |
Loading…
Reference in a new issue