mac: clean up

This commit is contained in:
Hylke Bons 2012-11-24 11:27:45 +00:00
parent 5f6c00f773
commit 22c3fc059d
7 changed files with 76 additions and 139 deletions

View file

@ -31,14 +31,9 @@ namespace SparkleShare {
private NSImage about_image;
private NSImageView about_image_view;
private NSTextField version_text_field;
private NSTextField updates_text_field;
private NSTextField credits_text_field;
private NSTextField version_text_field, updates_text_field, credits_text_field;
private NSButton hidden_close_button;
private SparkleLink website_link;
private SparkleLink credits_link;
private SparkleLink report_problem_link;
private SparkleLink debug_log_link;
private SparkleLink website_link, credits_link, report_problem_link, debug_log_link;
public SparkleAbout (IntPtr handle) : base (handle) { }

View file

@ -16,7 +16,6 @@
using System;
using System.IO;
using MonoMac.AppKit;
using MonoMac.Foundation;
@ -44,10 +43,7 @@ namespace SparkleShare {
NSUserNotificationCenter center = NSUserNotificationCenter.DefaultUserNotificationCenter;
center.ShouldPresentNotification = delegate { return true; };
center.DidActivateNotification += delegate {
Controller.BubbleClicked ();
};
center.DidActivateNotification += delegate { Controller.BubbleClicked (); };
center.ScheduleNotification (notification);
});

View file

@ -36,10 +36,7 @@ namespace SparkleShare {
private NSBox background;
private NSPopUpButton popup_button;
private NSProgressIndicator progress_indicator;
private NSTextField size_label;
private NSTextField size_label_value;
private NSTextField history_label;
private NSTextField history_label_value;
private NSTextField size_label, size_label_value, history_label, history_label_value;
private NSButton hidden_close_button;
@ -174,9 +171,7 @@ namespace SparkleShare {
ContentView.AddSubview (this.hidden_close_button);
(Delegate as SparkleEventsDelegate).WindowResized += delegate (SizeF new_window_size) {
Program.Controller.Invoke (() => {
Relayout (new_window_size);
});
Program.Controller.Invoke (() => Relayout (new_window_size));
};
@ -254,37 +249,31 @@ namespace SparkleShare {
this.size_label.Frame = new RectangleF (
new PointF (this.size_label.Frame.X, new_window_size.Height - TitlebarHeight - 30),
this.size_label.Frame.Size
);
this.size_label.Frame.Size);
this.size_label_value.Frame = new RectangleF (
new PointF (this.size_label_value.Frame.X, new_window_size.Height - TitlebarHeight - 30),
this.size_label_value.Frame.Size
);
this.size_label_value.Frame.Size);
this.history_label.Frame = new RectangleF (
new PointF (this.history_label.Frame.X, new_window_size.Height - TitlebarHeight - 30),
this.history_label.Frame.Size
);
this.history_label.Frame.Size);
this.history_label_value.Frame = new RectangleF (
new PointF (this.history_label_value.Frame.X, new_window_size.Height - TitlebarHeight - 30),
this.history_label_value.Frame.Size
);
this.history_label_value.Frame.Size);
this.progress_indicator.Frame = new RectangleF (
new PointF (new_window_size.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10),
this.progress_indicator.Frame.Size);
this.popup_button.RemoveFromSuperview (); // Needed to prevent redraw glitches
this.popup_button.Frame = new RectangleF (
new PointF (new_window_size.Width - this.popup_button.Frame.Width - 12, new_window_size.Height - TitlebarHeight - 33),
this.popup_button.Frame.Size
);
this.popup_button.Frame.Size);
ContentView.AddSubview (this.popup_button);
this.progress_indicator.Frame = new RectangleF (
new PointF (new_window_size.Width / 2 - 10, this.web_view.Frame.Height / 2 + 10),
this.progress_indicator.Frame.Size
);
}

View file

