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:
Diffstat (limited to 'source/blender/makesrna/intern/rna_space.c')
-rw-r--r--source/blender/makesrna/intern/rna_space.c43
1 files changed, 40 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 04032d0863a..984536b6907 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -622,12 +622,44 @@ static bool rna_Space_show_region_header_get(PointerRNA *ptr)
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);
+
+ /* Special case, never show the tool properties when the header is invisible. */
+ bool value_for_tool_header = value;
+ if (value == true) {
+ ScrArea *sa = rna_area_from_space(ptr);
+ ARegion *ar_tool_header = BKE_area_find_region_type(sa, RGN_TYPE_TOOL_HEADER);
+ if (ar_tool_header != NULL) {
+ value = !(ar_tool_header->flag & RGN_FLAG_HIDDEN_BY_USER);
+ }
+ }
+ rna_Space_bool_from_region_flag_set_by_type(
+ ptr, RGN_TYPE_TOOL_HEADER, RGN_FLAG_HIDDEN, !value_for_tool_header);
}
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);
}
+/* Tool Header Region.
+ *
+ * This depends on the 'RGN_TYPE_TOOL_HEADER'
+ */
+static bool rna_Space_show_region_tool_header_get(PointerRNA *ptr)
+{
+ return !rna_Space_bool_from_region_flag_get_by_type(
+ ptr, RGN_TYPE_TOOL_HEADER, RGN_FLAG_HIDDEN_BY_USER);
+}
+static void rna_Space_show_region_tool_header_set(PointerRNA *ptr, bool value)
+{
+ rna_Space_bool_from_region_flag_set_by_type(
+ ptr, RGN_TYPE_TOOL_HEADER, RGN_FLAG_HIDDEN_BY_USER, !value);
+ rna_Space_bool_from_region_flag_set_by_type(ptr, RGN_TYPE_TOOL_HEADER, RGN_FLAG_HIDDEN, !value);
+}
+static void rna_Space_show_region_tool_header_update(bContext *C, PointerRNA *ptr)
+{
+ rna_Space_bool_from_region_flag_update_by_type(C, ptr, RGN_TYPE_TOOL_HEADER, RGN_FLAG_HIDDEN);
+}
+
/* Tools Region. */
static bool rna_Space_show_region_toolbar_get(PointerRNA *ptr)
{
@@ -2422,6 +2454,10 @@ static void rna_def_space_generic_show_region_toggles(StructRNA *srna, int regio
} \
((void)0)
+ if (region_type_mask & (1 << RGN_TYPE_TOOL_HEADER)) {
+ region_type_mask &= ~(1 << RGN_TYPE_TOOL_HEADER);
+ DEF_SHOW_REGION_PROPERTY(show_region_tool_header, "Tool Header", "");
+ }
if (region_type_mask & (1 << RGN_TYPE_HEADER)) {
region_type_mask &= ~(1 << RGN_TYPE_HEADER);
DEF_SHOW_REGION_PROPERTY(show_region_header, "Header", "");
@@ -3546,8 +3582,9 @@ static void rna_def_space_view3d(BlenderRNA *brna)
RNA_def_struct_sdna(srna, "View3D");
RNA_def_struct_ui_text(srna, "3D View Space", "3D View space data");
- rna_def_space_generic_show_region_toggles(
- srna, (1 << RGN_TYPE_TOOLS) | (1 << RGN_TYPE_UI) | (1 << RGN_TYPE_HUD));
+ rna_def_space_generic_show_region_toggles(srna,
+ ((1 << RGN_TYPE_TOOL_HEADER) | (1 << RGN_TYPE_TOOLS) |
+ (1 << RGN_TYPE_UI) | (1 << RGN_TYPE_HUD)));
prop = RNA_def_property(srna, "camera", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE);
@@ -4054,7 +4091,7 @@ static void rna_def_space_image(BlenderRNA *brna)
RNA_def_struct_ui_text(srna, "Space Image Editor", "Image and UV editor space data");
rna_def_space_generic_show_region_toggles(
- srna, (1 << RGN_TYPE_TOOLS) | (1 << RGN_TYPE_UI) | (1 << RGN_TYPE_HUD));
+ srna, (1 << RGN_TYPE_TOOL_HEADER) | (1 << RGN_TYPE_TOOLS) | (1 << RGN_TYPE_UI) | (1 << RGN_TYPE_HUD));
/* image */
prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);