diff options
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 39 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 68 |
2 files changed, 47 insertions, 60 deletions
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 9a7957815a1..07f60552ce4 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3747,40 +3747,6 @@ static void SCREEN_OT_region_flip(wmOperatorType *ot) /** \} */ /* -------------------------------------------------------------------- */ -/** \name Header Toggle Operator - * \{ */ - -static int header_exec(bContext *C, wmOperator *UNUSED(op)) -{ - ARegion *ar = screen_find_region_type(C, RGN_TYPE_HEADER); - - 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_header(wmOperatorType *ot) -{ - /* identifiers */ - ot->name = "Toggle Header"; - ot->description = "Toggle header display"; - ot->idname = "SCREEN_OT_header"; - - /* api callbacks */ - ot->exec = header_exec; -} - -/** \} */ - -/* -------------------------------------------------------------------- */ /** \name Header Toggle Menu Operator * \{ */ @@ -3830,7 +3796,9 @@ void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UN IFACE_("Flip to Top"); if (!ELEM(sa->spacetype, SPACE_TOPBAR)) { - uiItemO(layout, IFACE_("Toggle Header"), ICON_NONE, "SCREEN_OT_header"); + PointerRNA ptr; + RNA_pointer_create((ID *)CTX_wm_screen(C), &RNA_Space, sa->spacedata.first, &ptr); + uiItemR(layout, &ptr, "show_region_header", 0, IFACE_("Show Header"), ICON_NONE); } /* default is WM_OP_INVOKE_REGION_WIN, which we don't want here. */ @@ -5110,7 +5078,6 @@ void ED_operatortypes_screen(void) WM_operatortype_append(SCREEN_OT_region_quadview); WM_operatortype_append(SCREEN_OT_region_scale); WM_operatortype_append(SCREEN_OT_region_flip); - WM_operatortype_append(SCREEN_OT_header); WM_operatortype_append(SCREEN_OT_header_toggle_menus); WM_operatortype_append(SCREEN_OT_header_context_menu); WM_operatortype_append(SCREEN_OT_footer); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index ffbea29a301..04032d0863a 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -614,6 +614,20 @@ static void rna_Space_bool_from_region_flag_update_by_type(bContext *C, /** \name Region Flag Access (Typed Callbacks) * \{ */ +/* Header Region. */ +static bool rna_Space_show_region_header_get(PointerRNA *ptr) +{ + return !rna_Space_bool_from_region_flag_get_by_type(ptr, RGN_TYPE_HEADER, RGN_FLAG_HIDDEN); +} +static void rna_Space_show_region_header_set(PointerRNA *ptr, bool value) +{ + rna_Space_bool_from_region_flag_set_by_type(ptr, RGN_TYPE_HEADER, RGN_FLAG_HIDDEN, !value); +} +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); +} + /* Tools Region. */ static bool rna_Space_show_region_toolbar_get(PointerRNA *ptr) { @@ -2392,30 +2406,6 @@ static const EnumPropertyItem dt_uv_items[] = { {0, NULL, 0, NULL, NULL}, }; -static void rna_def_space(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "Space", NULL); - RNA_def_struct_sdna(srna, "SpaceLink"); - RNA_def_struct_ui_text(srna, "Space", "Space data for a screen area"); - RNA_def_struct_refine_func(srna, "rna_Space_refine"); - - prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "spacetype"); - RNA_def_property_enum_items(prop, rna_enum_space_type_items); - /* When making this editable, take care for the special case of global areas (see rna_Area_type_set). */ - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Type", "Space data type"); - - /* access to V2D_VIEWSYNC_SCREEN_TIME */ - prop = RNA_def_property(srna, "show_locked_time", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_funcs(prop, "rna_Space_view2d_sync_get", "rna_Space_view2d_sync_set"); - RNA_def_property_ui_text(prop, "Lock Time to Other Windows", ""); - RNA_def_property_update(prop, NC_SPACE | ND_SPACE_TIME, "rna_Space_view2d_sync_update"); -} - static void rna_def_space_generic_show_region_toggles(StructRNA *srna, int region_type_mask) { PropertyRNA *prop; @@ -2432,6 +2422,10 @@ static void rna_def_space_generic_show_region_toggles(StructRNA *srna, int regio } \ ((void)0) + if (region_type_mask & (1 << RGN_TYPE_HEADER)) { + region_type_mask &= ~(1 << RGN_TYPE_HEADER); + DEF_SHOW_REGION_PROPERTY(show_region_header, "Header", ""); + } if (region_type_mask & (1 << RGN_TYPE_TOOLS)) { region_type_mask &= ~(1 << RGN_TYPE_TOOLS); DEF_SHOW_REGION_PROPERTY(show_region_toolbar, "Toolbar", ""); @@ -2447,6 +2441,32 @@ static void rna_def_space_generic_show_region_toggles(StructRNA *srna, int regio BLI_assert(region_type_mask == 0); } +static void rna_def_space(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "Space", NULL); + RNA_def_struct_sdna(srna, "SpaceLink"); + RNA_def_struct_ui_text(srna, "Space", "Space data for a screen area"); + RNA_def_struct_refine_func(srna, "rna_Space_refine"); + + prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "spacetype"); + RNA_def_property_enum_items(prop, rna_enum_space_type_items); + /* When making this editable, take care for the special case of global areas (see rna_Area_type_set). */ + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Type", "Space data type"); + + /* access to V2D_VIEWSYNC_SCREEN_TIME */ + prop = RNA_def_property(srna, "show_locked_time", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_Space_view2d_sync_get", "rna_Space_view2d_sync_set"); + RNA_def_property_ui_text(prop, "Lock Time to Other Windows", ""); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_TIME, "rna_Space_view2d_sync_update"); + + rna_def_space_generic_show_region_toggles(srna, (1 << RGN_TYPE_HEADER)); +} + /* for all spaces that use a mask */ static void rna_def_space_mask_info(StructRNA *srna, int noteflag, const char *mask_set_func) { |