A horizontal button strip: add text or icon buttons, separators, and flexible spacers. The toolbar draws a themed bar (background + bottom border + separator ticks) and lays its items out left to right; spacers absorb the leftover width, so items after a spacer are pushed to the right edge. Buttons are ordinary UIButtons returned for further tweaking (accent, etc.).

Constructor

@:value({ height : 36 })new(height:Float = 36)

Parameters:

height

base (unscaled) bar height

Variables

@:value(4)gap:Float = 4

Base (unscaled) gap between items.

@:value(6)padding:Float = 6

Base (unscaled) inset at each end.

Methods

addButton(label:String, width:Float, ?onClick:() ‑> Void):UIButton

Adds a text button.

Parameters:

label

the button label

width

the button width

onClick

the click handler

Returns:

the button (for further configuration)

addIconButton(icon:UIIcon, ?onClick:() ‑> Void):UIButton

Adds an icon-only button.

Parameters:

icon

the icon

onClick

the click handler

Returns:

the button (for further configuration)

addSeparator():Void

Adds a vertical separator tick.

addSpacer():Void

Adds a flexible spacer that absorbs leftover width (right-aligns following items).

addWidget(widget:UIComponent, width:Float):UIComponent

Adds an arbitrary widget to the bar (e.g. a UIDropdown), sized and vertically centered like a button. Returns the widget for further configuration.

Parameters:

widget

the component to host

width

the widget's width on the bar

Inherited Variables

Defined by UIComponent

@:value(true)enabled:Bool = true

Disabled widgets ignore the pointer and typically render dimmed.

@:value(0)read onlyh:Float = 0

Layout height in UI units.

@:value(MouseCursor.BUTTON)hoverCursor:MouseCursor = MouseCursor.BUTTON

Native cursor while hovering (interactive widgets; null keeps the arrow).

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

true while the cursor is over this widget.

@:value(false)longPressable:Bool = false

Opts a subclass that overrides onRightPress (without setting onRightClick) into long-press-as-right-click on touch. Widgets with onRightClick set are included automatically.

@:value(null)onClick:() ‑> Void = null

Fired on a completed click (press + release on this widget). Requires an interactive widget.

@:value(null)onHover:() ‑> Void = null

Fired when the cursor first enters this widget (hover-driven descriptions/previews). Interactive widgets only.

@:value(null)onRightClick:() ‑> Void = null

Fired on a right mouse press over this widget (context menus). Only interactive widgets receive pointer events, so this never fires on passive widgets like UILabel/UIPanel — attach it to a UIButton (or another interactive widget) instead. On touch, a long-press fires the same path (see UIRoot.longPressMs).

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

true while a press that started here is held.

@:value(null)tooltip:String = null

Optional tooltip text (already-localized or a fixed string).

@:value(null)tooltipShortcut:String = null

Optional right-aligned shortcut hint rendered in the tooltip.

@:value(0)read onlyw:Float = 0

Layout width in UI units (independent of DisplayObject's content-derived width).

Inherited Methods

Defined by UIComponent

dispose():Void

Tears the widget down: listeners, pointer references, children, parent link.

invalidate():Void

Schedules a repaint for the next frame (cheap; deduplicated).

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

Sets the layout size and repaints when it changed.

Parameters:

width

the new layout width in UI units

height

the new layout height in UI units