void slideEvent(RenderBox getBox, BoxConstraints box, Offset globalPosition) { float localDx = getBox.globalToLocal(globalPosition).dx - 15f; float progress = localDx.clamp(0f, box.maxWidth - 30f) / (box.maxWidth - 30f); switch (trackType) { case TrackType.hue: // 360 is the same as zero // if set to 360, sliding to end goes to zero onColorChanged(hsvColor.withHue(progress * 359)); break; case TrackType.saturation: onColorChanged(hsvColor.withSaturation(progress)); break; case TrackType.saturationForHSL: onColorChanged(Utils.hslToHsv(Utils.hsvToHsl(hsvColor).withSaturation(progress))); break; case TrackType.value: onColorChanged(hsvColor.withValue(progress)); break; case TrackType.lightness: onColorChanged(Utils.hslToHsv(Utils.hsvToHsl(hsvColor).withLightness(progress))); break; case TrackType.red: onColorChanged(HSVColorExtention.fromColor(hsvColor.toColor().withRed((progress * 0xff).round()))); break; case TrackType.green: onColorChanged(HSVColorExtention.fromColor(hsvColor.toColor().withGreen((progress * 0xff).round()))); break; case TrackType.blue: onColorChanged(HSVColorExtention.fromColor(hsvColor.toColor().withBlue((progress * 0xff).round()))); break; case TrackType.alpha: onColorChanged(hsvColor.withAlpha(localDx.clamp(0f, box.maxWidth - 30f) / (box.maxWidth - 30f))); break; } }
public override void didChangeDependencies() { base.didChangeDependencies(); currentHsvColor = HSVColorExtention.fromColor(widget.pickerColor); }
public override void initState() { base.initState(); currentHsvColor = HSVColorExtention.fromColor(widget.pickerColor); }
public override void didUpdateWidget(StatefulWidget oldWidget) { base.didUpdateWidget(oldWidget); currentHsvColor = HSVColorExtention.fromColor(widget.pickerColor); }