Constructor

new()

Variables

@:value(true)enabled:Bool = true

@:value(ClickFocus | TabFocus)focusPolicy:FocusPolicy = ClickFocus | TabFocus

@:value(false)read onlyfocused:Bool = false

@:value(false)hovered:Bool = false

@:value(new s.shortcut.signals.Signal([]))read onlyhoveredChanged:Signal<(hovered:Bool) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.KeySignal([]))read onlymouseButtonClicked:KeySignal<MouseButton, (m:MouseEvent) ‑> Void> = new s.shortcut.signals.KeySignal([])

@:value(new s.shortcut.signals.KeySignal([]))read onlymouseButtonDoubleClicked:KeySignal<MouseButton, (m:MouseEvent) ‑> Void> = new s.shortcut.signals.KeySignal([])

@:value(new s.shortcut.signals.KeySignal([]))read onlymouseButtonHold:KeySignal<MouseButton, (m:MouseEvent) ‑> Void> = new s.shortcut.signals.KeySignal([])

@:value(new s.shortcut.signals.KeySignal([]))read onlymouseButtonPressed:KeySignal<MouseButton, (m:MouseEvent) ‑> Void> = new s.shortcut.signals.KeySignal([])

@:value(new s.shortcut.signals.KeySignal([]))read onlymouseButtonReleased:KeySignal<MouseButton, (m:MouseEvent) ‑> Void> = new s.shortcut.signals.KeySignal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseClicked:Signal<(m:MouseButtonEvent) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseDoubleClicked:Signal<(m:MouseButtonEvent) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseEntered:Signal<(x:Float, y:Float) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseExited:Signal<(x:Float, y:Float) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseHold:Signal<(m:MouseButtonEvent) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseMoved:Signal<(m:MouseMoveEvent) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymousePressed:Signal<(m:MouseButtonEvent) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseReleased:Signal<(m:MouseButtonEvent) ‑> Void> = new s.shortcut.signals.Signal([])

@:value(new s.shortcut.signals.Signal([]))read onlymouseScrolled:Signal<(m:MouseScrollEvent) ‑> Void> = new s.shortcut.signals.Signal([])

Methods

offHoveredChanged(slot:(hovered:Bool) ‑> Void):Bool

offMouseButtonClicked(slot:(m:MouseEvent) ‑> Void):Bool

offMouseButtonDoubleClicked(slot:(m:MouseEvent) ‑> Void):Bool

offMouseButtonHold(slot:(m:MouseEvent) ‑> Void):Bool

offMouseButtonPressed(slot:(m:MouseEvent) ‑> Void):Bool

offMouseButtonReleased(slot:(m:MouseEvent) ‑> Void):Bool

offMouseClicked(slot:(m:MouseButtonEvent) ‑> Void):Bool

offMouseDoubleClicked(slot:(m:MouseButtonEvent) ‑> Void):Bool

offMouseEntered(slot:(x:Float, y:Float) ‑> Void):Bool

offMouseExited(slot:(x:Float, y:Float) ‑> Void):Bool

offMouseHold(slot:(m:MouseButtonEvent) ‑> Void):Bool

offMouseMoved(slot:(m:MouseMoveEvent) ‑> Void):Bool

offMousePressed(slot:(m:MouseButtonEvent) ‑> Void):Bool

offMouseReleased(slot:(m:MouseButtonEvent) ‑> Void):Bool

offMouseScrolled(slot:(m:MouseScrollEvent) ‑> Void):Bool

onHoveredChanged(slot:(hovered:Bool) ‑> Void):(hovered:Bool) ‑> Void

onMouseButtonClicked(button:MouseButton, slot:(m:MouseEvent) ‑> Void):(m:MouseEvent) ‑> Void

onMouseButtonDoubleClicked(button:MouseButton, slot:(m:MouseEvent) ‑> Void):(m:MouseEvent) ‑> Void

onMouseButtonHold(button:MouseButton, slot:(m:MouseEvent) ‑> Void):(m:MouseEvent) ‑> Void

onMouseButtonPressed(button:MouseButton, slot:(m:MouseEvent) ‑> Void):(m:MouseEvent) ‑> Void

onMouseButtonReleased(button:MouseButton, slot:(m:MouseEvent) ‑> Void):(m:MouseEvent) ‑> Void

