Vital
Loading...
Searching...
No Matches
WavetableComponentList Class Reference

A UI component that lists and manages the wavetable sources and modifiers. More...

#include <wavetable_component_list.h>

Inheritance diagram for WavetableComponentList:
SynthSection WavetableComponentViewport::Listener SynthButton::ButtonListener

Classes

class  Listener
 Interface for objects wanting to know when the component list changes. More...
 

Public Types

enum  ComponentRowMenu {
  kRowCancel = 0 , kReset , kMoveUp , kMoveDown ,
  kRemove
}
 Menu options for component rows. More...
 

Public Member Functions

 WavetableComponentList (WavetableCreator *wavetable_creator)
 Constructs a WavetableComponentList for managing sources and modifiers.
 
void clear ()
 Clears the list of sources and modifiers.
 
void init ()
 Initializes the component list after construction.
 
void resized () override
 Overridden to layout and refresh the UI.
 
void paintBackground (Graphics &g) override
 Overridden to paint the background and related elements.
 
void addListener (Listener *listener)
 Adds a listener interested in component changes.
 
void setRowHeight (int row_height)
 Sets the height of each row in the list.
 
std::pair< int, int > getIndicesForRow (int row_index)
 Retrieves the group and component indices for a given row index.
 
void groupMenuClicked (int row_index)
 Displays a menu for the group row at the given index.
 
void modifierMenuClicked (int row_index)
 Displays a menu for the modifier row at the given index.
 
void menuClicked (int row_index)
 Displays a general menu for the given row index, determining if it's a group or modifier.
 
void addModifierClicked (int group_index)
 Called when the "Add Modifier" button is clicked for a particular group.
 
void addSourceClicked ()
 Called when the "Add Source" button is clicked.
 
void buttonClicked (Button *button) override
 Overridden to handle button clicks (menus, add source/modifier).
 
void componentsScrolled () override
 Called when the components are scrolled.
 
void addSource (int index)
 Adds a new source of the given index (maps to a component type).
 
void removeGroup (int index)
 Removes a source group by index.
 
void addComponent (int type)
 Adds a new component (modifier) of the given type.
 
void removeComponent ()
 Removes the currently selected component.
 
void resetComponent ()
 Resets the currently selected component to default state.
 
void removeGroup ()
 Removes the currently selected group.
 
void moveGroupUp ()
 Moves the currently selected group up in the list.
 
void moveGroupDown ()
 Moves the currently selected group down in the list.
 
void moveModifierUp ()
 Moves the currently selected modifier up in its group.
 
void moveModifierDown ()
 Moves the currently selected modifier down in its group.
 
int numGroups ()
 Returns the number of groups in the wavetable.
 
void notifyComponentAdded (WavetableComponent *component)
 Notifies listeners that a component was added.
 
void notifyComponentRemoved (WavetableComponent *component)
 Notifies listeners that a component was removed.
 
void notifyComponentsReordered ()
 Notifies listeners that components have been reordered.
 
void notifyComponentsChanged ()
 Notifies listeners that components have changed.
 
void scrollBarMoved (ScrollBar *scroll_bar, double range_start) override
 Called when the scroll bar moves.
 
void scroll (const MouseEvent &e, const MouseWheelDetails &wheel)
 Scrolls the viewport by mouse wheel.
 
- Public Member Functions inherited from SynthSection
 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 paint (Graphics &g) override
 Called when the component should paint itself.
 
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 renderOpenGlComponents (OpenGlWrapper &open_gl, bool animate)
 Renders 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
 
- Public Member Functions inherited from SynthButton::ButtonListener
virtual ~ButtonListener ()
 Virtual destructor.
 
- Public Member Functions inherited from WavetableComponentViewport::Listener
virtual ~Listener ()
 

Static Public Attributes

static constexpr int kMaxRows = 128
 Maximum number of rows for components.
 
static constexpr int kMaxSources = 16
 Maximum number of source groups.
 
- Static Public Attributes inherited from SynthSection
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
 

Protected Member Functions

void resetGroups ()
 Resets the display of groups and modifiers in the UI.
 
void positionGroups ()
 Positions the groups and modifiers in the scrollable list.
 
void setScrollBarRange ()
 Sets the scrollbar range based on content size.
 
- Protected Member Functions inherited from SynthSection
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
 

Protected Attributes

WavetableComponentViewport viewport_
 Viewport for scrolling the component list.
 
Component component_container_
 Container holding all UI elements for the list.
 
std::unique_ptr< OpenGlScrollBarscroll_bar_
 A custom scrollbar for vertical scrolling.
 
WavetableCreatorwavetable_creator_
 The wavetable creator managing group/components.
 
int current_group_index_
 The currently selected group index.
 
int current_component_index_
 The currently selected component index.
 
std::vector< Listener * > listeners_
 Listeners for changes in the component list.
 
