diff options
author | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2013-04-26 22:13:26 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2013-04-26 22:13:26 +0900 |
commit | 24e81bb028f513516795fc6945f03aee11250641 (patch) | |
tree | 1b578027c26a6b26d9f95cbfc6e016609066645f /gladeui/glade-inspector.c | |
parent | 9c37e519a69fb6036fe0312248611f2ce048cfc7 (diff) | |
download | glade-24e81bb028f513516795fc6945f03aee11250641.tar.gz |
GladeInspector: Add ellipsizing text
Now we combine the type name & detail cells into the same cell and
ellipsize that cell (it works better if only one cell ellipsizes).
Diffstat (limited to 'gladeui/glade-inspector.c')
-rw-r--r-- | gladeui/glade-inspector.c | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/gladeui/glade-inspector.c b/gladeui/glade-inspector.c index 3d151f9c..35097074 100644 --- a/gladeui/glade-inspector.c +++ b/gladeui/glade-inspector.c @@ -601,6 +601,7 @@ glade_inspector_init (GladeInspector *inspector) priv->view = gtk_tree_view_new (); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (priv->view), FALSE); + gtk_scrollable_set_hscroll_policy (GTK_SCROLLABLE (priv->view), GTK_SCROLL_MINIMUM); add_columns (GTK_TREE_VIEW (priv->view)); g_signal_connect (G_OBJECT (priv->view), "row-activated", @@ -856,6 +857,38 @@ glade_inspector_warning_cell_data_func (GtkTreeViewColumn *column, } static void +glade_inspector_detail_cell_data_func (GtkTreeViewColumn *column, + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + gchar *type_name = NULL, *detail = NULL; + + gtk_tree_model_get (model, iter, + GLADE_PROJECT_MODEL_COLUMN_TYPE_NAME, &type_name, + GLADE_PROJECT_MODEL_COLUMN_MISC, &detail, + -1); + + if (detail) + { + gchar *final = g_strconcat (type_name, " ", detail, NULL); + + g_object_set (renderer, "text", final, NULL); + + g_free (final); + } + else + g_object_set (renderer, "text", type_name, NULL); + + g_free (type_name); + g_free (detail); +} + + + + +static void add_columns (GtkTreeView *view) { GtkTreeViewColumn *column; @@ -912,32 +945,18 @@ add_columns (GtkTreeView *view) g_object_set (G_OBJECT (renderer), "width", 8, NULL); gtk_cell_area_box_pack_start (box, renderer, FALSE, FALSE, FALSE); - /* Class name */ + /* Class name & detail */ renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "style", PANGO_STYLE_ITALIC, "foreground", "Gray", + "ellipsize", PANGO_ELLIPSIZE_END, NULL); - gtk_cell_area_box_pack_start (box, renderer, FALSE, FALSE, FALSE); - gtk_tree_view_column_set_attributes (column, - renderer, - "text", - GLADE_PROJECT_MODEL_COLUMN_TYPE_NAME, - NULL); - /* Misc detail */ - renderer = gtk_cell_renderer_text_new (); - g_object_set (G_OBJECT (renderer), - "style", PANGO_STYLE_ITALIC, - "foreground", "Gray", - "scale", 0.8F, - "yalign", 0.8F, - NULL); gtk_cell_area_box_pack_start (box, renderer, FALSE, FALSE, FALSE); - gtk_tree_view_column_set_attributes (column, - renderer, - "text", GLADE_PROJECT_MODEL_COLUMN_MISC, - NULL); + gtk_tree_view_column_set_cell_data_func (column, renderer, + glade_inspector_detail_cell_data_func, + NULL, NULL); gtk_tree_view_append_column (view, column); gtk_tree_view_set_headers_visible (view, FALSE); |