Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetGUI_Macroslider.h
Go to the documentation of this file.
1namespace krotos
2{
4 {
5 public:
7
9
11
12 void paint(Graphics& g) override;
13 void resized() override;
14
19 void setLabelEditability(bool editable);
20 void setPerformMode(bool performMode)
21 {
22 m_performMode = performMode;
23 resized();
24 };
25
26 void mouseEnter(const MouseEvent&) override;
27 void mouseExit(const MouseEvent&) override;
28
29 AttachedSlider* getMacroSlider() const { return m_macroSlider.get(); };
30 AttachedLabel* getLabel() const { return m_editableLabel.get(); };
31
32 private:
37 struct Layout
38 {
39 public:
40 const float border{0.f};
41 const float KerningFactor{0.02f}; // TODO: don't yet know why this empirically derived number is needed, but
42 // without it, the value text is clipped
43 const float height_scale_factor{0.63f}; // empirically derived number
44 const Colour editableLabelTextColour{0xffb2b2b2}; // White x 0.7
45 const juce::Rectangle<float> enclosingRectangle{juce::Rectangle<float>(0.f, 0.f, 86.f, 96.f)};
46 const juce::Rectangle<float> textRectangle{juce::Rectangle<float>(0.f + border, 81.f + border, 86.f, 15.f)};
48
49 // Custom Krotos LookAndFeel
51
52 std::unique_ptr<AttachedSlider> m_macroSlider{nullptr};
53 std::unique_ptr<AttachedLabel> m_editableLabel{nullptr};
54
55 bool m_performMode{false};
56 bool m_labelEditability{false};
57
58 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(KwidgetGUI_MacroSlider)
59 };
60} // namespace krotos
This class ...
Definition AttachedLabel.h:9
This class combines a Slider, Label, and a SliderAttachment to simplify the process of adding knobs t...
Definition AttachedSlider.h:10
Definition Krotos_LookAndFeel.h:12
Definition KwidgetGUI_Macroslider.h:4
void setLabelEditability(bool editable)
Definition KwidgetGUI_Macroslider.cpp:87
void mouseExit(const MouseEvent &) override
Definition KwidgetGUI_Macroslider.cpp:43
bool m_labelEditability
Definition KwidgetGUI_Macroslider.h:56
void paint(Graphics &g) override
Definition KwidgetGUI_Macroslider.cpp:51
void mouseEnter(const MouseEvent &) override
Definition KwidgetGUI_Macroslider.cpp:35
Krotos_LookAndFeel m_krotosLAF
Definition KwidgetGUI_Macroslider.h:50
std::unique_ptr< AttachedLabel > m_editableLabel
Definition KwidgetGUI_Macroslider.h:53
KwidgetGUI_MacroSlider(Kwidget &owner)
Definition KwidgetGUI_Macroslider.cpp:3
~KwidgetGUI_MacroSlider()
Definition KwidgetGUI_Macroslider.cpp:29
void resized() override
Definition KwidgetGUI_Macroslider.cpp:53
bool m_performMode
Definition KwidgetGUI_Macroslider.h:55
std::unique_ptr< AttachedSlider > m_macroSlider
Definition KwidgetGUI_Macroslider.h:52
AttachedLabel * getLabel() const
Definition KwidgetGUI_Macroslider.h:30
void setPerformMode(bool performMode)
Definition KwidgetGUI_Macroslider.h:20
struct krotos::KwidgetGUI_MacroSlider::Layout layout
AttachedSlider * getMacroSlider() const
Definition KwidgetGUI_Macroslider.h:29
Interface for a UI Component that controls a KwidgetProcessor.
Definition KwidgetGUI.h:24
Definition Kwidget.h:8
Definition AirAbsorptionFilter.cpp:2
Definition Kwidget_Macroslider.h:7
Definition KwidgetGUI_Macroslider.h:38
const float border
Definition KwidgetGUI_Macroslider.h:40
const juce::Rectangle< float > enclosingRectangle
Definition KwidgetGUI_Macroslider.h:45
const juce::Rectangle< float > textRectangle
Definition KwidgetGUI_Macroslider.h:46
const Colour editableLabelTextColour
Definition KwidgetGUI_Macroslider.h:44
const float KerningFactor
Definition KwidgetGUI_Macroslider.h:41
const float height_scale_factor
Definition KwidgetGUI_Macroslider.h:43