OpenGlMultiQuad component_backgrounds_
 Background rectangles for each row.
 
std::unique_ptr< PlainTextComponentnames_ [kMaxRows]
 Text labels for each component row.
 
std::unique_ptr< OpenGlShapeButtonmenu_buttons_ [kMaxRows]
 Menu buttons for each row.
 
std::unique_ptr< OpenGlToggleButtoncreate_component_button_
 Button to add a new source.
 
std::unique_ptr< OpenGlToggleButtonadd_modifier_buttons_ [kMaxSources]
 Buttons to add modifiers.
 
std::unique_ptr< PlainShapeComponentplus_icons_ [kMaxSources+1]
 Plus icons next to buttons.
 
int row_height_
 Height of each row in pixels.
 
- Protected Attributes inherited from SynthSection
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 SynthSectionparent_
 
SynthButtonactivator_
 
PresetSelectorpreset_selector_
 
bool preset_selector_half_width_
 
std::unique_ptr< OffOverlayoff_overlay_
 
Skin::SectionOverride skin_override_
 
float size_ratio_
 
bool active_
 
bool sideways_heading_
 

Detailed Description

A UI component that lists and manages the wavetable sources and modifiers.

This class displays a scrollable list of wavetable source groups and their modifiers. It allows adding, removing, and reordering sources and modifiers, as well as resetting them. It interacts with WavetableCreator to maintain and modify the structure of the wavetable.

Member Enumeration Documentation

◆ ComponentRowMenu

Menu options for component rows.

Enumerator
kRowCancel 
kReset 
kMoveUp 
kMoveDown 
kRemove 

Constructor & Destructor Documentation

◆ WavetableComponentList()

WavetableComponentList::WavetableComponentList ( WavetableCreator * wavetable_creator)

Constructs a WavetableComponentList for managing sources and modifiers.

Parameters
wavetable_creatorThe WavetableCreator that manages the actual data.

Member Function Documentation

◆ addComponent()

void WavetableComponentList::addComponent ( int type)

Adds a new component (modifier) of the given type.

Parameters
typeThe type index (maps to a modifier component type).

◆ addListener()

void WavetableComponentList::addListener ( Listener * listener)
inline

Adds a listener interested in component changes.

Parameters
listenerThe listener to add.

◆ addModifierClicked()

void WavetableComponentList::addModifierClicked ( int group_index)

Called when the "Add Modifier" button is clicked for a particular group.

Parameters
group_indexThe index of the group.

◆ addSource()

void WavetableComponentList::addSource ( int index)

Adds a new source of the given index (maps to a component type).

Parameters
indexThe index representing a source type.

◆ addSourceClicked()

void WavetableComponentList::addSourceClicked ( )

Called when the "Add Source" button is clicked.

◆ buttonClicked()

void WavetableComponentList::buttonClicked ( Button * button)
overridevirtual

Overridden to handle button clicks (menus, add source/modifier).

Parameters
buttonThe button that was clicked.

Reimplemented from SynthSection.

◆ clear()

void WavetableComponentList::clear ( )

Clears the list of sources and modifiers.

◆ componentsScrolled()

void WavetableComponentList::componentsScrolled ( )
overridevirtual

Called when the components are scrolled.

Implements WavetableComponentViewport::Listener.

◆ getIndicesForRow()

std::pair< int, int > WavetableComponentList::getIndicesForRow ( int row_index)

Retrieves the group and component indices for a given row index.

Parameters
row_indexThe row index.
Returns
A pair {group_index, component_index} for that row.

◆ groupMenuClicked()

void WavetableComponentList::groupMenuClicked ( int row_index)

Displays a menu for the group row at the given index.

Parameters
row_indexThe row index.

◆ init()

void WavetableComponentList::init ( )

Initializes the component list after construction.

◆ menuClicked()

void WavetableComponentList::menuClicked ( int row_index)

Displays a general menu for the given row index, determining if it's a group or modifier.

Parameters
row_indexThe row index.

◆ modifierMenuClicked()

void WavetableComponentList::modifierMenuClicked ( int row_index)

Displays a menu for the modifier row at the given index.

Parameters
row_indexThe row index.

◆ moveGroupDown()

void WavetableComponentList::moveGroupDown ( )

Moves the currently selected group down in the list.

◆ moveGroupUp()

void WavetableComponentList::moveGroupUp ( )

Moves the currently selected group up in the list.

◆ moveModifierDown()

void WavetableComponentList::moveModifierDown ( )

Moves the currently selected modifier down in its group.

◆ moveModifierUp()

void WavetableComponentList::moveModifierUp ( )

Moves the currently selected modifier up in its group.

◆ notifyComponentAdded()

void WavetableComponentList::notifyComponentAdded ( WavetableComponent * component)

