libgimpwidgets: port to GtkStyleContext and gtk_render_foo()
This commit is contained in:
@ -238,7 +238,7 @@ gimp_cell_renderer_color_render (GtkCellRenderer *cell,
|
|||||||
const GdkRectangle *cell_area,
|
const GdkRectangle *cell_area,
|
||||||
GtkCellRendererState flags)
|
GtkCellRendererState flags)
|
||||||
{
|
{
|
||||||
GimpCellRendererColor *color = GIMP_CELL_RENDERER_COLOR (cell);
|
GimpCellRendererColor *renderer_color = GIMP_CELL_RENDERER_COLOR (cell);
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
gint xpad;
|
gint xpad;
|
||||||
gint ypad;
|
gint ypad;
|
||||||
@ -258,17 +258,18 @@ gimp_cell_renderer_color_render (GtkCellRenderer *cell,
|
|||||||
|
|
||||||
if (rect.width > 2 && rect.height > 2)
|
if (rect.width > 2 && rect.height > 2)
|
||||||
{
|
{
|
||||||
GtkStyle *style = gtk_widget_get_style (widget);
|
GtkStyleContext *context = gtk_widget_get_style_context (widget);
|
||||||
GtkStateType state;
|
GtkStateFlags state = 0;
|
||||||
|
GdkRGBA color;
|
||||||
|
|
||||||
cairo_rectangle (cr,
|
cairo_rectangle (cr,
|
||||||
rect.x + 1, rect.y + 1,
|
rect.x + 1, rect.y + 1,
|
||||||
rect.width - 2, rect.height - 2);
|
rect.width - 2, rect.height - 2);
|
||||||
|
|
||||||
gimp_cairo_set_source_rgb (cr, &color->color);
|
gimp_cairo_set_source_rgb (cr, &renderer_color->color);
|
||||||
cairo_fill (cr);
|
cairo_fill (cr);
|
||||||
|
|
||||||
if (! color->opaque && color->color.a < 1.0)
|
if (! renderer_color->opaque && renderer_color->color.a < 1.0)
|
||||||
{
|
{
|
||||||
cairo_pattern_t *pattern;
|
cairo_pattern_t *pattern;
|
||||||
|
|
||||||
@ -285,7 +286,7 @@ gimp_cell_renderer_color_render (GtkCellRenderer *cell,
|
|||||||
|
|
||||||
cairo_fill_preserve (cr);
|
cairo_fill_preserve (cr);
|
||||||
|
|
||||||
gimp_cairo_set_source_rgba (cr, &color->color);
|
gimp_cairo_set_source_rgba (cr, &renderer_color->color);
|
||||||
cairo_fill (cr);
|
cairo_fill (cr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,17 +298,18 @@ gimp_cell_renderer_color_render (GtkCellRenderer *cell,
|
|||||||
if (! gtk_cell_renderer_get_sensitive (cell) ||
|
if (! gtk_cell_renderer_get_sensitive (cell) ||
|
||||||
! gtk_widget_is_sensitive (widget))
|
! gtk_widget_is_sensitive (widget))
|
||||||
{
|
{
|
||||||
state = GTK_STATE_INSENSITIVE;
|
state |= GTK_STATE_FLAG_INSENSITIVE;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (flags & GTK_CELL_RENDERER_SELECTED)
|
||||||
{
|
{
|
||||||
state = (flags & GTK_CELL_RENDERER_SELECTED ?
|
state |= GTK_STATE_FLAG_SELECTED;
|
||||||
GTK_STATE_SELECTED : GTK_STATE_NORMAL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cairo_set_line_width (cr, 1);
|
cairo_set_line_width (cr, 1);
|
||||||
gdk_cairo_set_source_color (cr, &style->fg[state]);
|
gtk_style_context_get_color (context, state, &color);
|
||||||
cairo_stroke_preserve (cr);
|
gdk_cairo_set_source_rgba (cr, &color);
|
||||||
|
cairo_stroke (cr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user