GParamSpec *pspec);
static void gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
GtkWidget *widget,
- GdkRectangle *rectangle,
+ const GdkRectangle *rectangle,
gint *x_offset,
gint *y_offset,
gint *width,
gint *height);
static void gimp_cell_renderer_toggle_render (GtkCellRenderer *cell,
-#if GTK_CHECK_VERSION (2, 90, 8)
cairo_t *cr,
-#else
- GdkWindow *window,
-#endif
GtkWidget *widget,
-#if GTK_CHECK_VERSION (2, 90, 8)
- const GdkRectangle *background_area,
- const GdkRectangle *cell_area,
-#else
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
-#endif
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags);
static gboolean gimp_cell_renderer_toggle_activate (GtkCellRenderer *cell,
GdkEvent *event,
GtkWidget *widget,
const gchar *path,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags);
static void gimp_cell_renderer_toggle_create_pixbuf (GimpCellRendererToggle *toggle,
GtkWidget *widget);
}
static void
-gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
- GtkWidget *widget,
- GdkRectangle *cell_area,
- gint *x_offset,
- gint *y_offset,
- gint *width,
- gint *height)
+gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+ const GdkRectangle *cell_area,
+ gint *x_offset,
+ gint *y_offset,
+ gint *width,
+ gint *height)
{
GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (cell);
GtkStyle *style = gtk_widget_get_style (widget);
static void
gimp_cell_renderer_toggle_render (GtkCellRenderer *cell,
-#if GTK_CHECK_VERSION (2, 90, 8)
- cairo_t *cr,
-#else
- GdkWindow *window,
-#endif
- GtkWidget *widget,
-#if GTK_CHECK_VERSION (2, 90, 8)
- const GdkRectangle *background_area,
- const GdkRectangle *cell_area,
-#else
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
-#endif
+ cairo_t *cr,
+ GtkWidget *widget,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags)
{
GimpCellRendererToggle *toggle = GIMP_CELL_RENDERER_TOGGLE (cell);
GtkStyle *style = gtk_widget_get_style (widget);
GdkRectangle toggle_rect;
GdkRectangle draw_rect;
+ GdkRectangle clip_rect;
GtkStateType state;
gboolean active;
gint xpad;
if (! toggle->stock_id)
{
GTK_CELL_RENDERER_CLASS (parent_class)->render (cell,
-#if GTK_CHECK_VERSION (2, 90, 8)
cr,
-#else
- window,
-#endif
widget,
background_area,
cell_area,
-#if !GTK_CHECK_VERSION (2, 90, 8)
- expose_area,
-#endif
flags);
return;
}
state = GTK_STATE_INSENSITIVE;
}
-#if !GTK_CHECK_VERSION (2, 90, 8)
- if (gdk_rectangle_intersect (expose_area, cell_area, &draw_rect) &&
- (flags & GTK_CELL_RENDERER_PRELIT))
- gtk_paint_shadow (style,
- window,
- state,
- active ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
- &draw_rect,
- widget, NULL,
- toggle_rect.x, toggle_rect.y,
- toggle_rect.width, toggle_rect.height);
-#endif
+ if ((flags & GTK_CELL_RENDERER_PRELIT) &&
+ gdk_cairo_get_clip_rectangle(cr, &clip_rect) &&
+ gdk_rectangle_intersect (&clip_rect, cell_area, &draw_rect))
+ {
+ cairo_save (cr);
+ gdk_cairo_rectangle (cr, &draw_rect);
+ cairo_clip (cr);
+ gtk_paint_shadow (style,
+ cr,
+ state,
+ active ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
+ widget, NULL,
+ toggle_rect.x, toggle_rect.y,
+ toggle_rect.width, toggle_rect.height);
+ cairo_restore (cr);
+ }
if (active)
{
if (gdk_rectangle_intersect (&draw_rect, &toggle_rect, &draw_rect))
{
-#if !GTK_CHECK_VERSION (2, 90, 8)
- cairo_t *cr;
-
- cr = gdk_cairo_create (window);
-#endif
-
gdk_cairo_set_source_pixbuf (cr, pixbuf, toggle_rect.x, toggle_rect.y);
gdk_cairo_rectangle (cr, &draw_rect);
cairo_fill (cr);
-
-#if !GTK_CHECK_VERSION (2, 90, 8)
- cairo_destroy (cr);
-#endif
}
if (insensitive)
GdkEvent *event,
GtkWidget *widget,
const gchar *path,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags)
{
GtkCellRendererToggle *toggle = GTK_CELL_RENDERER_TOGGLE (cell);