diff options
author | Javier Jardón <jjardon@gnome.org> | 2010-05-30 22:38:33 +0200 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2010-07-13 19:40:45 +0200 |
commit | db584abef335a39b8c2dc8c5e2871ed41c148e17 (patch) | |
tree | a408e1537fe03b99fcdf478341db3d9aafa5c3b0 /gtk/gtkcellrenderertoggle.c | |
parent | 932568d1ed6c49f4cc3b4c7bdad117044fbff87e (diff) | |
download | gtk+-db584abef335a39b8c2dc8c5e2871ed41c148e17.tar.gz |
Use accessor functions to access GtkCellRenderer
Diffstat (limited to 'gtk/gtkcellrenderertoggle.c')
-rw-r--r-- | gtk/gtkcellrenderertoggle.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/gtk/gtkcellrenderertoggle.c b/gtk/gtkcellrenderertoggle.c index a27f44907c..1d6763165b 100644 --- a/gtk/gtkcellrenderertoggle.c +++ b/gtk/gtkcellrenderertoggle.c @@ -99,9 +99,8 @@ gtk_cell_renderer_toggle_init (GtkCellRendererToggle *celltoggle) celltoggle->active = FALSE; celltoggle->radio = FALSE; - GTK_CELL_RENDERER (celltoggle)->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE; - GTK_CELL_RENDERER (celltoggle)->xpad = 2; - GTK_CELL_RENDERER (celltoggle)->ypad = 2; + g_object_set (celltoggle, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL); + gtk_cell_renderer_set_padding (GTK_CELL_RENDERER (celltoggle), 2, 2); priv->indicator_size = TOGGLE_WIDTH; priv->inconsistent = FALSE; @@ -283,12 +282,14 @@ gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell, { gint calc_width; gint calc_height; + gint xpad, ypad; GtkCellRendererTogglePrivate *priv; priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell); - calc_width = (gint) cell->xpad * 2 + priv->indicator_size; - calc_height = (gint) cell->ypad * 2 + priv->indicator_size; + gtk_cell_renderer_get_padding (cell, &xpad, &ypad); + calc_width = xpad * 2 + priv->indicator_size; + calc_height = ypad * 2 + priv->indicator_size; if (width) *width = calc_width; @@ -298,15 +299,19 @@ gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell, if (cell_area) { + gfloat xalign, yalign; + + gtk_cell_renderer_get_alignment (cell, &xalign, &yalign); + if (x_offset) { *x_offset = ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ? - (1.0 - cell->xalign) : cell->xalign) * (cell_area->width - calc_width); + (1.0 - xalign) : xalign) * (cell_area->width - calc_width); *x_offset = MAX (*x_offset, 0); } if (y_offset) { - *y_offset = cell->yalign * (cell_area->height - calc_height); + *y_offset = yalign * (cell_area->height - calc_height); *y_offset = MAX (*y_offset, 0); } } @@ -330,6 +335,7 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell, GtkCellRendererTogglePrivate *priv; gint width, height; gint x_offset, y_offset; + gint xpad, ypad; GtkShadowType shadow; GtkStateType state = 0; @@ -338,8 +344,9 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell, gtk_cell_renderer_toggle_get_size (cell, widget, cell_area, &x_offset, &y_offset, &width, &height); - width -= cell->xpad*2; - height -= cell->ypad*2; + gtk_cell_renderer_get_padding (cell, &xpad, &ypad); + width -= xpad * 2; + height -= ypad * 2; if (width <= 0 || height <= 0) return; @@ -349,7 +356,8 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell, else shadow = celltoggle->active ? GTK_SHADOW_IN : GTK_SHADOW_OUT; - if (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE || !cell->sensitive) + if (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE || + !gtk_cell_renderer_get_sensitive (cell)) { state = GTK_STATE_INSENSITIVE; } @@ -374,8 +382,8 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell, window, state, shadow, expose_area, widget, "cellradio", - cell_area->x + x_offset + cell->xpad, - cell_area->y + y_offset + cell->ypad, + cell_area->x + x_offset + xpad, + cell_area->y + y_offset + ypad, width, height); } else @@ -384,8 +392,8 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer *cell, window, state, shadow, expose_area, widget, "cellcheck", - cell_area->x + x_offset + cell->xpad, - cell_area->y + y_offset + cell->ypad, + cell_area->x + x_offset + xpad, + cell_area->y + y_offset + ypad, width, height); } } |