diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_array.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_array.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c index 68e12a8bbef..48d69f8e02c 100644 --- a/source/blender/modifiers/intern/MOD_array.c +++ b/source/blender/modifiers/intern/MOD_array.c @@ -76,6 +76,9 @@ static void initData(ModifierData *md) amd->fit_type = MOD_ARR_FIXEDCOUNT; amd->offset_type = MOD_ARR_OFF_RELATIVE; amd->flags = 0; + + /* Open the first subpanel by default, it corresspnds to Relative offset which is enabled too. */ + md->ui_expand_flag = (1 << 0) | (1 << 1); } static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData) @@ -835,7 +838,6 @@ static bool isDisabled(const struct Scene *UNUSED(scene), static void panel_draw(const bContext *C, Panel *panel) { - uiLayout *col; uiLayout *layout = panel->layout; PointerRNA ptr; @@ -857,12 +859,6 @@ static void panel_draw(const bContext *C, Panel *panel) uiItemR(layout, &ptr, "curve", 0, NULL, ICON_NONE); } - uiItemS(layout); - - col = uiLayoutColumn(layout, false); - uiItemR(col, &ptr, "start_cap", 0, IFACE_("Cap Start"), ICON_NONE); - uiItemR(col, &ptr, "end_cap", 0, IFACE_("End"), ICON_NONE); - modifier_panel_end(layout, &ptr); } @@ -984,6 +980,21 @@ static void uv_panel_draw(const bContext *C, Panel *panel) uiItemR(col, &ptr, "offset_v", UI_ITEM_R_EXPAND, IFACE_("V"), ICON_NONE); } +static void caps_panel_draw(const bContext *C, Panel *panel) +{ + uiLayout *col; + uiLayout *layout = panel->layout; + + PointerRNA ptr; + modifier_panel_get_property_pointers(C, panel, NULL, &ptr); + + uiLayoutSetPropSep(layout, true); + + col = uiLayoutColumn(layout, false); + uiItemR(col, &ptr, "start_cap", 0, IFACE_("Cap Start"), ICON_NONE); + uiItemR(col, &ptr, "end_cap", 0, IFACE_("End"), ICON_NONE); +} + static void panelRegister(ARegionType *region_type) { PanelType *panel_type = modifier_panel_register(region_type, eModifierType_Array, panel_draw); @@ -1004,6 +1015,7 @@ static void panelRegister(ARegionType *region_type) modifier_subpanel_register( region_type, "merge", "", symmetry_panel_header_draw, symmetry_panel_draw, panel_type); modifier_subpanel_register(region_type, "uv", "UVs", NULL, uv_panel_draw, panel_type); + modifier_subpanel_register(region_type, "caps", "Caps", NULL, caps_panel_draw, panel_type); } ModifierTypeInfo modifierType_Array = { @@ -1038,4 +1050,6 @@ ModifierTypeInfo modifierType_Array = { /* foreachTexLink */ NULL, /* freeRuntimeData */ NULL, /* panelRegister */ panelRegister, + /* blendWrite */ NULL, + /* blendRead */ NULL, }; |