[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(®ion_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