diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-10-25 17:08:47 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-10-25 17:08:47 +0400 |
commit | 575886f37c0af35a34d1b1d37f1055f60842ab4d (patch) | |
tree | c88f4bcf36782a034078a18291adfc76698b1362 /source | |
parent | aab78de27cf070dac1d5b07120e871415d45687c (diff) |
UI: add hide/show menus item in header right click menu (same as +/- button).
Patch #32872 by Harley Acheson.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 4ce97ea4305..4a10193d726 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2881,6 +2881,38 @@ static void SCREEN_OT_header_flip(wmOperatorType *ot) ot->flag = 0; } + + +/* ************** show menus operator ***************************** */ + +/* show/hide header text menus */ +static int header_toggle_menus_exec(bContext *C, wmOperator *UNUSED(op)) +{ + ScrArea *sa = CTX_wm_area(C); + + sa->flag = sa->flag ^ HEADER_NO_PULLDOWN; + + ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCREEN | NA_EDITED, NULL); + + return OPERATOR_FINISHED; +} + + +static void SCREEN_OT_header_toggle_menus(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Show/Hide Header Menus"; + ot->idname = "SCREEN_OT_header_toggle_menus"; + ot->description = "Show or Hide the header pulldown menus"; + + /* api callbacks */ + ot->exec = header_toggle_menus_exec; + ot->poll = ED_operator_areaactive; + ot->flag = 0; +} + + /* ************** header tools operator ***************************** */ void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UNUSED(arg)) { @@ -2893,6 +2925,11 @@ void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UN else uiItemO(layout, IFACE_("Flip to Top"), ICON_NONE, "SCREEN_OT_header_flip"); + if (sa->flag & HEADER_NO_PULLDOWN) + uiItemO(layout, IFACE_("Show Menus"), ICON_NONE, "SCREEN_OT_header_toggle_menus"); + else + uiItemO(layout, IFACE_("Hide Menus"), ICON_NONE, "SCREEN_OT_header_toggle_menus"); + uiItemS(layout); /* file browser should be fullscreen all the time, but other regions can be maximized/restored... */ @@ -3558,6 +3595,7 @@ void ED_operatortypes_screen(void) WM_operatortype_append(SCREEN_OT_region_scale); WM_operatortype_append(SCREEN_OT_region_flip); WM_operatortype_append(SCREEN_OT_header_flip); + WM_operatortype_append(SCREEN_OT_header_toggle_menus); WM_operatortype_append(SCREEN_OT_header_toolbox); WM_operatortype_append(SCREEN_OT_screen_set); WM_operatortype_append(SCREEN_OT_screen_full_area); |