An interactive component that allows editing individual bars in a bar graph visually.
More...
|
| BarEditor (int num_points) |
| Constructs a BarEditor for a given number of bars.
|
|
virtual | ~BarEditor () |
| Destructor.
|
|
virtual void | init (OpenGlWrapper &open_gl) override |
| Initializes the OpenGL components used by this editor.
|
|
virtual void | render (OpenGlWrapper &open_gl, bool animate) override |
| Renders the editor including the highlight of the currently hovered bar.
|
|
virtual void | destroy (OpenGlWrapper &open_gl) override |
| Destroys all OpenGL components.
|
|
virtual void | resized () override |
| Called when the editor is resized.
|
|
void | mouseMove (const MouseEvent &e) override |
| Handles mouse move events to update hovered bar.
|
|
void | mouseDown (const MouseEvent &e) override |
| Handles mouse down events. Initiates editing or shows popup menu.
|
|
void | mouseUp (const MouseEvent &e) override |
| Handles mouse up events. Completes editing operation.
|
|
void | mouseDrag (const MouseEvent &e) override |
| Handles mouse drag events. Updates bar values while dragging.
|
|
void | mouseExit (const MouseEvent &e) override |
| Handles mouse exit events. Clears hover state.
|
|
void | addListener (Listener *listener) |
| Adds a listener to receive updates when bars change.
|
|
void | setClearValue (float value) |
| Sets the value used when clearing bars.
|
|
void | randomize () |
| Randomizes all bars using a uniform distribution.
|
|
void | clear () |
| Clears all bars to the clear value.
|
|
void | clearRight () |
| Clears bars to the right of the currently hovered bar.
|
|
void | clearLeft () |
| Clears bars to the left of the currently hovered bar.
|
|
void | clearEven () |
| Clears every even-indexed bar.
|
|
void | clearOdd () |
| Clears every odd-indexed bar.
|
|
| BarRenderer (int num_points, bool vertical=true) |
| Constructs a BarRenderer.
|
|
virtual | ~BarRenderer () |
| Destructor.
|
|
void | setColor (const Colour &color) |
| Sets the color of the bars.
|
|
void | setScale (float scale) |
| Sets the scaling factor for the bars.
|
|
void | setOffset (float offset) |
| Sets an offset applied to the bar positions.
|
|
void | setBarWidth (float bar_width) |
| Sets the relative width of each bar.
|
|
void | setNumPoints (int num_points) |
| Updates the number of points (bars) to display.
|
|
float | getBarWidth () |
| Gets the current bar width factor.
|
|
float | xAt (int index) |
| Gets the x-position of the top-left vertex of the given bar.
|
|
float | rightAt (int index) |
| Gets the x-position of the top-right vertex of the given bar.
|
|
float | yAt (int index) |
| Gets the y-position of the top-left vertex of the given bar.
|
|
float | bottomAt (int index) |
| Gets the y-position of the bottom-left vertex of the given bar.
|
|
force_inline void | setX (int index, float val) |
| Sets the x-position for all vertices of a specific bar.
|
|
force_inline void | setY (int index, float val) |
| Sets the top y-position of a specific bar.
|
|
force_inline void | setBottom (int index, float val) |
| Sets the bottom y-position of a specific bar.
|
|
void | positionBar (int index, float x, float y, float width, float height) |
| Positions a bar at a specific rectangle.
|
|
void | setBarSizes () |
| Updates the bar sizes based on their positions and scaling.
|
|
void | setPowerScale (bool scale) |
| Enables or disables power scaling of bar heights.
|
|
void | setSquareScale (bool scale) |
| Enables or disables square scaling of bar heights.
|
|
force_inline float | scaledYAt (int index) |
| Gets the scaled y-value of a bar at a given index.
|
|
force_inline void | setScaledY (int index, float val) |
| Sets the scaled y-value at a specific index.
|
|
force_inline void | setAdditiveBlending (bool additive_blending) |
| Enables or disables additive blending for the bar rendering.
|
|
| OpenGlComponent (String name="") |
| Constructs an OpenGlComponent.
|
|
virtual | ~OpenGlComponent () |
| Destructor.
|
|
virtual void | parentHierarchyChanged () override |
| Called when the component's parent hierarchy changes.
|
|
void | addRoundedCorners () |
| Adds rounded corners to the component's edges.
|
|
void | addBottomRoundedCorners () |
| Adds rounded corners only at the bottom of the component.
|
|
void | renderCorners (OpenGlWrapper &open_gl, bool animate, Colour color, float rounding) |
| Renders the corner shapes using the given color and rounding amount.
|
|
void | renderCorners (OpenGlWrapper &open_gl, bool animate) |
| Renders corners with default body color and rounding.
|
|
virtual void | paintBackground (Graphics &g) |
| Paints a standard background for the component.
|
|
void | repaintBackground () |
| Requests a repaint of the component's background on the OpenGL layer.
|
|
Colour | getBodyColor () const |
| Retrieves the component's body color.
|
|
void | setParent (const SynthSection *parent) |
| Sets a pointer to the parent SynthSection for skin value lookups.
|
|
float | findValue (Skin::ValueId value_id) |
| Finds a float value from the skin associated with this component's parent.
|
|
void | setSkinValues (const Skin &skin) |
| Applies the skin overrides to this component's colors.
|
|
void | setSkinOverride (Skin::SectionOverride skin_override) |
| Sets a skin override to control the component's color scheme.
|
|
force_inline void | checkGlError () |
| Checks for and asserts that there are no OpenGL errors.
|
|
void | setBackgroundColor (const Colour &color) |
| Sets the background color of the component for painting operations.
|
|
|
static bool | setViewPort (Component *component, Rectangle< int > bounds, OpenGlWrapper &open_gl) |
| Sets the OpenGL viewport to match a specified rectangle within a component.
|
|
static bool | setViewPort (Component *component, OpenGlWrapper &open_gl) |
| Convenience overload that sets the viewport for the entire component's local bounds.
|
|
static void | setScissor (Component *component, OpenGlWrapper &open_gl) |
| Sets the OpenGL scissor region to the entire component's local bounds.
|
|
static void | setScissorBounds (Component *component, Rectangle< int > bounds, OpenGlWrapper &open_gl) |
| Sets the OpenGL scissor region to a specified rectangle within a component.
|
|
static std::unique_ptr< OpenGLShaderProgram::Uniform > | getUniform (const OpenGlWrapper &open_gl, const OpenGLShaderProgram &program, const char *name) |
| Retrieves a uniform from the shader program if it exists.
|
|
static std::unique_ptr< OpenGLShaderProgram::Attribute > | getAttribute (const OpenGlWrapper &open_gl, const OpenGLShaderProgram &program, const char *name) |
| Retrieves an attribute from the shader program if it exists.
|
|
static String | translateFragmentShader (const String &code) |
| Translates a fragment shader code snippet to be compatible with the current GL version.
|
|
static String | translateVertexShader (const String &code) |
| Translates a vertex shader code snippet to be compatible with the current GL version.
|
|
static constexpr float | kScaleConstant = 5.0f |
| A scaling constant used when applying power scaling.
|
|
static constexpr int | kFloatsPerVertex = 3 |
| Number of float values per vertex (x, y, [and potentially other attributes]).
|
|
static constexpr int | kVerticesPerBar = 4 |
| Number of vertices per bar.
|
|
static constexpr int | kFloatsPerBar = kVerticesPerBar * kFloatsPerVertex |
| Number of floats per bar (4 vertices * 3 floats each).
|
|
static constexpr int | kTriangleIndicesPerBar = 6 |
| Number of triangle indices per bar (each bar represented as two triangles).
|
|
static constexpr int | kCornerFloatsPerVertex = 2 |
| Number of corner floats per vertex (used to determine corner coordinates).
|
|
static constexpr int | kCornerFloatsPerBar = kVerticesPerBar * kCornerFloatsPerVertex |
| Number of corner floats per bar.
|
|
An interactive component that allows editing individual bars in a bar graph visually.
The BarEditor extends BarRenderer to handle mouse events for editing bar values. Users can click and drag to modify bar values, right-click to access a popup menu with various editing options, and perform actions such as clearing ranges or randomizing bar values.