diff --git a/example/lib/pickers/hsv_picker.dart b/example/lib/pickers/hsv_picker.dart index de61c67..3d70c47 100644 --- a/example/lib/pickers/hsv_picker.dart +++ b/example/lib/pickers/hsv_picker.dart @@ -34,6 +34,8 @@ class _HSVColorPickerExampleState extends State { // Picker 1 PaletteType _paletteType = PaletteType.hsl; bool _enableAlpha = true; + bool _enableSlider = true; + bool _enableColorIndicator = true; bool _displayThumbColor = true; final List _labelTypes = [ColorLabelType.hsl, ColorLabelType.hsv]; bool _displayHexInputBar = false; @@ -84,6 +86,8 @@ class _HSVColorPickerExampleState extends State { colorPickerWidth: 300, pickerAreaHeightPercent: 0.7, enableAlpha: _enableAlpha, + enableSlider: _enableSlider, + enableColorIndicator: _enableColorIndicator, labelTypes: _labelTypes, displayThumbColor: _displayThumbColor, paletteType: _paletteType, @@ -126,6 +130,8 @@ ColorPicker( colorPickerWidth: 300, pickerAreaHeightPercent: 0.7, enableAlpha: $_enableAlpha, + enableSlider: $_enableSlider, + enableColorIndicator: $_enableColorIndicator, labelTypes: $_labelTypes, displayThumbColor: $_displayThumbColor, paletteType: $_paletteType, @@ -159,6 +165,16 @@ ColorPicker( value: _enableAlpha, onChanged: (bool value) => setState(() => _enableAlpha = !_enableAlpha), ), + SwitchListTile( + title: const Text('Enable Slider'), + value: _enableSlider, + onChanged: (bool value) => setState(() => _enableSlider = !_enableSlider), + ), + SwitchListTile( + title: const Text('Enable Color Indicator'), + value: _enableColorIndicator, + onChanged: (bool value) => setState(() => _enableColorIndicator = !_enableColorIndicator), + ), SwitchListTile( title: const Text('Display Thumb Color in slider'), value: _displayThumbColor, diff --git a/lib/src/colorpicker.dart b/lib/src/colorpicker.dart index 67ca33a..e7c529b 100644 --- a/lib/src/colorpicker.dart +++ b/lib/src/colorpicker.dart @@ -18,6 +18,8 @@ class ColorPicker extends StatefulWidget { this.onHsvColorChanged, this.paletteType = PaletteType.hsvWithHue, this.enableAlpha = true, + this.enableSlider = true, + this.enableColorIndicator = true, @Deprecated('Use empty list in [labelTypes] to disable label.') this.showLabel = true, this.labelTypes = const [ColorLabelType.rgb, ColorLabelType.hsv, ColorLabelType.hsl], @Deprecated('Use Theme.of(context).textTheme.bodyText1 & 2 to alter text style.') this.labelTextStyle, @@ -38,6 +40,8 @@ class ColorPicker extends StatefulWidget { final ValueChanged? onHsvColorChanged; final PaletteType paletteType; final bool enableAlpha; + final bool enableSlider; + final bool enableColorIndicator; final bool showLabel; final List labelTypes; final TextStyle? labelTextStyle; @@ -289,19 +293,21 @@ class _ColorPickerState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - GestureDetector( - onTap: () => setState(() { - if (widget.onHistoryChanged != null && !colorHistory.contains(currentHsvColor.toColor())) { - colorHistory.add(currentHsvColor.toColor()); - widget.onHistoryChanged!(colorHistory); - } - }), - child: ColorIndicator(currentHsvColor), - ), + if (widget.enableColorIndicator) + GestureDetector( + onTap: () => setState(() { + if (widget.onHistoryChanged != null && !colorHistory.contains(currentHsvColor.toColor())) { + colorHistory.add(currentHsvColor.toColor()); + widget.onHistoryChanged!(colorHistory); + } + }), + child: ColorIndicator(currentHsvColor), + ), Expanded( child: Column( children: [ - SizedBox(height: 40.0, width: widget.colorPickerWidth - 75.0, child: sliderByPaletteType()), + if (widget.enableSlider) + SizedBox(height: 40.0, width: widget.colorPickerWidth - 75.0, child: sliderByPaletteType()), if (widget.enableAlpha) SizedBox( height: 40.0, @@ -368,18 +374,20 @@ class _ColorPickerState extends State { Row( children: [ const SizedBox(width: 20.0), - GestureDetector( - onTap: () => setState(() { - if (widget.onHistoryChanged != null && !colorHistory.contains(currentHsvColor.toColor())) { - colorHistory.add(currentHsvColor.toColor()); - widget.onHistoryChanged!(colorHistory); - } - }), - child: ColorIndicator(currentHsvColor), - ), + if (widget.enableColorIndicator) + GestureDetector( + onTap: () => setState(() { + if (widget.onHistoryChanged != null && !colorHistory.contains(currentHsvColor.toColor())) { + colorHistory.add(currentHsvColor.toColor()); + widget.onHistoryChanged!(colorHistory); + } + }), + child: ColorIndicator(currentHsvColor), + ), Column( children: [ - SizedBox(height: 40.0, width: 260.0, child: sliderByPaletteType()), + if (widget.enableSlider) + SizedBox(height: 40.0, width: 260.0, child: sliderByPaletteType()), if (widget.enableAlpha) SizedBox(height: 40.0, width: 260.0, child: colorPickerSlider(TrackType.alpha)), ],