An exclusive-choice segmented control (radio group): label left, equal-width segments in a box on the right. Exactly one segment is selected; picking another slides the accent pill over and fires onChange(index). Taller by default on mobile for touch.

Constructor

new(label:String, width:Float, items:Array<String>, ?onChange:Int ‑> Void)

Parameters:

label

the row text on the left (empty = the box spans the whole row)

width

layout width (the segment box sits at the right edge)

items

the segment labels

onChange

fired with the new index when the user picks a segment

Variables

boxWidth:Float

Width of the segment box on the right.

@:value("")fallback:String = ""

@:value(11)fontSize:Int = 11

@:value(null)key:String = null

label:String

@:value(0)read onlyselectedIndex:Int = 0

@:value(null)onChange:Int ‑> Void = null

Methods

localize(key:String, fallback:String):Void

Switches the row label to a localized string.

Parameters:

key

the translation key

fallback

the source-language text

select(index:Int):Void

Programmatically selects a segment without firing onChange (the pill snaps).

Parameters:

index

the segment to select (ignored when out of range)

setItems(items:Array<String>, ?keys:Array<String>):Void

Replaces the segments (the selection clamps to 0 when out of range).

Parameters:

items

the segment labels (also the localization fallbacks when keys is set)

keys

optional per-segment translation keys resolved through UILocale

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(null)onClick:() ‑> Void = null

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

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

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

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

Fired on a right mouse press over this widget (context menus).

@: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

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