Per-window lists of ElementRefs in addition (render) order, driven during ElementStorage construction:
More...
#include <gui_core/windows/gui_window_registry.h>
|
| static constexpr uint32_t | kInvalidIndex = ~(uint32_t)0 |
| auto | begin () const |
| | The windows, in registration order.
|
| auto | end () const |
| | The windows, in registration order.
|
| const std::vector< WindowEntry > & | Windows () const |
| | The windows, in registration order.
|
Per-window lists of ElementRefs in addition (render) order, driven during ElementStorage construction:
- Clear() at BeginConstruction
- BeginWindowScope(id, windowRef) when a window element is added
- Add(elementRef) for every other element
- EndWindowScope() after the window's BeginChildren/EndChildren Nested windows are the active target until their scope ends. Kept out of ElementStorage so that stays a general-purpose element store.
◆ WindowRegistry()
| tachyon::WindowRegistry::WindowRegistry |
( |
| ) |
|
|
inline |
◆ Clear()
| void tachyon::WindowRegistry::Clear |
( |
| ) |
|
|
inline |
Forgets all windows, keeping capacity; call at BeginConstruction.
◆ WindowCount()
| uint32_t tachyon::WindowRegistry::WindowCount |
( |
| ) |
const |
|
inline |
The number of registered windows.
◆ GetWindowID()
| const ID tachyon::WindowRegistry::GetWindowID |
( |
uint32_t | windowIndex | ) |
const |
|
inline |
The ID of the window at windowIndex; Invalid when out of range.
◆ GetWindowRef() [1/2]
| ElementRef tachyon::WindowRegistry::GetWindowRef |
( |
uint32_t | windowIndex | ) |
const |
|
inline |
The element of the window at windowIndex; Invalid when out of range.
◆ GetWindowRef() [2/2]
| ElementRef tachyon::WindowRegistry::GetWindowRef |
( |
ID | id | ) |
const |
|
inline |
The element of the window with id; Invalid when unknown.
◆ GetWindowIndex()
| uint32_t tachyon::WindowRegistry::GetWindowIndex |
( |
ID | id | ) |
const |
|
inline |
The index of the window with id; kInvalidIndex when unknown.
◆ Contains()
| bool tachyon::WindowRegistry::Contains |
( |
ID | id | ) |
const |
|
inline |
True when a window with id is registered.
◆ GetWindowMembers()
| const std::vector< RenderNode > * tachyon::WindowRegistry::GetWindowMembers |
( |
uint32_t | windowIndex | ) |
const |
|
inline |
A window's render list (nullptr for an invalid index), for building its render data.
Valid until Clear(), another window is added, or the registry moves.
◆ GetWindowStackDepth()
| uint32_t tachyon::WindowRegistry::GetWindowStackDepth |
( |
| ) |
const |
|
inline |
How many window scopes are open.
◆ GetCurrentWindowID()
| ID tachyon::WindowRegistry::GetCurrentWindowID |
( |
| ) |
const |
|
inline |
The window being built (innermost window scope); Invalid outside one.
◆ HasActiveWindow()
| bool tachyon::WindowRegistry::HasActiveWindow |
( |
| ) |
const |
|
inline |
True inside a window scope.
◆ BeginWindowScope()
Registers a window element just added to the ElementStorage and opens its scope: following Adds go to it until EndWindowScope.
◆ Add()
Adds a non-window element to the innermost window scope's render list.
◆ MoveSubtreeToEnd()
| void tachyon::WindowRegistry::MoveSubtreeToEnd |
( |
const ElementRef & | nodeRef | ) |
|
|
inline |
Moves an element's subtree, in the innermost window scope, to render last among its siblings (on top).
Call during construction; BuildRenderSkipLinks updates subtreeSkip.
◆ ApplyElementMove()
| void tachyon::WindowRegistry::ApplyElementMove |
( |
const ElementMove & | move | ) |
|
|
inline |
Follows the elements an ElementStorage::MoveChild moved: remaps every ref, then reorders the moved siblings' subtrees so the list stays pre-order.
◆ BuildRenderSkipLinks()
| void tachyon::WindowRegistry::BuildRenderSkipLinks |
( |
| ) |
|
|
inline |
Computes subtreeSkip for every RenderNode in every window.
Call once after construction and layout, before rendering. O(n) per window, allocation-free once warm.
◆ EndWindowScope()
Closes the innermost window scope; NoActiveWindow when none is open.
◆ begin()
| auto tachyon::WindowRegistry::begin |
( |
| ) |
const |
|
inline |
The windows, in registration order.
◆ end()
| auto tachyon::WindowRegistry::end |
( |
| ) |
const |
|
inline |
The windows, in registration order.
◆ Windows()
| const std::vector< WindowEntry > & tachyon::WindowRegistry::Windows |
( |
| ) |
const |
|
inline |
The windows, in registration order.
◆ kInvalidIndex
| uint32_t tachyon::WindowRegistry::kInvalidIndex = ~(uint32_t)0 |
|
staticconstexpr |
The documentation for this class was generated from the following file: