GtkStack: add gtk_stack_get_child_by_name()
This new method allows getting a widget from a GtkStack when we know its name, and will also return NULL if there is no widget going by that name. Usage example would be to check if a child with a given name exists before calling gtk_stack_set_visible_child_name(). https://bugzilla.gnome.org/show_bug.cgi?id=722588
This commit is contained in:
parent
e658bfa2de
commit
49bf3cdba8
@ -1133,6 +1133,40 @@ gtk_stack_remove (GtkContainer *container,
|
|||||||
gtk_widget_queue_resize (GTK_WIDGET (stack));
|
gtk_widget_queue_resize (GTK_WIDGET (stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_get_child_by_name:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @name: the name of the child to find
|
||||||
|
*
|
||||||
|
* Finds the child of the #GtkStack with the name given as
|
||||||
|
* the argument. Returns %NULL if there is no child with this
|
||||||
|
* name.
|
||||||
|
*
|
||||||
|
* Return value: (transfer none): the requested child of the #GtkStack
|
||||||
|
*
|
||||||
|
* Since: 3.12
|
||||||
|
*/
|
||||||
|
GtkWidget *
|
||||||
|
gtk_stack_get_child_by_name (GtkStack *stack,
|
||||||
|
const gchar *name)
|
||||||
|
{
|
||||||
|
GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
|
||||||
|
GtkStackChildInfo *info;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
|
||||||
|
g_return_val_if_fail (name != NULL, NULL);
|
||||||
|
|
||||||
|
for (l = priv->children; l != NULL; l = l->next)
|
||||||
|
{
|
||||||
|
info = l->data;
|
||||||
|
if (info->name && strcmp (info->name, name) == 0)
|
||||||
|
return info->widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_stack_set_homogeneous:
|
* gtk_stack_set_homogeneous:
|
||||||
* @stack: a #GtkStack
|
* @stack: a #GtkStack
|
||||||
|
@ -79,6 +79,9 @@ void gtk_stack_add_titled (GtkStack
|
|||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
const gchar *name,
|
const gchar *name,
|
||||||
const gchar *title);
|
const gchar *title);
|
||||||
|
GDK_AVAILABLE_IN_3_12
|
||||||
|
GtkWidget * gtk_stack_get_child_by_name (GtkStack *stack,
|
||||||
|
const gchar *name);
|
||||||
GDK_AVAILABLE_IN_3_10
|
GDK_AVAILABLE_IN_3_10
|
||||||
void gtk_stack_set_visible_child (GtkStack *stack,
|
void gtk_stack_set_visible_child (GtkStack *stack,
|
||||||
GtkWidget *child);
|
GtkWidget *child);
|
||||||
|
Loading…
Reference in New Issue
Block a user