BaseElement
The fundamental base class for all UI elements in Basalt. It implements core functionality like event handling, property management, lifecycle hooks, and the observer pattern. Every UI component inherits from this class to ensure consistent behavior and interface.
Extends: PropertySystem
Properties
Property | Type | Default | Description |
---|---|---|---|
type | string | BaseElement | A hierarchical identifier of the element's type chain |
id | string | BaseElement | Auto-generated unique identifier for element lookup |
name | string | BaseElement | User-defined name for the element |
eventCallbacks | table | BaseElement | Collection of registered event handler functions |
enabled | boolean | BaseElement | Controls event processing for this element |
Functions
Method | Returns | Description |
---|---|---|
BaseElement.defineEvent | - | Registers a new event listener for the element (on class level) |
BaseElement.registerEventCallback | - | Registers a new event callback method with auto-registration |
BaseElement:isType | boolean | Tests if element is of or inherits given type |
BaseElement:listenEvent | table | Enables/disables event handling for this element |
BaseElement:registerCallback | table | Registers a function to handle specific events |
BaseElement:fireEvent | table | Triggers event callbacks with provided arguments |
BaseElement:onChange | table | Watches property changes with callback notification |
BaseElement:getBaseFrame | BaseFrame | Retrieves the root frame of this element's tree |
BaseElement:destroy | - | Removes element and performs cleanup |
BaseElement:updateRender | table | Requests UI update for this element |
BaseElement.defineEvent(class, eventName, requiredEvent?)
Registers a class-level event listener with optional dependency
Parameters
class
table
The class to registereventName
string
The name of the event to registerrequiredEvent
(optional)string
The name of the required event (optional)
BaseElement.registerEventCallback(class, callbackName, string)
Defines a class-level event callback method with automatic event registration
Parameters
class
table
The class to registercallbackName
string
The name of the callback to registerstring
The
names of the events to register the callback for
BaseElement:isType(type)
Checks if the element matches or inherits from the specified type
Parameters
type
string
The type to check for
Returns
boolean
isType
Whether the element is of the specified type
BaseElement:listenEvent(eventName, enable?)
Configures event listening behavior with automatic parent notification
Parameters
eventName
string
The name of the event to listen forenable
(optional)boolean
Whether to enable or disable the event (default: true)
Returns
table
self
The BaseElement instance
BaseElement:registerCallback(event, callback)
Adds an event handler function with automatic event registration
Parameters
event
string
The event to register the callback forcallback
function
The callback function to register
Returns
table
self
The BaseElement instance
BaseElement:fireEvent(event, any)
Executes all registered callbacks for the specified event
Parameters
event
string
The event to fireany
Additional
arguments to pass to the callbacks
Returns
table
self
The BaseElement instance
BaseElement:onChange(property, callback)
Sets up a property change observer with immediate callback registration
Parameters
property
string
The property to observecallback
function
The callback to call when the property changes
Returns
table
self
The BaseElement instance
BaseElement:getBaseFrame()
Traverses parent chain to locate the root frame element
Returns
BaseFrame
BaseFrame
The base frame of the element
BaseElement:destroy()
Removes the element from UI tree and cleans up resources
BaseElement:updateRender()
Propagates render request up the element tree
Returns
table
self
The BaseElement instance