diff options
author | Benjamin Otte <otte@redhat.com> | 2011-10-13 02:44:36 -0700 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-10-14 00:31:16 -0700 |
commit | 276aa92c7daf76bf62ad470a34301fe06cb63f88 (patch) | |
tree | b22008d0580843b782d03bbb1a2de61008b2907e | |
parent | 7c18b025735e7945b00a810c9f4d6275386d8eb1 (diff) |
cellrenderercolor: Don't use sealed variables
-rw-r--r-- | src/gnome/gnome-cellrenderercolor.c | 44 |
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; |