about: simplify UI events

This commit is contained in:
Hylke Bons 2012-12-02 17:36:37 +00:00
parent e22eb9417d
commit 895d17d057
7 changed files with 24 additions and 78 deletions

View file

@ -55,6 +55,7 @@ namespace SparkleShare {
CreateAbout (); CreateAbout ();
Controller.HideWindowEvent += delegate { Controller.HideWindowEvent += delegate {
Application.Invoke (delegate { Application.Invoke (delegate {
HideAll (); HideAll ();
@ -68,29 +69,9 @@ namespace SparkleShare {
}); });
}; };
Controller.NewVersionEvent += delegate (string new_version) { Controller.UpdateLabelEvent += delegate (string text) {
Application.Invoke (delegate { Application.Invoke (delegate {
this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#8cc4ff'>{0}</span>", this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#8cc4ff'>{0}</span>", text);
string.Format ("A newer version ({0}) is available!", new_version));
this.updates.ShowAll ();
});
};
Controller.VersionUpToDateEvent += delegate {
Application.Invoke (delegate {
this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#8cc4ff'>{0}</span>",
"You are running the latest version.");
this.updates.ShowAll ();
});
};
Controller.CheckingForNewVersionEvent += delegate {
Application.Invoke (delegate {
this.updates.Markup = String.Format ("<span font_size='small' fgcolor='#8cc4ff'>{0}</span>",
"Checking for updates...");
this.updates.ShowAll (); this.updates.ShowAll ();
}); });
}; };

View file

