[rhythmbox/gobject-introspection: 39/39] update for recent gtk+3 deprecations and api changes, no idea if it works



commit db049d95914318cf25b6970edac6a172616f388b
Author: Jonathan Matthew <jonathan d14n org>
Date:   Sun Nov 7 13:08:02 2010 +1000

    update for recent gtk+3 deprecations and api changes, no idea if it works

 lib/rb-tree-dnd.c                       |    2 +-
 lib/rb-util.c                           |   18 +++++-----
 shell/rb-shell.c                        |    2 -
 shell/rb-statusbar.c                    |    2 -
 sources/rb-display-page-tree.c          |    2 +-
 widgets/gossip-cell-renderer-expander.c |   30 ++++++++---------
 widgets/rb-cell-renderer-pixbuf.c       |   29 +++++++---------
 widgets/rb-cell-renderer-rating.c       |   29 ++++++++---------
 widgets/rb-rating-helper.c              |    8 +---
 widgets/rb-rating-helper.h              |    2 +-
 widgets/rb-rating.c                     |   53 +++++++++++++++----------------
 widgets/rb-segmented-bar.c              |   14 +++-----
 12 files changed, 86 insertions(+), 105 deletions(-)
---
diff --git a/lib/rb-tree-dnd.c b/lib/rb-tree-dnd.c
index 7af44fd..1fddcc5 100644
--- a/lib/rb-tree-dnd.c
+++ b/lib/rb-tree-dnd.c
@@ -502,7 +502,7 @@ scroll_row_timeout (gpointer data)
 		}
 	}
 
