![]() |
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.Popup : Panel placed at fixed (x, y) coordinates and always drawn on top of sibling widgets.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.CheckBox : two-state box displaying a CheckMark when checked.RadioButton : two-state button drawn with two circles, exclusive between the siblings sharing its group index.CheckMark / CrossMark : check and cross marks drawn inside their own rectangle.Arrow : arrow head pointing right, left, up or down.Text : single-line text display with configurable color and font scale.TextEdit : single-line editable text field with cursor and selection support.RichTextArea : read-only area displaying word-wrapped text marked up with BBCodeImage : 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.ScrollBox : scrollable container with automatic horizontal and vertical scroll bars; content is added to an inner Box.TreeView : hierarchical list widget with expand/collapse, scroll support and single or multiple item selection.Menu : vertical list of text items, with optional keyboard shortcuts, leading widgets and separator lines.TabBar : horizontal bar of tabs; draws and selects the tabs, without managing what they display.TabContainer : container displaying one widget at a time, selected with a TabBar placed above or below the displayed widgets.FoldableContainer : container folding and unfolding its content with a clickable title bar, adjusting its own height to its state.List : abstract base for list-of-widgets containers; fires OnInsertItem, OnRemoveItem, and OnSelectItem.ListBox : scrollable list of arbitrary widgets with keyboard navigation and a configurable selection highlight (Selection).ProgressBar / HProgressBar / VProgressBar : horizontal or vertical progress bar with optional percentage or raw-value text overlay.ValueSelect : abstract base for range-bound numeric widgets (ScrollBar, ProgressBar).ModalDialog is a Window displaying a DialogBox centered above its parent. TextInputDialog asks the user for a single line of text and validates it with a caller-supplied callback, ColorModalDialog wraps a ColorPicker.WindowManager manages multiple virtual Window objects overlaid on a single RenderingWindow, with focus, resize, and z-ordering support. It also owns the default style, font and font scale inherited by the windows that do not set their own.Style implementations : StyleClassic a 3D raised/lowered/flat classic vector look ("Classic" as in Windows 95 "classic" 3D style, since this style was first written in 1996...), and StyleMaterial, a Material Design inspired flat look.EventManager using UIEvent signal constants (OnClick, OnTextChange, OnValueChange, OnInsertItem, OnRemoveItem, OnSelectItem, and more).LUA_BINDINGS=ON.This project is licensed under the MIT NON-AI License.