@ -34,8 +34,7 @@ namespace SparkleShare {
private NSImage side_splash;
private NSImageView side_splash_view;
private NSTextField header_text_field;
private NSTextField description_text_field;
private NSTextField header_text_field, description_text_field;
public SparkleSetupWindow () : base ()

View file

@ -21,25 +21,18 @@ using System.IO;
using MonoMac.Foundation;
using MonoMac.AppKit;
using MonoMac.ObjCRuntime;
namespace SparkleShare {
public class SparkleStatusIcon : NSObject {
public class SparkleStatusIcon {
public SparkleStatusIconController Controller = new SparkleStatusIconController ();
private NSStatusItem status_item = NSStatusBar.SystemStatusBar.CreateStatusItem (28);
private NSMenu menu, submenu;
private NSMenu menu;
private NSMenu submenu;
private NSMenuItem state_item;
private NSMenuItem folder_item;
private NSMenuItem add_item;
private NSMenuItem about_item;
private NSMenuItem recent_events_item;
private NSMenuItem quit_item;
private NSMenuItem state_item, folder_item, add_item, about_item, recent_events_item, quit_item;
private NSMenuItem [] folder_menu_items, error_menu_items, try_again_menu_items;
private NSImage syncing_idle_image = new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "process-syncing-idle.png"));
private NSImage syncing_up_image = new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "process-syncing-up.png"));
@ -52,17 +45,13 @@ namespace SparkleShare {
private NSImage syncing_down_image_active = new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "process-syncing-down-active.png"));
private NSImage syncing_image_active = new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "process-syncing-active.png"));
private NSImage syncing_error_image_active = new NSImage (Path.Combine (NSBundle.MainBundle.ResourcePath, "Pixmaps", "process-syncing-error-active.png"));
private NSImage folder_image = NSImage.ImageNamed ("NSFolder");
private NSImage caution_image = NSImage.ImageNamed ("NSCaution");
private NSImage sparkleshare_image = NSImage.ImageNamed ("sparkleshare-folder");
private NSMenuItem [] folder_menu_items;
private NSMenuItem [] error_menu_items;
private NSMenuItem [] try_again_menu_items;
public SparkleStatusIcon () : base ()
public SparkleStatusIcon ()
{
this.status_item.HighlightMode = true;
this.status_item.Image = this.syncing_idle_image;
@ -102,7 +91,7 @@ namespace SparkleShare {
}
}
this.status_item.Image.Size = new SizeF (16, 16);
this.status_item.Image.Size = new SizeF (16, 16);
this.status_item.AlternateImage.Size = new SizeF (16, 16);
});
};
@ -123,98 +112,78 @@ namespace SparkleShare {
public void CreateMenu ()
{
this.menu = new NSMenu ();
this.menu.AutoEnablesItems = false;
this.menu = new NSMenu () { AutoEnablesItems = false };
this.state_item = new NSMenuItem () {
Title = Controller.StateText,
Enabled = false
};
this.folder_item = new NSMenuItem () {
Title = "SparkleShare",
Enabled = true
Title = "SparkleShare",
Enabled = true
};
this.folder_item.Image = this.sparkleshare_image;
this.folder_item.Image.Size = new SizeF (16, 16);
this.add_item = new NSMenuItem () {
Title = "Add Hosted Project…",
Enabled = true
};
this.add_item.Activated += delegate {
Controller.AddHostedProjectClicked ();
};
this.add_item.Activated += Controller.AddHostedProjectClicked;
this.recent_events_item = new NSMenuItem () {
Title = "Recent Changes…",
Enabled = Controller.RecentEventsItemEnabled
};
if (Controller.Folders.Length > 0) {
this.recent_events_item.Activated += delegate {
Controller.RecentEventsClicked ();
};
}
if (Controller.RecentEventsItemEnabled)
this.recent_events_item.Activated += Controller.RecentEventsClicked;
this.about_item = new NSMenuItem () {
Title = "About SparkleShare",
Enabled = true
};
this.about_item.Activated += delegate {
Controller.AboutClicked ();
};
this.about_item.Activated += Controller.AboutClicked;
this.quit_item = new NSMenuItem () {
Title = "Quit",
Enabled = Controller.QuitItemEnabled
};
this.quit_item.Activated += delegate {
Controller.QuitClicked ();
};
this.quit_item.Activated += Controller.QuitClicked;
this.menu.AddItem (this.state_item);
this.menu.AddItem (NSMenuItem.SeparatorItem);
this.menu.AddItem (this.folder_item);
this.submenu = new NSMenu ();
this.submenu.AddItem (this.recent_events_item);
this.submenu.AddItem (this.add_item);
this.submenu.AddItem (NSMenuItem.SeparatorItem);
this.submenu.AddItem (this.about_item);
this.folder_item.Submenu = this.submenu;
this.folder_menu_items = new NSMenuItem [Controller.Folders.Length];
this.error_menu_items = new NSMenuItem [Controller.Folders.Length];
this.folder_menu_items = new NSMenuItem [Controller.Folders.Length];
this.error_menu_items = new NSMenuItem [Controller.Folders.Length];
this.try_again_menu_items = new NSMenuItem [Controller.Folders.Length];
if (Controller.Folders.Length > 0) {
int i = 0;
foreach (string folder_name in Controller.Folders) {
NSMenuItem item = new NSMenuItem ();
item.Title = folder_name;
NSMenuItem item = new NSMenuItem () { Title = folder_name };
this.folder_menu_items [i] = item;
if (!string.IsNullOrEmpty (Controller.FolderErrors [i])) {
item.Image = this.caution_image;
item.Submenu = new NSMenu ();
this.error_menu_items [i] = new NSMenuItem () {
Title = Controller.FolderErrors [i]
};
this.try_again_menu_items [i] = new NSMenuItem ();
this.try_again_menu_items [i].Title = "Try Again";
this.error_menu_items [i] = new NSMenuItem ();
this.error_menu_items [i].Title = Controller.FolderErrors [i];
this.try_again_menu_items [i] = new NSMenuItem ();
this.try_again_menu_items [i].Title = "Try Again";
this.try_again_menu_items [i].Activated += Controller.TryAgainDelegate (folder_name);;
item.Submenu.AddItem (this.error_menu_items [i]);
item.Submenu.AddItem (NSMenuItem.SeparatorItem);
item.Submenu.AddItem (this.try_again_menu_items [i]);
@ -225,37 +194,31 @@ namespace SparkleShare {
}
item.Image.Size = new SizeF (16, 16);
i++;
};
}
this.menu.AddItem (this.state_item);
this.menu.AddItem (NSMenuItem.SeparatorItem);
this.menu.AddItem (this.folder_item);
this.submenu = new NSMenu ();
this.submenu.AddItem (this.recent_events_item);
this.submenu.AddItem (this.add_item);
this.submenu.AddItem (NSMenuItem.SeparatorItem);
this.submenu.AddItem (this.about_item);
this.folder_item.Submenu = this.submenu;
foreach (NSMenuItem item in this.folder_menu_items)
this.menu.AddItem (item);
this.menu.AddItem (NSMenuItem.SeparatorItem);
this.menu.AddItem (this.quit_item);
this.menu.Delegate = new SparkleStatusIconMenuDelegate ();
this.status_item.Menu = this.menu;
}
}
public class SparkleStatusIconMenuDelegate : NSMenuDelegate {
public SparkleStatusIconMenuDelegate ()
{
}
public SparkleStatusIconMenuDelegate (IntPtr handle) : base (handle)
{
}
public override void MenuWillHighlightItem (NSMenu menu, NSMenuItem item)
{
}
}
}