onMouseClicked(slot:(m:MouseButtonEvent) ‑> Void):(m:MouseButtonEvent) ‑> Void

onMouseDoubleClicked(slot:(m:MouseButtonEvent) ‑> Void):(m:MouseButtonEvent) ‑> Void

onMouseEntered(slot:(x:Float, y:Float) ‑> Void):(x:Float, y:Float) ‑> Void

onMouseExited(slot:(x:Float, y:Float) ‑> Void):(x:Float, y:Float) ‑> Void

onMouseHold(slot:(m:MouseButtonEvent) ‑> Void):(m:MouseButtonEvent) ‑> Void

onMouseMoved(slot:(m:MouseMoveEvent) ‑> Void):(m:MouseMoveEvent) ‑> Void

onMousePressed(slot:(m:MouseButtonEvent) ‑> Void):(m:MouseButtonEvent) ‑> Void

onMouseReleased(slot:(m:MouseButtonEvent) ‑> Void):(m:MouseButtonEvent) ‑> Void

onMouseScrolled(slot:(m:MouseScrollEvent) ‑> Void):(m:MouseScrollEvent) ‑> Void

Inherited Variables

Defined by Element

@:value(new Anchors())read onlyanchors:Anchors = new Anchors()

@:value(new VerticalAnchor())read onlybottom:Anchor<VerticalAnchorLine> = new VerticalAnchor()

@:value(false)clip:Bool = false

@:value(new HorizontalAnchor())read onlyhCenter:Anchor<HorizontalAnchorLine> = new HorizontalAnchor()

@:value(0.0)height:Float = 0.0

@:value(new Layout())read onlylayout:Layout = new Layout()

@:value(new HorizontalAnchor())read onlyleft:Anchor<HorizontalAnchorLine> = new HorizontalAnchor()

write onlymargins:Float

@:value(1.0)opacity:Float = 1.0

@:value(Math.NaN)originX:Float = Math.NaN

@:value(Math.NaN)originY:Float = Math.NaN

write onlypadding:Float

@:value(Relative)position:ElementPosition = Relative

@:value(new HorizontalAnchor())read onlyright:Anchor<HorizontalAnchorLine> = new HorizontalAnchor()

@:value(new VerticalAnchor())read onlytop:Anchor<VerticalAnchorLine> = new VerticalAnchor()

@:value(new VerticalAnchor())read onlyvCenter:Anchor<VerticalAnchorLine> = new VerticalAnchor()

@:value(true)visible:Bool = true

@:value(0.0)width:Float = 0.0

@:value(0.0)x:Float = 0.0

@:value(0.0)y:Float = 0.0

Defined by Object2D

rotation:Float

scaleX:Float

scaleY:Float

shearX:Float

shearY:Float

@:value(0)z:Float = 0

Defined by Object

@:value(new s.shortcut.signals.Signal([]))read onlychildAdded:Signal<(child:T) ‑> Void> = new s.shortcut.signals.Signal([])

Fired when a direct child is added.

@:value(new s.shortcut.signals.Signal([]))read onlychildRemoved:Signal<(child:T) ‑> Void> = new s.shortcut.signals.Signal([])

Fired when a direct child is removed.

read onlychildren:ObjectList<T>

Direct child nodes.

The list manages ownership: adding a node here updates its parent, and removing it detaches it.

@:value(new s.shortcut.signals.Signal([]))read onlydescendantAdded:Signal<(descendant:T) ‑> Void> = new s.shortcut.signals.Signal([])

Fired when any descendant is added anywhere below this node.

@:value(new s.shortcut.signals.Signal([]))read onlydescendantRemoved:Signal<(descendant:T) ‑> Void> = new s.shortcut.signals.Signal([])

Fired when any descendant is removed anywhere below this node.

parent:T

Parent node or null if this node is detached.

Assigning this field re-parents the node. Most code should use setParent, removeParent, addChild, or removeChild instead of mutating internal storage directly.

@:value(new s.shortcut.signals.Signal([]))read onlyparentChanged:Signal<(previous:T) ‑> Void> = new s.shortcut.signals.Signal([])

Fired when the parent changes.

tag:String

Optional application-defined tag used for lookup.

Tags are not required to be unique. Methods such as getChild, getChildren, and findChild use this field for simple structural queries.

