[gnome-calendar/calendar-editor] source-dialog: implement "Add" button menu



commit e4331cac9183f4593836d4913b974ca5a0992114
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Apr 8 19:52:47 2015 -0300

    source-dialog: implement "Add" button menu
    
    The actions are still stub.

 data/ui/menus.ui         |   16 ++++++++++++++++
 src/gcal-source-dialog.c |   10 ++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/data/ui/menus.ui b/data/ui/menus.ui
index 9945b0a..3ba78c6 100644
--- a/data/ui/menus.ui
+++ b/data/ui/menus.ui
@@ -38,4 +38,20 @@
       </item>
     </section>
   </menu>
+  <menu id="add-source-menu">
+    <section>
+      <item>
+        <attribute name="label" translatable="yes">From Web…</attribute>
+        <attribute name="action">source.web</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">New Local Calendar…</attribute>
+        <attribute name="action">source.local</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">From File…</attribute>
+        <attribute name="action">source.file</attribute>
+      </item>
+    </section>
+  </menu>
 </interface>
diff --git a/src/gcal-source-dialog.c b/src/gcal-source-dialog.c
index e57817f..bd2e27c 100644
--- a/src/gcal-source-dialog.c
+++ b/src/gcal-source-dialog.c
@@ -1218,6 +1218,8 @@ gcal_source_dialog_constructed (GObject *object)
   GcalSourceDialog *self = (GcalSourceDialog *)object;
   GcalSourceDialogPrivate *priv = gcal_source_dialog_get_instance_private (self);
   GtkFileFilter *filter;
+  GtkBuilder *builder;
+  GMenuModel *menu;
 
   G_OBJECT_CLASS (gcal_source_dialog_parent_class)->constructed (object);
 
@@ -1245,6 +1247,14 @@ gcal_source_dialog_constructed (GObject *object)
 
   g_action_map_add_action_entries (G_ACTION_MAP (priv->action_group), actions, G_N_ELEMENTS (actions), 
object);
 
+  // Load the "Add" button menu
+  builder = gtk_builder_new_from_resource ("/org/gnome/calendar/menus.ui");
+
+  menu = G_MENU_MODEL (gtk_builder_get_object (builder, "add-source-menu"));
+  gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv->add_calendar_menu_button), menu);
+
+  g_object_unref (builder);
+
   /* setup titlebar */
   gtk_window_set_titlebar (GTK_WINDOW (object), priv->headerbar);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]