ControlSectionBuilder class
Utility class for building common control panel sections.
This builder reduces boilerplate by providing reusable widgets for:
- Sliders (numeric values)
- Switches (boolean values)
- Color pickers
- Section headers
- State-specific control groups (colors, overrides)
Usage:
final builder = ControlSectionBuilder(
state: myState,
onUpdate: () => setState(() {}),
isDarkMode: isDarkMode,
context: context,
);
builder.buildSlider('Width', state.width, 100, 400, (v) => state.width = v);
Constructors
- ControlSectionBuilder({required BaseComponentState state, required VoidCallback onUpdate, required bool isDarkMode, required BuildContext context})
Properties
- context → BuildContext
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isDarkMode → bool
-
final
- onUpdate → VoidCallback
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → BaseComponentState
-
final
- subtitleColor → Color
-
Get subtitle color based on dark mode
no setter
- textColor → Color
-
Get text color based on dark mode
no setter
Methods
-
buildAnimatedBorderControls(
) → List< Widget> - Build animated border controls
-
buildColorPicker(
String label, Color color, ValueChanged< Color> onChanged) → Widget - Build a color picker with preview swatch
-
buildCommonPropertiesSection(
{List< Widget> ? additionalDimensionControls, List<Widget> ? additionalNeumorphicControls, List<Widget> ? additionalControls}) → Widget - Build a complete Common Properties section
-
buildDimensionControls(
{double minWidth = 100.0, double maxWidth = 400.0, double minHeight = 40.0, double maxHeight = 200.0, double minPadding = 0.0, double maxPaddingH = 80.0, double maxPaddingV = 40.0}) → List< Widget> - Build dimension controls (width, height, paddingH, paddingV)
-
buildDropdown<
T> ({required String label, required T value, required List< T> items, required String labelBuilder(T), required ValueChanged<T?> onChanged}) → Widget - Build a dropdown selector
-
buildNeumorphicControls(
{double minDistance = 2.0, double maxDistance = 20.0, double minBlur = 5.0, double maxBlur = 30.0, double minRadius = 0.0, double maxRadius = 50.0}) → List< Widget> - Build neumorphic shadow controls (distance, blur, intensities, borderRadius)
-
buildSection(
{required String title, String? subtitle, required List< Widget> children, bool initiallyExpanded = false}) → Widget - Build an expansion tile section
-
buildSlider(
String label, double value, double min, double max, ValueChanged< double> onChanged, {String? displayValue, int decimals = 0}) → Widget - Build a labeled slider with value display
-
buildStandard4StateLayout(
{List< Widget> ? additionalCommonControls, List<Widget> ? additionalRestControls, List<Widget> ? additionalHoverControls, List<Widget> ? additionalPressedControls, List<Widget> ? additionalDisabledControls}) → Widget - Build a standard 4-state control panel layout Returns a Column with Common Properties + 4 state sections
-
buildStandardStateSection(
String stateName) → Widget - Build a complete state section for a standard 4-state component using the state's built-in properties
-
buildStateSection(
{required String stateName, required bool overrideEnabled, required ValueChanged< bool> onOverrideChanged, required Color baseColor, required Color textColor, required Color iconColor, required ValueChanged<Color> onBaseColorChanged, required ValueChanged<Color> onTextColorChanged, required ValueChanged<Color> onIconColorChanged, double? distanceOverride, double? blurOverride, double? lightIntensityOverride, double? darkIntensityOverride, ValueChanged<double?> ? onDistanceOverrideChanged, ValueChanged<double?> ? onBlurOverrideChanged, ValueChanged<double?> ? onLightIntensityOverrideChanged, ValueChanged<double?> ? onDarkIntensityOverrideChanged, List<Widget> ? additionalControls}) → Widget - Build controls for a specific state (rest, hover, pressed, disabled)
-
buildSubsectionHeader(
String title) → Widget - Build a subsection header
-
buildSwitch(
String label, bool value, ValueChanged< bool> onChanged) → Widget - Build a labeled switch
-
buildTextInput(
String label, String value, ValueChanged< String> onChanged) → Widget - Build a text input field
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited