summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-10-13 02:44:36 -0700
committerBenjamin Otte <otte@redhat.com>2011-10-14 00:31:16 -0700
commit276aa92c7daf76bf62ad470a34301fe06cb63f88 (patch)
treeb22008d0580843b782d03bbb1a2de61008b2907e
parent7c18b025735e7945b00a810c9f4d6275386d8eb1 (diff)
cellrenderercolor: Don't use sealed variables
-rw-r--r--src/gnome/gnome-cellrenderercolor.c44
1 files changed, 26 insertions, 18 deletions
diff --git a/src/gnome/gnome-cellrenderercolor.c b/src/gnome/gnome-cellrenderercolor.c
index 98a45f2..8844acf 100644
--- a/src/gnome/gnome-cellrenderercolor.c
+++ b/src/gnome/gnome-cellrenderercolor.c
@@ -99,9 +99,14 @@ game_gnome_cell_renderer_color_get_size (GtkCellRenderer *renderer,
{
gint min_width, real_width;
gint min_height, real_height;
+ gint xpad, ypad;
+ float xalign, yalign;
- min_width = (gint) renderer->xpad * 2 + DEFAULT_HEIGHT * 8 / 5; /* golden ratio */
- min_height = (gint) renderer->ypad * 2 + DEFAULT_HEIGHT;
+ gtk_cell_renderer_get_padding (renderer, &xpad, &ypad);
+ gtk_cell_renderer_get_alignment (renderer, &xalign, &yalign);
+
+ min_width = (gint) xpad * 2 + DEFAULT_HEIGHT * 8 / 5; /* golden ratio */
+ min_height = (gint) ypad * 2 + DEFAULT_HEIGHT;
if (!cell_area) {
if (width)
*width = (gint) min_width; /* golden ratio */
@@ -110,8 +115,8 @@ game_gnome_cell_renderer_color_get_size (GtkCellRenderer *renderer,
return;
}
- real_width = cell_area->width - renderer->xpad * 2;
- real_height = cell_area->height - renderer->ypad * 2;
+ real_width = cell_area->width - xpad * 2;
+ real_height = cell_area->height - ypad * 2;
real_width = MAX (min_width, MIN (real_width, real_height * 8 / 5));
real_height = MAX (min_height, real_width * 5 / 8);
@@ -122,12 +127,12 @@ game_gnome_cell_renderer_color_get_size (GtkCellRenderer *renderer,
if (x_offset) {
double align = (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
- (1.0 - renderer->xalign) : renderer->xalign;
+ (1.0 - xalign) : xalign;
*x_offset = (cell_area->width - real_width) * align;
*x_offset = MAX (*x_offset, 0);
}
if (y_offset) {
- *y_offset = renderer->yalign * (cell_area->height - real_height);
+ *y_offset = yalign * (cell_area->height - real_height);
*y_offset = MAX (*y_offset, 0);
}
}
@@ -140,15 +145,18 @@ game_gnome_cell_renderer_color_render (GtkCellRenderer *renderer,
GameGnomeCellRendererColor *color = GAME_GNOME_CELL_RENDERER_COLOR (renderer);
gint width, height;
gint x_offset, y_offset;
+ gint xpad, ypad;
GtkShadowType shadow;
GtkStateType state;
cairo_t *cr;
+ gtk_cell_renderer_get_padding (renderer, &xpad, &ypad);
+
game_gnome_cell_renderer_color_get_size (renderer, widget, cell,
&x_offset, &y_offset, &width, &height);
- width -= renderer->xpad * 2;
- height -= renderer->ypad * 2;
+ width -= xpad * 2;
+ height -= ypad * 2;
if (width <= 0 || height <= 0)
return;
@@ -160,7 +168,7 @@ game_gnome_cell_renderer_color_render (GtkCellRenderer *renderer,
else
shadow = GTK_SHADOW_OUT;
- if (!renderer->sensitive)
+ if (!gtk_cell_renderer_get_sensitive (renderer))
state = GTK_STATE_INSENSITIVE;
else if (flags & GTK_CELL_RENDERER_SELECTED)
state = gtk_widget_has_focus (widget) ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE;
@@ -169,17 +177,17 @@ game_gnome_cell_renderer_color_render (GtkCellRenderer *renderer,
else
state = GTK_STATE_INSENSITIVE;
- gtk_paint_box (widget->style, window, state, shadow,
- expose, widget, NULL, cell->x + x_offset + renderer->xpad,
- cell->y + y_offset + renderer->ypad, width, height);
+ gtk_paint_box (gtk_widget_get_style (widget), window, state, shadow,
+ expose, widget, NULL, cell->x + x_offset + xpad,
+ cell->y + y_offset + ypad, width, height);
cr = gdk_cairo_create (window);
gdk_cairo_set_source_color (cr, &color->color);
gdk_cairo_rectangle (cr, expose);
cairo_clip (cr);
#define SPACE 4
- cairo_rectangle (cr, cell->x + x_offset + renderer->xpad + SPACE,
- cell->y + y_offset + renderer->ypad + SPACE,
+ cairo_rectangle (cr, cell->x + x_offset + xpad + SPACE,
+ cell->y + y_offset + ypad + SPACE,
MAX (0, width - 2 * SPACE), MAX (0, height - 2 * SPACE));
cairo_fill (cr);
cairo_destroy (cr);
@@ -233,10 +241,10 @@ game_gnome_cell_renderer_color_init (GTypeInstance *instance, gpointer g_class)
{
GtkCellRenderer *renderer = GTK_CELL_RENDERER (instance);
GameGnomeCellRendererColor *color = GAME_GNOME_CELL_RENDERER_COLOR (instance);
-
- renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
- renderer->xpad = 2;
- renderer->ypad = 2;
+
+ gtk_cell_renderer_set_padding (renderer, 2, 2);
+ /* ahem, gtk? */
+ g_object_set (renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
color->activatable = TRUE;
color->color.red = color->color.green = color->color.blue = 65535;