![]() |
Lysa UI
0.0
Lysa UI —UI components for the Lysa Engine
|
Lysa UI is a user interface library for the Lysa Engine offering a hybrid system with retained-mode components drawn using an immediate-mode vector renderer.
Lysa UI provides a widget-based UI framework built on top of the Lysa Engine. It organizes interface elements into a hierarchy of typed widgets contained within virtual UI windows, all managed by a central WindowManager. Each widget participates in the engine's event system for input handling, focus management, and rendering callbacks.
Alignment enum — place children at corners, centers, edges, or fill their parent entirely.create<T>() and add<T>() template helpers on both Widget and Window.removeAll() and individual remove() for dynamic UI updates.Widget — transparent base widget; all other types derive from it.Panel — rectangular widget with a background only.Box — rectangular widget with a border and a background.Frame — Box with an optional title string and configurable title color.Button — clickable Box that fires UIEvent::OnClick.ToggleButton — two-state (checked/unchecked) clickable button.CheckWidget — abstract base for all two-state widgets.Text — single-line text display with configurable color and font scale.TextEdit — single-line editable text field with cursor and selection support.Image — displays a lysa::Image resource with optional color tint and auto-sizing.Line / HLine / VLine — horizontal or vertical divider lines.ScrollBar / HScrollBar / VScrollBar — range-based scroll bars.TreeView — hierarchical list widget with expand/collapse and scroll support.ValueSelect — abstract base for range-bound numeric widgets (ScrollBar).WindowManager manages multiple virtual Window objects overlaid on a single RenderingWindow, with focus, resize, and z-ordering support.Style base class with a built-in StyleClassic implementation providing a 3D raised/lowered/flat classic vector look. Custom styles can be added by subclassing Style.EventManager using UIEvent signal constants (OnClick, OnTextChange, OnValueChange, and more).LUA_BINDINGS=ON.Released under the MIT license.