]> git.0d.be Git - empathy.git/commitdiff
cell-renderer-text: implement get_preferred_height_for_width instead of get_size...
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 12 Nov 2010 10:10:19 +0000 (11:10 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 12 Nov 2010 10:10:19 +0000 (11:10 +0100)
libempathy-gtk/empathy-cell-renderer-text.c

index d64af0d6dda23d1d6cf523d8afbe8781dca73afe..f64ee6b0c0745b8f8052608ded7ffe14eba62f73 100644 (file)
@@ -50,13 +50,6 @@ static void cell_renderer_text_set_property      (GObject                     *o
                                                  guint                        param_id,
                                                  const GValue                *value,
                                                  GParamSpec                  *pspec);
-static void cell_renderer_text_get_size          (GtkCellRenderer             *cell,
-                                                 GtkWidget                   *widget,
-                                                 const GdkRectangle          *cell_area,
-                                                 gint                        *x_offset,
-                                                 gint                        *y_offset,
-                                                 gint                        *width,
-                                                 gint                        *height);
 static void cell_renderer_text_render            (GtkCellRenderer             *cell,
                                                  cairo_t *cr,
                                                  GtkWidget                   *widget,
@@ -79,6 +72,25 @@ enum {
 
 G_DEFINE_TYPE (EmpathyCellRendererText, empathy_cell_renderer_text, GTK_TYPE_CELL_RENDERER_TEXT);
 
+static void
+cell_renderer_text_get_preferred_height_for_width (GtkCellRenderer *renderer,
+                                                               GtkWidget *widget,
+                                                               gint width,
+                                                               gint *minimum_size,
+                                                               gint *natural_size)
+{
+       EmpathyCellRendererText *self = EMPATHY_CELL_RENDERER_TEXT (renderer);
+       EmpathyCellRendererTextPriv *priv = GET_PRIV (self);
+
+       /* Only update if not already valid so we get the right size. */
+       cell_renderer_text_update_text (self, widget, priv->is_selected);
+
+       GTK_CELL_RENDERER_CLASS (empathy_cell_renderer_text_parent_class)->
+                       get_preferred_height_for_width (renderer, widget, width,
+                                       minimum_size, natural_size);
+}
+
+
 static void
 empathy_cell_renderer_text_class_init (EmpathyCellRendererTextClass *klass)
 {
@@ -94,7 +106,7 @@ empathy_cell_renderer_text_class_init (EmpathyCellRendererTextClass *klass)
        object_class->get_property = cell_renderer_text_get_property;
        object_class->set_property = cell_renderer_text_set_property;
 
-       cell_class->get_size = cell_renderer_text_get_size;
+       cell_class->get_preferred_height_for_width = cell_renderer_text_get_preferred_height_for_width;
        cell_class->render = cell_renderer_text_render;
 
        spec = g_param_spec_string ("name", "Name", "Contact name", NULL,
@@ -239,30 +251,6 @@ cell_renderer_text_set_property (GObject      *object,
        }
 }
 
-static void
-cell_renderer_text_get_size (GtkCellRenderer    *cell,
-                            GtkWidget          *widget,
-                            const GdkRectangle *cell_area,
-                            gint               *x_offset,
-                            gint               *y_offset,
-                            gint               *width,
-                            gint               *height)
-{
-       EmpathyCellRendererText     *celltext;
-       EmpathyCellRendererTextPriv *priv;
-
-       celltext = EMPATHY_CELL_RENDERER_TEXT (cell);
-       priv = GET_PRIV (cell);
-
-       /* Only update if not already valid so we get the right size. */
-       cell_renderer_text_update_text (celltext, widget, priv->is_selected);
-
-       (GTK_CELL_RENDERER_CLASS (empathy_cell_renderer_text_parent_class)->get_size) (cell, widget,
-                                                                                     cell_area,
-                                                                                     x_offset, y_offset,
-                                                                                     width, height);
-}
-
 static void
 cell_renderer_text_render (GtkCellRenderer      *cell,
                           cairo_t *cr,