Notifies listeners that a component was added.

Parameters
componentThe component that was added.

◆ notifyComponentRemoved()

void WavetableComponentList::notifyComponentRemoved ( WavetableComponent * component)

Notifies listeners that a component was removed.

Parameters
componentThe component that was removed.

◆ notifyComponentsChanged()

void WavetableComponentList::notifyComponentsChanged ( )

Notifies listeners that components have changed.

◆ notifyComponentsReordered()

void WavetableComponentList::notifyComponentsReordered ( )

Notifies listeners that components have been reordered.

◆ numGroups()

int WavetableComponentList::numGroups ( )
inline

Returns the number of groups in the wavetable.

◆ paintBackground()

void WavetableComponentList::paintBackground ( Graphics & g)
overridevirtual

Overridden to paint the background and related elements.

Parameters
gThe Graphics context to use.

Reimplemented from SynthSection.

◆ positionGroups()

void WavetableComponentList::positionGroups ( )
protected

Positions the groups and modifiers in the scrollable list.

◆ removeComponent()

void WavetableComponentList::removeComponent ( )

Removes the currently selected component.

◆ removeGroup() [1/2]

void WavetableComponentList::removeGroup ( )

Removes the currently selected group.

◆ removeGroup() [2/2]

void WavetableComponentList::removeGroup ( int index)

Removes a source group by index.

Parameters
indexThe group index to remove.

◆ resetComponent()

void WavetableComponentList::resetComponent ( )

Resets the currently selected component to default state.

◆ resetGroups()

void WavetableComponentList::resetGroups ( )
protected

Resets the display of groups and modifiers in the UI.

◆ resized()

void WavetableComponentList::resized ( )
overridevirtual

Overridden to layout and refresh the UI.

Reimplemented from SynthSection.

◆ scroll()

void WavetableComponentList::scroll ( const MouseEvent & e,
const MouseWheelDetails & wheel )
inline

Scrolls the viewport by mouse wheel.

Parameters
eThe mouse event.
wheelThe wheel details.

◆ scrollBarMoved()

void WavetableComponentList::scrollBarMoved ( ScrollBar * scroll_bar,
double range_start )
override

Called when the scroll bar moves.

Parameters
scroll_barThe scrollbar that moved.
range_startThe new start range of the scroll.

◆ setRowHeight()

void WavetableComponentList::setRowHeight ( int row_height)
inline

Sets the height of each row in the list.

Parameters
row_heightThe new row height in pixels.

◆ setScrollBarRange()

void WavetableComponentList::setScrollBarRange ( )
protected

Sets the scrollbar range based on content size.

Member Data Documentation

◆ add_modifier_buttons_

std::unique_ptr<OpenGlToggleButton> WavetableComponentList::add_modifier_buttons_[kMaxSources]
protected

Buttons to add modifiers.

◆ component_backgrounds_

OpenGlMultiQuad WavetableComponentList::component_backgrounds_
protected

Background rectangles for each row.

◆ component_container_

Component WavetableComponentList::component_container_
protected

Container holding all UI elements for the list.

◆ create_component_button_

std::unique_ptr<OpenGlToggleButton> WavetableComponentList::create_component_button_
protected

Button to add a new source.

◆ current_component_index_

int WavetableComponentList::current_component_index_
protected

The currently selected component index.

◆ current_group_index_

int WavetableComponentList::current_group_index_
protected

The currently selected group index.

◆ kMaxRows

int WavetableComponentList::kMaxRows = 128
staticconstexpr

Maximum number of rows for components.

◆ kMaxSources

int WavetableComponentList::kMaxSources = 16
staticconstexpr

Maximum number of source groups.

◆ listeners_

std::vector<Listener*> WavetableComponentList::listeners_
protected

Listeners for changes in the component list.

◆ menu_buttons_

std::unique_ptr<OpenGlShapeButton> WavetableComponentList::menu_buttons_[kMaxRows]
protected

Menu buttons for each row.

◆ names_

std::unique_ptr<PlainTextComponent> WavetableComponentList::names_[kMaxRows]
protected

Text labels for each component row.

◆ plus_icons_

std::unique_ptr<PlainShapeComponent> WavetableComponentList::plus_icons_[kMaxSources+1]
protected

Plus icons next to buttons.

◆ row_height_

int WavetableComponentList::row_height_
protected

Height of each row in pixels.

◆ scroll_bar_

std::unique_ptr<OpenGlScrollBar> WavetableComponentList::scroll_bar_
protected

A custom scrollbar for vertical scrolling.

◆ viewport_

WavetableComponentViewport WavetableComponentList::viewport_
protected

Viewport for scrolling the component list.

◆ wavetable_creator_

WavetableCreator* WavetableComponentList::wavetable_creator_
protected

The wavetable creator managing group/components.


The documentation for this class was generated from the following files: