Port cell renderers to gtk_cell_renderer_get_state()

This commit is contained in:
Michael Natterer 2011-02-06 17:44:49 +01:00
parent 9244cbe898
commit 64d80e9aa4
3 changed files with 9 additions and 48 deletions

View File

@ -202,29 +202,7 @@ gimp_cell_renderer_dashes_render (GtkCellRenderer *cell,
gtk_cell_renderer_get_padding (cell, &xpad, &ypad);
if (! gtk_cell_renderer_get_sensitive (cell))
{
state = GTK_STATE_INSENSITIVE;
}
else if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)
{
if (gtk_widget_has_focus (widget))
state = GTK_STATE_SELECTED;
else
state = GTK_STATE_ACTIVE;
}
else if ((flags & GTK_CELL_RENDERER_PRELIT) == GTK_CELL_RENDERER_PRELIT &&
gtk_widget_get_state (widget) == GTK_STATE_PRELIGHT)
{
state = GTK_STATE_PRELIGHT;
}
else
{
if (gtk_widget_is_sensitive (widget))
state = GTK_STATE_NORMAL;
else
state = GTK_STATE_INSENSITIVE;
}
state = gtk_cell_renderer_get_state (cell, widget, flags);
y = cell_area->y + (cell_area->height - DASHES_HEIGHT) / 2;
width = cell_area->width - 2 * xpad;

View File

@ -278,7 +278,7 @@ gimp_cell_renderer_color_render (GtkCellRenderer *cell,
if (rect.width > 2 && rect.height > 2)
{
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GtkStateFlags state = 0;
GtkStateFlags state;
GdkRGBA color;
cairo_rectangle (cr,
@ -314,16 +314,7 @@ gimp_cell_renderer_color_render (GtkCellRenderer *cell,
rect.x + 0.5, rect.y + 0.5,
rect.width - 1, rect.height - 1);
if (! gtk_cell_renderer_get_sensitive (cell) ||
! gtk_widget_is_sensitive (widget))
{
state |= GTK_STATE_FLAG_INSENSITIVE;
}
if (flags & GTK_CELL_RENDERER_SELECTED)
{
state |= GTK_STATE_FLAG_SELECTED;
}
state = gtk_cell_renderer_get_state (cell, widget, flags);
cairo_set_line_width (cr, 1);
gtk_style_context_get_color (context, state, &color);

View File

@ -355,7 +355,7 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer *cell,
GimpCellRendererTogglePrivate *priv = GET_PRIVATE (cell);
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GdkRectangle toggle_rect;
GtkStateType state = 0;
GtkStateFlags state;
gboolean active;
gint xpad;
gint ypad;
@ -416,28 +416,20 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer *cell,
if (toggle_rect.width <= 0 || toggle_rect.height <= 0)
return;
state = gtk_cell_renderer_get_state (cell, widget, flags);
active =
gtk_cell_renderer_toggle_get_active (GTK_CELL_RENDERER_TOGGLE (cell));
if (active)
state |= GTK_STATE_FLAG_ACTIVE;
if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)
{
state |= GTK_STATE_FLAG_SELECTED;
if (gtk_widget_has_focus (widget))
state |= GTK_STATE_FLAG_FOCUSED;
}
else
{
if (! gtk_cell_renderer_toggle_get_activatable (GTK_CELL_RENDERER_TOGGLE (cell)))
state |= GTK_STATE_FLAG_INSENSITIVE;
}
if (! gtk_cell_renderer_toggle_get_activatable (GTK_CELL_RENDERER_TOGGLE (cell)))
state |= GTK_STATE_FLAG_INSENSITIVE;
gtk_style_context_set_state (context, state);
if (flags & GTK_CELL_RENDERER_PRELIT)
if (state & GTK_STATE_FLAG_PRELIGHT)
gtk_render_frame (context, cr,
toggle_rect.x, toggle_rect.y,
toggle_rect.width, toggle_rect.height);