80 edit_bars_.
init(open_gl);
90 edit_bars_.
render(open_gl, animate);
106 void mouseDown(
const MouseEvent& e)
override;
112 void mouseUp(
const MouseEvent& e)
override;
118 void mouseMove(
const MouseEvent& e)
override;
124 void mouseExit(
const MouseEvent& e)
override;
130 void mouseDrag(
const MouseEvent& e)
override;
163 left_position_ = left;
164 right_position_ = right;
173 window_shape_ = window_shape;
182 void notifyWindowChanged(
bool mouse_up);
188 void changeValues(
const MouseEvent& e);
193 void setEditingQuads();
200 std::vector<Listener*> listeners_;
201 Point<int> last_edit_position_;
208 float left_position_;
209 float right_position_;
A component for rendering lines with optional filling and boost effects using OpenGL.
Definition open_gl_line_renderer.h:16
virtual void init(OpenGlWrapper &open_gl) override
Initializes OpenGL resources for rendering the line.
Definition open_gl_line_renderer.cpp:78
virtual void destroy(OpenGlWrapper &open_gl) override
Destroys OpenGL resources allocated by this line renderer.
Definition open_gl_line_renderer.cpp:468
virtual void render(OpenGlWrapper &open_gl, bool animate) override
Renders the line using OpenGL.
Definition open_gl_line_renderer.cpp:464
A component for rendering multiple quads using OpenGL, with customizable colors, rounding,...
Definition open_gl_multi_quad.h:16
virtual void init(OpenGlWrapper &open_gl) override
Initializes OpenGL buffers and shader attributes.
Definition open_gl_multi_quad.cpp:37
virtual void render(OpenGlWrapper &open_gl, bool animate) override
Renders the quads using OpenGL.
Definition open_gl_multi_quad.cpp:92
virtual void destroy(OpenGlWrapper &open_gl) override
Releases OpenGL resources when the component is destroyed.
Definition open_gl_multi_quad.cpp:69
Interface for receiving notifications about window position changes.
Definition wave_window_editor.h:40
virtual ~Listener()
Definition wave_window_editor.h:42
virtual void windowChanged(bool left, bool mouse_up)=0
Called when the window boundaries have changed.
A UI component that allows editing of a windowing function applied to a waveform.
Definition wave_window_editor.h:17
void setPositions(float left, float right)
Sets the left and right boundary positions for the window.
Definition wave_window_editor.h:162
void mouseMove(const MouseEvent &e) override
Handles mouse move events, updating hover states over handles.
Definition wave_window_editor.cpp:47
WaveWindowEditor()
Constructs a WaveWindowEditor instance.
Definition wave_window_editor.cpp:8
void addListener(Listener *listener)
Adds a listener for window changes.
Definition wave_window_editor.h:136
ActiveSide
Enum representing which side (left or right) is being edited or hovered.
Definition wave_window_editor.h:30
@ kRight
Definition wave_window_editor.h:33
@ kLeft
Definition wave_window_editor.h:32
@ kNone
Definition wave_window_editor.h:31
static constexpr float kGrabRadius
Definition wave_window_editor.h:20
void mouseUp(const MouseEvent &e) override
Handles mouse up events, finalizing changes if a handle was being moved.
Definition wave_window_editor.cpp:37
virtual void init(OpenGlWrapper &open_gl) override
Initializes OpenGL components.
Definition wave_window_editor.h:78
virtual void destroy(OpenGlWrapper &open_gl) override
Destroys OpenGL resources.
Definition wave_window_editor.h:97
ActiveSide getHover(Point< int > position)
Determines which handle (left or right) is being hovered based on a position.
Definition wave_window_editor.cpp:140
virtual ~WaveWindowEditor()
Destructor.
Definition wave_window_editor.cpp:20
void setWindowShape(WaveWindowModifier::WindowShape window_shape)
Sets the window shape type.
Definition wave_window_editor.h:172
void resized() override
Called when the component is resized. Updates the rendering and layout.
Definition wave_window_editor.cpp:22
float getRightPosition()
Gets the right boundary's normalized position.
Definition wave_window_editor.h:155
float getLeftPosition()
Gets the left boundary's normalized position.
Definition wave_window_editor.h:149
void paintBackground(Graphics &g) override
Paints the background. Currently does nothing as rendering is handled by OpenGL.
Definition wave_window_editor.h:67
static constexpr int kPointsPerSection
Definition wave_window_editor.h:22
void mouseDrag(const MouseEvent &e) override
Handles mouse drag events, adjusting the window boundaries.
Definition wave_window_editor.cpp:63
void mouseDown(const MouseEvent &e) override
Handles mouse down events, determining which side (if any) is selected.
Definition wave_window_editor.cpp:30
void mouseExit(const MouseEvent &e) override
Handles mouse exit events, resetting hover states.
Definition wave_window_editor.cpp:57
static constexpr int kTotalPoints
Definition wave_window_editor.h:24
virtual void render(OpenGlWrapper &open_gl, bool animate) override
Renders the window editor. Draws the line and the handle bars.
Definition wave_window_editor.h:88
WindowShape
Defines different windowing curves.
Definition wave_window_modifier.h:25
A helper struct containing references to OpenGL context, shaders, and display scale.
Definition shaders.h:174