Inherited Methods

Defined by Element

childAt(x:Float, y:Float):Element

inlinecovers(x:Float, y:Float):Bool

inlinecovers(p:Position):Bool

descendantAt(x:Float, y:Float):Element

inlinemapFromGlobal(x:Float, y:Float):Position

inlinemapFromGlobal(p:Position):Position

inlinemapToGlobal(x:Float, y:Float):Position

inlinemapToGlobal(p:Position):Position

inlineremoveStyle(style:Style):Bool

removeStylesheet(stylesheet:Stylesheet):Void

inlinesetMargins(value:Float):Void

inlinesetMargins(left:Float, top:Float, right:Float, bottom:Float):Void

inlinesetOrigin(origin:Position):Void

inlinesetOrigin(x:Float, y:Float):Void

inlinesetPadding(value:Float):Void

inlinesetPadding(left:Float, top:Float, right:Float, bottom:Float):Void

inlinesetPosition(position:Position):Void

inlinesetPosition(x:Float, y:Float):Void

inlinesetSize(size:Size):Void

inlinesetSize(width:Float, height:Float):Void

inlineuseStyle(style:Style):Void

useStylesheet(stylesheet:Stylesheet):Void

Defined by Object2D

inlinerotate(value:Float):Void

inlinescale(x:Float, y:Float):Void

inlinescale(value:Float):Void

inlinescale(value:Vec2):Void

inlinesetRotation(value:Float):Void

inlinesetScale(x:Float, y:Float):Void

inlinesetScale(value:Vec2):Void

inlinesetShear(x:Float, y:Float):Void

inlinesetShear(value:Vec2):Void

inlinesetTranslation(x:Float, y:Float):Void

inlinesetTranslation(value:Vec2):Void

inlineshear(x:Float, y:Float):Void

inlineshear(value:Vec2):Void

inlinetranslate(x:Float, y:Float):Void

inlinetranslate(value:Float):Void

inlinetranslate(value:Vec2):Void

Defined by Object

addChild(value:T):T

Adds a direct child.

If the child already belongs to another parent, it is re-parented.

Parameters:

value

Child node to add.

Returns:

The added child or null if it is already present.

findChild(tag:String):T

Searches the full descendant tree for the first node with the given tag.

Search order is depth-first in child order.

Parameters:

tag

Tag to match.

Returns:

The found descendant or null.

getChild(tag:String):T

Returns the first direct child with the given tag.

This only checks direct children and does not recurse into descendants.

Parameters:

tag

Tag to match.

Returns:

The found child or null.

getChildren(tag:String):Array<T>

Returns all direct children with the given tag.

This only checks direct children and does not recurse into descendants.

Parameters:

tag

Tag to match.

Returns:

Matching direct children.

iterator():ArrayIterator<T>

Returns an iterator over direct children.

offChildAdded(slot:(child:T) ‑> Void):Bool

offChildRemoved(slot:(child:T) ‑> Void):Bool

offDescendantAdded(slot:(descendant:T) ‑> Void):Bool

offDescendantRemoved(slot:(descendant:T) ‑> Void):Bool

offParentChanged(slot:(previous:T) ‑> Void):Bool

onChildAdded(slot:(child:T) ‑> Void):(child:T) ‑> Void

onChildRemoved(slot:(child:T) ‑> Void):(child:T) ‑> Void

onDescendantAdded(slot:(descendant:T) ‑> Void):(descendant:T) ‑> Void

onDescendantRemoved(slot:(descendant:T) ‑> Void):(descendant:T) ‑> Void

onParentChanged(slot:(previous:T) ‑> Void):(previous:T) ‑> Void

removeChild(value:T):Bool

Removes a direct child.

Parameters:

value

Child node to remove.

Returns:

true if the child was removed.

removeParent():Void

Detaches this node from its parent.

setParent(value:T):Void

Sets the parent node.

This is equivalent to adding the node to value.children.

Parameters:

value

New parent node.

toString():String

Returns a debug-friendly string containing the class name and tag.

traverse(f:T ‑> Void):T

Traverses all descendants depth-first and applies a callback.

The callback receives each descendant, not the root node itself.

Parameters:

f

Callback invoked for each descendant.

Returns:

This node.