[gtk/new-style-menu: 45/48] popover bar: Add setters
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/new-style-menu: 45/48] popover bar: Add setters
- Date: Sun, 9 Jun 2019 17:46:47 +0000 (UTC)
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]