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:
authorCampbell Barton <ideasman42@gmail.com>2019-04-18 17:35:11 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-18 17:39:46 +0300
commitcfed33f7389adeb0eb9d1792a3b47327b0ba6f0f (patch)
tree17494129893a4256b2e4b41da63810ed26a4a8af /source/blender
parent9954cce59f540e62ae65587098ad4ca724734a89 (diff)
UI: replace toggle header with a property
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/screen/screen_ops.c39
-rw-r--r--source/blender/makesrna/intern/rna_space.c68
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)
{