[Bf-blender-cvs] [25f72d1d176] modifier-panels-ui: Screw modifier layout

William Reynish noreply at git.blender.org
Sat Apr 4 19:25:43 CEST 2020


Commit: 25f72d1d1767ef5f96a01fdc90afc64280d791a8
Author: William Reynish
Date:   Sat Apr 4 19:24:58 2020 +0200
Branches: modifier-panels-ui
https://developer.blender.org/rB25f72d1d1767ef5f96a01fdc90afc64280d791a8

Screw modifier layout

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

M	source/blender/modifiers/intern/MOD_screw.c

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

diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index e66f4e045ce..b545d54c165 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -1179,41 +1179,98 @@ static void panel_draw(const bContext *C, Panel *panel)
 
   PointerRNA screw_obj_ptr = RNA_pointer_get(&ptr, "object");
 
-  split = uiLayoutSplit(layout, 0.5f, false);
-  col = uiLayoutColumn(split, false);
-  uiItemR(col, &ptr, "axis", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "object", 0, IFACE_("Axis Object"), ICON_NONE);
-  uiItemR(col, &ptr, "angle", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "steps", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "render_steps", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_smooth_shade", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_merge_vertices", 0, NULL, ICON_NONE);
-  sub = uiLayoutColumn(col, false);
-  uiLayoutSetActive(sub, RNA_boolean_get(&ptr, "use_merge_vertices"));
-  uiItemR(sub, &ptr, "merge_threshold", 0, NULL, ICON_NONE);
+  uiLayoutSetPropSep(layout, true);
 
-  col = uiLayoutColumn(split, false);
+  col = uiLayoutColumn(layout, false);
+  uiItemR(col, &ptr, "angle", 0, NULL, ICON_NONE);
   row = uiLayoutRow(col, false);
-  uiLayoutSetActive(sub,
+  uiLayoutSetActive(row,
                     RNA_pointer_is_null(&screw_obj_ptr) ||
                         !RNA_boolean_get(&ptr, "use_object_screw_offset"));
   uiItemR(row, &ptr, "screw_offset", 0, NULL, ICON_NONE);
-  row = uiLayoutRow(col, false);
+  uiItemR(col, &ptr, "iterations", 0, NULL, ICON_NONE);
+
+  uiItemS(layout);
+  col = uiLayoutColumn(layout, false);
+  uiItemR(col, &ptr, "axis", 0, NULL, ICON_NONE);
+  uiItemR(col, &ptr, "object", 0, IFACE_("Axis Object"), ICON_NONE);
+  sub = uiLayoutColumn(col, false);
   uiLayoutSetActive(sub, !RNA_pointer_is_null(&screw_obj_ptr));
-  uiItemR(row, &ptr, "use_object_screw_offset", 0, NULL, ICON_NONE);
+  uiItemR(sub, &ptr, "use_object_screw_offset", 0, NULL, ICON_NONE);
 
-  uiItemR(col, &ptr, "use_normal_calculate", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_normal_flip", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "iterations", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_stretch_u", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "use_stretch_v", 0, NULL, ICON_NONE);
+  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);
+
+  split = uiLayoutSplit(layout, 0.5f, false);
+  row = uiLayoutRow(split, false);
+  uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_RIGHT);
+  uiItemL(row, IFACE_("Stretch"), ICON_NONE);
+
+  row = uiLayoutRow(split, true);
+  uiLayoutSetPropSep(row, false);
+  uiItemR(row, &ptr, "use_stretch_u", UI_ITEM_R_TOGGLE, IFACE_("U"), ICON_NONE);
+  uiItemR(row, &ptr, "use_stretch_v", UI_ITEM_R_TOGGLE, IFACE_("V"), ICON_NONE);
+  uiItemL(row, IFACE_(""), ICON_BLANK1);
 
   modifier_panel_end(layout, &ptr);
 }
 
+static void screw_merge_header_draw(const bContext *C, Panel *panel)
+{
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+  uiItemR(layout, &ptr, "use_merge_vertices", 0, NULL, ICON_NONE);
+}
+
+static void screw_merge_draw(const bContext *C, Panel *panel)
+{
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+  uiLayoutSetPropSep(layout, true);
+
+  uiLayout *col = uiLayoutColumn(layout, false);
+
+  uiLayoutSetActive(col, RNA_boolean_get(&ptr, "use_merge_vertices"));
+  uiItemR(col, &ptr, "merge_threshold", 0, IFACE_("Distance"), ICON_NONE);
+}
+
+static void screw_normals_draw(const bContext *C, Panel *panel)
+{
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+  uiLayoutSetPropSep(layout, true);
+
+  uiLayout *col = uiLayoutColumn(layout, false);
+
+  uiItemR(col, &ptr, "use_smooth_shade", 0, NULL, ICON_NONE);
+  uiItemR(col, &ptr, "use_normal_calculate", 0, NULL, ICON_NONE);
+  uiItemR(col, &ptr, "use_normal_flip", 0, NULL, ICON_NONE);
+}
+
 static void panelRegister(ARegionType *region_type)
 {
-  modifier_panel_register(region_type, "Screw", panel_draw);
+  PanelType *panel_type = modifier_panel_register(region_type, "Screw", panel_draw);
+  modifier_subpanel_register(region_type,
+                             "screw_merge",
+                             "",
+                             screw_merge_header_draw,
+                             screw_merge_draw,
+                             false,
+                             panel_type);
+  modifier_subpanel_register(
+      region_type, "screw_normals", "Normals", NULL, screw_normals_draw, false, panel_type);
 }
 
 ModifierTypeInfo modifierType_Screw = {



More information about the Bf-blender-cvs mailing list