[Bf-blender-cvs] [50c747d2346] modifier-panels-ui: Explode, Particle Instance modifier layouts
Hans Goudey
noreply at git.blender.org
Mon Apr 6 18:09:09 CEST 2020
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. @@
More information about the Bf-blender-cvs
mailing list