Screen: replace show footer operator with property
This matches 'show header' internal logic.
This commit is contained in:
parent
4887b771f9
commit
9fecac32d9
|
@ -631,24 +631,6 @@ static bool screen_active_editable(bContext *C)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static ARegion *screen_find_region_type(bContext *C, int type)
|
||||
{
|
||||
ARegion *ar = CTX_wm_region(C);
|
||||
|
||||
/* find the header region
|
||||
* - try context first, but upon failing, search all regions in area...
|
||||
*/
|
||||
if ((ar == NULL) || (ar->regiontype != type)) {
|
||||
ScrArea *sa = CTX_wm_area(C);
|
||||
ar = BKE_area_find_region_type(sa, type);
|
||||
}
|
||||
else {
|
||||
ar = NULL;
|
||||
}
|
||||
|
||||
return ar;
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
@ -4014,8 +3996,11 @@ void ED_screens_footer_tools_menu_create(bContext *C, uiLayout *layout, void *UN
|
|||
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 Footer"), ICON_NONE, "SCREEN_OT_footer");
|
||||
{
|
||||
PointerRNA ptr;
|
||||
RNA_pointer_create((ID *)CTX_wm_screen(C), &RNA_Space, sa->spacedata.first, &ptr);
|
||||
uiItemR(layout, &ptr, "show_region_footer", 0, IFACE_("Show Footer"), ICON_NONE);
|
||||
}
|
||||
|
||||
/* default is WM_OP_INVOKE_REGION_WIN, which we don't want here. */
|
||||
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_DEFAULT);
|
||||
|
@ -4088,40 +4073,6 @@ static void SCREEN_OT_region_context_menu(wmOperatorType *ot)
|
|||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Footer Toggle Operator
|
||||
* \{ */
|
||||
|
||||
static int footer_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
ARegion *ar = screen_find_region_type(C, RGN_TYPE_FOOTER);
|
||||
|
||||
if (ar == NULL) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
ar->flag ^= RGN_FLAG_HIDDEN;
|
||||
|
||||
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_footer(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "Toggle Footer";
|
||||
ot->description = "Toggle footer display";
|
||||
ot->idname = "SCREEN_OT_footer";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = footer_exec;
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Animation Step Operator
|
||||
*
|
||||
|
@ -5266,7 +5217,6 @@ void ED_operatortypes_screen(void)
|
|||
WM_operatortype_append(SCREEN_OT_region_flip);
|
||||
WM_operatortype_append(SCREEN_OT_header_toggle_menus);
|
||||
WM_operatortype_append(SCREEN_OT_region_context_menu);
|
||||
WM_operatortype_append(SCREEN_OT_footer);
|
||||
WM_operatortype_append(SCREEN_OT_screen_set);
|
||||
WM_operatortype_append(SCREEN_OT_screen_full_area);
|
||||
WM_operatortype_append(SCREEN_OT_back_to_previous);
|
||||
|
|
|
@ -644,6 +644,20 @@ static void rna_Space_show_region_header_update(bContext *C, PointerRNA *ptr)
|
|||
rna_Space_bool_from_region_flag_update_by_type(C, ptr, RGN_TYPE_HEADER, RGN_FLAG_HIDDEN);
|
||||
}
|
||||
|
||||
/* Footer Region. */
|
||||
static bool rna_Space_show_region_footer_get(PointerRNA *ptr)
|
||||
{
|
||||
return !rna_Space_bool_from_region_flag_get_by_type(ptr, RGN_TYPE_FOOTER, RGN_FLAG_HIDDEN);
|
||||
}
|
||||
static void rna_Space_show_region_footer_set(PointerRNA *ptr, bool value)
|
||||
{
|
||||
rna_Space_bool_from_region_flag_set_by_type(ptr, RGN_TYPE_FOOTER, RGN_FLAG_HIDDEN, !value);
|
||||
}
|
||||
static void rna_Space_show_region_footer_update(bContext *C, PointerRNA *ptr)
|
||||
{
|
||||
rna_Space_bool_from_region_flag_update_by_type(C, ptr, RGN_TYPE_FOOTER, RGN_FLAG_HIDDEN);
|
||||
}
|
||||
|
||||
/* Tool Header Region.
|
||||
*
|
||||
* This depends on the 'RGN_TYPE_TOOL_HEADER'
|
||||
|
@ -2460,6 +2474,10 @@ static void rna_def_space_generic_show_region_toggles(StructRNA *srna, int regio
|
|||
region_type_mask &= ~(1 << RGN_TYPE_HEADER);
|
||||
DEF_SHOW_REGION_PROPERTY(show_region_header, "Header", "");
|
||||
}
|
||||
if (region_type_mask & (1 << RGN_TYPE_FOOTER)) {
|
||||
region_type_mask &= ~(1 << RGN_TYPE_FOOTER);
|
||||
DEF_SHOW_REGION_PROPERTY(show_region_footer, "Footer", "");
|
||||
}
|
||||
if (region_type_mask & (1 << RGN_TYPE_TOOLS)) {
|
||||
region_type_mask &= ~(1 << RGN_TYPE_TOOLS);
|
||||
DEF_SHOW_REGION_PROPERTY(show_region_toolbar, "Toolbar", "");
|
||||
|
@ -4508,7 +4526,7 @@ static void rna_def_space_text(BlenderRNA *brna)
|
|||
RNA_def_struct_sdna(srna, "SpaceText");
|
||||
RNA_def_struct_ui_text(srna, "Space Text Editor", "Text editor space data");
|
||||
|
||||
rna_def_space_generic_show_region_toggles(srna, (1 << RGN_TYPE_UI));
|
||||
rna_def_space_generic_show_region_toggles(srna, (1 << RGN_TYPE_UI) | (1 << RGN_TYPE_FOOTER));
|
||||
|
||||
/* text */
|
||||
prop = RNA_def_property(srna, "text", PROP_POINTER, PROP_NONE);
|
||||
|
|
Loading…
Reference in New Issue