Commit: 50c747d234610ebfdda41177adf9b2d4f55c92f0 Author: Hans Goudey Date: Mon Apr 6 11:08:58 2020 -0500 Branches: modifier-panels-ui https://developer.blender.org/rB50c747d234610ebfdda41177adf9b2d4f55c92f0
Explode, Particle Instance modifier layouts =================================================================== M source/blender/modifiers/intern/MOD_explode.c M source/blender/modifiers/intern/MOD_particleinstance.c M source/blender/modifiers/intern/MOD_screw.c M source/blender/modifiers/intern/MOD_subsurf.c =================================================================== diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c index ccd437197fb..09d48ecb3b2 100644 --- a/source/blender/modifiers/intern/MOD_explode.c +++ b/source/blender/modifiers/intern/MOD_explode.c @@ -1187,41 +1187,46 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes static void panel_draw(const bContext *C, Panel *panel) { - uiLayout *sub, *row, *col, *split; - + uiLayout *sub, *row, *split; uiLayout *layout = panel->layout; + PointerRNA ptr; PointerRNA ob_ptr; modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr); modifier_panel_buttons(C, panel); PointerRNA obj_data_ptr = RNA_pointer_get(&ob_ptr, "data"); - bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0; - split = uiLayoutSplit(layout, 0.5f, true); - col = uiLayoutColumn(split, true); - row = uiLayoutRow(col, true); - uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", "", ICON_NONE); - sub = uiLayoutRow(row, true); - uiLayoutSetActive(sub, has_vertex_group); - uiLayoutSetPropSep(sub, false); - uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT); - - col = uiLayoutColumn(split, true); - uiLayoutSetActive(col, has_vertex_group); - uiItemR(col, &ptr, "protect", 0, NULL, ICON_NONE); + uiLayoutSetPropSep(layout, true); uiItemPointerR(layout, &ptr, "particle_uv", &obj_data_ptr, "uv_layers", NULL, ICON_NONE); + /* Aligned axis booleans with a single label and no decorators. */ split = uiLayoutSplit(layout, 0.5f, false); - col = uiLayoutColumn(split, false); - uiItemR(col, &ptr, "show_alive", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "show_dead", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "show_unborn", 0, NULL, ICON_NONE); - col = uiLayoutColumn(split, false); - uiItemR(col, &ptr, "use_edge_cut", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "use_size", 0, NULL, ICON_NONE); + row = uiLayoutRow(split, false); + uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT); + uiItemL(row, IFACE_("Show"), ICON_NONE); + row = uiLayoutRow(split, true); + uiLayoutSetPropSep(row, false); + uiItemR(row, &ptr, "show_alive", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(row, &ptr, "show_dead", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(row, &ptr, "show_unborn", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemL(row, "", ICON_BLANK1); + + uiItemR(layout, &ptr, "use_edge_cut", 0, NULL, ICON_NONE); + uiItemR(layout, &ptr, "use_size", 0, NULL, ICON_NONE); + + row = uiLayoutRow(layout, true); + uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", NULL, ICON_NONE); + sub = uiLayoutRow(row, true); + uiLayoutSetActive(sub, has_vertex_group); + uiLayoutSetPropDecorate(sub, false); + uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT); + + row = uiLayoutRow(layout, false); + uiLayoutSetActive(row, has_vertex_group); + uiItemR(row, &ptr, "protect", 0, NULL, ICON_NONE); uiItemO(layout, IFACE_("Refresh"), ICON_NONE, "OBJECT_OT_explode_refresh"); diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c index 34dab7fa52b..e8d896c503b 100644 --- a/source/blender/modifiers/intern/MOD_particleinstance.c +++ b/source/blender/modifiers/intern/MOD_particleinstance.c @@ -560,7 +560,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes static void panel_draw(const bContext *C, Panel *panel) { - uiLayout *row, *col, *split; + uiLayout *row, *split; uiLayout *layout = panel->layout; PointerRNA ptr; @@ -570,6 +570,8 @@ static void panel_draw(const bContext *C, Panel *panel) PointerRNA particle_obj_ptr = RNA_pointer_get(&ptr, "object"); + uiLayoutSetPropSep(layout, true); + uiItemR(layout, &ptr, "object", 0, NULL, ICON_NONE); if (!RNA_pointer_is_null(&particle_obj_ptr)) { uiItemPointerR(layout, @@ -584,24 +586,38 @@ static void panel_draw(const bContext *C, Panel *panel) uiItemR(layout, &ptr, "particle_system_index", 0, IFACE_("Particle System"), ICON_NONE); } - split = uiLayoutSplit(layout, 0.5f, false); - col = uiLayoutColumn(split, false); - uiItemL(col, IFACE_("Create From:"), ICON_NONE); - uiItemR(col, &ptr, "use_normal", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "use_children", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "use_size", 0, NULL, ICON_NONE); - - col = uiLayoutColumn(split, false); - uiItemL(col, IFACE_("Show Particles:"), ICON_NONE); - uiItemR(col, &ptr, "show_alive", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "show_unborn", 0, NULL, ICON_NONE); - uiItemR(col, &ptr, "show_dead", 0, NULL, ICON_NONE); - - uiItemR(layout, &ptr, "space", 0, "", ICON_NONE); - row = uiLayoutRow(layout, true); - uiItemR(row, &ptr, "particle_amount", 0, IFACE_("Amount"), ICON_NONE); - uiItemR(row, &ptr, "particle_offset", 0, IFACE_("Offset"), ICON_NONE); + uiItemS(layout); + /* Aligned axis booleans with a single label and no decorators. */ + split = uiLayoutSplit(layout, 0.5f, false); + row = uiLayoutRow(split, false); + uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT); + uiItemL(row, IFACE_("Create Instances From"), ICON_NONE); + row = uiLayoutRow(split, true); + uiLayoutSetPropSep(row, false); + uiItemR(row, &ptr, "use_normal", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(row, &ptr, "use_children", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(row, &ptr, "use_size", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemL(row, "", ICON_BLANK1); + + /* Aligned axis booleans with a single label and no decorators. */ + split = uiLayoutSplit(layout, 0.5f, false); + row = uiLayoutRow(split, false); + uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT); + uiItemL(row, IFACE_("Show"), ICON_NONE); + row = uiLayoutRow(split, true); + uiLayoutSetPropSep(row, false); + uiItemR(row, &ptr, "show_alive", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(row, &ptr, "show_dead", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemR(row, &ptr, "show_unborn", UI_ITEM_R_TOGGLE, NULL, ICON_NONE); + uiItemL(row, "", ICON_BLANK1); + + uiItemR(layout, &ptr, "particle_amount", 0, IFACE_("Amount"), ICON_NONE); + uiItemR(layout, &ptr, "particle_offset", 0, IFACE_("Offset"), ICON_NONE); + + uiItemS(layout); + + uiItemR(layout, &ptr, "space", 0, IFACE_("Coordinate Space"), ICON_NONE); row = uiLayoutRow(layout, true); uiItemR(row, &ptr, "axis", UI_ITEM_R_EXPAND, NULL, ICON_NONE); @@ -620,27 +636,39 @@ static void path_panel_draw_header(const bContext *C, Panel *panel) static void path_panel_draw(const bContext *C, Panel *panel) { - uiLayout *row, *col; + uiLayout *col; uiLayout *layout = panel->layout; PointerRNA ptr; PointerRNA ob_ptr; modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr); - PointerRNA obj_data_ptr = RNA_pointer_get(&ob_ptr, "data"); + uiLayoutSetPropSep(layout, true); + + uiLayoutSetActive(layout, RNA_boolean_get(&ptr, "use_path")); + + col = uiLayoutColumn(layout, true); + uiItemR(col, &ptr, "position", UI_ITEM_R_SLIDER, NULL, ICON_NONE); + uiItemR(col, &ptr, "random_position", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE); + col = uiLayoutColumn(layout, true); + uiItemR(col, &ptr, "rotation", UI_ITEM_R_SLIDER, NULL, ICON_NONE); + uiItemR(col, &ptr, "random_rotation", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE); + + uiItemR(layout, &ptr, "use_preserve_shape", 0, NULL, ICON_NONE); +} - col = uiLayoutColumn(layout, false); - uiLayoutSetActive(col, RNA_boolean_get(&ptr, "use_path")); - uiItemR(col, &ptr, "use_preserve_shape", 0, NULL, ICON_NONE); +static void layers_panel_draw(const bContext *C, Panel *panel) +{ + uiLayout *layout = panel->layout; + + PointerRNA ptr; + PointerRNA ob_ptr; + modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr); + + PointerRNA obj_data_ptr = RNA_pointer_get(&ob_ptr, "data"); - row = uiLayoutRow(col, true); - uiItemR(row, &ptr, "position", UI_ITEM_R_SLIDER, NULL, ICON_NONE); - uiItemR(row, &ptr, "random_position", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE); - row = uiLayoutRow(col, true); - uiItemR(row, &ptr, "rotation", UI_ITEM_R_SLIDER, NULL, ICON_NONE); - uiItemR(row, &ptr, "random_rotation", UI_ITEM_R_SLIDER, IFACE_("Random"), ICON_NONE); + uiLayoutSetPropSep(layout, true); - uiItemL(layout, IFACE_("Layers:"), ICON_NONE); uiItemPointerR(layout, &ptr, "index_layer_name", @@ -666,6 +694,8 @@ static void panelRegister(ARegionType *region_type) path_panel_draw_header, path_panel_draw, panel_type); + modifier_subpanel_register( + region_type, "particleinstance_layers", "Layers", NULL, layers_panel_draw, panel_type); } ModifierTypeInfo modifierType_ParticleInstance = { diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index 04b84a5037c..37f004de08a 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -1201,8 +1201,8 @@ static void panel_draw(const bContext *C, Panel *panel) uiItemS(layout); col = uiLayoutColumn(layout, true); - uiItemR(col, &ptr, "render_steps", 0, IFACE_("Steps Render"), ICON_NONE); - uiItemR(col, &ptr, "steps", 0, IFACE_("Viewport"), ICON_NONE); + uiItemR(col, &ptr, "steps", 0, IFACE_("Steps Viewport"), ICON_NONE); + uiItemR(col, &ptr, "render_steps", 0, IFACE_("Render"), ICON_NONE); split = uiLayoutSplit(layout, 0.5f, false); row = uiLayoutRow(split, false); diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index 6e79013ff99..e3cd72c9853 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -324,21 +324,21 @@ static void panel_draw(const bContext *C, Panel *panel) col = uiLayoutColumn(layout, false); if (show_adaptive_options) { + uiItemR(sub, &ptr, "levels", 0, "Subdivisions Viewport", ICON_NONE); + uiItemR(col, &ob_cycles_ptr, "use_adaptive_subdivision", 0, "Adaptive", ICON_NONE); sub = uiLayoutColumn(col, true) @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs