From 42f1ff0123f01a4f34d4021bac111c8da4e865ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 15 Nov 2016 16:49:41 +0100 Subject: [PATCH] inspector: Show child widgets of widgets --- gtk/inspector/inspect-button.c | 10 ++++-- gtk/inspector/object-tree.c | 58 +++++++++++----------------------- gtk/inspector/visual.c | 9 ++++-- 3 files changed, 32 insertions(+), 45 deletions(-) diff --git a/gtk/inspector/inspect-button.c b/gtk/inspector/inspect-button.c index 241a2d6cb8..e481ec4d67 100644 --- a/gtk/inspector/inspect-button.c +++ b/gtk/inspector/inspect-button.c @@ -47,6 +47,7 @@ find_widget (GtkWidget *widget, GtkAllocation new_allocation; gint x_offset = 0; gint y_offset = 0; + GtkWidget *child; gtk_widget_get_allocation (widget, &new_allocation); @@ -121,9 +122,12 @@ find_widget (GtkWidget *widget, new_data.found = FALSE; new_data.first = FALSE; - gtk_container_forall (GTK_CONTAINER (widget), - (GtkCallback)find_widget, - &new_data); + for (child = gtk_widget_get_first_child (widget); + child != NULL; + child = gtk_widget_get_next_sibling (child)) + { + find_widget (child, &new_data); + } data->found = new_data.found; if (data->found) diff --git a/gtk/inspector/object-tree.c b/gtk/inspector/object-tree.c index e129d6e269..bb02f1cef6 100644 --- a/gtk/inspector/object-tree.c +++ b/gtk/inspector/object-tree.c @@ -125,6 +125,17 @@ object_tree_widget_get_parent (GObject *object) return G_OBJECT (gtk_widget_get_parent (GTK_WIDGET (object))); } +static gboolean +object_tree_widget_get_sensitive (GObject *object) +{ + return gtk_widget_get_mapped (GTK_WIDGET (object)); +} + +typedef struct { + ObjectTreeForallFunc forall_func; + gpointer forall_data; +} ForallData; + static void object_tree_widget_forall (GObject *object, ObjectTreeForallFunc forall_func, @@ -140,6 +151,7 @@ object_tree_widget_forall (GObject *object, { GTK_PHASE_NONE, "" } }; gint i; + GtkWidget *child; for (i = 0; i < G_N_ELEMENTS (phases); i++) { @@ -162,41 +174,13 @@ object_tree_widget_forall (GObject *object, if (clock) forall_func (clock, "frame-clock", forall_data); } -} -static gboolean -object_tree_widget_get_sensitive (GObject *object) -{ - return gtk_widget_get_mapped (GTK_WIDGET (object)); -} - -typedef struct { - ObjectTreeForallFunc forall_func; - gpointer forall_data; -} ForallData; - -static void -container_children_callback (GtkWidget *widget, - gpointer client_data) -{ - ForallData *forall_data = client_data; - - forall_data->forall_func (G_OBJECT (widget), NULL, forall_data->forall_data); -} - -static void -object_tree_container_forall (GObject *object, - ObjectTreeForallFunc forall_func, - gpointer forall_data) -{ - ForallData data = { - forall_func, - forall_data - }; - - gtk_container_forall (GTK_CONTAINER (object), - container_children_callback, - &data); + for (child = gtk_widget_get_first_child (GTK_WIDGET (object)); + child != NULL; + child = gtk_widget_get_next_sibling (child)) + { + forall_func (G_OBJECT (child), NULL, forall_data); + } } static void @@ -456,12 +440,6 @@ static const ObjectTreeClassFuncs object_tree_class_funcs[] = { object_tree_menu_item_forall, object_tree_widget_get_sensitive }, - { - gtk_container_get_type, - object_tree_widget_get_parent, - object_tree_container_forall, - object_tree_widget_get_sensitive - }, { gtk_widget_get_type, object_tree_widget_get_parent, diff --git a/gtk/inspector/visual.c b/gtk/inspector/visual.c index dadead345d..4188e77fb9 100644 --- a/gtk/inspector/visual.c +++ b/gtk/inspector/visual.c @@ -87,12 +87,17 @@ fix_direction_recurse (GtkWidget *widget, gpointer data) { GtkTextDirection dir = GPOINTER_TO_INT (data); + GtkWidget *child; g_object_ref (widget); gtk_widget_set_direction (widget, dir); - if (GTK_IS_CONTAINER (widget)) - gtk_container_forall (GTK_CONTAINER (widget), fix_direction_recurse, data); + for (child = gtk_widget_get_first_child (widget); + child != NULL; + child = gtk_widget_get_next_sibling (child)) + { + fix_direction_recurse (child, data); + } g_object_unref (widget); }