1.7 KiB
1.7 KiB
Menu : List
This is the menu class. It provides a horizontal menu bar with selectable items and separators. Menu items are displayed in a single row and can have custom colors and callbacks.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| separatorColor | color | gray | The color used for separator items in the menu |
Functions
| Method | Returns | Description |
|---|---|---|
| Menu.new | Menu | Creates a new Menu instance |
| Menu:init | Menu | Initializes the Menu instance |
| Menu:mouse_click | boolean | Handles mouse click events and item selection |
| Menu:render | - | Renders the menu horizontally with proper spacing and colors |
| Menu:setItems | Menu | Sets the menu items and calculates total width |
Menu.new()
Creates a new Menu instance
Returns
MenuselfThe newly created Menu instance
Usage
local menu = Menu.new()
Menu:init(props, basalt)
Initializes the Menu instance
Parameters
propstableThe properties to initialize the element withbasalttableThe basalt instance
Returns
MenuselfThe initialized instance
Menu:mouse_click(button, x, y)
Handles mouse click events
Parameters
buttonnumberThe button that was clickedxnumberThe x position of the clickynumberThe y position of the click
Returns
booleanWhetherthe event was handled
Menu:render()
Renders the menu
Menu:setItems(items)
Sets the menu items
Parameters
itemstable[]List of items with {text, separator, callback, foreground, background} properties
Returns
MenuselfThe Menu instance
Usage
menu:setItems({{text="File"}, {separator=true}, {text="Edit"}})