Files
Basalt2/docs/references/elements/List.md
2025-09-13 20:28:52 +00:00

4.0 KiB

List

This is the list class. It provides a scrollable list of selectable items with support for custom item rendering, separators, and selection handling.

Extends: VisualElement

Properties

Property Type Default Description
items table {} List of items to display. Items can be tables with properties including selected state
selectable boolean true Whether items in the list can be selected
multiSelection boolean false Whether multiple items can be selected at once
offset number 0 Current scroll offset for viewing long lists
selectedBackground color blue Background color for selected items
selectedForeground color white Text color for selected items

Events

Event Parameters Description
onSelect index number, item table Fired when an item is selected

Functions

Method Returns Description
List.new List Creates a new List instance
List:init List Initializes the List instance
List:addItem List Adds an item to the list
List:removeItem List Removes an item from the list
List:clear List Clears all items from the list
List:getSelectedItems table Gets the currently selected items
List:getSelectedItem selected Gets first selected item
List:mouse_click boolean Handles mouse click events
List:mouse_scroll boolean Handles mouse scroll events
List:onSelect List Registers a callback for the select event
List:scrollToBottom List Scrolls the list to the bottom
List:scrollToTop List Scrolls the list to the top
List:render - Renders the list

List.new()

Creates a new List instance

Returns

  • List self The newly created List instance

List:init(props, basalt)

Parameters

  • props table The properties to initialize the element with
  • basalt table The basalt instance

Returns

  • List self The initialized instance

List:addItem(text)

Adds an item to the list

Parameters

  • text string|table The item to add (string or item table)

Returns

  • List self The List instance

Usage

list:addItem("New Item")
list:addItem({text="Item", callback=function() end})

List:removeItem(index)

Removes an item from the list

Parameters

  • index number The index of the item to remove

Returns

  • List self The List instance

Usage

list:removeItem(1)

List:clear()

Clears all items from the list

Returns

  • List self The List instance

Usage

list:clear()

List:getSelectedItems()

Gets the currently selected items

Returns

  • table selected List of selected items

Usage

local selected = list:getSelectedItems()

List:getSelectedItem()

Gets first selected item

Returns

  • selected The first item

List:mouse_click(button, x, y)

Parameters

  • button number The mouse button that was clicked
  • x number The x-coordinate of the click
  • y number The y-coordinate of the click

Returns

  • boolean Whether the event was handled

List:mouse_scroll(direction, x, y)

Parameters

  • direction number The direction of the scroll (1 for down, -1 for up)
  • x number The x-coordinate of the scroll
  • y number The y-coordinate of the scroll

Returns

  • boolean Whether the event was handled

List:onSelect(callback)

Registers a callback for the select event

Parameters

  • callback function The callback function to register

Returns

  • List self The List instance

Usage

list:onSelect(function(index, item) print("Selected item:", index, item) end)

List:scrollToBottom()

Scrolls the list to the bottom

Returns

  • List self The List instance

List:scrollToTop()

Scrolls the list to the top

Returns

  • List self The List instance

List:render()