27#include "../JuceLibraryCode/JuceHeader.h"
42 virtual void mouseEnter(
const juce::MouseEvent& event)
override {
43 Slider::mouseEnter(event);
47 virtual void mouseMove(
const juce::MouseEvent& event)
override {
48 Slider::mouseMove(event);
52 virtual void mouseExit(
const juce::MouseEvent& event)
override {
53 Slider::mouseExit(event);
58 Slider::mouseDoubleClick(event);
62 virtual void mouseDrag(
const juce::MouseEvent& event)
override {
63 Slider::mouseDrag(event);
68 const juce::MouseWheelDetails& wheel)
override {
69 Slider::mouseWheelMove(event, wheel);
104 inline void start(juce::Label* targetLabel, juce::String defaultText);
105 inline void start(juce::TextButton* targetButton, juce::String defaultText);
127 return [label](
const juce::String& text) { label->setText(text, juce::dontSendNotification); };
131 return [button](
const juce::String& text) { button->setButtonText(text); };
134 inline virtual void _updateLabel(
const juce::MouseEvent& event)
override;
141 _targetCallback = _labelToCallback(targetLabel);
142 _defaultText = defaultText;
148 _targetCallback = _textButtonToCallback(targetButton);
149 _defaultText = defaultText;
161 _targetCallback(_valueToString(getValue()));
168 _targetCallback(_defaultText);
virtual void _resetLabel() override
virtual ~LabelReadoutSlider()=default
static std::function< void(const juce::String &)> _textButtonToCallback(juce::TextButton *button)
std::function< juce::String(T)> _valueToString
std::function< void(const juce::String &)> _targetCallback
void start(juce::Label *targetLabel, juce::String defaultText)
void setValueToString(std::function< juce::String(T)> valueToString)
LabelReadoutSlider(const juce::String &componentName)
juce::String _defaultText
static std::function< void(const juce::String &)> _labelToCallback(juce::Label *label)
virtual void _updateLabel(const juce::MouseEvent &event) override
virtual void _resetLabel()=0
virtual void mouseWheelMove(const juce::MouseEvent &event, const juce::MouseWheelDetails &wheel) override
virtual void mouseMove(const juce::MouseEvent &event) override
virtual void mouseEnter(const juce::MouseEvent &event) override
SliderLabelUpdater(const juce::String &componentName)
virtual void _updateLabel(const juce::MouseEvent &event)=0
virtual void mouseDrag(const juce::MouseEvent &event) override
virtual void mouseDoubleClick(const juce::MouseEvent &event) override
virtual void mouseExit(const juce::MouseEvent &event) override
virtual ~SliderLabelUpdater()=default