[nautilus] application: add an application menu
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] application: add an application menu
- Date: Tue, 24 Apr 2012 16:01:24 +0000 (UTC)
commit 346bc714c8b289b9babf7f6a2bfbd03edc7ce000
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Mon Apr 23 18:34:45 2012 -0400
application: add an application menu
Right now, actions are still not wired.
https://bugzilla.gnome.org/show_bug.cgi?id=674532
src/nautilus-app-menu.ui | 36 +++++++++++++++++++++++++++++++++
src/nautilus-application.c | 47 ++++++++++++++++++++++++++++++++++++++++++++
src/nautilus.gresource.xml | 1 +
3 files changed, 84 insertions(+), 0 deletions(-)
---
diff --git a/src/nautilus-app-menu.ui b/src/nautilus-app-menu.ui
new file mode 100644
index 0000000..0f234ae
--- /dev/null
+++ b/src/nautilus-app-menu.ui
@@ -0,0 +1,36 @@
+<interface>
+ <menu id="app-menu">
+ <section>
+ <item>
+ <attribute name="action">app.new-window</attribute>
+ <attribute name="label" translatable="yes">New _Window</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="action">app.connect-to-server</attribute>
+ <attribute name="label" translatable="yes">Connect to _Server</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="action">app.preferences</attribute>
+ <attribute name="label" translatable="yes">Prefere_nces</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="action">app.about</attribute>
+ <attribute name="label" translatable="yes">_About Files</attribute>
+ </item>
+ <item>
+ <attribute name="action">app.help</attribute>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ </item>
+ <item>
+ <attribute name="action">app.quit</attribute>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index 6838361..429e52a 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -1067,6 +1067,51 @@ init_gtk_accels (void)
}
static void
+nautilus_application_init_app_menu (NautilusApplication *self)
+{
+ GtkBuilder *builder;
+ GError *error = NULL;
+ GSimpleAction *action;
+
+ action = g_simple_action_new ("new-window", NULL);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action));
+ g_object_unref (action);
+
+ action = g_simple_action_new ("connect-to-server", NULL);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action));
+ g_object_unref (action);
+
+ action = g_simple_action_new ("preferences", NULL);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action));
+ g_object_unref (action);
+
+ action = g_simple_action_new ("about", NULL);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action));
+ g_object_unref (action);
+
+ action = g_simple_action_new ("help", NULL);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action));
+ g_object_unref (action);
+
+ action = g_simple_action_new ("quit", NULL);
+ g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action));
+ g_object_unref (action);
+
+ builder = gtk_builder_new ();
+ gtk_builder_add_from_resource (builder, "/org/gnome/nautilus/nautilus-app-menu.ui", &error);
+
+ if (error == NULL) {
+ gtk_application_set_app_menu (GTK_APPLICATION (self),
+ G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu")));
+ } else {
+ g_critical ("Unable to add the application menu: %s\n", error->message);
+ g_error_free (error);
+ }
+
+ g_object_unref (builder);
+}
+
+static void
nautilus_application_startup (GApplication *app)
{
NautilusApplication *self = NAUTILUS_APPLICATION (app);
@@ -1130,6 +1175,8 @@ nautilus_application_startup (GApplication *app)
init_desktop (self);
do_upgrades_once (self);
+
+ nautilus_application_init_app_menu (self);
}
static void
diff --git a/src/nautilus.gresource.xml b/src/nautilus.gresource.xml
index 8765788..8e405a0 100644
--- a/src/nautilus.gresource.xml
+++ b/src/nautilus.gresource.xml
@@ -9,6 +9,7 @@
<file>nautilus-desktop-icon-view-ui.xml</file>
<file>nautilus-list-view-ui.xml</file>
<file>nautilus-shell-ui.xml</file>
+ <file>nautilus-app-menu.ui</file>
<file alias="icons/thumbnail_frame.png">../icons/thumbnail_frame.png</file>
<file alias="icons/knob.png">../icons/knob.png</file>
</gresource>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]