#pragma once #include #include "../Resources.h" namespace serum { // =========================================================================== // Look-and-feel for Knob. // // Two jobs: // // 1. Draw the rotary with theme:: colours. The shared default look-and-feel // paints it with its own palette, which ignores the rest of the editor. // // 2. Leave room for the knob's name. juce::LookAndFeel_V4 reduces the rotary // bounds by a fixed ten pixels on each side, so a 76 pixel knob loses // 20 pixels of dial and a smaller knob loses most of it. This version // keeps the dial whole inside its footprint and reserves a text strip // under it, which is the strip Knob paints its name into. // =========================================================================== class KnobLookAndFeel : public juce::LookAndFeel_V4 { public: // Height of the name strip reserved under the dial. static constexpr int labelHeight = 16; void drawRotarySlider (juce::Graphics& g, int x, int y, int width, int height, float sliderPos, float rotaryStartAngle, float rotaryEndAngle, juce::Slider& slider) override; }; } // namespace serum