3.2 KiB
3.2 KiB
List : VisualElement
This is the list class. It provides a scrollable list of selectable items with support for custom item rendering, separators, and selection handling.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| items | table | {} | List of items to display. Items can be strings or tables with properties |
| selectedIndex | number | 0 | Index of the currently selected item (0 means no selection) |
| selectable | boolean | true | Whether items in the list can be selected |
| offset | number | 0 | Current scroll offset for viewing long lists |
| selectedColor | color | blue | Background color for the selected item |
Events
| Event | Parameters | Description |
|---|---|---|
| onSelect | index number, item any |
Fired when an item is selected |
Functions
| Method | Returns | Description |
|---|---|---|
| List.new | List | Creates a new List instance |
| List:addItem | List | Adds an item to the list |
| List:clear | List | Clears all items from the list |
| List:init | List | Initializes the List instance |
| 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:removeItem | List | Removes an item from the list |
| List:render | - | Renders the list |
List.new()
Creates a new List instance
Returns
ListselfThe newly created List instance
Usage
local list = List.new()
List:addItem(text)
Adds an item to the list
Parameters
textstring|tableThe item to add (string or item table)
Returns
ListselfThe List instance
Usage
list:addItem("New Item")
list:addItem({text="Item", callback=function() end})
List:clear()
Clears all items from the list
Returns
ListselfThe List instance
Usage
list:clear()
List:init(props, basalt)
Initializes the List instance
Parameters
propstableThe properties to initialize the element withbasalttableThe basalt instance
Returns
ListselfThe initialized instance
List:mouse_click(button, x, y)
Handles mouse click events
Parameters
buttonnumberThe mouse button that was clickedxnumberThe x-coordinate of the clickynumberThe y-coordinate of the click
Returns
booleanWhetherthe event was handled
List:mouse_scroll(direction, x, y)
Handles mouse scroll events
Parameters
directionnumberThe direction of the scroll (1 for down, -1 for up)xnumberThe x-coordinate of the scrollynumberThe y-coordinate of the scroll
Returns
booleanWhetherthe event was handled
List:onSelect(callback)
Registers a callback for the select event
Parameters
callbackfunctionThe callback function to register
Returns
ListselfThe List instance
Usage
list:onSelect(function(index, item) print("Selected item:", index, item) end)
List:removeItem(index)
Removes an item from the list
Parameters
indexnumberThe index of the item to remove
Returns
ListselfThe List instance
Usage
list:removeItem(1)
List:render()
Renders the list