@ -59,9 +59,7 @@ namespace SparkleShare {
CreateAbout (); CreateAbout ();
this.hidden_close_button.Activated += delegate { this.hidden_close_button.Activated += delegate { Controller.WindowClosed (); };
Controller.WindowClosed ();
};
Controller.HideWindowEvent += delegate { Controller.HideWindowEvent += delegate {
Program.Controller.Invoke (() => PerformClose (this)); Program.Controller.Invoke (() => PerformClose (this));
@ -71,22 +69,8 @@ namespace SparkleShare {
Program.Controller.Invoke (() => OrderFrontRegardless ()); Program.Controller.Invoke (() => OrderFrontRegardless ());
}; };
Controller.NewVersionEvent += delegate (string new_version) { Controller.UpdateLabelEvent += delegate (string text) {
Program.Controller.Invoke (() => { Program.Controller.Invoke (() => { this.updates_text_field.StringValue = text; });
this.updates_text_field.StringValue = "A newer version (" + new_version + ") is available!";
});
};
Controller.VersionUpToDateEvent += delegate {
Program.Controller.Invoke (() => {
this.updates_text_field.StringValue = "You are running the latest version.";
});
};
Controller.CheckingForNewVersionEvent += delegate {
Program.Controller.Invoke (() => {
this.updates_text_field.StringValue = "Checking for updates...";
});
}; };

View file

@ -30,11 +30,10 @@ namespace SparkleShare {
public SparkleBubbles () public SparkleBubbles ()
{ {
Controller.ShowBubbleEvent += delegate (string title, string subtext, string image_path) { Controller.ShowBubbleEvent += delegate (string title, string subtext, string image_path) {
// Notification center was introduced in Mountain Lion
if (Environment.OSVersion.Version.Major < 12) if (Environment.OSVersion.Version.Major < 12)
return; return; // The notification center was introduced in Mountain Lion
InvokeOnMainThread (delegate { InvokeOnMainThread (() => {
NSUserNotification notification = new NSUserNotification () { NSUserNotification notification = new NSUserNotification () {
Title = title, Title = title,
InformativeText = subtext, InformativeText = subtext,
@ -43,7 +42,7 @@ namespace SparkleShare {
NSUserNotificationCenter center = NSUserNotificationCenter.DefaultUserNotificationCenter; NSUserNotificationCenter center = NSUserNotificationCenter.DefaultUserNotificationCenter;
center.ShouldPresentNotification = delegate { return true; }; center.ShouldPresentNotification = delegate { return true; };
center.DidActivateNotification += delegate { Controller.BubbleClicked (); }; center.DidActivateNotification += delegate { Controller.BubbleClicked (); };
center.ScheduleNotification (notification); center.ScheduleNotification (notification);
}); });

View file

@ -53,9 +53,9 @@ namespace SparkleShare {
public SparkleStatusIcon () public SparkleStatusIcon ()
{ {
this.status_item.HighlightMode = true; this.status_item.HighlightMode = true;
this.status_item.Image = this.syncing_idle_image; this.status_item.Image = this.syncing_idle_image;
this.status_item.AlternateImage = this.syncing_idle_image_active; this.status_item.AlternateImage = this.syncing_idle_image_active;
CreateMenu (); CreateMenu ();

View file

@ -25,11 +25,9 @@ namespace SparkleShare {
public event Action ShowWindowEvent = delegate { }; public event Action ShowWindowEvent = delegate { };
public event Action HideWindowEvent = delegate { }; public event Action HideWindowEvent = delegate { };
public event Action VersionUpToDateEvent = delegate { };
public event Action CheckingForNewVersionEvent = delegate { };
public event NewVersionEventDelegate NewVersionEvent = delegate { }; public event UpdateLabelEventDelegate UpdateLabelEvent = delegate { };
public delegate void NewVersionEventDelegate (string new_version_string); public delegate void UpdateLabelEventDelegate (string text);
public readonly string WebsiteLinkAddress = "http://www.sparkleshare.org/"; public readonly string WebsiteLinkAddress = "http://www.sparkleshare.org/";
public readonly string CreditsLinkAddress = "http://www.github.com/hbons/SparkleShare/tree/master/legal/AUTHORS"; public readonly string CreditsLinkAddress = "http://www.github.com/hbons/SparkleShare/tree/master/legal/AUTHORS";
@ -60,7 +58,7 @@ namespace SparkleShare {
private void CheckForNewVersion () private void CheckForNewVersion ()
{ {
CheckingForNewVersionEvent (); UpdateLabelEvent ("Checking for updates...");
Thread.Sleep (500); Thread.Sleep (500);
WebClient web_client = new WebClient (); WebClient web_client = new WebClient ();
@ -70,9 +68,9 @@ namespace SparkleShare {
string latest_version = web_client.DownloadString (uri); string latest_version = web_client.DownloadString (uri);
if (new Version (latest_version) > new Version (RunningVersion)) if (new Version (latest_version) > new Version (RunningVersion))
NewVersionEvent (latest_version); UpdateLabelEvent ("A newer version (" + latest_version + ") is available!");
else else
VersionUpToDateEvent (); UpdateLabelEvent ("You are running the latest version.");
} catch { } catch {
} }

View file

@ -22,14 +22,14 @@ using IO = System.IO;
namespace SparkleShare { namespace SparkleShare {
public class SparklePlugin { public class SparklePlugin : XmlDocument {
public static string PluginsPath = ""; public static string PluginsPath = "";
public static string LocalPluginsPath = IO.Path.Combine ( public static string LocalPluginsPath = IO.Path.Combine (
Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "sparkleshare", "plugins"); Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), "sparkleshare", "plugins");
public string Name { get { return GetValue ("info", "name"); } } new public string Name { get { return GetValue ("info", "name"); } }
public string Description { get { return GetValue ("info", "description"); } } public string Description { get { return GetValue ("info", "description"); } }
public string Backend { get { return GetValue ("info", "backend"); } } public string Backend { get { return GetValue ("info", "backend"); } }
public string Fingerprint { get { return GetValue ("info", "fingerprint"); } } public string Fingerprint { get { return GetValue ("info", "fingerprint"); } }
@ -62,14 +62,13 @@ namespace SparkleShare {
} }
} }
private XmlDocument xml = new XmlDocument ();
private string plugin_directory; private string plugin_directory;
public SparklePlugin (string plugin_path) public SparklePlugin (string plugin_path)
{ {
this.plugin_directory = System.IO.Path.GetDirectoryName (plugin_path); this.plugin_directory = System.IO.Path.GetDirectoryName (plugin_path);
this.xml.Load (plugin_path); Load (plugin_path);
} }
@ -107,14 +106,13 @@ namespace SparkleShare {
IO.Directory.CreateDirectory (LocalPluginsPath); IO.Directory.CreateDirectory (LocalPluginsPath);
IO.File.WriteAllText (plugin_path, plugin_xml); IO.File.WriteAllText (plugin_path, plugin_xml);
return new SparklePlugin (plugin_path); return new SparklePlugin (plugin_path);
} }
private string GetValue (string a, string b) private string GetValue (string a, string b)
{ {
XmlNode node = this.xml.SelectSingleNode ("/sparkleshare/plugin/" + a + "/" + b + "/text()"); XmlNode node = SelectSingleNode ("/sparkleshare/plugin/" + a + "/" + b + "/text()");
if (node != null && !string.IsNullOrEmpty (node.Value)) if (node != null && !string.IsNullOrEmpty (node.Value))
return node.Value; return node.Value;

View file

@ -56,28 +56,14 @@ namespace SparkleShare {
}; };
Controller.HideWindowEvent += delegate { Controller.HideWindowEvent += delegate {
Dispatcher.BeginInvoke((Action)delegate { Dispatcher.BeginInvoke ((Action) delegate {
Hide (); Hide ();
}); });
}; };
Controller.NewVersionEvent += delegate (string new_version) { Controller.UpdateLabelEvent += delegate (string text) {
Dispatcher.BeginInvoke((Action)delegate {
this.updates.Content = "A newer version (" + new_version + ") is available!";
this.updates.UpdateLayout ();
});
};
Controller.VersionUpToDateEvent += delegate {
Dispatcher.BeginInvoke ((Action) delegate { Dispatcher.BeginInvoke ((Action) delegate {
this.updates.Content = "You are running the latest version."; this.updates.Content = text;
this.updates.UpdateLayout ();
});
};
Controller.CheckingForNewVersionEvent += delegate {
Dispatcher.BeginInvoke ((Action) delegate {
this.updates.Content = "Checking for updates...";
this.updates.UpdateLayout (); this.updates.UpdateLayout ();
}); });
}; };