[Bf-blender-cvs] [2038250c62f] temp-interface-cpp: WIP changes to compiling interface directory as C++ code

Hans Goudey noreply at git.blender.org
Thu Apr 29 06:33:02 CEST 2021


Commit: 2038250c62fa3753fcc31129f8dd5f4fdf08e2e7
Author: Hans Goudey
Date:   Wed Apr 28 23:32:55 2021 -0500
Branches: temp-interface-cpp
https://developer.blender.org/rB2038250c62fa3753fcc31129f8dd5f4fdf08e2e7

WIP changes to compiling interface directory as C++ code

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

M	source/blender/editors/interface/CMakeLists.txt
R097	source/blender/editors/interface/interface.c	source/blender/editors/interface/interface.cc
R085	source/blender/editors/interface/interface_button_group.c	source/blender/editors/interface/interface_button_group.cc
R097	source/blender/editors/interface/interface_context_menu.c	source/blender/editors/interface/interface_context_menu.cc
R093	source/blender/editors/interface/interface_draw.c	source/blender/editors/interface/interface_draw.cc
R097	source/blender/editors/interface/interface_handlers.c	source/blender/editors/interface/interface_handlers.cc
R097	source/blender/editors/interface/interface_icons_event.c	source/blender/editors/interface/interface_icons_event.cc
M	source/blender/editors/interface/interface_intern.h
R094	source/blender/editors/interface/interface_layout.c	source/blender/editors/interface/interface_layout.cc
R096	source/blender/editors/interface/interface_panel.c	source/blender/editors/interface/interface_panel.cc
R098	source/blender/editors/interface/interface_query.c	source/blender/editors/interface/interface_query.cc
R097	source/blender/editors/interface/interface_region_color_picker.c	source/blender/editors/interface/interface_region_color_picker.cc
R093	source/blender/editors/interface/interface_region_hud.c	source/blender/editors/interface/interface_region_hud.cc
R098	source/blender/editors/interface/interface_region_popup.c	source/blender/editors/interface/interface_region_popup.cc
R094	source/blender/editors/interface/interface_region_search.c	source/blender/editors/interface/interface_region_search.cc
R096	source/blender/editors/interface/interface_regions.c	source/blender/editors/interface/interface_regions.cc
R097	source/blender/editors/interface/interface_style.c	source/blender/editors/interface/interface_style.cc
R089	source/blender/editors/interface/interface_template_search_menu.c	source/blender/editors/interface/interface_template_search_menu.cc
R097	source/blender/editors/interface/interface_template_search_operator.c	source/blender/editors/interface/interface_template_search_operator.cc
R100	source/blender/editors/interface/interface_templates.c	source/blender/editors/interface/interface_templates.cc
R093	source/blender/editors/interface/interface_undo.c	source/blender/editors/interface/interface_undo.cc
R096	source/blender/editors/interface/interface_utils.c	source/blender/editors/interface/interface_utils.cc
R099	source/blender/editors/interface/resources.c	source/blender/editors/interface/resources.cc

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

diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt
index 421019bebb8..d221dde4fae 100644
--- a/source/blender/editors/interface/CMakeLists.txt
+++ b/source/blender/editors/interface/CMakeLists.txt
@@ -36,12 +36,12 @@ set(INC
 )
 
 set(SRC
-  interface.c
+  interface.cc
   interface_align.c
   interface_anim.c
-  interface_button_group.c
-  interface_context_menu.c
-  interface_draw.c
+  interface_button_group.cc
+  interface_context_menu.cc
+  interface_draw.cc
   interface_eyedropper.c
   interface_eyedropper_color.c
   interface_eyedropper_colorband.c
@@ -49,30 +49,30 @@ set(SRC
   interface_eyedropper_depth.c
   interface_eyedropper_driver.c
   interface_eyedropper_gpencil_color.c
-  interface_handlers.c
+  interface_handlers.cc
   interface_icons.c
-  interface_icons_event.c
-  interface_layout.c
+  interface_icons_event.cc
+  interface_layout.cc
   interface_ops.c
-  interface_panel.c
-  interface_query.c
-  interface_region_color_picker.c
-  interface_region_hud.c
+  interface_panel.cc
+  interface_query.cc
+  interface_region_color_picker.cc
+  interface_region_hud.cc
   interface_region_menu_pie.c
   interface_region_menu_popup.c
   interface_region_popover.c
-  interface_region_popup.c
-  interface_region_search.c
+  interface_region_popup.cc
+  interface_region_search.cc
   interface_region_tooltip.c
-  interface_regions.c
-  interface_style.c
-  interface_template_search_menu.c
-  interface_template_search_operator.c
-  interface_templates.c
-  interface_undo.c
-  interface_utils.c
+  interface_regions.cc
+  interface_style.cc
+  interface_template_search_menu.cc
+  interface_template_search_operator.cc
+  interface_templates.cc
+  interface_undo.cc
+  interface_utils.cc
   interface_widgets.c
-  resources.c
+  resources.cc
   view2d.c
   view2d_draw.c
   view2d_gizmo_navigate.c
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.cc
similarity index 97%
rename from source/blender/editors/interface/interface.c
rename to source/blender/editors/interface/interface.cc
index 90d604b3190..4e06e1def27 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.cc
@@ -36,7 +36,7 @@
 #include "DNA_userdef_types.h"
 #include "DNA_workspace_types.h"
 
-#include "BLI_alloca.h"
+#include "BLI_array.hh"
 #include "BLI_listbase.h"
 #include "BLI_math.h"
 #include "BLI_rect.h"
@@ -88,6 +88,8 @@
 
 #include "interface_intern.h"
 
+using blender::Array;
+
 /* prototypes. */
 static void ui_but_to_pixelrect(struct rcti *rect,
                                 const struct ARegion *region,
@@ -269,7 +271,7 @@ static void ui_update_flexible_spacing(const ARegion *region, uiBlock *block)
   }
 
   rcti rect;
-  ui_but_to_pixelrect(&rect, region, block, block->buttons.last);
+  ui_but_to_pixelrect(&rect, region, block, (uiBut *)block->buttons.last);
   const float buttons_width = (float)rect.xmax + UI_HEADER_OFFSET;
   const float region_width = (float)region->sizex * U.dpi_fac;
 
@@ -278,7 +280,7 @@ static void ui_update_flexible_spacing(const ARegion *region, uiBlock *block)
   }
 
   /* We could get rid of this loop if we agree on a max number of spacer */
-  int *spacers_pos = alloca(sizeof(*spacers_pos) * (size_t)sepr_flex_len);
+  Array<int, 64> spacers_pos(sepr_flex_len);
   int i = 0;
   LISTBASE_FOREACH (uiBut *, but, &block->buttons) {
     if (but->type == UI_BTYPE_SEPR_SPACER) {
@@ -338,7 +340,7 @@ static void ui_update_window_matrix(const wmWindow *window, const ARegion *regio
  */
 void ui_region_winrct_get_no_margin(const struct ARegion *region, struct rcti *r_rect)
 {
-  uiBlock *block = region->uiblocks.first;
+  uiBlock *block = (uiBlock *)region->uiblocks.first;
   if (block && (block->flag & UI_BLOCK_LOOP) && (block->flag & UI_BLOCK_RADIAL) == 0) {
     BLI_rcti_rctf_copy_floor(r_rect, &block->rect);
     BLI_rcti_translate(r_rect, region->winrct.xmin, region->winrct.ymin);
@@ -373,7 +375,7 @@ static void ui_block_bounds_calc_text(uiBlock *block, float offset)
 
   UI_fontstyle_set(&style->widget);
 
-  uiBut *init_col_bt = block->buttons.first;
+  uiBut *init_col_bt = (uiBut *)block->buttons.first;
   LISTBASE_FOREACH (uiBut *, bt, &block->buttons) {
     if (!ELEM(bt->type, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_SEPR_SPACER)) {
       j = BLF_width(style->widget.uifont_id, bt->drawstr, sizeof(bt->drawstr));
@@ -465,7 +467,7 @@ void ui_block_bounds_calc(uiBlock *block)
   block->rect.xmax = block->rect.xmin + max_ff(BLI_rctf_size_x(&block->rect), block->minbounds);
 
   /* hardcoded exception... but that one is annoying with larger safety */
-  uiBut *bt = block->buttons.first;
+  uiBut *bt = (uiBut *)block->buttons.first;
   const int xof = ((bt && STRPREFIX(bt->str, "ERROR")) ? 10 : 40) * U.dpi_fac;
 
   block->safety.xmin = block->rect.xmin - xof;
@@ -499,8 +501,8 @@ static void ui_block_bounds_calc_centered(wmWindow *window, uiBlock *block)
 static void ui_block_bounds_calc_centered_pie(uiBlock *block)
 {
   const int xy[2] = {
-      block->pie_data.pie_center_spawned[0],
-      block->pie_data.pie_center_spawned[1],
+      (int)block->pie_data.pie_center_spawned[0],
+      (int)block->pie_data.pie_center_spawned[1],
   };
 
   UI_block_translate(block, xy[0], xy[1]);
@@ -1178,7 +1180,7 @@ static bool ui_but_event_operator_string_from_operator(const bContext *C,
 {
   BLI_assert(but->optype != NULL);
   bool found = false;
-  IDProperty *prop = (but->opptr) ? but->opptr->data : NULL;
+  IDProperty *prop = (but->opptr) ? (IDProperty *)but->opptr->data : NULL;
 
   if (WM_key_event_operator_string(
           C, but->optype->idname, but->opcontext, prop, true, buf, buf_len)) {
@@ -1226,27 +1228,20 @@ static bool ui_but_event_operator_string_from_panel(const bContext *C,
   const IDPropertyTemplate val = {0};
   IDProperty *prop_panel = IDP_New(IDP_GROUP, &val, __func__); /* dummy, name is unimportant  */
   IDP_AddToGroup(prop_panel, IDP_NewString(pt->idname, "name", sizeof(pt->idname)));
-  IDP_AddToGroup(prop_panel,
-                 IDP_New(IDP_INT,
-                         &(IDPropertyTemplate){
-                             .i = pt->space_type,
-                         },
-                         "space_type"));
-  IDP_AddToGroup(prop_panel,
-                 IDP_New(IDP_INT,
-                         &(IDPropertyTemplate){
-                             .i = pt->region_type,
-                         },
-                         "region_type"));
+
+  IDPropertyTemplate space_type{0};
+  space_type.i = pt->space_type;
+  IDP_AddToGroup(prop_panel, IDP_New(IDP_INT, &space_type, "space_type"));
+
+  IDPropertyTemplate region_type{0};
+  space_type.i = pt->region_type;
+  IDP_AddToGroup(prop_panel, IDP_New(IDP_INT, &region_type, "region_type"));
 
   for (int i = 0; i < 2; i++) {
     /* FIXME(campbell): We can't reasonably search all configurations - long term. */
-    IDP_ReplaceInGroup(prop_panel,
-                       IDP_New(IDP_INT,
-                               &(IDPropertyTemplate){
-                                   .i = i,
-                               },
-                               "keep_open"));
+    IDPropertyTemplate keep_open{0};
+    keep_open.i = i;
+    IDP_ReplaceInGroup(prop_panel, IDP_New(IDP_INT, &keep_open, "keep_open"));
     if (WM_key_event_operator_string(
             C, "WM_OT_call_panel", WM_OP_INVOKE_REGION_WIN, prop_panel, true, buf, buf_len)) {
       found = true;
@@ -1441,11 +1436,9 @@ static bool ui_but_event_property_operator_string(const bContext *C,
         IDProperty *prop_value;
         if (prop_enum_value_is_int) {
           const int value = item[index].value;
-          prop_value = IDP_New(IDP_INT,
-                               &(IDPropertyTemplate){
-                                   .i = value,
-                               },
-                               prop_enum_value_id);
+          IDPropertyTemplate idp_template{0};
+          idp_template.i = value;
+          prop_value = IDP_New(IDP_INT, &idp_template, prop_enum_value_id);
         }
         else {
           const char *id = item[index].identifier;
@@ -1508,7 +1501,7 @@ static bool ui_but_event_property_operator_string(const bContext *C,
  *
  * --Matt 07/2006
  */
-const char ui_radial_dir_order[8] = {
+static const RadialDirection ui_radial_dir_order[8] = {
     UI_RADIAL_W,
     UI_RADIAL_E,
     UI_RADIAL_S,
@@ -1613,14 +1606,15 @@ static PointerRNA *ui_but_extra_operator_icon_add_ptr(uiBut *but,
                                                       short opcontext,
                                                       int icon)
 {
-  uiButExtraOpIcon *extra_op_icon = MEM_mallocN(sizeof(*extra_op_icon), __func__);
+  uiButExtraOpIcon *extra_op_icon = (uiButExtraOpIcon *)MEM_mallocN(sizeof(*extra_op_icon),
+                                                                    __func__);
 
   extra_op_icon->icon = (BIFIconID)icon;
-  extra_op_icon->optype_params = MEM_callocN(sizeof(*extra_op_icon->optype_params),
-                                             "uiButExtraOpIcon.optype_params");
+  extra_op_icon->optype_params = (wmOperatorCallParams *)MEM_callocN(
+      sizeof(*extra_op_icon->optype_params), "uiButExtraOpIcon.optype_params");
   extra_op_icon->optype_params->optype = optype;
-  extra_op_icon->optype_params->opptr = MEM_callocN(sizeof(*extra_op_icon->optype_params->opptr),
-                                                    "uiButExtraOpIcon.optype_params.opptr");
+  extra_op_icon->optype_params->opptr = (PointerRNA *)MEM_callocN(
+      sizeof(*extra_op_icon->optype_params->opptr), "uiButExtraOpIcon.optype_params.opptr");
   WM_operator_properties_create_ptr(extra_op_icon->optype_params->opptr,
                                     extra_op_icon->optype_params->optype);
   extra_op_icon->optype_params->opcontext = opcontext;
@@ -1773,7 +1767,7 @@ void UI_block_update_from_old(const bContext *C, uiBlock *block)
     return;
   }
 
-  uiBut *but_old = block->oldblock->buttons.first;
+  uiBut *but_old = (uiBut *)block->oldblock->buttons.first;
 
   if (BLI_listbase_is_empty(&block->oldblock->butstore) == false) {
     UI_buts

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list