diff options
author | Tim Janik <timj@src.gnome.org> | 1997-12-07 02:34:38 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1997-12-07 02:34:38 +0000 |
commit | 37f6b421f2a9860c353d06c0aaa303edea345dfe (patch) | |
tree | f08557eb2ddb0761990e0f82462eb2a88b776a3e /gtk/gtkcheckmenuitem.c | |
parent | 7e4ee8cb4f6cdba9adcd4f44de5e9a86563e1c28 (diff) | |
download | gtk+-37f6b421f2a9860c353d06c0aaa303edea345dfe.tar.gz |
applied jamesa-971010-0 for stability. applied jamesa-971010-2 for a small
* gtkfilesel.c: applied jamesa-971010-0 for stability.
* gtkrc.c: applied jamesa-971010-2 for a small optimization.
* gtkcheckmenuitem.h:
* gtkcheckmenuitem.c:
* gtkradiomenuitem.c:
* testgtk.c: applied johannes-971113-0 which adds
gtk_check_menu_item_set_show_toggle() to change the way check
menu items and radio menu items look.
-timj
Diffstat (limited to 'gtk/gtkcheckmenuitem.c')
-rw-r--r-- | gtk/gtkcheckmenuitem.c | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/gtk/gtkcheckmenuitem.c b/gtk/gtkcheckmenuitem.c index a36dfa75a0..bf5aa04c17 100644 --- a/gtk/gtkcheckmenuitem.c +++ b/gtk/gtkcheckmenuitem.c @@ -103,12 +103,21 @@ gtk_check_menu_item_set_state (GtkCheckMenuItem *check_menu_item, } void +gtk_check_menu_item_set_show_toggle (GtkCheckMenuItem *menu_item, + gboolean always) +{ + g_return_if_fail (menu_item != NULL); + g_return_if_fail (GTK_IS_CHECK_MENU_ITEM (menu_item)); + + menu_item->always_show_toggle = always != FALSE; +} + +void gtk_check_menu_item_toggled (GtkCheckMenuItem *check_menu_item) { gtk_signal_emit (GTK_OBJECT (check_menu_item), check_menu_item_signals[TOGGLED]); } - static void gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass) { @@ -146,6 +155,7 @@ static void gtk_check_menu_item_init (GtkCheckMenuItem *check_menu_item) { check_menu_item->active = FALSE; + check_menu_item->always_show_toggle = FALSE; } static void @@ -231,14 +241,25 @@ gtk_real_check_menu_item_draw_indicator (GtkCheckMenuItem *check_menu_item, gdk_window_clear_area (widget->window, x, y, width, height); if (check_menu_item->active || + check_menu_item->always_show_toggle || (GTK_WIDGET_STATE (check_menu_item) == GTK_STATE_PRELIGHT)) { state_type = GTK_WIDGET_STATE (widget); - - shadow_type = GTK_SHADOW_IN; - if (check_menu_item->active && (state_type == GTK_STATE_PRELIGHT)) - shadow_type = GTK_SHADOW_OUT; - + + if (check_menu_item->always_show_toggle) + { + shadow_type = GTK_SHADOW_OUT; + if (check_menu_item->active) + shadow_type = GTK_SHADOW_IN; + } + else + { + shadow_type = GTK_SHADOW_IN; + if (check_menu_item->active && + (state_type == GTK_STATE_PRELIGHT)) + shadow_type = GTK_SHADOW_OUT; + } + gdk_draw_rectangle (widget->window, widget->style->bg_gc[state_type], TRUE, x, y, width, height); |