layer_manager.py

layer_manager.py - UI Layer Management System for LunaEngine

ENGINE PATH:
lunaengine -> ui -> layer_manager.py

DESCRIPTION:
This module provides a layer management system for UI elements, ensuring
proper rendering order especially for interactive elements like dropdowns,
tooltips, and modal dialogs that need to appear above other content.

class UILayerManager

Description

Manages UI elements across different render layers to ensure proper
visual hierarchy and interaction.

Methods
def __init__(self: Any) -> Any
Initialize the layer manager with empty layers.
def get_all_elements(self: Any) -> Any
Get all UI elements across all layers.
def add_element(self: Any, element: UIElement, layer: LayerType = None) -> Any
Add a UI element to the appropriate layer.
def remove_element(self: Any, element: UIElement) -> Any
Remove a UI element from all layers.
def clear_layer(self: Any, layer: LayerType) -> Any
Clear all elements from a specific layer.
def clear_all(self: Any) -> Any
Clear all elements from all layers.
def _determine_layer(self: Any, element: UIElement) -> LayerType
Determine the appropriate render layer for a UI element.
def determine_list_layers(self: Any, element_list: List[UIElement]) -> Dict[LayerType, List[UIElement]]
Classify a list of elements by layer.
def get_elements_in_order_from(self: Any, elements: List[UIElement]) -> List[UIElement]
Get elements in correct render order from a list, using layer classification.
def get_elements_in_order(self: Any) -> List[UIElement]
Get all stored elements in the correct render order.
def update(self: Any, dt: float, input_state: Any) -> Any
Update all elements in reverse order (top to bottom) for proper event handling.
Back to Ui Module