slideEvent method
Implementation
void slideEvent(RenderBox getBox, BoxConstraints box, Offset globalPosition) {
double localDx = getBox.globalToLocal(globalPosition).dx - 15.0;
double progress =
localDx.clamp(0.0, box.maxWidth - 30.0) / (box.maxWidth - 30.0);
switch (trackType) {
case TrackType.hue:
onColorChanged(hsvColor.withHue(progress * 359));
break;
case TrackType.saturation:
onColorChanged(hsvColor.withSaturation(progress));
break;
case TrackType.saturationForHSL:
onColorChanged(hslToHsv(hsvToHsl(hsvColor).withSaturation(progress)));
break;
case TrackType.value:
onColorChanged(hsvColor.withValue(progress));
break;
case TrackType.lightness:
onColorChanged(hslToHsv(hsvToHsl(hsvColor).withLightness(progress)));
break;
case TrackType.red:
onColorChanged(
HSVColour.fromColor(
hsvColor.toColor().withRed((progress * 0xff).round()),
),
);
break;
case TrackType.green:
onColorChanged(
HSVColour.fromColor(
hsvColor.toColor().withGreen((progress * 0xff).round()),
),
);
break;
case TrackType.blue:
onColorChanged(
HSVColour.fromColor(
hsvColor.toColor().withBlue((progress * 0xff).round()),
),
);
break;
case TrackType.alpha:
onColorChanged(
hsvColor
.withAlpha(
localDx.clamp(0.0, box.maxWidth - 30.0) / (box.maxWidth - 30.0),
)
.toHSVColour,
);
break;
}
}