[Bf-blender-cvs] [4537eb0c3b1] master: Cleanup: Remove interface region files to C++

Hans Goudey noreply at git.blender.org
Sat Apr 2 23:17:58 CEST 2022


Commit: 4537eb0c3b1678a623510570fb7528bf53174b2f
Author: Hans Goudey
Date:   Sat Apr 2 16:17:48 2022 -0500
Branches: master
https://developer.blender.org/rB4537eb0c3b1678a623510570fb7528bf53174b2f

Cleanup: Remove interface region files to C++

Moves all `interface_region*` files to C++ except for the tooptip region
which is slightly more complicated. Also move a few other files as well.
This helps to simplify and speed up code, especially through the use
of better C++ data structures. This change builds on all platforms on
the buildbot.

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

M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/interface/CMakeLists.txt
M	source/blender/editors/interface/interface_intern.h
R091	source/blender/editors/interface/interface_query.c	source/blender/editors/interface/interface_query.cc
R093	source/blender/editors/interface/interface_region_color_picker.c	source/blender/editors/interface/interface_region_color_picker.cc
R088	source/blender/editors/interface/interface_region_hud.c	source/blender/editors/interface/interface_region_hud.cc
R093	source/blender/editors/interface/interface_region_menu_pie.c	source/blender/editors/interface/interface_region_menu_pie.cc
R088	source/blender/editors/interface/interface_region_menu_popup.c	source/blender/editors/interface/interface_region_menu_popup.cc
R088	source/blender/editors/interface/interface_region_popover.c	source/blender/editors/interface/interface_region_popover.cc
R096	source/blender/editors/interface/interface_region_popup.c	source/blender/editors/interface/interface_region_popup.cc
R089	source/blender/editors/interface/interface_regions.c	source/blender/editors/interface/interface_regions.cc
R093	source/blender/editors/interface/interface_style.c	source/blender/editors/interface/interface_style.cc
R089	source/blender/editors/interface/interface_utils.c	source/blender/editors/interface/interface_utils.cc

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

diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 74797f91046..a4508cb5b6d 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -634,7 +634,7 @@ uiPopupMenu *UI_popup_menu_begin_ex(struct bContext *C,
  * Set the whole structure to work.
  */
 void UI_popup_menu_end(struct bContext *C, struct uiPopupMenu *pup);
-bool UI_popup_menu_end_or_cancel(struct bContext *C, struct uiPopupMenu *head);
+bool UI_popup_menu_end_or_cancel(struct bContext *C, struct uiPopupMenu *pup);
 struct uiLayout *UI_popup_menu_layout(uiPopupMenu *pup);
 
 void UI_popup_menu_reports(struct bContext *C, struct ReportList *reports) ATTR_NONNULL();
@@ -1595,13 +1595,15 @@ typedef enum {
 } eButLabelAlign;
 
 /* Return info for uiDefAutoButsRNA */
-typedef enum {
+typedef enum eAutoPropButsReturn {
   /* Returns when no buttons were added */
   UI_PROP_BUTS_NONE_ADDED = 1 << 0,
   /* Returned when any property failed the custom check callback (check_prop) */
   UI_PROP_BUTS_ANY_FAILED_CHECK = 1 << 1,
 } eAutoPropButsReturn;
 
+ENUM_OPERATORS(eAutoPropButsReturn, UI_PROP_BUTS_ANY_FAILED_CHECK);
+
 uiBut *uiDefAutoButR(uiBlock *block,
                      struct PointerRNA *ptr,
                      struct PropertyRNA *prop,
diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt
index 100be2c10c9..a1ee5c38838 100644
--- a/source/blender/editors/interface/CMakeLists.txt
+++ b/source/blender/editors/interface/CMakeLists.txt
@@ -46,17 +46,17 @@ set(SRC
   interface_layout.c
   interface_ops.c
   interface_panel.c
-  interface_query.c
-  interface_region_color_picker.c
-  interface_region_hud.c
-  interface_region_menu_pie.c
-  interface_region_menu_popup.c
-  interface_region_popover.c
-  interface_region_popup.c
+  interface_query.cc
+  interface_region_color_picker.cc
+  interface_region_hud.cc
+  interface_region_menu_pie.cc
+  interface_region_menu_popup.cc
+  interface_region_popover.cc
+  interface_region_popup.cc
   interface_region_search.cc
   interface_region_tooltip.c
-  interface_regions.c
-  interface_style.c
+  interface_regions.cc
+  interface_style.cc
   interface_template_asset_view.cc
   interface_template_attribute_search.cc
   interface_template_list.cc
@@ -64,7 +64,7 @@ set(SRC
   interface_template_search_operator.c
   interface_templates.c
   interface_undo.c
-  interface_utils.c
+  interface_utils.cc
   interface_view.cc
   interface_widgets.c
   resources.c
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index a7a2409ef17..e619b14fb69 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -214,8 +214,8 @@ struct uiBut {
   BIFIconID icon;
   /** Copied from the #uiBlock.emboss */
   eUIEmbossType emboss;
-  /** direction in a pie menu, used for collision detection (RadialDirection) */
-  signed char pie_dir;
+  /** direction in a pie menu, used for collision detection. */
+  RadialDirection pie_dir;
   /** could be made into a single flag */
   bool changed;
   /** so buttons can support unit systems which are not RNA */
@@ -954,7 +954,7 @@ void ui_pie_menu_level_create(uiBlock *block,
                               const EnumPropertyItem *items,
                               int totitem,
                               wmOperatorCallContext context,
-                              int flag);
+                              wmOperatorCallContext flag);
 
 /* interface_region_popup.c */
 
diff --git a/source/blender/editors/interface/interface_query.c b/source/blender/editors/interface/interface_query.cc
similarity index 91%
rename from source/blender/editors/interface/interface_query.c
rename to source/blender/editors/interface/interface_query.cc
index 4703367671d..2767a184619 100644
--- a/source/blender/editors/interface/interface_query.c
+++ b/source/blender/editors/interface/interface_query.cc
@@ -61,7 +61,7 @@ bool ui_but_is_toggle(const uiBut *but)
 bool ui_but_is_interactive(const uiBut *but, const bool labeledit)
 {
   /* NOTE: #UI_BTYPE_LABEL is included for highlights, this allows drags. */
-  if ((but->type == UI_BTYPE_LABEL) && but->dragpoin == NULL) {
+  if ((but->type == UI_BTYPE_LABEL) && but->dragpoin == nullptr) {
     return false;
   }
   if (ELEM(but->type, UI_BTYPE_ROUNDBOX, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_LISTBOX)) {
@@ -119,12 +119,12 @@ bool ui_but_has_array_value(const uiBut *but)
                PROP_COORDS));
 }
 
-static wmOperatorType *g_ot_tool_set_by_id = NULL;
+static wmOperatorType *g_ot_tool_set_by_id = nullptr;
 bool UI_but_is_tool(const uiBut *but)
 {
   /* very evil! */
-  if (but->optype != NULL) {
-    if (g_ot_tool_set_by_id == NULL) {
+  if (but->optype != nullptr) {
+    if (g_ot_tool_set_by_id == nullptr) {
       g_ot_tool_set_by_id = WM_operatortype_find("WM_OT_tool_set_by_id", false);
     }
     if (but->optype == g_ot_tool_set_by_id) {
@@ -198,7 +198,7 @@ bool ui_but_contains_pt(const uiBut *but, float mx, float my)
 
 bool ui_but_contains_rect(const uiBut *but, const rctf *rect)
 {
-  return BLI_rctf_isect(&but->rect, rect, NULL);
+  return BLI_rctf_isect(&but->rect, rect, nullptr);
 }
 
 bool ui_but_contains_point_px(const uiBut *but, const ARegion *region, const int xy[2])
@@ -260,7 +260,7 @@ static uiBut *ui_but_find(const ARegion *region,
     }
   }
 
-  return NULL;
+  return nullptr;
 }
 
 uiBut *ui_but_find_mouse_over_ex(const ARegion *region,
@@ -269,10 +269,10 @@ uiBut *ui_but_find_mouse_over_ex(const ARegion *region,
                                  const uiButFindPollFn find_poll,
                                  const void *find_custom_data)
 {
-  uiBut *butover = NULL;
+  uiBut *butover = nullptr;
 
   if (!ui_region_contains_point_px(region, xy)) {
-    return NULL;
+    return nullptr;
   }
   LISTBASE_FOREACH (uiBlock *, block, &region->uiblocks) {
     float mx = xy[0], my = xy[1];
@@ -310,20 +310,20 @@ uiBut *ui_but_find_mouse_over_ex(const ARegion *region,
 
 uiBut *ui_but_find_mouse_over(const ARegion *region, const wmEvent *event)
 {
-  return ui_but_find_mouse_over_ex(region, event->xy, event->modifier & KM_CTRL, NULL, NULL);
+  return ui_but_find_mouse_over_ex(region, event->xy, event->modifier & KM_CTRL, nullptr, nullptr);
 }
 
 uiBut *ui_but_find_rect_over(const struct ARegion *region, const rcti *rect_px)
 {
   if (!ui_region_contains_rect_px(region, rect_px)) {
-    return NULL;
+    return nullptr;
   }
 
   /* Currently no need to expose this at the moment. */
   const bool labeledit = true;
   rctf rect_px_fl;
   BLI_rctf_rcti_copy(&rect_px_fl, rect_px);
-  uiBut *butover = NULL;
+  uiBut *butover = nullptr;
 
   LISTBASE_FOREACH (uiBlock *, block, &region->uiblocks) {
     rctf rect_block;
@@ -343,7 +343,7 @@ uiBut *ui_but_find_rect_over(const struct ARegion *region, const rcti *rect_px)
     /* CLIP_EVENTS prevents the event from reaching other blocks */
     if (block->flag & UI_BLOCK_CLIP_EVENTS) {
       /* check if mouse is inside block */
-      if (BLI_rctf_isect(&block->rect, &rect_block, NULL)) {
+      if (BLI_rctf_isect(&block->rect, &rect_block, nullptr)) {
         break;
       }
     }
@@ -354,7 +354,7 @@ uiBut *ui_but_find_rect_over(const struct ARegion *region, const rcti *rect_px)
 uiBut *ui_list_find_mouse_over_ex(const ARegion *region, const int xy[2])
 {
   if (!ui_region_contains_point_px(region, xy)) {
-    return NULL;
+    return nullptr;
   }
   LISTBASE_FOREACH (uiBlock *, block, &region->uiblocks) {
     float mx = xy[0], my = xy[1];
@@ -366,14 +366,14 @@ uiBut *ui_list_find_mouse_over_ex(const ARegion *region, const int xy[2])
     }
   }
 
-  return NULL;
+  return nullptr;
 }
 
 uiBut *ui_list_find_mouse_over(const ARegion *region, const wmEvent *event)
 {
-  if (event == NULL) {
+  if (event == nullptr) {
     /* If there is no info about the mouse, just act as if there is nothing underneath it. */
-    return NULL;
+    return nullptr;
   }
   return ui_list_find_mouse_over_ex(region, event->xy);
 }
@@ -382,10 +382,10 @@ uiList *UI_list_find_mouse_over(const ARegion *region, const wmEvent *event)
 {
   uiBut *list_but = ui_list_find_mouse_over(region, event);
   if (!list_but) {
-    return NULL;
+    return nullptr;
   }
 
-  return list_but->custom_data;
+  return static_cast<uiList *>(list_but->custom_data);
 }
 
 static bool ui_list_contains_row(const uiBut *listbox_but, const uiBut *listrow_but)
@@ -398,7 +398,7 @@ static bool ui_list_contains_row(const uiBut *listbox_but, const uiBut *listrow_
 
 static bool ui_but_is_listbox_with_row(const uiBut *but, const void *customdata)
 {
-  const uiBut *row_but = customdata;
+  const uiBut *row_but = static_cast<const uiBut *>(customdata);
   return (but->type == UI_BTYPE_LISTBOX) && ui_list_contains_row(but, row_but);
 }
 
@@ -414,7 +414,7 @@ static bool ui_but_is_listrow(const uiBut *but, const void *UNUSED(customdata))
 
 uiBut *ui_list_row_find_mouse_over(const ARegion *region, const int xy[2])
 {
-  return ui_but_find_mouse_over_ex(region, xy, false, ui_but_is_listrow, NULL);
+  return ui_but_find_mouse_over_ex(region, xy, false, ui_but_is_listrow, nullptr);
 }
 
 struct ListRowFindIndexData {
@@ -424,19 +424,18 @@ struct ListRowFindIndexData {
 
 static bool ui_but_is_listrow_at_index(const uiBut *but, const void *customdata)
 {
-  const struct ListRowFindIndexData *find_data = customdata;
+  const ListRowFindIndexData *find_data = static_cast<const ListRowFindIndexData *>(customdata);
 
-  return ui_but_is_listrow(but, NULL) && ui_list_contains_row(find_data->listbox, but) &&
+  return ui_but_is_listrow(but, nullptr) && ui_list_contains_row(find_data->listbox, but) &&
          (but->hardmax == find_data->index);
 }
 
 uiBut *ui_list_row_find_from_index(const ARegion *region, const int index, uiBut *listbox)
 {
   BLI_assert(listbox->type == UI_BTYPE_LISTBOX);
-  struct ListRowFindIndexData data = {
-      .index = index,
-      .listbox = listbox,
-  };
+  ListRowFindIndexData data = {};
+  data.index = index;
+  data.listbox = listbox;
   return ui_but_find(re

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list