[Bf-blender-cvs] [92541ba2ad9] modifier-panels-ui: Add remove button to modifier panel header

Hans Goudey noreply at git.blender.org
Mon Apr 6 05:02:24 CEST 2020


Commit: 92541ba2ad9a51bc5a7ff0c7d6c3cd121cd973c4
Author: Hans Goudey
Date:   Sun Apr 5 21:34:57 2020 -0500
Branches: modifier-panels-ui
https://developer.blender.org/rB92541ba2ad9a51bc5a7ff0c7d6c3cd121cd973c4

Add remove button to modifier panel header

Also make sub-subpanels possible for datatransfer modifier layout

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

M	source/blender/modifiers/intern/MOD_ui_common.c
M	source/blender/modifiers/intern/MOD_ui_common.h

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

diff --git a/source/blender/modifiers/intern/MOD_ui_common.c b/source/blender/modifiers/intern/MOD_ui_common.c
index 1fd75c1df17..088219d8b04 100644
--- a/source/blender/modifiers/intern/MOD_ui_common.c
+++ b/source/blender/modifiers/intern/MOD_ui_common.c
@@ -70,6 +70,7 @@ static void modifier_re_order(bContext *C, Panel *panel, int new_index)
   WM_operator_properties_free(&props_ptr);
 }
 
+/* HANS-TODO: It looks like sub-subpanels don't remember their closed / open state. */
 static void panel_set_expand_from_flag_recursive(Panel *panel, short flag, short flag_index)
 {
   bool open = (flag & (1 << flag_index));
@@ -324,6 +325,9 @@ static void modifier_panel_header_modes(const bContext *C, Panel *panel)
   }
 
   uiItemS(layout);
+
+  row = uiLayoutRow(layout, false);
+  uiItemO(row, "", ICON_X, "OBJECT_OT_modifier_remove");
 }
 
 /**
@@ -361,12 +365,12 @@ PanelType *modifier_panel_register(ARegionType *region_type, const char *name, v
   return panel_type;
 }
 
-void modifier_subpanel_register(ARegionType *region_type,
-                                const char *name,
-                                const char *label,
-                                void *draw_header,
-                                void *draw,
-                                PanelType *parent)
+PanelType *modifier_subpanel_register(ARegionType *region_type,
+                                      const char *name,
+                                      const char *label,
+                                      void *draw_header,
+                                      void *draw,
+                                      PanelType *parent)
 {
   /* Create the subpanel's ID name. */
   char panel_idname[BKE_ST_MAXNAME];
@@ -390,4 +394,6 @@ void modifier_subpanel_register(ARegionType *region_type,
   panel_type->parent = parent;
   BLI_addtail(&parent->children, BLI_genericNodeN(panel_type));
   BLI_addtail(&region_type->paneltypes, panel_type);
+
+  return panel_type;
 }
diff --git a/source/blender/modifiers/intern/MOD_ui_common.h b/source/blender/modifiers/intern/MOD_ui_common.h
index 2b3049b5932..82ee0e18904 100644
--- a/source/blender/modifiers/intern/MOD_ui_common.h
+++ b/source/blender/modifiers/intern/MOD_ui_common.h
@@ -85,16 +85,16 @@ void modifier_panel_get_property_pointers(const bContext *C,
                                           struct PointerRNA *r_ob_ptr,
                                           struct PointerRNA *r_ptr);
 
-PanelType *modifier_panel_register(struct ARegionType *region_type,
-                                   const char *modifier_type,
-                                   void *draw);
-
-void modifier_subpanel_register(struct ARegionType *region_type,
-                                const char *name,
-                                const char *label,
-                                void *draw_header,
-                                void *draw,
-                                PanelType *parent);
+struct PanelType *modifier_panel_register(struct ARegionType *region_type,
+                                          const char *modifier_type,
+                                          void *draw);
+
+struct PanelType *modifier_subpanel_register(struct ARegionType *region_type,
+                                             const char *name,
+                                             const char *label,
+                                             void *draw_header,
+                                             void *draw,
+                                             struct PanelType *parent);
 
 #ifdef __cplusplus
 }



More information about the Bf-blender-cvs mailing list