47 void paint(Graphics& g)
override;
87 bool enabled()
const {
return enable_->getToggleState(); }
93 int order()
const {
return order_; }
105 std::unique_ptr<SynthButton> enable_;
106 std::unique_ptr<OpenGlImageComponent> background_;
107 std::vector<Listener*> listeners_;
180 void mouseMove(
const MouseEvent& e)
override;
186 void mouseDown(
const MouseEvent& e)
override;
192 void mouseDrag(
const MouseEvent& e)
override;
198 void mouseUp(
const MouseEvent& e)
override;
204 void mouseExit(
const MouseEvent& e)
override;
224 void moveEffect(
int start_index,
int end_index);
272 int getEffectY(
int index)
const;
274 std::vector<Listener*> listeners_;
277 int last_dragged_index_;
279 int dragged_starting_y_;
280 std::vector<std::unique_ptr<DraggableEffect>> effect_list_;
Listener interface for responding to changes in the drag/drop order or effect states.
Definition drag_drop_effect_order.h:129
virtual ~Listener()
Definition drag_drop_effect_order.h:131
virtual void orderChanged(DragDropEffectOrder *order)=0
Called when the order of effects changes due to a drag/drop operation.
virtual void effectEnabledChanged(int order_index, bool enabled)=0
Called when a particular effect’s enabled state changes.
A container managing multiple DraggableEffect components, allowing reordering via drag and drop.
Definition drag_drop_effect_order.h:120
void resized() override
Positions the DraggableEffect components based on the current order.
Definition drag_drop_effect_order.cpp:145
void setAllValues(vital::control_map &controls) override
Sets all values from a control map (e.g., restoring order from saved state).
Definition drag_drop_effect_order.cpp:229
virtual ~DragDropEffectOrder()
Destructor.
Definition drag_drop_effect_order.cpp:143
int getEffectIndexFromY(float y) const
Converts a vertical mouse position (y) to an ordered effect index.
Definition drag_drop_effect_order.cpp:286
void effectEnabledChanged(DraggableEffect *effect, bool enabled) override
Responds to enable state changes from a DraggableEffect.
Definition drag_drop_effect_order.cpp:224
int getEffectIndex(int index) const
Gets the effect’s internal index from an ordered position.
Definition drag_drop_effect_order.cpp:273
void moveEffect(int start_index, int end_index)
Moves an effect from one position to another, adjusting the order of all affected effects.
Definition drag_drop_effect_order.cpp:241
Component * getEffect(int index) const
Gets the effect component at a given ordered position.
Definition drag_drop_effect_order.cpp:278
void mouseUp(const MouseEvent &e) override
Handles mouse up events to finalize the dragged effect’s position.
Definition drag_drop_effect_order.cpp:209
void mouseDrag(const MouseEvent &e) override
Handles mouse drag events to reorder the effects dynamically.
Definition drag_drop_effect_order.cpp:193
bool effectEnabled(int index) const
Checks if the effect at a given ordered position is enabled.
Definition drag_drop_effect_order.cpp:282
void mouseExit(const MouseEvent &e) override
Resets hover states when the mouse exits the component.
Definition drag_drop_effect_order.cpp:217
static constexpr int kEffectPadding
Padding between individual effects.
Definition drag_drop_effect_order.h:123
void renderOpenGlComponents(OpenGlWrapper &open_gl, bool animate) override
Renders all nested OpenGL components, including dragged effects.
Definition drag_drop_effect_order.cpp:164
void mouseDown(const MouseEvent &e) override
Handles mouse down events to initiate dragging.
Definition drag_drop_effect_order.cpp:184
DragDropEffectOrder(String name)
Constructs a DragDropEffectOrder component.
Definition drag_drop_effect_order.cpp:128
void mouseMove(const MouseEvent &e) override
Handles mouse movement to update hover states.
Definition drag_drop_effect_order.cpp:172
void setStationaryEffectPosition(int index)
Repositions the effect at the given index to its stationary position (no dragging).
Definition drag_drop_effect_order.cpp:265
void paintBackground(Graphics &g) override
Paints the background behind the effects.
Definition drag_drop_effect_order.cpp:156
void addListener(Listener *listener)
Adds a listener for order or state changes.
Definition drag_drop_effect_order.h:236
Listener interface for responding to changes in the DraggableEffect’s enabled state.
Definition drag_drop_effect_order.h:24
virtual ~Listener()
Definition drag_drop_effect_order.h:26
virtual void effectEnabledChanged(DraggableEffect *effect, bool enabled)=0
Called when the DraggableEffect’s enabled state changes.
A UI component representing an individual effect that can be enabled, disabled, and rearranged.
Definition drag_drop_effect_order.h:18
int order() const
Gets the current order (position) of this effect.
Definition drag_drop_effect_order.h:93
void hover(bool hover)
Updates the hover state visually.
Definition drag_drop_effect_order.cpp:121
bool enabled() const
Checks if this effect is currently enabled.
Definition drag_drop_effect_order.h:87
void resized() override
Positions the subcomponents (like enable button) within the DraggableEffect.
Definition drag_drop_effect_order.cpp:107
void buttonClicked(Button *clicked_button) override
Handles button clicks, primarily the enable button.
Definition drag_drop_effect_order.cpp:113
DraggableEffect(const String &name, int order)
Constructs a DraggableEffect.
Definition drag_drop_effect_order.cpp:37
void paintBackground(Graphics &g) override
Paints the background of the DraggableEffect.
Definition drag_drop_effect_order.h:55
void paint(Graphics &g) override
Paints the DraggableEffect’s background and icon.
Definition drag_drop_effect_order.cpp:56
void renderOpenGlComponents(OpenGlWrapper &open_gl, bool animate) override
Renders all nested OpenGL components.
Definition drag_drop_effect_order.h:62
void addListener(Listener *listener)
Adds a listener for this DraggableEffect’s enable state changes.
Definition drag_drop_effect_order.h:81
Base class for all synthesizer sections, providing UI layout, painting, and interaction logic.
Definition synth_section.h:193
virtual void renderOpenGlComponents(OpenGlWrapper &open_gl, bool animate)
Renders all OpenGL components in this section and sub-sections.
Definition synth_section.cpp:357
virtual void animate(bool animate)
Triggers animation state change in sub-sections if needed.
Definition synth_section.cpp:822
@ kNumEffects
Definition synth_constants.h:187
std::map< std::string, Value * > control_map
Maps parameter names to Value pointers representing synth control parameters.
Definition synth_types.h:214
A helper struct containing references to OpenGL context, shaders, and display scale.
Definition shaders.h:174
Declares the SynthSlider and related classes, providing various slider styles and functionality in th...