[Bf-blender-cvs] [cfed33f7389] master: UI: replace toggle header with a property

Campbell Barton noreply at git.blender.org
Thu Apr 18 16:39:48 CEST 2019


Commit: cfed33f7389adeb0eb9d1792a3b47327b0ba6f0f
Author: Campbell Barton
Date:   Thu Apr 18 16:35:11 2019 +0200
Branches: master
https://developer.blender.org/rBcfed33f7389adeb0eb9d1792a3b47327b0ba6f0f

UI: replace toggle header with a property

===================================================================

M	source/blender/editors/screen/screen_ops.c
M	source/blender/makesrna/intern/rna_space.c

===================================================================

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
@@ -3746,40 +3746,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)
 {



More information about the Bf-blender-cvs mailing list