[gtk+/gtk-2-22] textview: Draw drag icons using Cairo
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-22] textview: Draw drag icons using Cairo
- Date: Sat, 7 Aug 2010 13:54:59 +0000 (UTC)
commit bb3c91bfda1ae0b710ad3bc3751ea1a6a00e7495
Author: Benjamin Otte <otte redhat com>
Date: Fri Jul 16 01:45:06 2010 +0200
textview: Draw drag icons using Cairo
gtk/gtktextutil.c | 43 +++++++++++++++++++------------------------
1 files changed, 19 insertions(+), 24 deletions(-)
---
diff --git a/gtk/gtktextutil.c b/gtk/gtktextutil.c
index 95e9d7d..41fd545 100644
--- a/gtk/gtktextutil.c
+++ b/gtk/gtktextutil.c
@@ -212,6 +212,7 @@ _gtk_text_util_create_drag_icon (GtkWidget *widget,
GdkDrawable *drawable = NULL;
PangoContext *context;
PangoLayout *layout;
+ cairo_t *cr;
gint pixmap_height, pixmap_width;
gint layout_width, layout_height;
@@ -240,13 +241,10 @@ _gtk_text_util_create_drag_icon (GtkWidget *widget,
pixmap_width + 2,
pixmap_height + 2,
-1);
+ cr = gdk_cairo_create (drawable);
- gdk_draw_rectangle (drawable,
- widget->style->base_gc [gtk_widget_get_state (widget)],
- TRUE,
- 0, 0,
- pixmap_width + 1,
- pixmap_height + 1);
+ gdk_cairo_set_source_color (cr, &widget->style->base [gtk_widget_get_state (widget)]);
+ cairo_paint (cr);
gdk_draw_layout (drawable,
widget->style->text_gc [gtk_widget_get_state (widget)],
@@ -254,13 +252,12 @@ _gtk_text_util_create_drag_icon (GtkWidget *widget,
1 + DRAG_ICON_LAYOUT_BORDER,
layout);
- gdk_draw_rectangle (drawable,
- widget->style->black_gc,
- FALSE,
- 0, 0,
- pixmap_width + 1,
- pixmap_height + 1);
+ cairo_set_source_rgb (cr, 0, 0, 0);
+ cairo_rectangle (cr, 0.5, 0.5, pixmap_width + 1, pixmap_height + 1);
+ cairo_set_line_width (cr, 1.0);
+ cairo_stroke (cr);
+ cairo_destroy (cr);
g_object_unref (layout);
return drawable;
@@ -294,6 +291,7 @@ _gtk_text_util_create_rich_drag_icon (GtkWidget *widget,
GtkTextAttributes *style;
PangoContext *ltr_context, *rtl_context;
GtkTextIter iter;
+ cairo_t *cr;
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
g_return_val_if_fail (GTK_IS_TEXT_BUFFER (buffer), NULL);
@@ -356,12 +354,10 @@ _gtk_text_util_create_rich_drag_icon (GtkWidget *widget,
drawable = gdk_pixmap_new (widget->window,
pixmap_width + 2, pixmap_height + 2, -1);
- gdk_draw_rectangle (drawable,
- widget->style->base_gc [gtk_widget_get_state (widget)],
- TRUE,
- 0, 0,
- pixmap_width + 1,
- pixmap_height + 1);
+ cr = gdk_cairo_create (drawable);
+
+ gdk_cairo_set_source_color (cr, &widget->style->base [gtk_widget_get_state (widget)]);
+ cairo_paint (cr);
gtk_text_layout_draw (layout, widget, drawable,
widget->style->text_gc [gtk_widget_get_state (widget)],
@@ -370,13 +366,12 @@ _gtk_text_util_create_rich_drag_icon (GtkWidget *widget,
0, 0,
pixmap_width, pixmap_height, NULL);
- gdk_draw_rectangle (drawable,
- widget->style->black_gc,
- FALSE,
- 0, 0,
- pixmap_width + 1,
- pixmap_height + 1);
+ cairo_set_source_rgb (cr, 0, 0, 0);
+ cairo_rectangle (cr, 0.5, 0.5, pixmap_width + 1, pixmap_height + 1);
+ cairo_set_line_width (cr, 1.0);
+ cairo_stroke (cr);
+ cairo_destroy (cr);
g_object_unref (layout);
g_object_unref (new_buffer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]