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

Reply via email to