67 juce::Slider &slider) {
73 const double sliderNormalisedValue {slider.valueToProportionOfLength(slider.getValue())};
74 const double arcEndPoint {sliderNormalisedValue * rangeOfMotion + arcGap / 2};
76 constexpr int margin {2};
77 juce::Rectangle<int> area = slider.getBounds();
78 area.reduce(margin, margin);
79 const int diameter {std::min(area.getWidth(), area.getHeight())};
81 if (slider.isEnabled()) {
82 g.setColour(slider.findColour(juce::Slider::rotarySliderFillColourId));
84 g.setColour(slider.findColour(juce::Slider::rotarySliderOutlineColourId));
90 constexpr int arcSpacing {3};
91 p.addCentredArc(width / 2,
93 diameter / 2 - arcSpacing,
94 diameter / 2 - arcSpacing,
100 g.strokePath(p, juce::PathStrokeType(0.7f));
104 p.addCentredArc(width / 2,
112 g.strokePath(p, juce::PathStrokeType(3.0f));
virtual void drawRotarySlider(juce::Graphics &g, int x, int y, int width, int height, float sliderPosProportional, float rotaryStartAngle, float rotaryEndAngle, juce::Slider &slider) override