summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasmine Hassan <[email protected]>2012-11-08 03:51:08 +0200
committerJasmine Hassan <[email protected]>2012-11-16 09:45:52 +0200
commit767734608e245a3a6684e1087fa9e11280296004 (patch)
tree94f60c573083af57de2855ec83d440d8bdc8a746
parent4d27e091b87bc08fee257fda6cb3f928c3aee39f (diff)
downloadcaja-767734608e245a3a6684e1087fa9e11280296004.tar.bz2
caja-767734608e245a3a6684e1087fa9e11280296004.tar.xz
[cell-renderer-text-ellipsized] use new GtkSizeRequest vfunctions
This fixes the 'Name' column being too thin in list view. http://git.gnome.org/browse/nautilus/commit/?id=33c9b6d24a60079fe6c4c1be281c76f43def6fee
-rw-r--r--libcaja-private/caja-cell-renderer-text-ellipsized.c88
1 files changed, 57 insertions, 31 deletions
diff --git a/libcaja-private/caja-cell-renderer-text-ellipsized.c b/libcaja-private/caja-cell-renderer-text-ellipsized.c
index 4c3cd443..ad535a5d 100644
--- a/libcaja-private/caja-cell-renderer-text-ellipsized.c
+++ b/libcaja-private/caja-cell-renderer-text-ellipsized.c
@@ -26,55 +26,81 @@
#include "caja-cell-renderer-text-ellipsized.h"
-#define ELLIPSIZE_PROP "ellipsize"
-
-static void caja_cell_renderer_text_ellipsized_get_size (GtkCellRenderer *cell,
- GtkWidget *widget,
- GdkRectangle *rectangle,
- gint *x_offset,
- gint *y_offset,
- gint *width,
- gint *height);
-
G_DEFINE_TYPE (CajaCellRendererTextEllipsized, caja_cell_renderer_text_ellipsized,
GTK_TYPE_CELL_RENDERER_TEXT);
+#if GTK_CHECK_VERSION(3,0,0)
static void
caja_cell_renderer_text_ellipsized_init (CajaCellRendererTextEllipsized *cell)
{
- g_object_set (cell, ELLIPSIZE_PROP, PANGO_ELLIPSIZE_END, NULL);
+ g_object_set (cell,
+ "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE,
+ NULL);
}
static void
-caja_cell_renderer_text_ellipsized_class_init (CajaCellRendererTextEllipsizedClass *klass)
+nautilus_cell_renderer_text_ellipsized_get_preferred_width (GtkCellRenderer *cell,
+ GtkWidget *widget,
+ gint *minimum_size,
+ gint *natural_size)
{
- GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (klass);
-
- cell_class->get_size = caja_cell_renderer_text_ellipsized_get_size;
+ g_object_set (cell,
+ "ellipsize", PANGO_ELLIPSIZE_NONE,
+ "ellipsize-set", FALSE,
+ NULL);
+
+ GTK_CELL_RENDERER_CLASS
+ (nautilus_cell_renderer_text_ellipsized_parent_class)->get_preferred_width (cell, widget,
+ minimum_size, natural_size);
+
+ g_object_set (cell,
+ "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE,
+ NULL);
}
-
-GtkCellRenderer *
-caja_cell_renderer_text_ellipsized_new (void)
+#else /* GTK_CHECK_VERSION(3,0,0) */
+static void
+caja_cell_renderer_text_ellipsized_init (CajaCellRendererTextEllipsized *cell)
{
- return g_object_new (CAJA_TYPE_CELL_RENDERER_TEXT_ELLIPSIZED, NULL);
+ g_object_set (cell, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
}
static void
caja_cell_renderer_text_ellipsized_get_size (GtkCellRenderer *cell,
- GtkWidget *widget,
- GdkRectangle *cell_area,
- gint *x_offset,
- gint *y_offset,
- gint *width,
- gint *height)
+ GtkWidget *widget,
+ GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height)
{
- g_object_set (cell, ELLIPSIZE_PROP, PANGO_ELLIPSIZE_NONE, NULL);
+ g_object_set (cell, "ellipsize", PANGO_ELLIPSIZE_NONE, NULL);
- (* GTK_CELL_RENDERER_CLASS (caja_cell_renderer_text_ellipsized_parent_class)->get_size)
- (cell, widget, cell_area,
- x_offset, y_offset,
- width, height);
+ GTK_CELL_RENDERER_CLASS
+ (caja_cell_renderer_text_ellipsized_parent_class)->get_size (cell, widget,
+ cell_area,
+ x_offset, y_offset,
+ width, height);
- g_object_set (cell, ELLIPSIZE_PROP, PANGO_ELLIPSIZE_END, NULL);
+ g_object_set (cell, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
}
+#endif /* GTK_CHECK_VERSION(3,0,0) */
+static void
+caja_cell_renderer_text_ellipsized_class_init (CajaCellRendererTextEllipsizedClass *klass)
+{
+ GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (klass);
+
+#if GTK_CHECK_VERSION(3,0,0)
+ cell_class->get_preferred_width = caja_cell_renderer_text_ellipsized_get_preferred_width;
+#else
+ cell_class->get_size = caja_cell_renderer_text_ellipsized_get_size;
+#endif
+}
+
+GtkCellRenderer *
+caja_cell_renderer_text_ellipsized_new (void)
+{
+ return g_object_new (CAJA_TYPE_CELL_RENDERER_TEXT_ELLIPSIZED, NULL);
+}