[Xfce4-commits] [apps/ristretto] 01/01: Prepare for gtk3 migration: Use cairo for drawing
noreply at xfce.org
noreply at xfce.org
Mon Sep 19 14:55:33 CEST 2016
This is an automated email from the git hooks/post-receive script.
f2404 pushed a commit to branch master
in repository apps/ristretto.
commit be6168bba05eeee31f4fa228a123adb880958ad3
Author: Igor <f2404 at yandex.ru>
Date: Mon Sep 19 15:55:27 2016 +0300
Prepare for gtk3 migration: Use cairo for drawing
---
src/icon_bar.c | 79 ++++++++++++++++++++++++++++++----------------------------
1 file changed, 41 insertions(+), 38 deletions(-)
diff --git a/src/icon_bar.c b/src/icon_bar.c
index 86c9581..958ad3b 100644
--- a/src/icon_bar.c
+++ b/src/icon_bar.c
@@ -1230,7 +1230,7 @@ rstto_icon_bar_paint_item (
const GdkPixbuf *pixbuf = NULL;
GdkColor *border_color;
GdkColor *fill_color;
- GdkGC *gc;
+ cairo_t *cr;
gint focus_width;
gint focus_pad;
gint x, y;
@@ -1304,24 +1304,26 @@ rstto_icon_bar_paint_item (
gdk_color_parse ("#316ac5", border_color);
}
- gc = gdk_gc_new (icon_bar->priv->bin_window);
- gdk_gc_set_clip_rectangle (gc, area);
- gdk_gc_set_rgb_fg_color (gc, fill_color);
- gdk_draw_rectangle (icon_bar->priv->bin_window, gc, TRUE,
- x + focus_pad + focus_width,
- y + focus_pad + focus_width,
- icon_bar->priv->item_width - 2 * (focus_width + focus_pad),
- icon_bar->priv->item_height - 2 * (focus_width + focus_pad));
- gdk_gc_set_rgb_fg_color (gc, border_color);
- gdk_gc_set_line_attributes (gc, focus_width, GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER);
- gdk_draw_rectangle (icon_bar->priv->bin_window, gc, FALSE,
- x + focus_pad + focus_width / 2,
- y + focus_pad + focus_width / 2,
- icon_bar->priv->item_width - (2 * focus_pad + focus_width),
- icon_bar->priv->item_height - (2 * focus_pad + focus_width));
+ cr = gdk_cairo_create (icon_bar->priv->bin_window);
+ gdk_cairo_rectangle (cr, area);
+ cairo_clip (cr);
+ cairo_set_source_rgb (cr, fill_color->red/65535., fill_color->green/65535., fill_color->blue/65535.);
+ cairo_rectangle (cr, x + focus_pad + focus_width, y + focus_pad + focus_width,
+ icon_bar->priv->item_width - 2 * (focus_width + focus_pad),
+ icon_bar->priv->item_height - 2 * (focus_width + focus_pad));
+ cairo_fill (cr);
+ cairo_set_source_rgb (cr, border_color->red/65535., border_color->green/65535., border_color->blue/65535.);
+ cairo_set_line_width (cr, focus_width);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
+ cairo_rectangle (cr, x + focus_pad + focus_width / 2, y + focus_pad + focus_width / 2,
+ icon_bar->priv->item_width - (2 * focus_pad + focus_width),
+ icon_bar->priv->item_height - (2 * focus_pad + focus_width));
+ cairo_stroke (cr);
+ cairo_destroy (cr);
+
gdk_color_free (border_color);
gdk_color_free (fill_color);
- g_object_unref (gc);
}
else if (icon_bar->priv->cursor_item == item)
{
@@ -1342,34 +1344,35 @@ rstto_icon_bar_paint_item (
gdk_color_parse ("#98b4e2", border_color);
}
- gc = gdk_gc_new (icon_bar->priv->bin_window);
- gdk_gc_set_clip_rectangle (gc, area);
- gdk_gc_set_rgb_fg_color (gc, fill_color);
- gdk_draw_rectangle (icon_bar->priv->bin_window, gc, TRUE,
- x + focus_pad + focus_width,
- y + focus_pad + focus_width,
- icon_bar->priv->item_width - 2 * (focus_width + focus_pad),
- icon_bar->priv->item_height - 2 * (focus_width + focus_pad));
- gdk_gc_set_rgb_fg_color (gc, border_color);
- gdk_gc_set_line_attributes (gc, focus_width, GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER);
- gdk_draw_rectangle (icon_bar->priv->bin_window, gc, FALSE,
- x + focus_pad + focus_width / 2,
- y + focus_pad + focus_width / 2,
- icon_bar->priv->item_width - (2 * focus_pad + focus_width),
- icon_bar->priv->item_height - (2 * focus_pad + focus_width));
+ cr = gdk_cairo_create (icon_bar->priv->bin_window);
+ gdk_cairo_rectangle (cr, area);
+ cairo_clip (cr);
+ cairo_set_source_rgb (cr, fill_color->red/65535., fill_color->green/65535., fill_color->blue/65535.);
+ cairo_rectangle (cr, x + focus_pad + focus_width, y + focus_pad + focus_width,
+ icon_bar->priv->item_width - 2 * (focus_width + focus_pad),
+ icon_bar->priv->item_height - 2 * (focus_width + focus_pad));
+ cairo_fill (cr);
+ cairo_set_source_rgb (cr, border_color->red/65535., border_color->green/65535., border_color->blue/65535.);
+ cairo_set_line_width (cr, focus_width);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
+ cairo_rectangle (cr, x + focus_pad + focus_width / 2, y + focus_pad + focus_width / 2,
+ icon_bar->priv->item_width - (2 * focus_pad + focus_width),
+ icon_bar->priv->item_height - (2 * focus_pad + focus_width));
+ cairo_stroke (cr);
+ cairo_destroy (cr);
+
gdk_color_free (border_color);
gdk_color_free (fill_color);
- g_object_unref (gc);
}
if (NULL != pixbuf)
{
- gdk_draw_pixbuf (icon_bar->priv->bin_window, NULL, pixbuf, 0, 0,
- px, py,
- pixbuf_width, pixbuf_height,
- GDK_RGB_DITHER_NORMAL,
- pixbuf_width, pixbuf_height);
+ cr = gdk_cairo_create (icon_bar->priv->bin_window);
+ gdk_cairo_set_source_pixbuf (cr, pixbuf, px, py);
+ cairo_paint (cr);
+ cairo_destroy (cr);
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list