[gtk+/rendering-cleanup-next: 12/153] ruler: Port to draw signal
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/rendering-cleanup-next: 12/153] ruler: Port to draw signal
- Date: Sat, 11 Sep 2010 04:52:26 +0000 (UTC)
commit e0c8e2167760c5e27f47c430306087c5dd11c04c
Author: Benjamin Otte <otte redhat com>
Date: Thu Sep 2 18:07:10 2010 +0200
ruler: Port to draw signal
gtk/gtkruler.c | 44 ++++++++++++++++++--------------------------
1 files changed, 18 insertions(+), 26 deletions(-)
---
diff --git a/gtk/gtkruler.c b/gtk/gtkruler.c
index 09547fc..68bb324 100644
--- a/gtk/gtkruler.c
+++ b/gtk/gtkruler.c
@@ -85,8 +85,10 @@ static void gtk_ruler_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean gtk_ruler_motion_notify (GtkWidget *widget,
GdkEventMotion *event);
-static gboolean gtk_ruler_expose (GtkWidget *widget,
- GdkEventExpose *event);
+static gboolean gtk_ruler_draw (GtkWidget *widget,
+ cairo_t *cr,
+ int width,
+ int height);
static void gtk_ruler_make_pixmap (GtkRuler *ruler);
static void gtk_ruler_draw_ticks (GtkRuler *ruler);
static void gtk_ruler_real_draw_ticks (GtkRuler *ruler,
@@ -126,7 +128,7 @@ gtk_ruler_class_init (GtkRulerClass *class)
widget_class->size_request = gtk_ruler_size_request;
widget_class->size_allocate = gtk_ruler_size_allocate;
widget_class->motion_notify_event = gtk_ruler_motion_notify;
- widget_class->expose_event = gtk_ruler_expose;
+ widget_class->draw = gtk_ruler_draw;
class->draw_ticks = gtk_ruler_real_draw_ticks;
class->draw_pos = gtk_ruler_real_draw_pos;
@@ -614,30 +616,20 @@ gtk_ruler_motion_notify (GtkWidget *widget,
}
static gboolean
-gtk_ruler_expose (GtkWidget *widget,
- GdkEventExpose *event)
+gtk_ruler_draw (GtkWidget *widget,
+ cairo_t *cr,
+ int width,
+ int height)
{
- if (gtk_widget_is_drawable (widget))
- {
- GtkRuler *ruler = GTK_RULER (widget);
- GtkRulerPrivate *priv = ruler->priv;
- GtkAllocation allocation;
- cairo_t *cr;
-
- gtk_widget_get_allocation (widget, &allocation);
- cr = gdk_cairo_create (gtk_widget_get_window (widget));
- cairo_set_source_surface (cr, priv->backing_store, 0, 0);
- gdk_cairo_region (cr, event->region);
- cairo_fill (cr);
-
- if (GTK_RULER_GET_CLASS (ruler)->draw_pos)
- GTK_RULER_GET_CLASS (ruler)->draw_pos (ruler,
- cr,
- allocation.width,
- allocation.height);
-
- cairo_destroy (cr);
- }
+ GtkRuler *ruler = GTK_RULER (widget);
+ GtkRulerPrivate *priv = ruler->priv;
+
+ cairo_set_source_surface (cr, priv->backing_store, 0, 0);
+ cairo_paint (cr);
+
+ if (GTK_RULER_GET_CLASS (ruler)->draw_pos)
+ GTK_RULER_GET_CLASS (ruler)->draw_pos (ruler, cr,
+ width, height);
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]