commit 365f5643d30dd428228e0f3768d8127448e5f636
Author: phantomjinx <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2