2010-07-30 [holger] 3.7.6cvs25
authorHolger Berndt <hb@claws-mail.org>
Fri, 30 Jul 2010 23:17:03 +0000 (23:17 +0000)
committerHolger Berndt <hb@claws-mail.org>
Fri, 30 Jul 2010 23:17:03 +0000 (23:17 +0000)
* src/stock_pixmap.c
More GdkGC to Cairo porting

ChangeLog
PATCHSETS
configure.ac
src/stock_pixmap.c

index 05d30cbaee5ff8784c8012c626deab769cc7c87e..d5264b23b1ca50e47115ff810423ebbf5d73db58 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-30 [holger]    3.7.6cvs25
+
+       * src/stock_pixmap.c
+               More GdkGC to Cairo porting
+
 2010-07-30 [holger]    3.7.6cvs24
 
        * src/gtk/colorlabel.c
index be640753c6daa952a761c809ee4f09d162f90fa6..d0e0313b9b045d631968b7c9c0ec1f02919f4840 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.36.2.186 -r 1.36.2.187 src/common/utils.c;  ) > 3.7.6cvs22.patchset
 ( cvs diff -u -r 1.1.2.29 -r 1.1.2.30 src/printing.c;  ) > 3.7.6cvs23.patchset
 ( cvs diff -u -r 1.2.2.29 -r 1.2.2.30 src/gtk/colorlabel.c;  ) > 3.7.6cvs24.patchset
+( cvs diff -u -r 1.25.2.66 -r 1.25.2.67 src/stock_pixmap.c;  ) > 3.7.6cvs25.patchset
index bc3288a9a3b9bd7914792fba15142ac370031f1a..5d81f63d059974225585ce02b2d24857e910a72a 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=7
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=24
+EXTRA_VERSION=25
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 4a60ee0734a480c5f41e47672d597e326b2ea4b8..f542ee6077f8e473511e3b2a96cb890c2c90b357 100644 (file)
@@ -594,7 +594,7 @@ static gboolean pixmap_with_overlay_expose_event_cb(GtkWidget *widget, GdkEventE
                                                    OverlayData *data) 
 {
        GdkDrawable *drawable = widget->window; 
-       GdkGC *gc_pix;
+       cairo_t *cr;
        gint left = 0;
        gint top = 0;
 
@@ -604,8 +604,8 @@ static gboolean pixmap_with_overlay_expose_event_cb(GtkWidget *widget, GdkEventE
        } else {
                cm_return_val_if_fail(data->base_pixbuf != NULL, FALSE);
        }
-       gc_pix = gdk_gc_new((GdkWindow *)drawable);
-                                                
+       cr = gdk_cairo_create(drawable);
+
        gdk_window_clear_area (drawable, expose->area.x, expose->area.y,
                               expose->area.width, expose->area.height);
 
@@ -614,33 +614,33 @@ static gboolean pixmap_with_overlay_expose_event_cb(GtkWidget *widget, GdkEventE
 
                mw = mainwindow_get_mainwindow();
                if (mw != NULL && mw->menubar != NULL) {
-                       GdkGC *gc_frame = gdk_gc_new((GdkWindow *)drawable);
+                       cairo_t *cr;
                        GdkColor color = gtk_widget_get_style(mw->menubar)->base[GTK_STATE_SELECTED];
 
-                       gdk_gc_set_foreground(gc_frame, &color);
-                       gdk_gc_set_line_attributes(gc_frame, 1, GDK_LINE_SOLID,
-                                       GDK_CAP_BUTT, GDK_JOIN_BEVEL);
-                       gdk_draw_rectangle(drawable, gc_frame, FALSE, data->border_x-2, data->border_y-2, 
-                                       data->base_width+3, data->base_height+3);
-                       g_object_unref(gc_frame);
+                       cr = gdk_cairo_create(drawable);
+                       gdk_cairo_set_source_color(cr, &color);
+                       cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
+                       cairo_set_line_width(cr, 1.);
+                       cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
+                       cairo_set_line_join(cr, CAIRO_LINE_JOIN_BEVEL);
+                       cairo_rectangle(cr, data->border_x-2, data->border_y-2,
+                           data->base_width+3, data->base_height+3);
+                       cairo_stroke(cr);
+                       cairo_destroy(cr);
                }
        }
 
        if (data->is_pixmap) {
-               gdk_gc_set_tile(gc_pix, data->base_pixmap);
-               gdk_gc_set_ts_origin(gc_pix, data->border_x, data->border_y);
-               gdk_gc_set_clip_mask(gc_pix, data->base_mask);
-               gdk_gc_set_clip_origin(gc_pix, data->border_x, data->border_y);
-               gdk_gc_set_fill(gc_pix, GDK_TILED);
-               gdk_draw_rectangle(drawable, gc_pix, TRUE, data->border_x, data->border_y, 
-                          data->base_width, data->base_height);
+               gdk_cairo_set_source_pixmap(cr, data->base_pixmap, data->border_x, data->border_y);
+               cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
+               cairo_rectangle(cr, data->border_x, data->border_y,
+        data->base_width, data->base_height);
+               cairo_fill(cr);
        } else {
-               gdk_draw_pixbuf(drawable, gc_pix, data->base_pixbuf, 
-                       0, 0, data->border_x, data->border_y,
-                       -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
+               gdk_cairo_set_source_pixbuf(cr, data->base_pixbuf, data->border_x, data->border_y);
+               cairo_paint(cr);
        }
 
-
        if (data->position != OVERLAY_NONE) {
 
                switch (data->position) {
@@ -688,27 +688,23 @@ static gboolean pixmap_with_overlay_expose_event_cb(GtkWidget *widget, GdkEventE
                                break;
                }
        }
+
        if (data->position != OVERLAY_NONE) {
                if (data->is_pixmap) {
                        cm_return_val_if_fail(data->overlay_pixmap != NULL, FALSE);
                        cm_return_val_if_fail(data->overlay_mask != NULL, FALSE);
-                       gdk_gc_set_tile(gc_pix, data->overlay_pixmap);
-                       gdk_gc_set_clip_mask(gc_pix, data->overlay_mask);
-
-                       gdk_gc_set_ts_origin(gc_pix, left, top);
-                       gdk_gc_set_clip_origin(gc_pix, left, top);
-                       gdk_gc_set_fill(gc_pix, GDK_TILED);
-                       gdk_draw_rectangle(drawable, gc_pix, TRUE, left, top, 
-                                  data->overlay_width, data->overlay_height);
+                       gdk_cairo_set_source_pixmap(cr, data->overlay_pixmap, left, top);
+                       cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT);
+                       cairo_rectangle (cr, left, top, data->overlay_width, data->overlay_height);
+                       cairo_fill(cr);
                } else {
-                       cm_return_val_if_fail(data->overlay_pixbuf != NULL, FALSE);
-                       gdk_draw_pixbuf(drawable, gc_pix, data->overlay_pixbuf, 
-                               0, 0, left, top,
-                               -1, -1, GDK_RGB_DITHER_NONE, 0, 0);
-
+      cm_return_val_if_fail(data->overlay_pixbuf != NULL, FALSE);
+      gdk_cairo_set_source_pixbuf(cr, data->overlay_pixbuf, left, top);
+      cairo_paint(cr);
                }
        }
-       g_object_unref(gc_pix);
+
+       cairo_destroy(cr);
        
        return TRUE;
 }