summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte.benjamin@googlemail.com>2019-11-04 02:35:22 +0000
committerBenjamin Otte <otte.benjamin@googlemail.com>2019-11-04 02:35:22 +0000
commit3086715d54ff60aca557e1e93d036c865333b788 (patch)
tree9bb53322e66c3ee906a05cb07eec943bf94678c6
parent6d16f7ad3597149e2da75913173f3d76c77fee74 (diff)
parent44093f4966c92d1acf9f7a7368f5e4197ec8f2cc (diff)
downloadgtk+-3086715d54ff60aca557e1e93d036c865333b788.tar.gz
Merge branch 'gtkstack-addnamed-return' into 'master'
stack: return the stack page when adding a child, to ease setting props See merge request GNOME/gtk!1161
-rw-r--r--gtk/gtkstack.c28
-rw-r--r--gtk/gtkstack.h4
2 files changed, 19 insertions, 13 deletions
diff --git a/gtk/gtkstack.c b/gtk/gtkstack.c
index cbfccf4a8a..71e3ad4297 100644
--- a/gtk/gtkstack.c
+++ b/gtk/gtkstack.c
@@ -1319,7 +1319,7 @@ stack_child_visibility_notify_cb (GObject *obj,
}
}
-static void
+static GtkStackPage *
gtk_stack_add_internal (GtkStack *stack,
GtkWidget *child,
const char *name,
@@ -1336,17 +1336,19 @@ gtk_stack_add_internal (GtkStack *stack,
* The child is identified by the @name. The @title
* will be used by #GtkStackSwitcher to represent
* @child in a tab bar, so it should be short.
+ *
+ * Returns: (transfer none): the #GtkStackPage for @child
*/
-void
+GtkStackPage *
gtk_stack_add_titled (GtkStack *stack,
GtkWidget *child,
const gchar *name,
const gchar *title)
{
- g_return_if_fail (GTK_IS_STACK (stack));
- g_return_if_fail (GTK_IS_WIDGET (child));
+ g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
+ g_return_val_if_fail (GTK_IS_WIDGET (child), NULL);
- gtk_stack_add_internal (stack, child, name, title);
+ return gtk_stack_add_internal (stack, child, name, title);
}
/**
@@ -1357,16 +1359,18 @@ gtk_stack_add_titled (GtkStack *stack,
*
* Adds a child to @stack.
* The child is identified by the @name.
+ *
+ * Returns: (transfer none): the #GtkStackPage for @child
*/
-void
+GtkStackPage *
gtk_stack_add_named (GtkStack *stack,
GtkWidget *child,
const gchar *name)
{
- g_return_if_fail (GTK_IS_STACK (stack));
- g_return_if_fail (GTK_IS_WIDGET (child));
+ g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
+ g_return_val_if_fail (GTK_IS_WIDGET (child), NULL);
- gtk_stack_add_internal (stack, child, name, NULL);
+ return gtk_stack_add_internal (stack, child, name, NULL);
}
static void
@@ -1378,7 +1382,7 @@ gtk_stack_add (GtkContainer *container,
gtk_stack_add_internal (stack, child, NULL, NULL);
}
-static void
+static GtkStackPage *
gtk_stack_add_internal (GtkStack *stack,
GtkWidget *child,
const char *name,
@@ -1386,7 +1390,7 @@ gtk_stack_add_internal (GtkStack *stack,
{
GtkStackPage *child_info;
- g_return_if_fail (child != NULL);
+ g_return_val_if_fail (child != NULL, NULL);
child_info = g_object_new (GTK_TYPE_STACK_PAGE, NULL);
child_info->widget = g_object_ref (child);
@@ -1399,6 +1403,8 @@ gtk_stack_add_internal (GtkStack *stack,
gtk_stack_add_page (stack, child_info);
g_object_unref (child_info);
+
+ return child_info;
}
static void
diff --git a/gtk/gtkstack.h b/gtk/gtkstack.h
index dad047efdc..75a8d6871e 100644
--- a/gtk/gtkstack.h
+++ b/gtk/gtkstack.h
@@ -79,11 +79,11 @@ GType gtk_stack_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
GtkWidget * gtk_stack_new (void);
GDK_AVAILABLE_IN_ALL
-void gtk_stack_add_named (GtkStack *stack,
+GtkStackPage * gtk_stack_add_named (GtkStack *stack,
GtkWidget *child,
const gchar *name);
GDK_AVAILABLE_IN_ALL
-void gtk_stack_add_titled (GtkStack *stack,
+GtkStackPage * gtk_stack_add_titled (GtkStack *stack,
GtkWidget *child,
const gchar *name,
const gchar *title);