static void gqv_cell_renderer_icon_finalize(GObject *object);
static void gqv_cell_renderer_icon_get_size(GtkCellRenderer *cell,
GtkWidget *widget,
- GdkRectangle *rectangle,
+ const GdkRectangle *rectangle,
gint *x_offset,
gint *y_offset,
gint *width,
gint *height);
#if GTK_CHECK_VERSION(3,0,0)
-static void gqv_cell_renderer_icon_render(GtkCellRenderer *cell,
- cairo_t *cr,
- GtkWidget *widget,
- const GdkRectangle *background_area,
- const GdkRectangle *cell_area,
+static void gqv_cell_renderer_icon_render(GtkCellRenderer *cell,
+ cairo_t *cr,
+ GtkWidget *widget,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags);
#else
static void gqv_cell_renderer_icon_render(GtkCellRenderer *cell,
#endif
-static gint gqv_cell_renderer_icon_activate(GtkCellRenderer *cell,
+static gboolean gqv_cell_renderer_icon_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);
enum {
static void
gqv_cell_renderer_icon_get_size(GtkCellRenderer *cell,
GtkWidget *widget,
- GdkRectangle *cell_area,
+ const GdkRectangle *cell_area,
gint *x_offset,
gint *y_offset,
gint *width,
gint calc_height;
gint xpad, ypad;
gfloat xalign, yalign;
-
+
gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
gtk_cell_renderer_get_alignment(cell, &xalign, &yalign);
}
#if GTK_CHECK_VERSION(3,0,0)
-static void gqv_cell_renderer_icon_render(GtkCellRenderer *cell,
- cairo_t *cr,
- GtkWidget *widget,
- const GdkRectangle *background_area,
- const GdkRectangle *cell_area,
+static void gqv_cell_renderer_icon_render(GtkCellRenderer *cell,
+ cairo_t *cr,
+ GtkWidget *widget,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags)
{
GdkRectangle cell_rect;
GtkStateType state;
gint xpad, ypad;
-
+
pixbuf = cellicon->pixbuf;
text = cellicon->text;
if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)
{
-#if GTK_CHECK_VERSION(2,20,0)
if (gtk_widget_has_focus(widget))
-#else
- if (GTK_WIDGET_HAS_FOCUS(widget))
-#endif
state = GTK_STATE_SELECTED;
else
state = GTK_STATE_ACTIVE;
}
else
{
-#if GTK_CHECK_VERSION(2,20,0)
if (gtk_widget_get_state(widget) == GTK_STATE_INSENSITIVE)
-#else
- if (GTK_WIDGET_STATE(widget) == GTK_STATE_INSENSITIVE)
-#endif
state = GTK_STATE_INSENSITIVE;
else
state = GTK_STATE_NORMAL;
pix_rect.y = cell_area->y + cell_rect.y;
}
- if (gdk_rectangle_intersect(cell_area, &pix_rect, &draw_rect)
+ if (gdk_rectangle_intersect(cell_area, &pix_rect, &draw_rect)
#if !GTK_CHECK_VERSION(3,0,0)
&& gdk_rectangle_intersect(expose_area, &draw_rect, &draw_rect)
#endif
draw_rect.height);
cairo_fill (cr);
-/*
- gdk_draw_pixbuf(window,
- widget->style->black_gc,
- pixbuf,
- draw_rect.x - pix_rect.x,
- draw_rect.y - pix_rect.y,
- draw_rect.x,
- draw_rect.y,
- draw_rect.width,
- draw_rect.height,
- GDK_RGB_DITHER_NORMAL,
- 0, 0);
-*/
}
}
pix_rect.height = text_rect.height;
pix_rect.x = cell_area->x + xpad + (cell_rect.width - text_rect.width + 1) / 2;
pix_rect.y = cell_area->y + ypad + (cell_rect.height - text_rect.height);
-
+
if (cellicon->show_marks)
{
pix_rect.y -= TOGGLE_SPACING;
pix_rect.height = TOGGLE_SPACING;
pix_rect.x = cell_area->x + xpad + (cell_rect.width - pix_rect.width + 1) / 2 + (TOGGLE_SPACING - TOGGLE_WIDTH) / 2;
pix_rect.y = cell_area->y + ypad + (cell_rect.height - pix_rect.height) + (TOGGLE_SPACING - TOGGLE_WIDTH) / 2;
-
+
if (gdk_rectangle_intersect(cell_area, &pix_rect, &draw_rect)
#if !GTK_CHECK_VERSION(3,0,0)
&& gdk_rectangle_intersect(expose_area, &draw_rect, &draw_rect)
cairo_save (cr);
- cairo_rectangle(cr,
+ cairo_rectangle(cr,
pix_rect.x + i * TOGGLE_SPACING + (TOGGLE_WIDTH - TOGGLE_SPACING) / 2,
pix_rect.y,
TOGGLE_WIDTH, TOGGLE_WIDTH);
}
}
-#if GTK_CHECK_VERSION(2,20,0)
if (cellicon->focused && gtk_widget_has_focus(widget))
-#else
- if (cellicon->focused && GTK_WIDGET_HAS_FOCUS(widget))
-#endif
{
#if GTK_CHECK_VERSION(3,0,0)
#else
#endif
}
-static gint
+static gboolean
gqv_cell_renderer_icon_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)
{
GQvCellRendererIcon *cellicon = (GQvCellRendererIcon *) cell;
gint xpad, ypad;
gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
-
+
gqv_cell_renderer_icon_get_size(cell, widget, cell_area,
&cell_rect.x, &cell_rect.y,
&cell_rect.width, &cell_rect.height);
for (i = 0; i < cellicon->num_marks; i++)
{
rect.x = cell_area->x + xpad + (cell_rect.width - TOGGLE_SPACING * cellicon->num_marks + 1) / 2 + i * TOGGLE_SPACING;
-
+
if (bevent->x >= rect.x && bevent->x < rect.x + rect.width &&
bevent->y >= rect.y && bevent->y < rect.y + rect.height)
{