140 lines
3.3 KiB
Markdown
140 lines
3.3 KiB
Markdown
# Collection
|
|
_This is the Collection class. It provides a collection of items_
|
|
|
|
Extends: `VisualElement`
|
|
|
|
## Properties
|
|
|
|
|Property|Type|Default|Description|
|
|
|---|---|---|---|
|
|
|selectable|boolean|true|Whether items can be selected|
|
|
|multiSelection|boolean|false|Whether multiple items can be selected at once|
|
|
|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|
|
|
|---|---|---|
|
|
|[Collection:addItem](#collection-additem-text)|Collection|Adds an item to the Collection|
|
|
|[Collection:removeItem](#collection-removeitem-index)|Collection|Removes an item from the Collection|
|
|
|[Collection:clear](#collection-clear)|Collection|Clears all items from the Collection|
|
|
|[Collection:getSelectedItems](#collection-getselecteditems)|table|Gets the currently selected items|
|
|
|[Collection:getSelectedItem](#collection-getselecteditem)|selected|Gets first selected item|
|
|
|[Collection:getSelectedIndex](#collection-getselectedindex)|index|Gets the index of the first selected item|
|
|
|[Collection:selectNext](#collection-selectnext)|Collection|Selects the next item|
|
|
|[Collection:selectPrevious](#collection-selectprevious)|Collection|Selects the previous item|
|
|
|[Collection:onSelect](#collection-onselect-callback)|Collection|Registers a callback for the select event|
|
|
|
|
## Collection:addItem(text)
|
|
|
|
Adds an item to the Collection
|
|
|
|
### Parameters
|
|
* `text` `string|table` The item to add (string or item table)
|
|
|
|
### Returns
|
|
* `Collection` `self` The Collection instance
|
|
|
|
### Usage
|
|
```lua run
|
|
Collection:addItem("New Item")
|
|
```
|
|
|
|
```lua run
|
|
Collection:addItem({text="Item", callback=function() end})
|
|
```
|
|
|
|
## Collection:removeItem(index)
|
|
|
|
Removes an item from the Collection
|
|
|
|
### Parameters
|
|
* `index` `number` The index of the item to remove
|
|
|
|
### Returns
|
|
* `Collection` `self` The Collection instance
|
|
|
|
### Usage
|
|
```lua run
|
|
Collection:removeItem(1)
|
|
```
|
|
|
|
## Collection:clear()
|
|
|
|
Clears all items from the Collection
|
|
|
|
### Returns
|
|
* `Collection` `self` The Collection instance
|
|
|
|
### Usage
|
|
```lua run
|
|
Collection:clear()
|
|
```
|
|
|
|
## Collection:getSelectedItems()
|
|
|
|
Gets the currently selected items
|
|
|
|
### Returns
|
|
* `table` `selected` Collection of selected items
|
|
|
|
### Usage
|
|
```lua run
|
|
local selected = Collection:getSelectedItems()
|
|
```
|
|
|
|
## Collection:getSelectedItem()
|
|
|
|
Gets first selected item
|
|
|
|
### Returns
|
|
* `selected` `The` first item
|
|
|
|
## Collection:getSelectedIndex()
|
|
|
|
Gets the index of the first selected item
|
|
|
|
### Returns
|
|
* `index` `The` index of the first selected item, or nil if none selected
|
|
|
|
### Usage
|
|
```lua run
|
|
local index = Collection:getSelectedIndex()
|
|
```
|
|
|
|
## Collection:selectNext()
|
|
|
|
Selects the next item in the collection
|
|
|
|
### Returns
|
|
* `Collection` `self` The Collection instance
|
|
|
|
## Collection:selectPrevious()
|
|
|
|
Selects the previous item in the collection
|
|
|
|
### Returns
|
|
* `Collection` `self` The Collection instance
|
|
|
|
## Collection:onSelect(callback)
|
|
|
|
Registers a callback for the select event
|
|
|
|
### Parameters
|
|
* `callback` `function` The callback function to register
|
|
|
|
### Returns
|
|
* `Collection` `self` The Collection instance
|
|
|
|
### Usage
|
|
```lua run
|
|
Collection:onSelect(function(index, item) print("Selected item:", index, item) end)
|
|
```
|