A UI component representing an individual effect that can be enabled, disabled, and rearranged.
More...
|
| DraggableEffect (const String &name, int order) |
| Constructs a DraggableEffect.
|
|
void | paint (Graphics &g) override |
| Paints the DraggableEffect’s background and icon.
|
|
void | paintBackground (Graphics &g) override |
| Paints the background of the DraggableEffect.
|
|
void | renderOpenGlComponents (OpenGlWrapper &open_gl, bool animate) override |
| Renders all nested OpenGL components.
|
|
void | resized () override |
| Positions the subcomponents (like enable button) within the DraggableEffect.
|
|
void | buttonClicked (Button *clicked_button) override |
| Handles button clicks, primarily the enable button.
|
|
void | addListener (Listener *listener) |
| Adds a listener for this DraggableEffect’s enable state changes.
|
|
bool | enabled () const |
| Checks if this effect is currently enabled.
|
|
int | order () const |
| Gets the current order (position) of this effect.
|
|
void | hover (bool hover) |
| Updates the hover state visually.
|
|
| SynthSection (const String &name) |
| Constructs a SynthSection with a given name.
|
|
virtual | ~SynthSection ()=default |
|
void | setParent (const SynthSection *parent) |
| Sets the parent SynthSection.
|
|
float | findValue (Skin::ValueId value_id) const |
| Finds a value in the skin overrides or from the parent if not found locally.
|
|
virtual void | reset () |
| Resets the section and all sub-sections.
|
|
virtual void | paintSidewaysHeadingText (Graphics &g) |
| Paints the section name heading text vertically if sideways_heading_ is true.
|
|
virtual void | paintHeadingText (Graphics &g) |
| Paints the heading text for this section, either sideways or horizontally.
|
|
virtual void | setSkinValues (const Skin &skin, bool top_level) |
| Sets skin values (colors, sizes) and applies them to sub-sections.
|
|
void | setSkinOverride (Skin::SectionOverride skin_override) |
|
virtual void | repaintBackground () |
| Requests a repaint of the background.
|
|
void | showPopupBrowser (SynthSection *owner, Rectangle< int > bounds, std::vector< File > directories, String extensions, std::string passthrough_name, std::string additional_folders_name) |
| Shows a file browser popup (e.g., for loading samples or wavetables).
|
|
void | updatePopupBrowser (SynthSection *owner) |
| Updates the currently visible popup browser if any.
|
|
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.
|
|
void | showDualPopupSelector (Component *source, Point< int > position, int width, const PopupItems &options, std::function< void(int)> callback) |
| Shows a dual popup selector for hierarchical selection.
|
|
void | showPopupDisplay (Component *source, const std::string &text, BubbleComponent::BubblePlacement placement, bool primary) |
| Shows a brief popup display (like a tooltip).
|
|
void | hidePopupDisplay (bool primary) |
| Hides the currently shown popup display.
|
|
virtual void | loadFile (const File &file) |
| Loads a file (e.g., a sample or wavetable). Overridden by subclasses.
|
|
virtual File | getCurrentFile () |
| Gets the currently loaded file. Overridden by subclasses.
|
|
virtual std::string | getFileName () |
| Gets the name of the currently loaded file. Overridden by subclasses.
|
|
virtual std::string | getFileAuthor () |
| Gets the author metadata of the currently loaded file. Overridden by subclasses.
|
|
virtual void | paintContainer (Graphics &g) |
| Paints the container background, body, heading, etc.
|
|
virtual void | paintBody (Graphics &g, Rectangle< int > bounds) |
| Paints the body background within given bounds.
|
|
virtual void | paintBorder (Graphics &g, Rectangle< int > bounds) |
| Paints the border around given bounds.
|
|
virtual void | paintBody (Graphics &g) |
| Paints the section body background using the entire component area.
|
|
virtual void | paintBorder (Graphics &g) |
| Paints the border around the entire component.
|
|
int | getComponentShadowWidth () |
| Gets the width of shadow around components.
|
|
virtual void | paintTabShadow (Graphics &g) |
| Paints a tab-like shadow effect around the component.
|
|
void | paintTabShadow (Graphics &g, Rectangle< int > bounds) |
| Paints a tab shadow effect within specified bounds.
|
|
virtual void | paintBackgroundShadow (Graphics &g) |
| Stub for painting background shadows. Overridden by subclasses if needed.
|
|
virtual void | setSizeRatio (float ratio) |
| Sets the size ratio for scaling UI elements.
|
|
void | paintKnobShadows (Graphics &g) |
| Paints knob shadows for all sliders.
|
|
Font | getLabelFont () |
| Gets a suitable font for label text.
|
|
void | setLabelFont (Graphics &g) |
| Sets the Graphics context font and color for labels.
|
|
void | drawLabelConnectionForComponents (Graphics &g, Component *left, Component *right) |
| Draws a rectangular connection between labels of two components.
|
|
void | drawLabelBackground (Graphics &g, Rectangle< int > bounds, bool text_component=false) |
| Draws a background for a label area.
|
|
void | drawLabelBackgroundForComponent (Graphics &g, Component *component) |
| Draws label background for a specific component.
|
|
Rectangle< int > | getDividedAreaBuffered (Rectangle< int > full_area, int num_sections, int section, int buffer) |
| Divides an area into equal sections with buffering, returns the specified section.
|
|
Rectangle< int > | getDividedAreaUnbuffered (Rectangle< int > full_area, int num_sections, int section, int buffer) |
| Divides an area into equal sections without extra buffering, returns the specified section.
|
|
Rectangle< int > | getLabelBackgroundBounds (Rectangle< int > bounds, bool text_component=false) |
| Gets the background bounds for a label.
|
|
Rectangle< int > | getLabelBackgroundBounds (Component *component, bool text_component=false) |
| Gets the label background bounds for a component.
|
|
void | drawLabel (Graphics &g, String text, Rectangle< int > component_bounds, bool text_component=false) |
| Draws a label text below a component.
|
|
void | drawLabelForComponent (Graphics &g, String text, Component *component, bool text_component=false) |
| Draws a label for a given component.
|
|
void | drawTextBelowComponent (Graphics &g, String text, Component *component, int space, int padding=0) |
| Draws text below a component with optional padding.
|
|
virtual void | paintChildrenShadows (Graphics &g) |
| Paints shadows for child sections.
|
|
void | paintChildrenBackgrounds (Graphics &g) |
| Paints the backgrounds for all child sections.
|
|
void | paintOpenGlChildrenBackgrounds (Graphics &g) |
| Paints the backgrounds for all OpenGL child components.
|
|
void | paintChildBackground (Graphics &g, SynthSection *child) |
| Paints a child's background specifically.
|
|
void | paintChildShadow (Graphics &g, SynthSection *child) |
| Paints a child's shadow specifically.
|
|
void | paintOpenGlBackground (Graphics &g, OpenGlComponent *child) |
| Paints the background of an OpenGlComponent child.
|
|
void | drawTextComponentBackground (Graphics &g, Rectangle< int > bounds, bool extend_to_label) |
| Draws a background for a text component area.
|
|
void | drawTempoDivider (Graphics &g, Component *sync) |
| Draws a divider line for tempo-related controls.
|
|
virtual void | initOpenGlComponents (OpenGlWrapper &open_gl) |
| Initializes all OpenGL components in this section and sub-sections.
|
|
virtual void | destroyOpenGlComponents (OpenGlWrapper &open_gl) |
| Destroys all OpenGL components in this section and sub-sections.
|
|
virtual void | sliderValueChanged (Slider *moved_slider) override |
| Called when a slider value changes. Updates the synth parameter accordingly.
|
|
virtual void | guiChanged (SynthButton *button) override |
| Called when a SynthButton state changes (GUI interaction).
|
|
std::map< std::string, SynthSlider * > | getAllSliders () |
| Gets all sliders registered in this section.
|
|
std::map< std::string, ToggleButton * > | getAllButtons () |
| Gets all toggle buttons registered in this section.
|
|
std::map< std::string, ModulationButton * > | getAllModulationButtons () |
| Gets all modulation buttons registered in this section.
|
|
virtual void | setActive (bool active) |
| Sets the active state of this section and sub-sections.
|
|
bool | isActive () const |
| Checks if the section is currently active.
|
|
virtual void | animate (bool animate) |
| Triggers animation state change in sub-sections if needed.
|
|
virtual void | setAllValues (vital::control_map &controls) |
| Sets values for all known parameters from a control map.
|
|
virtual void | setValue (const std::string &name, vital::mono_float value, NotificationType notification) |
| Sets a single parameter value for a known control.
|
|
void | addModulationButton (ModulationButton *button, bool show=true) |
| Adds a modulation button to this section.
|
|
void | addSubSection (SynthSection *section, bool show=true) |
| Adds a subsection (another SynthSection) as a child.
|
|
void | removeSubSection (SynthSection *section) |
| Removes a previously added subsection.
|
|
virtual void | setScrollWheelEnabled (bool enabled) |
| Enables or disables scroll wheel support for this section and sub-sections.
|
|
ToggleButton * | activator () const |
| Gets the activator toggle button if any.
|
|
void | setSkinValues (std::map< Skin::ValueId, float > values) |
| Sets custom skin values for this section.
|
|
void | setSkinValue (Skin::ValueId id, float value) |
| Sets a single skin value override.
|
|
float | getTitleWidth () |
|
float | getPadding () |
|
float | getPowerButtonOffset () const |
|
float | getKnobSectionHeight () |
|
float | getSliderWidth () |
|
float | getSliderOverlap () |
|
float | getSliderOverlapWithSpace () |
|
float | getTextComponentHeight () |
|
float | getStandardKnobSize () |
|
float | getTotalKnobHeight () |
|
float | getTextSectionYOffset () |
|
float | getModButtonWidth () |
|
float | getModFontSize () |
|
float | getWidgetMargin () |
|
float | getWidgetRounding () |
|
float | getSizeRatio () const |
|
int | getPopupWidth () const |
|
int | getDualPopupWidth () const |
|
virtual | ~ButtonListener () |
| Virtual destructor.
|
|
|
static constexpr int | kDefaultPowerButtonOffset = 0 |
|
static constexpr float | kPowerButtonPaddingPercent = 0.29f |
|
static constexpr float | kTransposeHeightPercent = 0.5f |
|
static constexpr float | kTuneHeightPercent = 0.4f |
|
static constexpr float | kJointModulationRadiusPercent = 0.1f |
|
static constexpr float | kJointModulationExtensionPercent = 0.6666f |
|
static constexpr float | kPitchLabelPercent = 0.33f |
|
static constexpr float | kJointLabelHeightPercent = 0.4f |
|
static constexpr double | kTransposeMouseSensitivity = 0.2 |
|
static constexpr float | kJointLabelBorderRatioX = 0.05f |
|
static constexpr int | kDefaultBodyRounding = 4 |
|
static constexpr int | kDefaultLabelHeight = 10 |
|
static constexpr int | kDefaultLabelBackgroundHeight = 16 |
|
static constexpr int | kDefaultLabelBackgroundWidth = 56 |
|
static constexpr int | kDefaultLabelBackgroundRounding = 4 |
|
static constexpr int | kDefaultPadding = 2 |
|
static constexpr int | kDefaultPopupMenuWidth = 150 |
|
static constexpr int | kDefaultDualPopupMenuWidth = 340 |
|
static constexpr int | kDefaultStandardKnobSize = 32 |
|
static constexpr int | kDefaultKnobThickness = 2 |
|
static constexpr float | kDefaultKnobModulationAmountThickness = 2.0f |
|
static constexpr int | kDefaultKnobModulationMeterSize = 43 |
|
static constexpr int | kDefaultKnobModulationMeterThickness = 4 |
|
static constexpr int | kDefaultModulationButtonWidth = 64 |
|
static constexpr int | kDefaultModFontSize = 10 |
|
static constexpr int | kDefaultKnobSectionHeight = 64 |
|
static constexpr int | kDefaultSliderWidth = 24 |
|
static constexpr int | kDefaultTextWidth = 80 |
|
static constexpr int | kDefaultTextHeight = 24 |
|
static constexpr int | kDefaultWidgetMargin = 6 |
|
static constexpr float | kDefaultWidgetFillFade = 0.3f |
|
static constexpr float | kDefaultWidgetLineWidth = 4.0f |
|
static constexpr float | kDefaultWidgetFillCenter = 0.0f |
|
void | setSliderHasHzAlternateDisplay (SynthSlider *slider) |
|
void | setSidewaysHeading (bool sideways) |
|
void | addToggleButton (ToggleButton *button, bool show) |
|
void | addButton (OpenGlToggleButton *button, bool show=true) |
|
void | addButton (OpenGlShapeButton *button, bool show=true) |
|
void | addSlider (SynthSlider *slider, bool show=true, bool listen=true) |
|
void | addOpenGlComponent (OpenGlComponent *open_gl_component, bool to_beginning=false) |
|
void | setActivator (SynthButton *activator) |
|
void | createOffOverlay () |
|
void | setPresetSelector (PresetSelector *preset_selector, bool half=false) |
|
void | paintJointControlSliderBackground (Graphics &g, int x, int y, int width, int height) |
|
void | paintJointControlBackground (Graphics &g, int x, int y, int width, int height) |
|
void | paintJointControl (Graphics &g, int x, int y, int width, int height, const std::string &name) |
|
void | placeJointControls (int x, int y, int width, int height, SynthSlider *left, SynthSlider *right, Component *widget=nullptr) |
|
void | placeTempoControls (int x, int y, int width, int height, SynthSlider *tempo, SynthSlider *sync) |
|
void | placeRotaryOption (Component *option, SynthSlider *rotary) |
|
void | placeKnobsInArea (Rectangle< int > area, std::vector< Component * > knobs) |
|
void | lockCriticalSection () |
|
void | unlockCriticalSection () |
|
Rectangle< int > | getPresetBrowserBounds () |
|
int | getTitleTextRight () |
|
Rectangle< int > | getPowerButtonBounds () |
|
Rectangle< int > | getTitleBounds () |
|
float | getDisplayScale () const |
|
virtual int | getPixelMultiple () const |
|
std::map< Skin::ValueId, float > | value_lookup_ |
|
std::vector< SynthSection * > | sub_sections_ |
|
std::vector< OpenGlComponent * > | open_gl_components_ |
|
std::map< std::string, SynthSlider * > | slider_lookup_ |
|
std::map< std::string, Button * > | button_lookup_ |
|
std::map< std::string, ModulationButton * > | modulation_buttons_ |
|
std::map< std::string, SynthSlider * > | all_sliders_ |
|
std::map< std::string, ToggleButton * > | all_buttons_ |
|
std::map< std::string, ModulationButton * > | all_modulation_buttons_ |
|
const SynthSection * | parent_ |
|
SynthButton * | activator_ |
|
PresetSelector * | preset_selector_ |
|
bool | preset_selector_half_width_ |
|
std::unique_ptr< OffOverlay > | off_overlay_ |
|
Skin::SectionOverride | skin_override_ |
|
float | size_ratio_ |
|
bool | active_ |
|
bool | sideways_heading_ |
|
A UI component representing an individual effect that can be enabled, disabled, and rearranged.
DraggableEffect displays an effect’s icon, name, and a toggle button to enable or disable it. It is intended to be moved (dragged) within an order list, thus allowing users to rearrange the processing chain. The hover state and the enabled state are visually indicated.