49 component->paintEntireComponent(g,
false);
152template <
class ComponentType>
155 using ComponentType::ComponentType;
158 ComponentType::mouseDown(e);
162 virtual void mouseUp(
const MouseEvent& e)
override {
163 ComponentType::mouseUp(e);
168 ComponentType::mouseDoubleClick(e);
173 ComponentType::mouseEnter(e);
178 ComponentType::mouseExit(e);
182 virtual void mouseWheelMove(
const MouseEvent& e,
const MouseWheelDetails& wheel)
override {
183 ComponentType::mouseWheelMove(e, wheel);
233 bool result = TextEditor::keyPressed(key);
242 TextEditor::mouseDrag(e);
256 applyFontToAllText(font);
261 TextEditor::visibilityChanged();
263 if (isVisible() && !isMultiLine())
268 TextEditor::resized();
271 setIndents(indent, indent);
276 setIndents(getHeight() * 0.2, getHeight() * 0.17);
278 setIndents(getHeight() * 0.2, getHeight() * 0.15);
321 text_size_(1.0f), font_type_(
kRegular),
322 justification_(Justification::centred),
324 setInterceptsMouseClicks(
false,
false);
351 g.setColour(Colours::white);
354 g.setFont(
Fonts::instance()->proportional_title().withPointHeight(text_size_));
355 else if (font_type_ ==
kLight)
356 g.setFont(
Fonts::instance()->proportional_light().withPointHeight(text_size_));
358 g.setFont(
Fonts::instance()->proportional_regular().withPointHeight(text_size_));
364 g.drawFittedText(text_, buffer_, 0, component->getWidth() - 2 * buffer_,
365 component->getHeight(), justification_,
false);
382 font_type_ = font_type;
390 justification_ = justification;
403 Justification justification_;
424 setInterceptsMouseClicks(
false,
false);
429 Rectangle<float> bounds = component->getLocalBounds().toFloat();
431 shape.applyTransform(shape.getTransformToScaleToFit(bounds,
true, justification_));
433 g.setColour(Colours::white);
454 Justification justification_;
Font & monospace()
Returns a reference to the monospace font.
Definition fonts.h:46
Font & proportional_light()
Returns a reference to the proportional light font.
Definition fonts.h:28
static Fonts * instance()
Gets the singleton instance of the Fonts class.
Definition fonts.h:52
A template class that wraps a given ComponentType and automatically redraws an OpenGlImageComponent o...
Definition open_gl_image_component.h:153
virtual void mouseEnter(const MouseEvent &e) override
Definition open_gl_image_component.h:172
virtual void mouseDoubleClick(const MouseEvent &e) override
Definition open_gl_image_component.h:167
virtual void mouseDown(const MouseEvent &e) override
Definition open_gl_image_component.h:157
virtual void redoImage()
Redraws the image after a state change.
Definition open_gl_image_component.h:196
virtual void mouseExit(const MouseEvent &e) override
Definition open_gl_image_component.h:177
virtual void mouseWheelMove(const MouseEvent &e, const MouseWheelDetails &wheel) override
Definition open_gl_image_component.h:182
OpenGlImageComponent * getImageComponent()
Gets the underlying OpenGlImageComponent.
Definition open_gl_image_component.h:191
OpenGlImageComponent image_component_
The OpenGlImageComponent for rendering this component.
Definition open_gl_image_component.h:199
virtual void mouseUp(const MouseEvent &e) override
Definition open_gl_image_component.h:162
A base component class that integrates JUCE's Component with OpenGL rendering.
Definition open_gl_component.h:20
virtual void resized() override
Called when the component is resized.
Definition open_gl_component.cpp:121
float findValue(Skin::ValueId value_id)
Finds a float value from the skin associated with this component's parent.
Definition open_gl_component.cpp:173
A component that uses OpenGL to render a cached image of a JUCE component or custom drawing.
Definition open_gl_image_component.h:18
void setStatic(bool static_image)
Sets whether the image should be treated as static (not redrawn unless forced).
Definition open_gl_image_component.h:119
void setComponent(Component *component)
Sets the component to be drawn into the OpenGL image. If not set, uses this component.
Definition open_gl_image_component.h:83
bool paint_entire_component_
If true, paint entire component hierarchy to image.
Definition open_gl_image_component.h:137
void setActive(bool active)
Sets whether this component is active (rendered) or not.
Definition open_gl_image_component.h:113
OpenGlImage image_
The OpenGlImage used to upload and draw the cached image.
Definition open_gl_image_component.h:139
bool static_image_
Whether the image is static or updated on events.
Definition open_gl_image_component.h:136
virtual void init(OpenGlWrapper &open_gl) override
Initializes any OpenGL resources for rendering this component.
Definition open_gl_image_component.cpp:57
std::unique_ptr< Image > draw_image_
The cached image that stores the drawn component.
Definition open_gl_image_component.h:138
bool isActive() const
Checks if this component is currently active.
Definition open_gl_image_component.h:131
virtual void paintToImage(Graphics &g)
Renders the associated component (or itself) into the provided Graphics context.
Definition open_gl_image_component.h:46
virtual ~OpenGlImageComponent()=default
Destructor.
void paintEntireComponent(bool paint_entire_component)
Controls whether paintToImage should paint the entire component hierarchy or just itself.
Definition open_gl_image_component.h:125
virtual void destroy(OpenGlWrapper &open_gl) override
Destroys OpenGL-related resources used by this component.
Definition open_gl_image_component.cpp:69
Component * component_
The component being drawn into the image (if any).
Definition open_gl_image_component.h:134
virtual void paintBackground(Graphics &g) override
Paints the background by redrawing the image if needed.
Definition open_gl_image_component.h:35
OpenGlImageComponent(String name="")
Constructs an OpenGlImageComponent.
Definition open_gl_image_component.cpp:3
void setScissor(bool scissor)
Enables or disables scissor testing when drawing the image.
Definition open_gl_image_component.h:89
void setUseAlpha(bool use_alpha)
Enables or disables alpha blending for the image.
Definition open_gl_image_component.h:95
virtual void redrawImage(bool force)
Redraws the image if necessary, creating or updating the internal Image.
Definition open_gl_image_component.cpp:16
void setColor(Colour color)
Sets a color tint for the image.
Definition open_gl_image_component.h:101
virtual void render(OpenGlWrapper &open_gl, bool animate) override
Renders the image using OpenGL.
Definition open_gl_image_component.cpp:61
bool active_
Whether this component is active and should render.
Definition open_gl_image_component.h:135
OpenGlImage & image()
Provides access to the underlying OpenGlImage.
Definition open_gl_image_component.h:107
A utility class for rendering a single image using OpenGL.
Definition open_gl_image.h:16
void setScissor(bool scissor)
Enables or disables scissor test when drawing the image.
Definition open_gl_image.h:156
void setUseAlpha(bool use_alpha)
Enables or disables alpha blending.
Definition open_gl_image.h:150
void setColor(Colour color)
Sets the color tint applied to the image.
Definition open_gl_image.h:92
A text editor that uses an OpenGlImageComponent for rendering and updates the image on text changes.
Definition open_gl_image_component.h:209
void resized() override
Definition open_gl_image_component.h:267
OpenGlTextEditor(String name, wchar_t password_char)
Constructs an OpenGlTextEditor with a given name and password character.
Definition open_gl_image_component.h:226
virtual void mouseDrag(const MouseEvent &e) override
Definition open_gl_image_component.h:241
void applyFont()
Applies the appropriate font based on monospace setting and component size.
Definition open_gl_image_component.h:249
OpenGlTextEditor(String name)
Constructs an OpenGlTextEditor with a given name.
Definition open_gl_image_component.h:215
void setMonospace()
Sets the text editor to use a monospace font.
Definition open_gl_image_component.h:286
void visibilityChanged() override
Definition open_gl_image_component.h:260
bool keyPressed(const KeyPress &key) override
Definition open_gl_image_component.h:232
void textEditorFocusLost(TextEditor &) override
Definition open_gl_image_component.h:239
void textEditorTextChanged(TextEditor &) override
Definition open_gl_image_component.h:238
A component that draws a shape into an OpenGlImageComponent.
Definition open_gl_image_component.h:417
void setJustification(Justification justification)
Sets the justification used when scaling the shape.
Definition open_gl_image_component.h:450
void paintToImage(Graphics &g) override
Renders the associated component (or itself) into the provided Graphics context.
Definition open_gl_image_component.h:427
PlainShapeComponent(String name)
Constructs a PlainShapeComponent with a given name.
Definition open_gl_image_component.h:423
void setShape(Path shape)
Sets the shape to be drawn.
Definition open_gl_image_component.h:441
A text component rendered into an OpenGlImageComponent with configurable font and justification.
Definition open_gl_image_component.h:301
void resized() override
Called when the component is resized.
Definition open_gl_image_component.h:327
FontType
Different font types available for text rendering.
Definition open_gl_image_component.h:307
@ kLight
Definition open_gl_image_component.h:309
@ kRegular
Definition open_gl_image_component.h:310
@ kMono
Definition open_gl_image_component.h:311
@ kTitle
Definition open_gl_image_component.h:308
@ kNumFontTypes
Definition open_gl_image_component.h:312
void setText(String text)
Sets the displayed text and redraws the image.
Definition open_gl_image_component.h:336
void setTextSize(float size)
Sets the size of the text in points.
Definition open_gl_image_component.h:372
void setBuffer(int buffer)
Sets a buffer (padding) around the text.
Definition open_gl_image_component.h:397
PlainTextComponent(String name, String text)
Constructs a PlainTextComponent.
Definition open_gl_image_component.h:320
void paintToImage(Graphics &g) override
Renders the associated component (or itself) into the provided Graphics context.
Definition open_gl_image_component.h:350
void setJustification(Justification justification)
Sets the text justification (e.g., centered, left, right).
Definition open_gl_image_component.h:389
String getText() const
Gets the current displayed text.
Definition open_gl_image_component.h:348
void setFontType(FontType font_type)
Sets the font type (Title, Light, Regular, Mono).
Definition open_gl_image_component.h:381
@ kLabelBackgroundRounding
Definition skin.h:74
Base class for all synthesizer sections, providing UI layout, painting, and interaction logic.
Definition synth_section.h:193
A helper struct containing references to OpenGL context, shaders, and display scale.
Definition shaders.h:174