A drop-down menu is a list of options from which the user can choose exactly one option. It works like a group of RadioButtons but takes up less visual space. A drop-down menu also has a label that describes the set of options that the user can choose from. The label is displayed when the drop-down menu is active/open.

Dropdown screenshot

// Construct a new Dropdown with the label "DropdownLabel"
var myDropdown = new Dropdown("DropdownLabel");

// Add some options
myDropdown.addOption("Option 1");
myDropdown.addOption("Option 2");
myDropdown.addOption("Option 3");

// Select the first option
myDropdown.setSelectedOption("Option 1");

Constructor

new(label:String)

Create a new Dropdown element.

Variables

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

The label of this element.

@:value(new Array())options:Array<String> = new Array()

All options of this dropdown menu.

@:value("")read onlyselectedOption:String = ""

The currently selected option.

See also:

Methods

addOption(option:String):Void

Add an option to the set of options.

close():Void

Close the dropdown menu.

removeOption(option:String):Void

Remove an option from the set of options.

setSelectedOption(option:String):Void

Set the currently selected option. If the given option does not exist, a warning is printed and the previously set option will remain selected.

Inherited Variables

Defined by Element

@:value(Anchor.FollowLayout)anchor:Anchor = Anchor.FollowLayout

The anchor of this element. Used for the layout.

See also:

@:value(false)disabled:Bool = false

true if the element is disabled and should not react to events. Also, elements might look different if disabled depending on the theme.

@:value(0)height:Int = 0

The height of this element.

@:value(null)layout:Null<Layout> = null

The layout this element belongs to.

@:value(null)read onlyparent:Null<Element> = null

The parent element of this element.

@:value(0)posX:Int = 0

The x position of this element.

@:value(0)posY:Int = 0

The y position of this element.

@:value(true)visible:Bool = true

If false, the element is not visible and will not react to any events.

@:value(0)width:Int = 0

The width of this element.

Inherited Methods

Defined by Element

inlineaddChild(child:Element):Void

finaladdEventListener<T>(eventClass:Class<T>, callback:T ‑> Void):Void

Register a callback to be called if the given event occurs on this element.

Example:

var button = new Button("Hello!");
button.addEventListener(MouseClickEvent, (event: MouseClickEvent) -> {
	if (event.mouseButton == Left && event.getState() == ClickStart) {
		trace("Clicked!");
	}
});

Parameters:

eventClass

The class of the event, must be a subclass of koui.events.Event

callback

The callback function to call if the event occurs

getChild<T>(matchBehaviour:ElementMatchBehaviour):Null<T>

getElementAtPosition(x:Int, y:Int):Null<Element>

getLayoutOffset():Vector<Int>

Return the offset of the element's position to the screen.

inlinegetTID():String

inlineisAtPosition(x:Int, y:Int):Bool

Return true if this element overlaps with the given position. Used internally for event handling most of the time. Elements may override this method to provide more detailed mouse interaction. If the element is invisible, false is returned.

finalinlinelistensTo<T>(eventClass:Class<T>):Bool

Returns whether this element has a registered event listener for the given event type.

finalinlinelistensToUID<T>(eventTypeUID:String):Bool

Returns whether this element has a registered event listener for the given event type.

inlineremoveChild(child:Element):Void

finalinlinerenderElement(g:KGraphics, element:Element):Void

Setup the given element for drawing and call its draw method afterwards.

inlinesetPosition(posX:Int, posY:Int):Void

Set the position of this element. You can also change the position per axis, see posX and posY.

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

Set the size of this element. You can also change the size for each individual side, see width and height.

setTID(tID:String):Void

Set the theme ID of this element.

toString():String

Return a string representation of this element: "Element: <[ClassName]>"