[gtk+] inspector: some code reshuffling
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] inspector: some code reshuffling
- Date: Sat, 31 May 2014 01:56:48 +0000 (UTC)
commit 2e4c87038e99b98082d364dded65369cf9a1fb8d
Author: Matthias Clasen <mclasen redhat com>
Date: Fri May 30 21:35:39 2014 -0400
inspector: some code reshuffling
gtk/inspector/prop-editor.c | 167 +++++++++++++++++++++++--------------------
1 files changed, 89 insertions(+), 78 deletions(-)
---
diff --git a/gtk/inspector/prop-editor.c b/gtk/inspector/prop-editor.c
index 066e92c..c90a114 100644
--- a/gtk/inspector/prop-editor.c
+++ b/gtk/inspector/prop-editor.c
@@ -763,7 +763,7 @@ font_changed (GObject *object, GParamSpec *pspec, gpointer data)
}
static GtkWidget *
-property_widget (GObject *object,
+property_editor (GObject *object,
GParamSpec *spec,
GtkInspectorPropEditor *editor)
{
@@ -1074,7 +1074,8 @@ gtk_cell_layout_get_model (GtkCellLayout *layout)
}
static void
-model_properties (GtkButton *button, GtkInspectorPropEditor *editor)
+model_properties (GtkButton *button,
+ GtkInspectorPropEditor *editor)
{
GObject *model;
@@ -1083,14 +1084,15 @@ model_properties (GtkButton *button, GtkInspectorPropEditor *editor)
}
static void
-attribute_mapping_changed (GtkComboBox *box, GtkInspectorPropEditor *editor)
+attribute_mapping_changed (GtkComboBox *combo,
+ GtkInspectorPropEditor *editor)
{
gint col;
gpointer layout;
GtkCellRenderer *cell;
GtkCellArea *area;
- col = gtk_combo_box_get_active (box) - 1;
+ col = gtk_combo_box_get_active (combo) - 1;
layout = g_object_get_data (editor->priv->object, "gtk-inspector-cell-layout");
if (GTK_IS_CELL_LAYOUT (layout))
{
@@ -1103,6 +1105,86 @@ attribute_mapping_changed (GtkComboBox *box, GtkInspectorPropEditor *editor)
}
}
+static GtkWidget *
+attribute_editor (GObject *object,
+ GParamSpec *spec,
+ GtkInspectorPropEditor *editor)
+{
+ gpointer layout;
+ GtkCellArea *area;
+ GtkTreeModel *model = NULL;
+ gint col = -1;
+ GtkWidget *label;
+ GtkWidget *button;
+ GtkWidget *vbox;
+ GtkWidget *box;
+ GtkWidget *combo;
+ gchar *text;
+ gint i;
+ gboolean sensitive;
+ GtkCellRenderer *renderer;
+ GtkListStore *store;
+ GtkTreeIter iter;
+
+ layout = g_object_get_data (object, "gtk-inspector-cell-layout");
+ if (GTK_IS_CELL_LAYOUT (layout))
+ {
+ area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (layout));
+ col = gtk_cell_area_attribute_get_column (area,
+ GTK_CELL_RENDERER (object),
+ editor->priv->name);
+ model = gtk_cell_layout_get_model (GTK_CELL_LAYOUT (layout));
+ }
+
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+
+ label = gtk_label_new (_("Attribute mapping"));
+ gtk_widget_set_margin_top (label, 10);
+ gtk_container_add (GTK_CONTAINER (vbox), label);
+
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
+ gtk_container_add (GTK_CONTAINER (box), gtk_label_new (_("Model:")));
+ text = g_strdup_printf (_("%p (%s)"), model, g_type_name (G_TYPE_FROM_INSTANCE (model)));
+ gtk_container_add (GTK_CONTAINER (box), gtk_label_new (text));
+ g_free (text);
+ button = gtk_button_new_with_label (_("Properties"));
+ g_object_set_data (G_OBJECT (button), "model", model);
+ g_signal_connect (button, "clicked", G_CALLBACK (model_properties), editor);
+ gtk_container_add (GTK_CONTAINER (box), button);
+ gtk_container_add (GTK_CONTAINER (vbox), box);
+
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
+ gtk_container_add (GTK_CONTAINER (box), gtk_label_new (_("Column:")));
+ store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
+ combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
+ "text", 0,
+ "sensitive", 1,
+ NULL);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, 0, _("None"), 1, TRUE, -1);
+ for (i = 0; i < gtk_tree_model_get_n_columns (model); i++)
+ {
+ text = g_strdup_printf ("%d", i);
+ sensitive = g_value_type_transformable (gtk_tree_model_get_column_type (model, i),
+ spec->value_type);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, 0, text, 1, sensitive, -1);
+ g_free (text);
+ }
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), col + 1);
+ attribute_mapping_changed (GTK_COMBO_BOX (combo), editor);
+ g_signal_connect (combo, "changed",
+ G_CALLBACK (attribute_mapping_changed), editor);
+ gtk_container_add (GTK_CONTAINER (box), combo);
+ gtk_container_add (GTK_CONTAINER (vbox), box);
+ gtk_widget_show_all (vbox);
+
+ return vbox;
+}
+
static void
constructed (GObject *object)
{
@@ -1123,84 +1205,13 @@ constructed (GObject *object)
if (!can_modify)
return;
- editor->priv->editor = property_widget (editor->priv->object, spec, editor);
+ editor->priv->editor = property_editor (editor->priv->object, spec, editor);
gtk_widget_show (editor->priv->editor);
gtk_container_add (GTK_CONTAINER (editor), editor->priv->editor);
if (GTK_IS_CELL_RENDERER (editor->priv->object))
- {
- gpointer layout;
- GtkCellArea *area;
- GtkTreeModel *model = NULL;
- gint col = -1;
- GtkWidget *button;
- GtkWidget *box;
- GtkWidget *combo;
- gchar *text;
- gint i;
- gboolean sensitive;
- GtkCellRenderer *renderer;
- GtkListStore *store;
- GtkTreeIter iter;
-
- layout = g_object_get_data (editor->priv->object, "gtk-inspector-cell-layout");
- if (GTK_IS_CELL_LAYOUT (layout))
- {
- area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (layout));
- col = gtk_cell_area_attribute_get_column (area,
- GTK_CELL_RENDERER (editor->priv->object),
- editor->priv->name);
- model = gtk_cell_layout_get_model (GTK_CELL_LAYOUT (layout));
- }
-
- if (col != -1)
- gtk_widget_set_sensitive (editor->priv->editor, FALSE);
-
- label = gtk_label_new (_("Attribute mapping"));
- gtk_widget_set_margin_top (label, 10);
- gtk_widget_show (label);
- gtk_container_add (GTK_CONTAINER (editor), label);
-
- box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
- gtk_container_add (GTK_CONTAINER (box), gtk_label_new (_("Model:")));
- text = g_strdup_printf (_("%p (%s)"), model, g_type_name (G_TYPE_FROM_INSTANCE (model)));
- gtk_container_add (GTK_CONTAINER (box), gtk_label_new (text));
- g_free (text);
- button = gtk_button_new_with_label (_("Properties"));
- g_object_set_data (G_OBJECT (button), "model", model);
- g_signal_connect (button, "clicked", G_CALLBACK (model_properties), editor);
- gtk_container_add (GTK_CONTAINER (box), button);
- gtk_widget_show_all (box);
- gtk_container_add (GTK_CONTAINER (editor), box);
-
- box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
- gtk_container_add (GTK_CONTAINER (box), gtk_label_new (_("Column:")));
- store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN);
- combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
- renderer = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
- "text", 0,
- "sensitive", 1,
- NULL);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("None"), 1, TRUE, -1);
- for (i = 0; i < gtk_tree_model_get_n_columns (model); i++)
- {
- text = g_strdup_printf ("%d", i);
- sensitive = g_value_type_transformable (gtk_tree_model_get_column_type (model, i),
- spec->value_type);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, text, 1, sensitive, -1);
- g_free (text);
- }
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), col + 1);
- g_signal_connect (combo, "changed",
- G_CALLBACK (attribute_mapping_changed), editor);
- gtk_container_add (GTK_CONTAINER (box), combo);
- gtk_widget_show_all (box);
- gtk_container_add (GTK_CONTAINER (editor), box);
- }
+ gtk_container_add (GTK_CONTAINER (editor),
+ attribute_editor (editor->priv->object, spec, editor));
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]