summaryrefslogtreecommitdiff
path: root/gladeui/glade-inspector.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2013-04-26 22:13:26 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2013-04-26 22:13:26 +0900
commit24e81bb028f513516795fc6945f03aee11250641 (patch)
tree1b578027c26a6b26d9f95cbfc6e016609066645f /gladeui/glade-inspector.c
parent9c37e519a69fb6036fe0312248611f2ce048cfc7 (diff)
downloadglade-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.c57
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);