elementaryart team mailing list archive
-
elementaryart team
-
Mailing list archive
-
Message #01484
[Merge] lp:~elementaryart/granite/new-appmenu-constructor into lp:granite
Jaap Broekhuizen has proposed merging lp:~elementaryart/granite/new-appmenu-constructor into lp:granite.
Requested reviews:
xapantu (xapantu)
For more details, see:
https://code.launchpad.net/~elementaryart/granite/new-appmenu-constructor/+merge/72963
--
https://code.launchpad.net/~elementaryart/granite/new-appmenu-constructor/+merge/72963
Your team elementary desktop team is subscribed to branch lp:granite.
=== modified file 'lib/Application.vala'
--- lib/Application.vala 2011-08-25 11:19:12 +0000
+++ lib/Application.vala 2011-08-25 21:47:30 +0000
@@ -18,6 +18,7 @@
using Gtk;
using Granite.Services;
+using Granite.Widgets;
namespace Granite {
@@ -86,7 +87,8 @@
if (!Thread.supported ())
error ("Problem initializing thread support.");
Gdk.threads_init ();
-
+
+ // Deprecated
Granite.app = this;
}
@@ -123,7 +125,6 @@
protected static void sig_handler (int sig) {
warning ("Caught signal (%d), exiting", sig);
- Granite.app.quit_mainloop ();
}
protected virtual void set_options () {
@@ -132,6 +133,14 @@
Logger.DisplayLevel = LogLevel.DEBUG;
}
+ public AppMenu create_appmenu (Menu menu) {
+
+ AppMenu app_menu = new AppMenu.with_urls (menu, this.help_url, this.translate_url, this.bug_url);
+ app_menu.show_about.connect ((parent) => this.show_about (parent));
+
+ return app_menu;
+ }
+
protected AboutDialog about_dlg;
public virtual void show_about (Gtk.Widget parent) {
=== modified file 'lib/Widgets/AppMenu.vala'
--- lib/Widgets/AppMenu.vala 2011-08-25 10:43:20 +0000
+++ lib/Widgets/AppMenu.vala 2011-08-25 21:47:30 +0000
@@ -23,12 +23,48 @@
public class AppMenu : ToolButtonWithMenu {
+ public MenuItem help_item;
+ public MenuItem translate_item;
+ public MenuItem report_item;
+ public MenuItem about_item;
+
+ /**
+ * Deprecated constructor
+ *
+ * @deprecated
+ */
public AppMenu (Menu menu) {
- var help_item = new MenuItem.with_label (_("Get Help Online..."));
- var translate_item = new MenuItem.with_label (_("Translate This Application..."));
- var report_item = new MenuItem.with_label (_("Report a Problem..."));
- var about_item = new MenuItem.with_label (_("About"));
+ base (new Image.from_stock (Stock.PROPERTIES, IconSize.MENU), _("Menu"), menu);
+
+ this.add_items (menu);
+
+ help_item.activate.connect(() => System.open_uri (Granite.app.help_url));
+ translate_item.activate.connect(() => System.open_uri (Granite.app.translate_url));
+ report_item.activate.connect(() => System.open_uri (Granite.app.bug_url));
+ about_item.activate.connect (() => Granite.app.show_about (get_toplevel ()));
+ }
+
+ public virtual signal void show_about (Gtk.Widget parent) { }
+
+ public AppMenu.with_urls (Menu menu, string help_url, string translate_url, string bug_url) {
+
+ base (new Image.from_stock (Stock.PROPERTIES, IconSize.MENU), _("Menu"), menu);
+
+ this.add_items (menu);
+
+ help_item.activate.connect(() => System.open_uri (help_url));
+ translate_item.activate.connect(() => System.open_uri (translate_url));
+ report_item.activate.connect(() => System.open_uri (bug_url));
+ about_item.activate.connect (() => this.show_about (get_toplevel ()));
+ }
+
+ public void add_items (Menu menu) {
+
+ help_item = new MenuItem.with_label (_("Get Help Online..."));
+ translate_item = new MenuItem.with_label (_("Translate This Application..."));
+ report_item = new MenuItem.with_label (_("Report a Problem..."));
+ about_item = new MenuItem.with_label (_("About"));
if (menu.get_children ().length () > 0)
menu.append (new SeparatorMenuItem ());
@@ -37,13 +73,6 @@
menu.append (report_item);
menu.append (new SeparatorMenuItem ());
menu.append (about_item);
-
- base (new Image.from_stock (Stock.PROPERTIES, IconSize.MENU), _("Menu"), menu);
-
- help_item.activate.connect(() => System.open_uri (Granite.app.help_url));
- translate_item.activate.connect(() => System.open_uri (Granite.app.translate_url));
- report_item.activate.connect(() => System.open_uri (Granite.app.bug_url));
- about_item.activate.connect (() => Granite.app.show_about (get_toplevel ()));
}
}
Follow ups