-	vadj = gtk_tree_view_get_vadjustment (tree_view);
+	vadj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (tree_view));
 	vadj_value = gtk_adjustment_get_value (vadj);
 	value = CLAMP (vadj_value + offset,
 		       gtk_adjustment_get_lower (vadj),
diff --git a/lib/rb-util.c b/lib/rb-util.c
index ebf486a..ffcd47e 100644
--- a/lib/rb-util.c
+++ b/lib/rb-util.c
@@ -1198,16 +1198,16 @@ rb_set_tree_view_column_fixed_width (GtkWidget  *treeview,
 	int i = 0;
 
 	while (strings[i] != NULL) {
-		gint width;
+		GtkRequisition natural_size;
 		g_object_set (renderer, "text", strings[i], NULL);
-		gtk_cell_renderer_get_size (renderer,
-					    GTK_WIDGET (treeview),
-					    NULL,
-					    NULL, NULL,
-					    &width, NULL);
-
-		if (width > max_width)
-			max_width = width;
+		/* XXX should we use minimum size instead? */
+		gtk_cell_renderer_get_preferred_size (renderer,
+						      GTK_WIDGET (treeview),
+						      NULL,
+						      &natural_size);
+
+		if (natural_size.width > max_width)
+			max_width = natural_size.width;
 
 		i++;
 	}
diff --git a/shell/rb-shell.c b/shell/rb-shell.c
index 8de2c58..d5e918d 100644
--- a/shell/rb-shell.c
+++ b/shell/rb-shell.c
@@ -1691,8 +1691,6 @@ rb_shell_window_state_cb (GtkWidget *widget,
 	if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) {
 		gboolean maximised = ((event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0);
 
-		gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (shell->priv->statusbar),
-						   !maximised);
 		if (!shell->priv->window_small) {
 			shell->priv->window_maximised = maximised;
 			eel_gconf_set_boolean (CONF_STATE_WINDOW_MAXIMIZED,
diff --git a/shell/rb-statusbar.c b/shell/rb-statusbar.c
index 82ce135..489ef91 100644
--- a/shell/rb-statusbar.c
+++ b/shell/rb-statusbar.c
@@ -180,8 +180,6 @@ rb_statusbar_init (RBStatusbar *statusbar)
 						       RB_TYPE_STATUSBAR,
 						       RBStatusbarPrivate);
 
-        gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (statusbar), TRUE);
-
         statusbar->priv->progress = gtk_progress_bar_new ();
 	gtk_widget_set_size_request (statusbar->priv->progress, -1, 10);
 
diff --git a/sources/rb-display-page-tree.c b/sources/rb-display-page-tree.c
index 0827f45..3fe6808 100644
--- a/sources/rb-display-page-tree.c
+++ b/sources/rb-display-page-tree.c
@@ -526,7 +526,7 @@ key_release_cb (GtkTreeView *treeview,
 	gboolean res;
 
 	/* F2 = rename playlist */
-	if (event->keyval != GDK_F2) {
+	if (event->keyval != GDK_KEY_F2) {
 		return FALSE;
 	}
 
diff --git a/widgets/gossip-cell-renderer-expander.c b/widgets/gossip-cell-renderer-expander.c
index ce96e56..b309478 100644
--- a/widgets/gossip-cell-renderer-expander.c
+++ b/widgets/gossip-cell-renderer-expander.c
@@ -50,24 +50,23 @@ static void     gossip_cell_renderer_expander_set_property (GObject
 static void     gossip_cell_renderer_expander_finalize     (GObject                         *object);
 static void     gossip_cell_renderer_expander_get_size     (GtkCellRenderer                 *cell,
 							    GtkWidget                       *widget,
-							    GdkRectangle                    *cell_area,
+							    const GdkRectangle              *cell_area,
 							    gint                            *x_offset,
 							    gint                            *y_offset,
 							    gint                            *width,
 							    gint                            *height);
 static void     gossip_cell_renderer_expander_render       (GtkCellRenderer                 *cell,
-							    GdkWindow                       *window,
+							    cairo_t			    *cr,
 							    GtkWidget                       *widget,
-							    GdkRectangle                    *background_area,
-							    GdkRectangle                    *cell_area,
-							    GdkRectangle                    *expose_area,
+							    const GdkRectangle              *background_area,
+							    const GdkRectangle              *cell_area,
 							    GtkCellRendererState             flags);
 static gboolean gossip_cell_renderer_expander_activate     (GtkCellRenderer                 *cell,
 							    GdkEvent                        *event,
 							    GtkWidget                       *widget,
 							    const gchar                     *path,
-							    GdkRectangle                    *background_area,
-							    GdkRectangle                    *cell_area,
+							    const GdkRectangle              *background_area,
+							    const GdkRectangle              *cell_area,
 							    GtkCellRendererState             flags);
 
 /* Properties */
@@ -249,10 +248,11 @@ gossip_cell_renderer_expander_new (void)
 	return g_object_new (GOSSIP_TYPE_CELL_RENDERER_EXPANDER, NULL);
 }
 
+/* XXX implement preferred height/width/h-f-w/w-f-h */
 static void
 gossip_cell_renderer_expander_get_size (GtkCellRenderer *cell,
 					GtkWidget       *widget,
-					GdkRectangle    *cell_area,
+					const GdkRectangle *cell_area,
 					gint            *x_offset,
 					gint            *y_offset,
 					gint            *width,
@@ -297,11 +297,10 @@ gossip_cell_renderer_expander_get_size (GtkCellRenderer *cell,
 
 static void
 gossip_cell_renderer_expander_render (GtkCellRenderer      *cell,
-				      GdkWindow            *window,
+				      cairo_t              *cr,
 				      GtkWidget            *widget,
-				      GdkRectangle         *background_area,
-				      GdkRectangle         *cell_area,
-				      GdkRectangle         *expose_area,
+				      const GdkRectangle   *background_area,
+				      const GdkRectangle   *cell_area,
 				      GtkCellRendererState  flags)
 {
 	GossipCellRendererExpander     *expander;
@@ -336,9 +335,8 @@ gossip_cell_renderer_expander_render (GtkCellRenderer      *cell,
 	gtk_cell_renderer_get_padding (cell, &xpad, &ypad);
 
 	gtk_paint_expander (gtk_widget_get_style (widget),
-			    window,
+			    cr,
 			    GTK_STATE_NORMAL,
-			    expose_area,
 			    widget,
 			    "treeview",
 			    cell_area->x + x_offset + xpad + priv->expander_size / 2,
@@ -465,8 +463,8 @@ gossip_cell_renderer_expander_activate (GtkCellRenderer      *cell,
 					GdkEvent             *event,
 					GtkWidget            *widget,
 					const gchar          *path_string,
-					GdkRectangle         *background_area,
-					GdkRectangle         *cell_area,
+					const GdkRectangle   *background_area,
+					const GdkRectangle   *cell_area,
 					GtkCellRendererState  flags)
 {
 	GossipCellRendererExpander     *expander;
diff --git a/widgets/rb-cell-renderer-pixbuf.c b/widgets/rb-cell-renderer-pixbuf.c
index 52a1476..efb2a3d 100644
--- a/widgets/rb-cell-renderer-pixbuf.c
+++ b/widgets/rb-cell-renderer-pixbuf.c
@@ -42,24 +42,23 @@ static void rb_cell_renderer_pixbuf_init       (RBCellRendererPixbuf      *cellt
 static void rb_cell_renderer_pixbuf_class_init (RBCellRendererPixbufClass *class);
 static void rb_cell_renderer_pixbuf_get_size   (GtkCellRenderer            *cell,
 						GtkWidget                  *widget,
-						GdkRectangle               *rectangle,
+						const GdkRectangle         *rectangle,
 						gint                       *x_offset,
 						gint                       *y_offset,
 						gint                       *width,
 						gint                       *height);
 static void rb_cell_renderer_pixbuf_render     (GtkCellRenderer            *cell,
-						GdkWindow                  *window,
+						cairo_t			   *cr,
 						GtkWidget                  *widget,
-						GdkRectangle               *background_area,
-						GdkRectangle               *cell_area,
-						GdkRectangle               *expose_area,
+						const GdkRectangle         *background_area,
+						const GdkRectangle         *cell_area,
 						guint                       flags);
 static gboolean rb_cell_renderer_pixbuf_activate (GtkCellRenderer     *cell,
 						  GdkEvent            *event,
 						  GtkWidget           *widget,
 						  const gchar         *path,
-						  GdkRectangle        *background_area,
-						  GdkRectangle        *cell_area,
+						  const GdkRectangle  *background_area,
+						  const GdkRectangle  *cell_area,
 						  GtkCellRendererState flags);
 
 enum {
@@ -198,10 +197,11 @@ rb_cell_renderer_pixbuf_new (void)
   return GTK_CELL_RENDERER (g_object_new (rb_cell_renderer_pixbuf_get_type (), NULL, NULL));
 }
 
+/* XXX implement get_preferred_width/height/height_for_width/width_for_height */
 static void
 rb_cell_renderer_pixbuf_get_size (GtkCellRenderer *cell,
 				  GtkWidget       *widget,
-				  GdkRectangle    *cell_area,
+				  const GdkRectangle *cell_area,
 				  gint            *x_offset,
 				  gint            *y_offset,
 				  gint            *width,
@@ -253,11 +253,10 @@ rb_cell_renderer_pixbuf_get_size (GtkCellRenderer *cell,
 
 static void
 rb_cell_renderer_pixbuf_render (GtkCellRenderer    *cell,
-				GdkWindow          *window,
+				cairo_t            *cr,
 				GtkWidget          *widget,
-				GdkRectangle       *background_area,
-				GdkRectangle       *cell_area,
-				GdkRectangle       *expose_area,
+				const GdkRectangle *background_area,
+				const GdkRectangle *cell_area,
 				guint               flags)
 
 {
@@ -298,11 +297,9 @@ rb_cell_renderer_pixbuf_render (GtkCellRenderer    *cell,
   pix_rect.height -= ypad * 2;
 
   if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect)) {
-    cairo_t *cr = gdk_cairo_create (window);
     gdk_cairo_set_source_pixbuf (cr, cellpixbuf->pixbuf, pix_rect.x, pix_rect.y);
     gdk_cairo_rectangle (cr, &draw_rect);
     cairo_paint (cr);
-    cairo_destroy (cr);
   }
 }
 
@@ -311,8 +308,8 @@ rb_cell_renderer_pixbuf_activate (GtkCellRenderer *cell,
 				  GdkEvent *event,
 				  GtkWidget *widget,
 				  const gchar *path,
-				  GdkRectangle *background_area,
-				  GdkRectangle *cell_area,
+				  const GdkRectangle *background_area,
+				  const GdkRectangle *cell_area,
 				  GtkCellRendererState flags)
 {
   int mouse_x, mouse_y;
diff --git a/widgets/rb-cell-renderer-rating.c b/widgets/rb-cell-renderer-rating.c
index 005f18f..b35e5d6 100644
--- a/widgets/rb-cell-renderer-rating.c
+++ b/widgets/rb-cell-renderer-rating.c
@@ -46,24 +46,23 @@ static void rb_cell_renderer_rating_init (RBCellRendererRating *celltext);
 static void rb_cell_renderer_rating_class_init (RBCellRendererRatingClass *class);
 static void rb_cell_renderer_rating_get_size  (GtkCellRenderer *cell,
 					       GtkWidget *widget,
-					       GdkRectangle *rectangle,
+					       const GdkRectangle *rectangle,
 					       gint *x_offset,
 					       gint *y_offset,
 					       gint *width,
 					       gint *height);
 static void rb_cell_renderer_rating_render (GtkCellRenderer *cell,
-					    GdkWindow *window,
+					    cairo_t *cr,
 					    GtkWidget *widget,
-					    GdkRectangle *background_area,
-					    GdkRectangle *cell_area,
-					    GdkRectangle *expose_area,
+					    const GdkRectangle *background_area,
+					    const GdkRectangle *cell_area,
 					    GtkCellRendererState flags);
 static gboolean rb_cell_renderer_rating_activate (GtkCellRenderer *cell,
 					          GdkEvent *event,
 					          GtkWidget *widget,
 					          const gchar *path,
-					          GdkRectangle *background_area,
-					          GdkRectangle *cell_area,
+					          const GdkRectangle *background_area,
+					          const GdkRectangle *cell_area,
 					          GtkCellRendererState flags);
 static void rb_cell_renderer_rating_finalize (GObject *object);
 
@@ -231,10 +230,11 @@ rb_cell_renderer_rating_new ()
 	return GTK_CELL_RENDERER (g_object_new (rb_cell_renderer_rating_get_type (), NULL, NULL));
 }
 
+/* XXX implement get_preferred_height/width/height_for_width/width_for_height */
 static void
 rb_cell_renderer_rating_get_size (GtkCellRenderer *cell,
 				  GtkWidget *widget,
-				  GdkRectangle *cell_area,
+				  const GdkRectangle *cell_area,
 				  gint *x_offset,
 				  gint *y_offset,
 				  gint *width,
@@ -262,11 +262,10 @@ rb_cell_renderer_rating_get_size (GtkCellRenderer *cell,
 
 static void
 rb_cell_renderer_rating_render (GtkCellRenderer  *cell,
-				GdkWindow *window,
+				cairo_t *cr,
 				GtkWidget *widget,
-				GdkRectangle *background_area,
-				GdkRectangle *cell_area,
-				GdkRectangle *expose_area,
+				const GdkRectangle *background_area,
+				const GdkRectangle *cell_area,
 				GtkCellRendererState flags)
 
 {
@@ -295,7 +294,7 @@ rb_cell_renderer_rating_render (GtkCellRenderer  *cell,
 
 	selected = (flags & GTK_CELL_RENDERER_SELECTED);
 
-	rb_rating_render_stars (widget, window, cell_class->priv->pixbufs,
+	rb_rating_render_stars (widget, cr, cell_class->priv->pixbufs,
 				draw_rect.x - pix_rect.x,
 				draw_rect.y - pix_rect.y,
 				draw_rect.x, draw_rect.y,
@@ -307,8 +306,8 @@ rb_cell_renderer_rating_activate (GtkCellRenderer *cell,
 				  GdkEvent *event,
 				  GtkWidget *widget,
 				  const gchar *path,
-				  GdkRectangle *background_area,
-				  GdkRectangle *cell_area,
+				  const GdkRectangle *background_area,
+				  const GdkRectangle *cell_area,
 				  GtkCellRendererState flags)
 {
 	int mouse_x, mouse_y;
diff --git a/widgets/rb-rating-helper.c b/widgets/rb-rating-helper.c
index 530715e..3e67aa8 100644
--- a/widgets/rb-rating-helper.c
+++ b/widgets/rb-rating-helper.c
@@ -143,7 +143,7 @@ rb_rating_pixbufs_new (void)
 /**
  * rb_rating_render_stars:
  * @widget: a #GtkWidget to render on behalf of
- * @window: the #GdkWindow being rendered to
+ * @cr: cairo context to render into
  * @pixbufs: a #RBRatingPixbufs structure
  * @x: source X coordinate within the rating pixbufs (usually 0)
  * @y: source Y coordinate within the rating pixbufs (usually 0)
@@ -159,7 +159,7 @@ rb_rating_pixbufs_new (void)
  */
 gboolean
 rb_rating_render_stars (GtkWidget *widget,
-			GdkWindow *window,
+			cairo_t *cr,
 			RBRatingPixbufs *pixbufs,
 			int x,
 			int y,
@@ -170,16 +170,13 @@ rb_rating_render_stars (GtkWidget *widget,
 {
 	int i, icon_width;
 	gboolean rtl;
-	cairo_t *cr;
 
 	g_return_val_if_fail (widget != NULL, FALSE);
-	g_return_val_if_fail (window != NULL, FALSE);
 	g_return_val_if_fail (pixbufs != NULL, FALSE);
 
 	rtl = (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL);
 	gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &icon_width, NULL);
 
-	cr = gdk_cairo_create (window);
 	for (i = 0; i < RB_RATING_MAX_SCORE; i++) {
 		GdkPixbuf *buf;
 		GtkStateType state;
@@ -231,7 +228,6 @@ rb_rating_render_stars (GtkWidget *widget,
 		cairo_paint (cr);
 		g_object_unref (buf);
 	}
-	cairo_destroy (cr);
 
 	return TRUE;
 }
diff --git a/widgets/rb-rating-helper.h b/widgets/rb-rating-helper.h
index d83e13c..f49c66e 100644
--- a/widgets/rb-rating-helper.h
+++ b/widgets/rb-rating-helper.h
@@ -35,7 +35,7 @@ typedef struct _RBRatingPixbufs RBRatingPixbufs;
 /* Number of stars */
 #define RB_RATING_MAX_SCORE 5
 
-gboolean rb_rating_render_stars (GtkWidget *widget, GdkWindow *window,
+gboolean rb_rating_render_stars (GtkWidget *widget, cairo_t *cr,
 				 RBRatingPixbufs *pixbufs,
 				 int x, int y,
 				 int x_offset, int y_offset,
diff --git a/widgets/rb-rating.c b/widgets/rb-rating.c
index ce0fe58..215f2f2 100644
--- a/widgets/rb-rating.c
+++ b/widgets/rb-rating.c
@@ -59,8 +59,9 @@ static void rb_rating_set_property (GObject *object,
 static void rb_rating_realize (GtkWidget *widget);
 static void rb_rating_size_request (GtkWidget *widget,
 				    GtkRequisition *requisition);
-static gboolean rb_rating_expose (GtkWidget *widget,
-				  GdkEventExpose *event);
+static gboolean rb_rating_draw (GtkWidget *widget, cairo_t *cr);
+/*static gboolean rb_rating_expose (GtkWidget *widget,
+				  GdkEventExpose *event); */
 static gboolean rb_rating_focus (GtkWidget *widget, GtkDirectionType direction);
 static gboolean rb_rating_set_rating_cb (RBRating *rating, gdouble score);
 static gboolean rb_rating_adjust_rating_cb (RBRating *rating, gdouble adjust);
@@ -114,7 +115,8 @@ rb_rating_class_init (RBRatingClass *klass)
 	object_class->set_property = rb_rating_set_property;
 
 	widget_class->realize = rb_rating_realize;
-	widget_class->expose_event = rb_rating_expose;
+	/*widget_class->expose_event = rb_rating_expose;*/
+	widget_class->draw = rb_rating_draw;	/* ? */
 	widget_class->size_request = rb_rating_size_request;
 	widget_class->button_press_event = rb_rating_button_press_cb;
 	widget_class->focus = rb_rating_focus;
@@ -184,19 +186,19 @@ rb_rating_class_init (RBRatingClass *klass)
 			      G_TYPE_DOUBLE);
 
 	binding_set = gtk_binding_set_by_class (klass);
-	gtk_binding_entry_add_signal (binding_set, GDK_Home, 0, "set-rating", 1, G_TYPE_DOUBLE, 0.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_End, 0, "set-rating", 1, G_TYPE_DOUBLE, (double)RB_RATING_MAX_SCORE);
-
-	gtk_binding_entry_add_signal (binding_set, GDK_equal, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_plus, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_KP_Add, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_KP_Right, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_Home, 0, "set-rating", 1, G_TYPE_DOUBLE, 0.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_End, 0, "set-rating", 1, G_TYPE_DOUBLE, (double)RB_RATING_MAX_SCORE);
+
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_equal, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_plus, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Add, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Right, 0, "adjust-rating", 1, G_TYPE_DOUBLE, 1.0);
 	
-	gtk_binding_entry_add_signal (binding_set, GDK_minus, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_KP_Subtract, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
-	gtk_binding_entry_add_signal (binding_set, GDK_KP_Left, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_minus, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Subtract, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
+	gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Left, 0, "adjust-rating", 1, G_TYPE_DOUBLE, -1.0);
 	
 	g_type_class_add_private (klass, sizeof (RBRatingPrivate));
 }
@@ -321,9 +323,9 @@ rb_rating_realize (GtkWidget *widget)
 	attributes.window_type = GDK_WINDOW_CHILD;
 	attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK;
 	attributes.visual = gtk_widget_get_visual (widget);
-	attributes.colormap = gtk_widget_get_colormap (widget);
+	/*attributes.colormap = gtk_widget_get_colormap (widget);*/
 
-	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+	attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL /*| GDK_WA_COLORMAP*/;
 
 	window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
 	gtk_widget_set_window (widget, window);
@@ -351,11 +353,10 @@ rb_rating_size_request (GtkWidget *widget,
 }
 
 static gboolean
-rb_rating_expose (GtkWidget *widget,
-		  GdkEventExpose *event)
+rb_rating_draw (GtkWidget *widget, cairo_t *cr)
 {
-	GdkWindow *window;
 	gboolean ret;
+	GdkWindow *window;
 	RBRating *rating;
 	int x = 0;
 	int y = 0;
@@ -364,20 +365,18 @@ rb_rating_expose (GtkWidget *widget,
 	int focus_width;
 
 	g_return_val_if_fail (RB_IS_RATING (widget), FALSE);
+	/* what
 	if (!gtk_widget_is_drawable (widget)) {
 		return FALSE;
 	}
+	*/
 
 	ret = FALSE;
 	rating = RB_RATING (widget);
 
 	window = gtk_widget_get_window (widget);
-#if GTK_CHECK_VERSION(2, 23, 0)
 	width = gdk_window_get_width (window);
 	height = gdk_window_get_height (window);
-#else
-	gdk_drawable_get_size (GDK_DRAWABLE (window), &width, &height);
-#endif
 
 	gtk_widget_style_get (widget, "focus-line-width", &focus_width, NULL);
 	if (gtk_widget_has_focus (widget)) {
@@ -387,15 +386,15 @@ rb_rating_expose (GtkWidget *widget,
 		height -= 2 * focus_width;
 	}
 
-	gtk_paint_flat_box (gtk_widget_get_style (widget), window,
+	gtk_paint_flat_box (gtk_widget_get_style (widget), cr,
 			    GTK_STATE_NORMAL, GTK_SHADOW_IN,
-			    NULL, widget, "entry_bg", x, y,
+			    widget, "entry_bg", x, y,
 			    width, height);
 
 	/* draw the stars */
 	if (rating->priv->pixbufs != NULL) {
 		ret = rb_rating_render_stars (widget,
-					      window,
+					      cr,
 					      rating->priv->pixbufs,
 					      0, 0,
 					      X_OFFSET, Y_OFFSET,
diff --git a/widgets/rb-segmented-bar.c b/widgets/rb-segmented-bar.c
index c947f62..4aaa3de 100644
--- a/widgets/rb-segmented-bar.c
+++ b/widgets/rb-segmented-bar.c
@@ -43,8 +43,7 @@ static void rb_segmented_bar_size_request (GtkWidget *widget,
 					   GtkRequisition *requisition);
 static void rb_segmented_bar_size_allocate(GtkWidget *widget,
 					   GtkAllocation *allocation);
-static gboolean rb_segmented_bar_expose (GtkWidget *widget,
-					 GdkEventExpose *event);
+static gboolean rb_segmented_bar_draw (GtkWidget *widget, cairo_t *context);
 static void rb_segmented_bar_get_property (GObject *object, guint param_id,
 					   GValue *value, GParamSpec *pspec);
 static void rb_segmented_bar_set_property (GObject *object, guint param_id,
@@ -153,7 +152,7 @@ rb_segmented_bar_class_init (RBSegmentedBarClass *klass)
 	object_class->get_property = rb_segmented_bar_get_property;
 	object_class->set_property = rb_segmented_bar_set_property;
 
-	widget_class->expose_event = rb_segmented_bar_expose;
+	widget_class->draw = rb_segmented_bar_draw;
 	widget_class->size_request = rb_segmented_bar_size_request;
 	widget_class->size_allocate = rb_segmented_bar_size_allocate;
 	widget_class->get_accessible = rb_segmented_bar_get_accessible;
@@ -758,25 +757,23 @@ static void rb_segmented_bar_render_labels (RBSegmentedBar *bar,
 }
 
 static gboolean
-rb_segmented_bar_expose (GtkWidget *widget,
-			 GdkEventExpose *event)
+rb_segmented_bar_draw (GtkWidget *widget, cairo_t *context)
 {
 	RBSegmentedBar *bar;
 	RBSegmentedBarPrivate *priv;
 	GtkAllocation allocation;
-	cairo_t *context;
 	cairo_pattern_t *bar_pattern;
 
 	g_return_val_if_fail (RB_IS_SEGMENTED_BAR (widget), FALSE);
+	/* what?
 	if (gtk_widget_is_drawable (widget) == FALSE) {
 		return FALSE;
 	}
+	*/
 
 	bar = RB_SEGMENTED_BAR (widget);
 	priv = RB_SEGMENTED_BAR_GET_PRIVATE (bar);
 
-	context = gdk_cairo_create (GDK_DRAWABLE (gtk_widget_get_window (widget)));
-	
 	if (priv->reflect) {
 		cairo_push_group (context);
 	}
@@ -849,7 +846,6 @@ rb_segmented_bar_expose (GtkWidget *widget,
 		rb_segmented_bar_render_labels (bar, context);
 	}
 	cairo_pattern_destroy (bar_pattern);
-	cairo_destroy (context);
 
 	return TRUE;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]