Files
Basalt2/docs/references/elements/ComboBox.md
2025-10-29 17:18:10 +00:00

2.2 KiB

ComboBox

_A hybrid input element that combines a text input field with a dropdown list. Users can either type directly or select from predefined options. _ Supports auto-completion, custom styling, and both single and multi-selection modes.

Extends: DropDown

Usage

-- Create a searchable country selector
local combo = main:addComboBox()
:setPosition(5, 5)
:setSize(20, 1)  -- Height will expand when opened
:setItems({
{text = "Germany"},
{text = "France"},
{text = "Spain"},
{text = "Italy"}
})
:setPlaceholder("Select country...")
:setAutoComplete(true)  -- Enable filtering while typing

-- Handle selection changes
combo:onChange(function(self, value)
-- value will be the selected country
basalt.debug("Selected:", value)
end)

Properties

Property Type Default Description
editable boolean true Enables direct text input in the field
text string "" The current text value of the input field
cursorPos number 1 Current cursor position in the text input
viewOffset number 0 Horizontal scroll position for viewing long text
placeholder string "..." Text shown when the input is empty
placeholderColor color gray Color used for placeholder text
autoComplete boolean false Enables filtering dropdown items while typing
manuallyOpened boolean false Indicates if dropdown was opened by user action

Functions

Method Returns Description
ComboBox.new ComboBox Creates a new ComboBox instance
ComboBox:char - Handles character input
ComboBox:key - Handles key input

ComboBox.new()

Creates a new ComboBox instance

Returns

  • ComboBox self The newly created ComboBox instance

ComboBox:char(char)

Handles character input when editable

Parameters

  • char string The character that was typed

ComboBox:key(key, held)

Handles key input when editable

Parameters

  • key number The key code that was pressed
  • held boolean Whether the key is being held