[gtk/new-style-menu: 45/48] popover bar: Add setters



commit 65f71cdbae84f76bb8420909b3fd4402c130a080
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jun 9 16:04:12 2019 +0000

    popover bar: Add setters
    
    Add setters/getters for the menu-model property.

 gtk/gtkpopoverbar.c | 69 +++++++++++++++++++++++++++++++----------------------
 gtk/gtkpopoverbar.h | 10 ++++++--
 2 files changed, 48 insertions(+), 31 deletions(-)
---
diff --git a/gtk/gtkpopoverbar.c b/gtk/gtkpopoverbar.c
index 657eeb63f6..49c1337455 100644
--- a/gtk/gtkpopoverbar.c
+++ b/gtk/gtkpopoverbar.c
@@ -390,35 +390,6 @@ tracker_insert (GtkMenuTrackerItem *item,
     g_warning ("Don't know how to handle this item");
 }
 
-static void
-gtk_popover_bar_set_menu_model (GtkPopoverBar *bar,
-                                GMenuModel    *model)
-{
-  if (g_set_object (&bar->model, model))
-    {
-      GtkWidget *child;
-      GtkActionMuxer *muxer;
-
-      while ((child = gtk_widget_get_first_child (GTK_WIDGET (bar))))
-        gtk_widget_destroy (child);
-
-      g_clear_pointer (&bar->tracker, gtk_menu_tracker_free);
-
-      muxer = _gtk_widget_get_action_muxer (GTK_WIDGET (bar), TRUE);
-      bar->tracker = gtk_menu_tracker_new (GTK_ACTION_OBSERVABLE (muxer),
-                                           model,
-                                           FALSE,
-                                           TRUE,
-                                           FALSE,
-                                           NULL,
-                                           tracker_insert,
-                                           tracker_remove,
-                                           bar);
-
-      g_object_notify_by_pspec (G_OBJECT (bar), bar_props[PROP_MENU_MODEL]);
-    }
-}
-
 static void
 gtk_popover_bar_set_property (GObject      *object,
                               guint         property_id,
@@ -526,3 +497,43 @@ gtk_popover_bar_new_from_model (GMenuModel *model)
                        "menu-model", model,
                        NULL);
 }
+
+void
+gtk_popover_bar_set_menu_model (GtkPopoverBar *bar,
+                                GMenuModel    *model)
+{
+  g_return_if_fail (GTK_IS_POPOVER_BAR (bar));
+  g_return_if_fail (G_IS_MENU_MODEL (model));
+
+  if (g_set_object (&bar->model, model))
+    {
+      GtkWidget *child;
+      GtkActionMuxer *muxer;
+
+      while ((child = gtk_widget_get_first_child (GTK_WIDGET (bar))))
+        gtk_widget_destroy (child);
+
+      g_clear_pointer (&bar->tracker, gtk_menu_tracker_free);
+
+      muxer = _gtk_widget_get_action_muxer (GTK_WIDGET (bar), TRUE);
+      bar->tracker = gtk_menu_tracker_new (GTK_ACTION_OBSERVABLE (muxer),
+                                           model,
+                                           FALSE,
+                                           TRUE,
+                                           FALSE,
+                                           NULL,
+                                           tracker_insert,
+                                           tracker_remove,
+                                           bar);
+
+      g_object_notify_by_pspec (G_OBJECT (bar), bar_props[PROP_MENU_MODEL]);
+    }
+}
+
+GMenuModel *
+gtk_popover_bar_get_menu_model (GtkPopoverBar *bar)
+{
+  g_return_val_if_fail (GTK_IS_POPOVER_BAR (bar), NULL);
+
+  return bar->model;
+}
diff --git a/gtk/gtkpopoverbar.h b/gtk/gtkpopoverbar.h
index 5b74e0bd96..eca22b5828 100644
--- a/gtk/gtkpopoverbar.h
+++ b/gtk/gtkpopoverbar.h
@@ -36,10 +36,16 @@ G_BEGIN_DECLS
 typedef struct _GtkPopoverBar GtkPopoverBar;
 
 GDK_AVAILABLE_IN_ALL
-GType      gtk_popover_bar_get_type        (void) G_GNUC_CONST;
+GType        gtk_popover_bar_get_type       (void) G_GNUC_CONST;
 
 GDK_AVAILABLE_IN_ALL
-GtkWidget* gtk_popover_bar_new_from_model  (GMenuModel *model);
+GtkWidget *  gtk_popover_bar_new_from_model (GMenuModel    *model);
+
+GDK_AVAILABLE_IN_ALL
+void         gtk_popover_bar_set_menu_model (GtkPopoverBar *bar,
+                                             GMenuModel    *model);
+GDK_AVAILABLE_IN_ALL
+GMenuModel * gtk_popover_bar_get_menu_model (GtkPopoverBar *bar);
 
 G_END_DECLS
 


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