[gtk+] inspector: More refactoring



commit 6194c90f74764dd03886a13ff6f95614c9bca5d9
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Oct 10 21:13:34 2014 -0400

    inspector: More refactoring
    
    Get rid of gtk_inspector_widget_tree_get_selected_object,
    we can just pass the selected object along with the changed
    signal.

 gtk/inspector/widget-tree.c |   44 ++++++++++++++++--------------------------
 gtk/inspector/widget-tree.h |    5 +--
 gtk/inspector/window.c      |    2 +-
 3 files changed, 20 insertions(+), 31 deletions(-)
---
diff --git a/gtk/inspector/widget-tree.c b/gtk/inspector/widget-tree.c
index 67f6bd2..a819b78 100644
--- a/gtk/inspector/widget-tree.c
+++ b/gtk/inspector/widget-tree.c
@@ -81,7 +81,20 @@ static void
 on_widget_selected (GtkTreeSelection       *selection,
                     GtkInspectorWidgetTree *wt)
 {
-  g_signal_emit (wt, widget_tree_signals[WIDGET_CHANGED], 0);
+  GObject *object;
+  GtkTreeIter iter;
+  GtkTreeSelection *sel;
+  GtkTreeModel *model;
+
+  sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree));
+  if (gtk_tree_selection_get_selected (sel, &model, &iter))
+    gtk_tree_model_get (model, &iter,
+                        OBJECT, &object,
+                        -1);
+  else
+    object = NULL;
+
+  g_signal_emit (wt, widget_tree_signals[WIDGET_CHANGED], 0, object);
 }
 
 typedef struct
@@ -187,16 +200,14 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass)
 
   object_class->finalize = gtk_inspector_widget_tree_finalize;
 
-  klass->widget_changed = NULL;
-
   widget_tree_signals[WIDGET_CHANGED] =
       g_signal_new ("widget-changed",
-                    G_OBJECT_CLASS_TYPE(klass),
+                    G_OBJECT_CLASS_TYPE (klass),
                     G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE,
                     G_STRUCT_OFFSET(GtkInspectorWidgetTreeClass, widget_changed),
                     NULL, NULL,
-                    g_cclosure_marshal_VOID__VOID,
-                    G_TYPE_NONE, 0);
+                    g_cclosure_marshal_VOID__OBJECT,
+                    G_TYPE_NONE, 1, G_TYPE_OBJECT);
 
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/inspector/widget-tree.ui");
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorWidgetTree, model);
@@ -204,27 +215,6 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, on_widget_selected);
 }
 
-GObject *
-gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt)
-{
-  GtkTreeIter iter;
-  GtkTreeSelection *sel;
-  GtkTreeModel *model;
-
-  sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree));
-
-  if (gtk_tree_selection_get_selected (sel, &model, &iter))
-    {
-      GObject *object;
-      gtk_tree_model_get (model, &iter,
-                          OBJECT, &object,
-                          -1);
-      return object;
-    }
-
-  return NULL;
-}
-
 typedef struct
 {
   GtkInspectorWidgetTree *wt;
diff --git a/gtk/inspector/widget-tree.h b/gtk/inspector/widget-tree.h
index 2900584..3ccd181 100644
--- a/gtk/inspector/widget-tree.h
+++ b/gtk/inspector/widget-tree.h
@@ -46,7 +46,8 @@ typedef struct _GtkInspectorWidgetTreeClass
 {
   GtkBoxClass parent;
 
-  void (*widget_changed) (GtkInspectorWidgetTree *tree);
+  void (*widget_changed) (GtkInspectorWidgetTree *wt,
+                          GObject                *object);
 } GtkInspectorWidgetTreeClass;
 
 
@@ -55,8 +56,6 @@ G_BEGIN_DECLS
 
 GType      gtk_inspector_widget_tree_get_type            (void);
 
-GObject   *gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt);
-
 void       gtk_inspector_widget_tree_scan                (GtkInspectorWidgetTree *wt,
                                                           GtkWidget              *window);
 void       gtk_inspector_widget_tree_select_object       (GtkInspectorWidgetTree *wt,
diff --git a/gtk/inspector/window.c b/gtk/inspector/window.c
index 4d7a05b..48a5d82 100644
--- a/gtk/inspector/window.c
+++ b/gtk/inspector/window.c
@@ -49,9 +49,9 @@ G_DEFINE_TYPE (GtkInspectorWindow, gtk_inspector_window, GTK_TYPE_WINDOW)
 
 static void
 on_widget_tree_selection_changed (GtkInspectorWidgetTree *wt,
+                                  GObject                *selected,
                                   GtkInspectorWindow     *iw)
 {
-  GObject *selected = gtk_inspector_widget_tree_get_selected_object (wt);
   GtkWidget *notebook;
   const gchar *tab;
   gint page_num;


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