commit 68e7dcfc5fff31faf043cdeeabdb3d4b844d1a96
Author: Javier Kohen <[email protected]>
Date: Sat Apr 18 15:02:06 2009 +0200
Expand column width manually.
src/display_tracks.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
---
diff --git a/src/display_tracks.c b/src/display_tracks.c
index 54f3f5d..555b31a 100644
--- a/src/display_tracks.c
+++ b/src/display_tracks.c
@@ -32,6 +32,7 @@
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
+#include <pango/pango.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
@@ -1104,6 +1105,35 @@ tm_cell_edited (GtkCellRendererText *renderer,
g_list_free(row_list);
}
+static void update_text_column_layout (GtkTreeViewColumn *tree_column,
+ GtkCellRenderer *renderer,
+ const gchar* text)
+{
+ GtkWidget* tree_widget;
+ PangoLayout* layout;
+ guint xpad;
+ int col_width;
+ int new_width;
+
+ tree_widget = gtk_tree_view_column_get_tree_view (tree_column);
+ if (!tree_widget) return;
+
+ layout = gtk_widget_create_pango_layout (tree_widget, text);
+
+ /* Expand the width, if necessary. This is done manually
+ because the column is set to fixed width for performance
+ reasons. */
+ col_width = gtk_tree_view_column_get_fixed_width (tree_column);
+ g_object_get (G_OBJECT (renderer), "xpad", &xpad, NULL);
+ pango_layout_get_pixel_size (layout, &new_width, NULL);
+ new_width += xpad;
+ if (col_width < new_width)
+ {
+ gtk_tree_view_column_set_fixed_width (tree_column, new_width);
+ }
+
+ g_object_unref (G_OBJECT (layout));
+}
/* The track data is stored in a separate list (static GList *tracks)
and only pointers to the corresponding Track structure are placed
@@ -1137,6 +1167,8 @@ static void tm_cell_data_text_func (GtkTreeViewColumn
*tree_column,
g_object_set (G_OBJECT (renderer), "text", text, NULL);
+ update_text_column_layout (tree_column, renderer, text);
+
g_free (text);
}
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2