lmgl 1.0.0
A lightweight OpenGL graphics engine library written in C++
Loading...
Searching...
No Matches
lmgl::ui::Panel Class Reference

Panel UI element for rendering colored rectangles. More...

#include <panel.hpp>

Inheritance diagram for lmgl::ui::Panel:
lmgl::ui::UIElement

Public Member Functions

 Panel (const std::string &name="Panel")
 Constructor for Panel.
 ~Panel () override=default
 Destructor for Panel.
void set_color (const glm::vec4 &color)
 Set the background color of the panel.
const glm::vec4 & get_color () const
 Get the background color of the panel.
void render (float canvas_width, float canvas_height, const glm::mat4 &projection) override
 Render the panel.
Public Member Functions inherited from lmgl::ui::UIElement
 UIElement (const std::string &name="UIElement")
 Constructor for UIElement.
virtual ~UIElement ()=default
 Virtual destructor.
void set_position (const glm::vec2 &position)
 Set the position of the UI element.
void set_size (const glm::vec2 &size)
 Set the size of the UI element.
void set_anchor (Anchor anchor)
 Set the anchor of the UI element.
void set_render_order (int order)
 Set the render order (z-index).
void set_visible (bool visible)
 Set visibility of the UI element.
void set_name (const std::string &name)
 Set the name of the UI element.
const glm::vec2 & get_position () const
 Get the position of the UI element.
const glm::vec2 & get_size () const
 Get the size of the UI element.
Anchor get_anchor () const
 Get the anchor of the UI element.
int get_render_order () const
 Get the render order.
bool is_visible () const
 Check if the UI element is visible.
const std::string & get_name () const
 Get the name of the UI element.
std::shared_ptr< UIElementget_parent () const
 Get the parent UI element.
void add_child (const std::shared_ptr< UIElement > child)
 Add a child UI element.
void remove_child (const std::shared_ptr< UIElement > child)
 Remove a child UI element.
std::vector< std::shared_ptr< UIElement > > get_children () const
 Get all child UI elements.
glm::vec2 get_absolute_position (float canvas_width, float canvas_height) const
 Compute the absolute screen position based on anchor and parent.

Additional Inherited Members

Protected Attributes inherited from lmgl::ui::UIElement
std::string m_name
 Name of the UI element.
glm::vec2 m_position {0.0f, 0.0f}
 Position in pixels (relative to anchor).
glm::vec2 m_size {100.0f, 100.0f}
 Size in pixels.
Anchor m_anchor {Anchor::TopLeft}
 Anchor preset.
int m_render_order {0}
 Render order (z-index).
bool m_visible {true}
 Visibility flag.
std::weak_ptr< UIElementm_parent
 Parent UI element.
std::vector< std::shared_ptr< UIElement > > m_children
 Child UI elements.

Detailed Description

Panel UI element for rendering colored rectangles.

The Panel class provides a basic colored rectangle UI element with configurable background color and optional transparency.

Constructor & Destructor Documentation

◆ Panel()

lmgl::ui::Panel::Panel ( const std::string & name = "Panel")

Constructor for Panel.

Parameters
nameOptional name for the panel.

Member Function Documentation

◆ get_color()

const glm::vec4 & lmgl::ui::Panel::get_color ( ) const
inline

Get the background color of the panel.

Returns
RGBA color.

◆ render()

void lmgl::ui::Panel::render ( float canvas_width,
float canvas_height,
const glm::mat4 & projection )
overridevirtual

Render the panel.

Parameters
canvas_widthWidth of the canvas in pixels.
canvas_heightHeight of the canvas in pixels.
projectionProjection matrix for UI rendering.

Implements lmgl::ui::UIElement.

◆ set_color()

void lmgl::ui::Panel::set_color ( const glm::vec4 & color)
inline

Set the background color of the panel.

Parameters
colorRGBA color (values 0.0-1.0).

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