View file

@ -48,11 +48,11 @@ namespace SparkleShare {
NSApplication.SharedApplication.ApplicationIconImage = NSImage.ImageNamed ("sparkleshare-app.icns");
Setup = new SparkleSetup ();
EventLog = new SparkleEventLog ();
About = new SparkleAbout ();
Bubbles = new SparkleBubbles ();
StatusIcon = new SparkleStatusIcon ();
Setup = new SparkleSetup ();
EventLog = new SparkleEventLog ();
About = new SparkleAbout ();
Bubbles = new SparkleBubbles ();
StatusIcon = new SparkleStatusIcon ();
});
Program.Controller.UIHasLoaded ();

View file

@ -46,7 +46,7 @@ namespace SparkleShare {
public delegate void UpdateQuitItemEventHandler (bool quit_item_enabled);
public IconState CurrentState = IconState.Idle;
public string StateText = "Welcome to SparkleShare!";
public string StateText = "Welcome to SparkleShare!";
public string [] Folders;
public string [] FolderErrors;
@ -201,20 +201,13 @@ namespace SparkleShare {
public void TryAgainClicked (string subfolder)
{
foreach (SparkleRepoBase repo in Program.Controller.Repositories) {
foreach (SparkleRepoBase repo in Program.Controller.Repositories)
if (repo.Name.Equals (subfolder))
new Thread (() => repo.ForceRetry ()).Start ();
}
}
public void AddHostedProjectClicked ()
{
new Thread (() => Program.Controller.ShowSetupWindow (PageType.Add)).Start ();
}
public void RecentEventsClicked ()
public void RecentEventsClicked (object sender, EventArgs args)
{
new Thread (() => {
while (!Program.Controller.RepositoriesLoaded)
@ -226,13 +219,19 @@ namespace SparkleShare {
}
public void AboutClicked ()
public void AddHostedProjectClicked (object sender, EventArgs args)
{
new Thread (() => Program.Controller.ShowSetupWindow (PageType.Add)).Start ();
}
public void AboutClicked (object sender, EventArgs args)
{
Program.Controller.ShowAboutWindow ();
}
public void QuitClicked ()
public void QuitClicked (object sender, EventArgs args)
{
Program.Controller.Quit ();
}
@ -240,17 +239,13 @@ namespace SparkleShare {
public EventHandler OpenFolderDelegate (string subfolder)
{
return delegate {
SubfolderClicked (subfolder);
};
return delegate { SubfolderClicked (subfolder); };
}
public EventHandler TryAgainDelegate (string subfolder)
{
return delegate {
TryAgainClicked (subfolder);
};
return delegate { TryAgainClicked (subfolder); };
}