12 tempo_slider_(nullptr), keytrack_transpose_slider_(nullptr),
13 keytrack_tune_slider_(nullptr) {
20 if (e.mods.isPopupMenu()) {
39 if (e.mods.isPopupMenu()) {
47 int menu_value = getValue();
49 free_slider_->setVisible(menu_value ==
kSeconds);
52 if (keytrack_transpose_slider_)
53 keytrack_transpose_slider_->setVisible(menu_value ==
kKeytrack);
54 if (keytrack_tune_slider_)
55 keytrack_tune_slider_->setVisible(menu_value ==
kKeytrack);
67 int value = getValue();
77 g.fillPath(path, path.getTransformToScaleToFit(getLocalBounds().toFloat(),
true));
79 float dot_width = getWidth() / 8.0f;
80 g.fillEllipse(3.0f * getWidth() / 4.0f - dot_width / 2.0f, getHeight() / 2.0f, dot_width, dot_width);
87 bool free_slider = getValue() ==
kSeconds;
89 free_slider_ = slider;
90 free_slider_->setVisible(free_slider);
98 tempo_slider_ = slider;
99 tempo_slider_->setVisible(visible);
107 keytrack_transpose_slider_ = slider;
108 keytrack_transpose_slider_->setVisible(visible);
116 keytrack_tune_slider_ = slider;
117 keytrack_tune_slider_->setVisible(visible);
void paintToImage(bool paint)
Definition synth_slider.h:93
SynthSection * parent_
The parent SynthSection.
Definition synth_slider.h:289
static Path note()
Creates a musical note icon path.
Definition paths.h:219
static Path tripletNotes()
Creates a triplet notes icon path.
Definition paths.h:242
static Path clock()
Creates a clock icon path.
Definition paths.h:195
static Path keyboardBordered()
Definition paths.h:490
@ kIconSelectorIcon
Definition skin.h:183
void showPopupSelector(Component *source, Point< int > position, const PopupItems &options, std::function< void(int)> callback, std::function< void()> cancel={ })
Shows a popup selector with options.
Definition synth_section.cpp:119
A specialized slider with extended functionality for modulation, parameter control,...
Definition synth_slider.h:314
virtual void valueChanged() override
Called when the slider value changes. Notifies GUIs.
Definition synth_slider.cpp:375
virtual void mouseDown(const MouseEvent &e) override
Mouse event overrides for custom behavior.
Definition synth_slider.cpp:234
@ kSeconds
Seconds mode.
Definition tempo_selector.h:19
@ kTempo
Regular tempo mode.
Definition tempo_selector.h:20
@ kTempoDotted
Dotted tempo mode.
Definition tempo_selector.h:21
@ kTempoTriplet
Triplet tempo mode.
Definition tempo_selector.h:22
@ kKeytrack
Keytrack mode.
Definition tempo_selector.h:23
void valueChanged() override
Called when the slider value changes (the mode changes). Shows or hides linked sliders accordingly.
Definition tempo_selector.cpp:46
void mouseUp(const MouseEvent &e) override
Definition tempo_selector.cpp:38
void setFreeSlider(Slider *slider)
Definition tempo_selector.cpp:86
void setKeytrackTransposeSlider(Slider *slider)
Definition tempo_selector.cpp:104
void setKeytrackTuneSlider(Slider *slider)
Definition tempo_selector.cpp:113
TempoSelector(String name)
Constructs a TempoSelector and sets initial rendering mode.
Definition tempo_selector.cpp:11
void paint(Graphics &g) override
Definition tempo_selector.cpp:63
void mouseDown(const MouseEvent &e) override
Definition tempo_selector.cpp:19
void setTempoSlider(Slider *slider)
Definition tempo_selector.cpp:95
Declares the TempoSelector class, a specialized slider for selecting tempo-related modes.