166 lines
3.8 KiB
Markdown
166 lines
3.8 KiB
Markdown
# 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-new)|List|Creates a new List instance|
|
|
|[List:List](#list-list-props-basalt)|List|Initializes the List instance|
|
|
|[List:List](#list-list-text)|List|Adds an item to the list|
|
|
|[List:List](#list-list-index)|List|Removes an item from the list|
|
|
|[List:List](#list-list)|List|Clears all items from the list|
|
|
|[List:List](#list-list)|table|Gets the currently selected items|
|
|
|[List:List](#list-list)|selected|Gets first selected item|
|
|
|[List:List](#list-list-button-x-y)|boolean|Handles mouse click events|
|
|
|[List:List](#list-list-direction-x-y)|boolean|Handles mouse scroll events|
|
|
|[List:List](#list-list-callback)|List|Registers a callback for the select event|
|
|
|[List:List](#list-list)|List|Scrolls the list to the bottom|
|
|
|[List:List](#list-list)|List|Scrolls the list to the top|
|
|
|[List:List](#list-list)|-|Renders the list|
|
|
|
|
## List.new()
|
|
|
|
Creates a new List instance
|
|
|
|
### Returns
|
|
* `List` `self` The newly created List instance
|
|
|
|
## List:List(props, basalt)
|
|
### Parameters
|
|
* `props` `table` The properties to initialize the element with
|
|
* `basalt` `table` The basalt instance
|
|
|
|
### Returns
|
|
* `List` `self` The initialized instance
|
|
|
|
## List:List(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
|
|
```lua
|
|
list:addItem("New Item")
|
|
list:addItem({text="Item", callback=function() end})
|
|
```
|
|
|
|
## List:List(index)
|
|
|
|
Removes an item from the list
|
|
|
|
### Parameters
|
|
* `index` `number` The index of the item to remove
|
|
|
|
### Returns
|
|
* `List` `self` The List instance
|
|
|
|
### Usage
|
|
```lua
|
|
list:removeItem(1)
|
|
```
|
|
|
|
## List:List()
|
|
|
|
Clears all items from the list
|
|
|
|
### Returns
|
|
* `List` `self` The List instance
|
|
|
|
### Usage
|
|
```lua
|
|
list:clear()
|
|
```
|
|
|
|
## List:List()
|
|
|
|
Gets the currently selected items
|
|
|
|
### Returns
|
|
* `table` `selected` List of selected items
|
|
|
|
### Usage
|
|
```lua
|
|
local selected = list:getSelectedItems()
|
|
```
|
|
|
|
## List:List()
|
|
|
|
Gets first selected item
|
|
|
|
### Returns
|
|
* `selected` `The` first item
|
|
|
|
## List:List(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:List(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:List(callback)
|
|
|
|
Registers a callback for the select event
|
|
|
|
### Parameters
|
|
* `callback` `function` The callback function to register
|
|
|
|
### Returns
|
|
* `List` `self` The List instance
|
|
|
|
### Usage
|
|
```lua
|
|
list:onSelect(function(index, item) print("Selected item:", index, item) end)
|
|
```
|
|
|
|
## List:List()
|
|
|
|
Scrolls the list to the bottom
|
|
|
|
### Returns
|
|
* `List` `self` The List instance
|
|
|
|
## List:List()
|
|
|
|
Scrolls the list to the top
|
|
|
|
### Returns
|
|
* `List` `self` The List instance
|
|
|
|
## List:List() |