forked from bartvdbraak/blender
UI: small layout fixes for RMB context menus.
This commit is contained in:
parent
9fc79a4033
commit
b0c32818ba
@ -557,6 +557,7 @@ class TOPBAR_MT_window_specials(Menu):
|
||||
layout.operator_context = 'EXEC_AREA'
|
||||
|
||||
layout.operator("wm.window_new")
|
||||
layout.operator("wm.window_new_main")
|
||||
|
||||
layout.operator_context = 'INVOKE_AREA'
|
||||
|
||||
|
@ -3659,27 +3659,38 @@ static void SCREEN_OT_header_toggle_menus(wmOperatorType *ot)
|
||||
/** \name Header Tools Operator
|
||||
* \{ */
|
||||
|
||||
static bool header_context_menu_poll(bContext *C)
|
||||
{
|
||||
ScrArea *sa = CTX_wm_area(C);
|
||||
return (sa && sa->spacetype != SPACE_STATUSBAR);
|
||||
}
|
||||
|
||||
void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UNUSED(arg))
|
||||
{
|
||||
ScrArea *sa = CTX_wm_area(C);
|
||||
ARegion *ar = CTX_wm_region(C);
|
||||
const char *but_flip_str = (ar->alignment == RGN_ALIGN_TOP) ? IFACE_("Flip to Bottom") : IFACE_("Flip to Top");
|
||||
|
||||
uiItemO(layout, IFACE_("Toggle Header"), ICON_NONE, "SCREEN_OT_header");
|
||||
if (!ELEM(sa->spacetype, SPACE_TOPBAR)) {
|
||||
uiItemO(layout, IFACE_("Toggle Header"), ICON_NONE, "SCREEN_OT_header");
|
||||
}
|
||||
|
||||
/* default is WM_OP_INVOKE_REGION_WIN, which we don't want here. */
|
||||
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_DEFAULT);
|
||||
|
||||
uiItemO(layout, but_flip_str, ICON_NONE, "SCREEN_OT_region_flip");
|
||||
if (!ELEM(sa->spacetype, SPACE_TOPBAR)) {
|
||||
uiItemO(layout, but_flip_str, ICON_NONE, "SCREEN_OT_region_flip");
|
||||
}
|
||||
|
||||
uiItemO(layout, IFACE_("Collapse Menus"),
|
||||
(sa->flag & HEADER_NO_PULLDOWN) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT,
|
||||
"SCREEN_OT_header_toggle_menus");
|
||||
|
||||
uiItemS(layout);
|
||||
|
||||
/* file browser should be fullscreen all the time, topbar should
|
||||
* never be. But other regions can be maximized/restored... */
|
||||
if (!ELEM(sa->spacetype, SPACE_FILE, SPACE_TOPBAR)) {
|
||||
uiItemS(layout);
|
||||
|
||||
const char *but_str = sa->full ? IFACE_("Tile Area") : IFACE_("Maximize Area");
|
||||
uiItemO(layout, but_str, ICON_NONE, "SCREEN_OT_screen_full_area");
|
||||
}
|
||||
@ -3708,6 +3719,7 @@ static void SCREEN_OT_header_context_menu(wmOperatorType *ot)
|
||||
ot->idname = "SCREEN_OT_header_context_menu";
|
||||
|
||||
/* api callbacks */
|
||||
ot->poll = header_context_menu_poll;
|
||||
ot->invoke = header_context_menu_invoke;
|
||||
}
|
||||
|
||||
|
@ -64,17 +64,9 @@
|
||||
|
||||
static int context_menu_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *UNUSED(event))
|
||||
{
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
SpaceButs *sbuts = CTX_wm_space_buts(C);
|
||||
PointerRNA ptr;
|
||||
uiPopupMenu *pup;
|
||||
uiLayout *layout;
|
||||
|
||||
RNA_pointer_create(&sc->id, &RNA_SpaceProperties, sbuts, &ptr);
|
||||
|
||||
pup = UI_popup_menu_begin(C, IFACE_("Align"), ICON_NONE);
|
||||
layout = UI_popup_menu_layout(pup);
|
||||
uiItemsEnumR(layout, &ptr, "align");
|
||||
uiPopupMenu *pup = UI_popup_menu_begin(C, IFACE_("Context Menu"), ICON_NONE);
|
||||
uiLayout *layout = UI_popup_menu_layout(pup);
|
||||
uiItemM(layout, "INFO_MT_area", NULL, ICON_NONE);
|
||||
UI_popup_menu_end(C, pup);
|
||||
|
||||
return OPERATOR_INTERFACE;
|
||||
@ -84,7 +76,7 @@ void BUTTONS_OT_context_menu(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "Context Menu";
|
||||
ot->description = "Display button panel context_menu";
|
||||
ot->description = "Display properties editor context_menu";
|
||||
ot->idname = "BUTTONS_OT_context_menu";
|
||||
|
||||
/* api callbacks */
|
||||
|
Loading…
Reference in New Issue
Block a user