I got here by trying to inherit from Slider.
I want a ThreeValue Slider, but I want the left “min” to be allowed to be higher than the right “max”.
The current value should be required to be between them (inclusive), but if e.g. min == max, then current = min; and if min > max, then current >= max and current <= min.
I think I see what I would need to fuss with - setValue, setMinValue, setMaxValue, setMinAndMaxValues, and updateRange. I don’t mind fussing with what needs to be fussed with; I believe I can use std::min and std::max to adjust most of these.
But, having tried inheriting from Slider and just overriding those methods, I believe it might make more sense to change my local copy, i.e. to fork JUCE and maybe add another Slider type, or change the ThreeValueVertical type for this project. I see that updageRange lives in Slider::Pimpl, which is private, as does the “style” variable.
As it is, my editor has 3 separate vertical sliders for the left “min”, the current value, and the right “max”. If the left value is higher, the current value tracks inverse (i.e. what I want). The user has to look in 3 places to see those values.