commit 365f5643d30dd428228e0f3768d8127448e5f636 Author: phantomjinx <p.g.richard...@phantomjinx.co.uk> Date: Fri Apr 29 21:37:06 2011 +0000
Gdk / cairo migration necessary for the rating stars renderer in track display * Cairo use is preferred directly over GDK plugins/track_display/rb_cell_renderer_rating.c | 30 ++++++++++------------ plugins/track_display/rb_rating_helper.c | 20 ++++---------- plugins/track_display/rb_rating_helper.h | 2 +- 3 files changed, 21 insertions(+), 31 deletions(-) --- diff --git a/plugins/track_display/rb_cell_renderer_rating.c b/plugins/track_display/rb_cell_renderer_rating.c index 9853cb5..183e3d7 100644 --- a/plugins/track_display/rb_cell_renderer_rating.c +++ b/plugins/track_display/rb_cell_renderer_rating.c @@ -52,13 +52,12 @@ static void rb_cell_renderer_rating_get_size (GtkCellRenderer *cell, gint *y_offset, gint *width, gint *height); -static void rb_cell_renderer_rating_render (GtkCellRenderer *cell, - GdkWindow *window, - GtkWidget *widget, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, - GtkCellRendererState flags); +static void rb_cell_renderer_rating_render (GtkCellRenderer *cell, + cairo_t *cr, + GtkWidget *widget, + const GdkRectangle *background_area, + const GdkRectangle *cell_area, + GtkCellRendererState flags); static gboolean rb_cell_renderer_rating_activate (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, @@ -273,14 +272,12 @@ rb_cell_renderer_rating_get_size (GtkCellRenderer *cell, } static void -rb_cell_renderer_rating_render (GtkCellRenderer *cell, - GdkWindow *window, - GtkWidget *widget, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, - GtkCellRendererState flags) - +rb_cell_renderer_rating_render (GtkCellRenderer *cell, + cairo_t *cr, + GtkWidget *widget, + const GdkRectangle *background_area, + const GdkRectangle *cell_area, + GtkCellRendererState flags) { gboolean selected; GdkRectangle pix_rect, draw_rect; @@ -308,7 +305,8 @@ 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, diff --git a/plugins/track_display/rb_rating_helper.c b/plugins/track_display/rb_rating_helper.c index 5df97c9..b953701 100644 --- a/plugins/track_display/rb_rating_helper.c +++ b/plugins/track_display/rb_rating_helper.c @@ -103,7 +103,7 @@ rb_rating_pixbufs_new (void) gboolean rb_rating_render_stars (GtkWidget *widget, - GdkWindow *window, + cairo_t *cairo_context, RBRatingPixbufs *pixbufs, gulong x, gulong y, @@ -114,10 +114,9 @@ rb_rating_render_stars (GtkWidget *widget, { int i, icon_width; gboolean rtl; - cairo_t *cr = gdk_cairo_create (window); g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (window != NULL, FALSE); + g_return_val_if_fail (cairo_context != NULL, FALSE); g_return_val_if_fail (pixbufs != NULL, FALSE); rtl = (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL); @@ -151,16 +150,10 @@ rb_rating_render_stars (GtkWidget *widget, buf = pixbufs->pix_blank; if (buf == NULL) { - cairo_destroy(cr); return FALSE; } -/* buf = eel_create_colorized_pixbuf (buf, - (widget->style->text[state].red + offset) >> 8, - (widget->style->text[state].green + offset) >> 8, - (widget->style->text[state].blue + offset) >> 8); */ if (buf == NULL) { - cairo_destroy(cr); return FALSE; } @@ -170,13 +163,12 @@ rb_rating_render_stars (GtkWidget *widget, star_offset = i * icon_width; } - cairo_save (cr); - gdk_cairo_set_source_pixbuf (cr, buf, x_offset + star_offset, y_offset); - cairo_paint (cr); - cairo_restore (cr); + cairo_save (cairo_context); + gdk_cairo_set_source_pixbuf (cairo_context, buf, x_offset + star_offset, y_offset); + cairo_paint (cairo_context); + cairo_restore (cairo_context); } - cairo_destroy(cr); return TRUE; } diff --git a/plugins/track_display/rb_rating_helper.h b/plugins/track_display/rb_rating_helper.h index c91056d..dd20436 100644 --- a/plugins/track_display/rb_rating_helper.h +++ b/plugins/track_display/rb_rating_helper.h @@ -29,7 +29,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 *cairo_context, RBRatingPixbufs *pixbufs, gulong x, gulong y, gulong x_offset, gulong y_offset, ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ gtkpod-cvs2 mailing list gtkpod-cvs2@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2