69 juce::Slider &slider) {
75 const double sliderNormalisedValue {(slider.getValue() - slider.getMinimum()) /
76 (slider.getMaximum() - slider.getMinimum())};
78 double arcStartPoint {0};
79 double arcEndPoint {0};
80 if (sliderNormalisedValue > 0.5) {
88 constexpr int margin {2};
89 juce::Rectangle<int> area = slider.getBounds();
90 area.reduce(margin, margin);
91 const int diameter {std::min(area.getWidth(), area.getHeight())};
93 if (slider.isEnabled()) {
94 g.setColour(slider.findColour(juce::Slider::rotarySliderFillColourId));
96 g.setColour(slider.findColour(juce::Slider::rotarySliderOutlineColourId));
102 constexpr int arcSpacing {3};
103 p.addCentredArc(width / 2,
105 diameter / 2 - arcSpacing,
106 diameter / 2 - arcSpacing,
112 g.strokePath(p, juce::PathStrokeType(0.7f));
116 p.addCentredArc(width / 2,
124 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