Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-10-25 17:08:47 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-10-25 17:08:47 +0400
commit575886f37c0af35a34d1b1d37f1055f60842ab4d (patch)
treec88f4bcf36782a034078a18291adfc76698b1362 /source/blender/editors/screen
parentaab78de27cf070dac1d5b07120e871415d45687c (diff)
UI: add hide/show menus item in header right click menu (same as +/- button).
Patch #32872 by Harley Acheson.
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r--source/blender/editors/screen/screen_ops.c38
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);