X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-cell-renderer-button.c;h=88de4bc655459b02286c93336bf80c10c232edd0;hb=2b1db12ee3bd135517659285a35a4763b44b7e39;hp=6f7269842505e3bebe8a0f701af25f59936eccf1;hpb=f95002ec226b18f52773e747cae7e1d00302ad1a;p=pspp diff --git a/src/ui/gui/psppire-cell-renderer-button.c b/src/ui/gui/psppire-cell-renderer-button.c index 6f72698425..88de4bc655 100644 --- a/src/ui/gui/psppire-cell-renderer-button.c +++ b/src/ui/gui/psppire-cell-renderer-button.c @@ -59,7 +59,8 @@ enum { PROP_0, PROP_EDITABLE, - PROP_LABEL + PROP_LABEL, + PROP_SLASH }; static void @@ -85,6 +86,11 @@ psppire_cell_renderer_button_set_property (GObject *object, obj->label = g_value_dup_string (value); break; + case PROP_SLASH: + psppire_cell_renderer_button_set_slash (obj, + g_value_get_boolean (value)); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -109,6 +115,11 @@ psppire_cell_renderer_button_get_property (GObject *object, g_value_set_string (value, obj->label); break; + case PROP_SLASH: + g_value_set_boolean (value, + psppire_cell_renderer_button_get_slash (obj)); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -222,6 +233,13 @@ psppire_cell_renderer_button_render (GtkCellRenderer *cell, state_type, button->label_style, button->label, button->xpad, button->ypad, cell->xalign, cell->yalign); + + if (button->slash) + gdk_draw_line (window, button->button_style->black_gc, + cell_area->x, + cell_area->y + cell_area->height, + cell_area->x + cell_area->width, + cell_area->y); } static void @@ -404,6 +422,7 @@ psppire_cell_renderer_button_start_editing (GtkCellRenderer *cell, "xalign", xalign, "yalign", yalign, "path", path, + "slash", cell_button->slash, NULL); g_signal_connect (G_OBJECT (cell_button->button), "focus-out-event", @@ -493,6 +512,15 @@ psppire_cell_renderer_button_class_init (PsppireCellRendererButtonClass *class) "Text to appear in button.", "", G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_SLASH, + g_param_spec_boolean ("slash", + _("Diagonal slash"), + _("Whether to draw a diagonal slash across the button."), + FALSE, + G_PARAM_READWRITE)); + } static void @@ -504,6 +532,8 @@ psppire_cell_renderer_button_init (PsppireCellRendererButton *obj) obj->xpad = 0; obj->ypad = 0; + obj->slash = FALSE; + obj->button = NULL; obj->button_style = NULL; @@ -536,3 +566,18 @@ psppire_cell_renderer_button_new (void) { return GTK_CELL_RENDERER (g_object_new (PSPPIRE_TYPE_CELL_RENDERER_BUTTON, NULL)); } + +void +psppire_cell_renderer_button_set_slash (PsppireCellRendererButton *button, + gboolean slash) +{ + g_return_if_fail (button != NULL); + button->slash = slash; +} + +gboolean +psppire_cell_renderer_button_get_slash (const PsppireCellRendererButton *button) +{ + g_return_val_if_fail (button != NULL, FALSE); + return button->slash; +}