[Bf-blender-cvs] [70682d11b8a] master: Cleanup: replace RGN_ALIGN_ENUM_MASK

Campbell Barton noreply at git.blender.org
Fri May 3 05:07:41 CEST 2019


Commit: 70682d11b8a8b3bca327a309f2e1e8383b920387
Author: Campbell Barton
Date:   Fri May 3 13:04:37 2019 +1000
Branches: master
https://developer.blender.org/rB70682d11b8a8b3bca327a309f2e1e8383b920387

Cleanup: replace RGN_ALIGN_ENUM_MASK

This was only used once, other checks were masking out
RGN_SPLIT_PREV which isn't future proof (if other flags are added).

Add RGN_ALIGN_ENUM_FROM_MASK macro, use it everywhere we need to
check the alignment enum.

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

M	source/blender/editors/screen/area.c
M	source/blender/editors/screen/screen_ops.c
M	source/blender/makesdna/DNA_screen_types.h
M	source/blender/makesrna/intern/rna_screen.c

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

diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 38684afec39..9a74ffc38d9 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1110,7 +1110,7 @@ static int rct_fits(const rcti *rect, char dir, int size)
 static void region_overlap_fix(ScrArea *sa, ARegion *ar)
 {
   ARegion *ar1;
-  const int align = ar->alignment & ~RGN_SPLIT_PREV;
+  const int align = RGN_ALIGN_ENUM_FROM_MASK(ar->alignment);
   int align1 = 0;
 
   /* find overlapping previous region on same place */
@@ -1227,7 +1227,7 @@ static void region_rect_recursive(
     }
   }
 
-  int alignment = ar->alignment & ~RGN_SPLIT_PREV;
+  int alignment = RGN_ALIGN_ENUM_FROM_MASK(ar->alignment);
 
   /* set here, assuming userpref switching forces to call this again */
   ar->overlap = ED_region_is_overlap(sa->spacetype, ar->regiontype);
@@ -1690,7 +1690,7 @@ void ED_area_update_region_sizes(wmWindowManager *wm, wmWindow *win, ScrArea *ar
     }
 
     /* Some AZones use View2D data which is only updated in region init, so call that first! */
-    region_azones_add(screen, area, ar, ar->alignment & ~RGN_SPLIT_PREV);
+    region_azones_add(screen, area, ar, RGN_ALIGN_ENUM_FROM_MASK(ar->alignment));
   }
   ED_area_azones_update(area, &win->eventstate->x);
 
@@ -1761,7 +1761,7 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa)
     }
 
     /* Some AZones use View2D data which is only updated in region init, so call that first! */
-    region_azones_add(screen, sa, ar, ar->alignment & ~RGN_SPLIT_PREV);
+    region_azones_add(screen, sa, ar, RGN_ALIGN_ENUM_FROM_MASK(ar->alignment));
   }
 
   /* Avoid re-initializing tools while resizing the window. */
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 9f452dd79e0..a87660d2cb7 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -2431,7 +2431,7 @@ static int area_max_regionsize(ScrArea *sa, ARegion *scalear, AZEdge edge)
 
   /* regions in regions. */
   if (scalear->alignment & RGN_SPLIT_PREV) {
-    const int align = scalear->alignment & RGN_ALIGN_ENUM_MASK;
+    const int align = RGN_ALIGN_ENUM_FROM_MASK(scalear->alignment);
 
     if (ELEM(align, RGN_ALIGN_TOP, RGN_ALIGN_BOTTOM)) {
       ARegion *ar = scalear->prev;
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index 411777333a9..e014de183e3 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -599,31 +599,39 @@ enum {
 /* Region supports panel tabs (categories). */
 #define RGN_TYPE_HAS_CATEGORY_MASK (1 << RGN_TYPE_UI)
 
-/* region alignment */
-#define RGN_ALIGN_NONE 0
-#define RGN_ALIGN_TOP 1
-#define RGN_ALIGN_BOTTOM 2
-#define RGN_ALIGN_LEFT 3
-#define RGN_ALIGN_RIGHT 4
-#define RGN_ALIGN_HSPLIT 5
-#define RGN_ALIGN_VSPLIT 6
-#define RGN_ALIGN_FLOAT 7
-#define RGN_ALIGN_QSPLIT 8
-#define RGN_ALIGN_ENUM_MASK 0x0F
-
-#define RGN_SPLIT_PREV 32
+/** #ARegion.alignment */
+enum {
+  RGN_ALIGN_NONE = 0,
+  RGN_ALIGN_TOP = 1,
+  RGN_ALIGN_BOTTOM = 2,
+  RGN_ALIGN_LEFT = 3,
+  RGN_ALIGN_RIGHT = 4,
+  RGN_ALIGN_HSPLIT = 5,
+  RGN_ALIGN_VSPLIT = 6,
+  RGN_ALIGN_FLOAT = 7,
+  RGN_ALIGN_QSPLIT = 8,
+  /* Maximum 15. */
+
+  /* Flags start here. */
+  RGN_SPLIT_PREV = 32,
+};
+
+/** Mask out flags so we can check the alignment. */
+#define RGN_ALIGN_ENUM_FROM_MASK(align) ((align) & ((1 << 4) - 1))
 
 /** #ARegion.flag */
 enum {
   RGN_FLAG_HIDDEN = (1 << 0),
   RGN_FLAG_TOO_SMALL = (1 << 1),
-  /* Force delayed reinit of region size data, so that region size is calculated
+  /**
+   * Force delayed reinit of region size data, so that region size is calculated
    * just big enough to show all its content (if enough space is available).
-   * Note that only ED_region_header supports this right now. */
+   * Note that only ED_region_header supports this right now.
+   */
   RGN_FLAG_DYNAMIC_SIZE = (1 << 2),
-  /* Region data is NULL'd on read, never written. */
+  /** Region data is NULL'd on read, never written. */
   RGN_FLAG_TEMP_REGIONDATA = (1 << 3),
-  /* The region must either use its prefsizex/y or be hidden. */
+  /** The region must either use its prefsizex/y or be hidden. */
   RGN_FLAG_PREFSIZE_OR_HIDDEN = (1 << 4),
   /** Size has been clamped (floating regions only). */
   RGN_FLAG_SIZE_CLAMP_X = (1 << 5),
diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c
index 3de946c1c8f..9c349d64953 100644
--- a/source/blender/makesrna/intern/rna_screen.c
+++ b/source/blender/makesrna/intern/rna_screen.c
@@ -93,7 +93,7 @@ static bool rna_Screen_is_animation_playing_get(PointerRNA *UNUSED(ptr))
 static int rna_region_alignment_get(PointerRNA *ptr)
 {
   ARegion *region = ptr->data;
-  return (region->alignment & ~RGN_SPLIT_PREV);
+  return RGN_ALIGN_ENUM_FROM_MASK(region->alignment);
 }
 
 static bool rna_Screen_fullscreen_get(PointerRNA *ptr)



More information about the Bf-blender-cvs mailing list