2284 lines
52 KiB
Lua
2284 lines
52 KiB
Lua
---@class BaseFrame
|
|
---@field text term
|
|
local BaseFrame = {}
|
|
|
|
--- Gets the The terminal object to render to
|
|
---@generic Element: BaseFrame
|
|
---@param self Element
|
|
---@return term
|
|
function BaseFrame:getText()
|
|
return self.text
|
|
end
|
|
|
|
--- Sets the The terminal object to render to
|
|
---@generic Element: BaseFrame
|
|
---@param self Element
|
|
---@param text term
|
|
---@return Element
|
|
function BaseFrame:setText(text)
|
|
self.text = text
|
|
return self
|
|
end
|
|
|
|
|
|
---@class BigFontText
|
|
---@field text string
|
|
---@field fontSize number
|
|
local BigFontText = {}
|
|
|
|
--- Gets the BigFont text
|
|
---@generic Element: BigFontText
|
|
---@param self Element
|
|
---@return string
|
|
function BigFontText:getText()
|
|
return self.text
|
|
end
|
|
|
|
--- Sets the BigFont text
|
|
---@generic Element: BigFontText
|
|
---@param self Element
|
|
---@param text string
|
|
---@return Element
|
|
function BigFontText:setText(text)
|
|
self.text = text
|
|
return self
|
|
end
|
|
|
|
--- Gets the The font size of the BigFont
|
|
---@generic Element: BigFontText
|
|
---@param self Element
|
|
---@return number
|
|
function BigFontText:getFontSize()
|
|
return self.fontSize
|
|
end
|
|
|
|
--- Sets the The font size of the BigFont
|
|
---@generic Element: BigFontText
|
|
---@param self Element
|
|
---@param fontSize number
|
|
---@return Element
|
|
function BigFontText:setFontSize(fontSize)
|
|
self.fontSize = fontSize
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Button
|
|
---@field text string
|
|
local Button = {}
|
|
|
|
--- Gets the Button text
|
|
---@generic Element: Button
|
|
---@param self Element
|
|
---@return string
|
|
function Button:getText()
|
|
return self.text
|
|
end
|
|
|
|
--- Sets the Button text
|
|
---@generic Element: Button
|
|
---@param self Element
|
|
---@param text string
|
|
---@return Element
|
|
function Button:setText(text)
|
|
self.text = text
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Checkbox
|
|
---@field checked boolean
|
|
---@field text string
|
|
---@field checkedText string
|
|
---@field autoSize boolean
|
|
local Checkbox = {}
|
|
|
|
--- Gets the checkbox is checked
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@return boolean
|
|
function Checkbox:getChecked()
|
|
return self.checked
|
|
end
|
|
|
|
--- Sets the checkbox is checked
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@param checked boolean
|
|
---@return Element
|
|
function Checkbox:setChecked(checked)
|
|
self.checked = checked
|
|
return self
|
|
end
|
|
|
|
--- Gets the Text to display
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@return string
|
|
function Checkbox:getText()
|
|
return self.text
|
|
end
|
|
|
|
--- Sets the Text to display
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@param text string
|
|
---@return Element
|
|
function Checkbox:setText(text)
|
|
self.text = text
|
|
return self
|
|
end
|
|
|
|
--- Gets the when checked
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@return string
|
|
function Checkbox:getCheckedText()
|
|
return self.checkedText
|
|
end
|
|
|
|
--- Sets the when checked
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@param checkedText string
|
|
---@return Element
|
|
function Checkbox:setCheckedText(checkedText)
|
|
self.checkedText = checkedText
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether to automatically size the checkbox
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@return boolean
|
|
function Checkbox:getAutoSize()
|
|
return self.autoSize
|
|
end
|
|
|
|
--- Sets the Whether to automatically size the checkbox
|
|
---@generic Element: Checkbox
|
|
---@param self Element
|
|
---@param autoSize boolean
|
|
---@return Element
|
|
function Checkbox:setAutoSize(autoSize)
|
|
self.autoSize = autoSize
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Container
|
|
---@field children table
|
|
---@field childrenSorted boolean
|
|
---@field childrenEventsSorted boolean
|
|
---@field childrenEvents table
|
|
---@field eventListenerCount table
|
|
---@field focusedChild table
|
|
---@field visibleChildren table
|
|
---@field visibleChildrenEvents table
|
|
---@field offsetX number
|
|
---@field offsetY number
|
|
local Container = {}
|
|
|
|
--- Gets the The children of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return table
|
|
function Container:getChildren()
|
|
return self.children
|
|
end
|
|
|
|
--- Sets the The children of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param children table
|
|
---@return Element
|
|
function Container:setChildren(children)
|
|
self.children = children
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the children are sorted
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return boolean
|
|
function Container:getChildrenSorted()
|
|
return self.childrenSorted
|
|
end
|
|
|
|
--- Sets the Whether the children are sorted
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param childrenSorted boolean
|
|
---@return Element
|
|
function Container:setChildrenSorted(childrenSorted)
|
|
self.childrenSorted = childrenSorted
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the children events are sorted
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return boolean
|
|
function Container:getChildrenEventsSorted()
|
|
return self.childrenEventsSorted
|
|
end
|
|
|
|
--- Sets the Whether the children events are sorted
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param childrenEventsSorted boolean
|
|
---@return Element
|
|
function Container:setChildrenEventsSorted(childrenEventsSorted)
|
|
self.childrenEventsSorted = childrenEventsSorted
|
|
return self
|
|
end
|
|
|
|
--- Gets the The children events of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return table
|
|
function Container:getChildrenEvents()
|
|
return self.childrenEvents
|
|
end
|
|
|
|
--- Sets the The children events of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param childrenEvents table
|
|
---@return Element
|
|
function Container:setChildrenEvents(childrenEvents)
|
|
self.childrenEvents = childrenEvents
|
|
return self
|
|
end
|
|
|
|
--- Gets the The event listener count of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return table
|
|
function Container:getEventListenerCount()
|
|
return self.eventListenerCount
|
|
end
|
|
|
|
--- Sets the The event listener count of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param eventListenerCount table
|
|
---@return Element
|
|
function Container:setEventListenerCount(eventListenerCount)
|
|
self.eventListenerCount = eventListenerCount
|
|
return self
|
|
end
|
|
|
|
--- Gets the The focused child of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return table
|
|
function Container:getFocusedChild()
|
|
return self.focusedChild
|
|
end
|
|
|
|
--- Sets the The focused child of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param focusedChild table
|
|
---@return Element
|
|
function Container:setFocusedChild(focusedChild)
|
|
self.focusedChild = focusedChild
|
|
return self
|
|
end
|
|
|
|
--- Gets the The visible children of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return table
|
|
function Container:getVisibleChildren()
|
|
return self.visibleChildren
|
|
end
|
|
|
|
--- Sets the The visible children of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param visibleChildren table
|
|
---@return Element
|
|
function Container:setVisibleChildren(visibleChildren)
|
|
self.visibleChildren = visibleChildren
|
|
return self
|
|
end
|
|
|
|
--- Gets the The visible children events of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return table
|
|
function Container:getVisibleChildrenEvents()
|
|
return self.visibleChildrenEvents
|
|
end
|
|
|
|
--- Sets the The visible children events of the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param visibleChildrenEvents table
|
|
---@return Element
|
|
function Container:setVisibleChildrenEvents(visibleChildrenEvents)
|
|
self.visibleChildrenEvents = visibleChildrenEvents
|
|
return self
|
|
end
|
|
|
|
--- Gets the Horizontal content offset
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return number
|
|
function Container:getOffsetX()
|
|
return self.offsetX
|
|
end
|
|
|
|
--- Sets the Horizontal content offset
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param offsetX number
|
|
---@return Element
|
|
function Container:setOffsetX(offsetX)
|
|
self.offsetX = offsetX
|
|
return self
|
|
end
|
|
|
|
--- Gets the Vertical content offset
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return number
|
|
function Container:getOffsetY()
|
|
return self.offsetY
|
|
end
|
|
|
|
--- Sets the Vertical content offset
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@param offsetY number
|
|
---@return Element
|
|
function Container:setOffsetY(offsetY)
|
|
self.offsetY = offsetY
|
|
return self
|
|
end
|
|
|
|
--- Adds a new BigFontText to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return BigFontText
|
|
function Container:addBigFontText()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Button to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Button
|
|
function Container:addButton()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Checkbox to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Checkbox
|
|
function Container:addCheckbox()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Container to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Container
|
|
function Container:addContainer()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Dropdown to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Dropdown
|
|
function Container:addDropdown()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Flexbox to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Flexbox
|
|
function Container:addFlexbox()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Frame to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Frame
|
|
function Container:addFrame()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Image to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Image
|
|
function Container:addImage()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Input to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Input
|
|
function Container:addInput()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Label to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Label
|
|
function Container:addLabel()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new List to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return List
|
|
function Container:addList()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Menu to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Menu
|
|
function Container:addMenu()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Program to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Program
|
|
function Container:addProgram()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new ProgressBar to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return ProgressBar
|
|
function Container:addProgressBar()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Scrollbar to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Scrollbar
|
|
function Container:addScrollbar()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Slider to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Slider
|
|
function Container:addSlider()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Table to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Table
|
|
function Container:addTable()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new TextBox to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return TextBox
|
|
function Container:addTextBox()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new Tree to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return Tree
|
|
function Container:addTree()
|
|
return self
|
|
end
|
|
|
|
--- Adds a new VisualElement to the container
|
|
---@generic Element: Container
|
|
---@param self Element
|
|
---@return VisualElement
|
|
function Container:addVisualElement()
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Dropdown
|
|
---@field isOpen boolean
|
|
---@field dropdownHeight number
|
|
---@field selectedText string
|
|
---@field dropSymbol string
|
|
local Dropdown = {}
|
|
|
|
--- Gets the Whether the dropdown menu is currently open
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@return boolean
|
|
function Dropdown:getIsOpen()
|
|
return self.isOpen
|
|
end
|
|
|
|
--- Sets the Whether the dropdown menu is currently open
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@param isOpen boolean
|
|
---@return Element
|
|
function Dropdown:setIsOpen(isOpen)
|
|
self.isOpen = isOpen
|
|
return self
|
|
end
|
|
|
|
--- Gets the Maximum height of the dropdown menu when open
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@return number
|
|
function Dropdown:getDropdownHeight()
|
|
return self.dropdownHeight
|
|
end
|
|
|
|
--- Sets the Maximum height of the dropdown menu when open
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@param dropdownHeight number
|
|
---@return Element
|
|
function Dropdown:setDropdownHeight(dropdownHeight)
|
|
self.dropdownHeight = dropdownHeight
|
|
return self
|
|
end
|
|
|
|
--- Gets the The text to show when no item is selected
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@return string
|
|
function Dropdown:getSelectedText()
|
|
return self.selectedText
|
|
end
|
|
|
|
--- Sets the The text to show when no item is selected
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@param selectedText string
|
|
---@return Element
|
|
function Dropdown:setSelectedText(selectedText)
|
|
self.selectedText = selectedText
|
|
return self
|
|
end
|
|
|
|
--- Gets the The symbol to show for dropdown indication
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@return string
|
|
function Dropdown:getDropSymbol()
|
|
return self.dropSymbol
|
|
end
|
|
|
|
--- Sets the The symbol to show for dropdown indication
|
|
---@generic Element: Dropdown
|
|
---@param self Element
|
|
---@param dropSymbol string
|
|
---@return Element
|
|
function Dropdown:setDropSymbol(dropSymbol)
|
|
self.dropSymbol = dropSymbol
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Flexbox
|
|
---@field flexDirection string
|
|
---@field flexSpacing number
|
|
---@field flexJustifyContent string
|
|
---@field flexWrap boolean
|
|
---@field flexUpdateLayout boolean
|
|
local Flexbox = {}
|
|
|
|
--- Gets the The direction of the flexbox layout "row" or "column"
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@return string
|
|
function Flexbox:getFlexDirection()
|
|
return self.flexDirection
|
|
end
|
|
|
|
--- Sets the The direction of the flexbox layout "row" or "column"
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@param flexDirection string
|
|
---@return Element
|
|
function Flexbox:setFlexDirection(flexDirection)
|
|
self.flexDirection = flexDirection
|
|
return self
|
|
end
|
|
|
|
--- Gets the The spacing between flex items
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@return number
|
|
function Flexbox:getFlexSpacing()
|
|
return self.flexSpacing
|
|
end
|
|
|
|
--- Sets the The spacing between flex items
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@param flexSpacing number
|
|
---@return Element
|
|
function Flexbox:setFlexSpacing(flexSpacing)
|
|
self.flexSpacing = flexSpacing
|
|
return self
|
|
end
|
|
|
|
--- Gets the The alignment of flex items along the main axis
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@return string
|
|
function Flexbox:getFlexJustifyContent()
|
|
return self.flexJustifyContent
|
|
end
|
|
|
|
--- Sets the The alignment of flex items along the main axis
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@param flexJustifyContent string
|
|
---@return Element
|
|
function Flexbox:setFlexJustifyContent(flexJustifyContent)
|
|
self.flexJustifyContent = flexJustifyContent
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether to wrap flex items onto multiple lines
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@return boolean
|
|
function Flexbox:getFlexWrap()
|
|
return self.flexWrap
|
|
end
|
|
|
|
--- Sets the Whether to wrap flex items onto multiple lines
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@param flexWrap boolean
|
|
---@return Element
|
|
function Flexbox:setFlexWrap(flexWrap)
|
|
self.flexWrap = flexWrap
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether to update the layout of the flexbox
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@return boolean
|
|
function Flexbox:getFlexUpdateLayout()
|
|
return self.flexUpdateLayout
|
|
end
|
|
|
|
--- Sets the Whether to update the layout of the flexbox
|
|
---@generic Element: Flexbox
|
|
---@param self Element
|
|
---@param flexUpdateLayout boolean
|
|
---@return Element
|
|
function Flexbox:setFlexUpdateLayout(flexUpdateLayout)
|
|
self.flexUpdateLayout = flexUpdateLayout
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Frame
|
|
---@field draggable boolean
|
|
---@field draggingMap table
|
|
local Frame = {}
|
|
|
|
--- Gets the Whether the frame is draggable
|
|
---@generic Element: Frame
|
|
---@param self Element
|
|
---@return boolean
|
|
function Frame:getDraggable()
|
|
return self.draggable
|
|
end
|
|
|
|
--- Sets the Whether the frame is draggable
|
|
---@generic Element: Frame
|
|
---@param self Element
|
|
---@param draggable boolean
|
|
---@return Element
|
|
function Frame:setDraggable(draggable)
|
|
self.draggable = draggable
|
|
return self
|
|
end
|
|
|
|
--- Gets the y=1, width="width", height=1}} The map of dragging positions
|
|
---@generic Element: Frame
|
|
---@param self Element
|
|
---@return table
|
|
function Frame:getDraggingMap()
|
|
return self.draggingMap
|
|
end
|
|
|
|
--- Sets the y=1, width="width", height=1}} The map of dragging positions
|
|
---@generic Element: Frame
|
|
---@param self Element
|
|
---@param draggingMap table
|
|
---@return Element
|
|
function Frame:setDraggingMap(draggingMap)
|
|
self.draggingMap = draggingMap
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Image
|
|
---@field bimg table
|
|
---@field currentFrame number
|
|
---@field metadata table
|
|
local Image = {}
|
|
|
|
--- Gets the The bimg image data
|
|
---@generic Element: Image
|
|
---@param self Element
|
|
---@return table
|
|
function Image:getBimg()
|
|
return self.bimg
|
|
end
|
|
|
|
--- Sets the The bimg image data
|
|
---@generic Element: Image
|
|
---@param self Element
|
|
---@param bimg table
|
|
---@return Element
|
|
function Image:setBimg(bimg)
|
|
self.bimg = bimg
|
|
return self
|
|
end
|
|
|
|
--- Gets the Current animation frame
|
|
---@generic Element: Image
|
|
---@param self Element
|
|
---@return number
|
|
function Image:getCurrentFrame()
|
|
return self.currentFrame
|
|
end
|
|
|
|
--- Sets the Current animation frame
|
|
---@generic Element: Image
|
|
---@param self Element
|
|
---@param currentFrame number
|
|
---@return Element
|
|
function Image:setCurrentFrame(currentFrame)
|
|
self.currentFrame = currentFrame
|
|
return self
|
|
end
|
|
|
|
--- Gets the Image metadata (version, palette, etc)
|
|
---@generic Element: Image
|
|
---@param self Element
|
|
---@return table
|
|
function Image:getMetadata()
|
|
return self.metadata
|
|
end
|
|
|
|
--- Sets the Image metadata (version, palette, etc)
|
|
---@generic Element: Image
|
|
---@param self Element
|
|
---@param metadata table
|
|
---@return Element
|
|
function Image:setMetadata(metadata)
|
|
self.metadata = metadata
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Input
|
|
---@field text string
|
|
---@field cursorPos number
|
|
---@field viewOffset number
|
|
---@field placeholder string
|
|
---@field placeholderColor color
|
|
---@field focusedColor color
|
|
---@field cursorColor number
|
|
local Input = {}
|
|
|
|
--- Gets the The current text content of the input
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return string
|
|
function Input:getText()
|
|
return self.text
|
|
end
|
|
|
|
--- Sets the The current text content of the input
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param text string
|
|
---@return Element
|
|
function Input:setText(text)
|
|
self.text = text
|
|
return self
|
|
end
|
|
|
|
--- Gets the The current cursor position in the text
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return number
|
|
function Input:getCursorPos()
|
|
return self.cursorPos
|
|
end
|
|
|
|
--- Sets the The current cursor position in the text
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param cursorPos number
|
|
---@return Element
|
|
function Input:setCursorPos(cursorPos)
|
|
self.cursorPos = cursorPos
|
|
return self
|
|
end
|
|
|
|
--- Gets the The horizontal scroll offset for viewing long text
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return number
|
|
function Input:getViewOffset()
|
|
return self.viewOffset
|
|
end
|
|
|
|
--- Sets the The horizontal scroll offset for viewing long text
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param viewOffset number
|
|
---@return Element
|
|
function Input:setViewOffset(viewOffset)
|
|
self.viewOffset = viewOffset
|
|
return self
|
|
end
|
|
|
|
--- Gets the Text to display when input is empty
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return string
|
|
function Input:getPlaceholder()
|
|
return self.placeholder
|
|
end
|
|
|
|
--- Sets the Text to display when input is empty
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param placeholder string
|
|
---@return Element
|
|
function Input:setPlaceholder(placeholder)
|
|
self.placeholder = placeholder
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of the placeholder text
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return color
|
|
function Input:getPlaceholderColor()
|
|
return self.placeholderColor
|
|
end
|
|
|
|
--- Sets the Color of the placeholder text
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param placeholderColor color
|
|
---@return Element
|
|
function Input:setPlaceholderColor(placeholderColor)
|
|
self.placeholderColor = placeholderColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Background color when input is focused
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return color
|
|
function Input:getFocusedColor()
|
|
return self.focusedColor
|
|
end
|
|
|
|
--- Sets the Background color when input is focused
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param focusedColor color
|
|
---@return Element
|
|
function Input:setFocusedColor(focusedColor)
|
|
self.focusedColor = focusedColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of the cursor
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@return number
|
|
function Input:getCursorColor()
|
|
return self.cursorColor
|
|
end
|
|
|
|
--- Sets the Color of the cursor
|
|
---@generic Element: Input
|
|
---@param self Element
|
|
---@param cursorColor number
|
|
---@return Element
|
|
function Input:setCursorColor(cursorColor)
|
|
self.cursorColor = cursorColor
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Label
|
|
---@field text string
|
|
---@field autoSize boolean
|
|
local Label = {}
|
|
|
|
--- Gets the The text content to display. Can be a string or a function that returns a string
|
|
---@generic Element: Label
|
|
---@param self Element
|
|
---@return string
|
|
function Label:getText()
|
|
return self.text
|
|
end
|
|
|
|
--- Sets the The text content to display. Can be a string or a function that returns a string
|
|
---@generic Element: Label
|
|
---@param self Element
|
|
---@param text string
|
|
---@return Element
|
|
function Label:setText(text)
|
|
self.text = text
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the label should automatically resize its width based on the text content
|
|
---@generic Element: Label
|
|
---@param self Element
|
|
---@return boolean
|
|
function Label:getAutoSize()
|
|
return self.autoSize
|
|
end
|
|
|
|
--- Sets the Whether the label should automatically resize its width based on the text content
|
|
---@generic Element: Label
|
|
---@param self Element
|
|
---@param autoSize boolean
|
|
---@return Element
|
|
function Label:setAutoSize(autoSize)
|
|
self.autoSize = autoSize
|
|
return self
|
|
end
|
|
|
|
|
|
---@class List
|
|
---@field items table
|
|
---@field selectable boolean
|
|
---@field multiSelection boolean
|
|
---@field offset number
|
|
---@field selectedBackground color
|
|
---@field selectedForeground color
|
|
local List = {}
|
|
|
|
--- Gets the List of items to display. Items can be tables with properties including selected state
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@return table
|
|
function List:getItems()
|
|
return self.items
|
|
end
|
|
|
|
--- Sets the List of items to display. Items can be tables with properties including selected state
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param items table
|
|
---@return Element
|
|
function List:setItems(items)
|
|
self.items = items
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether items in the list can be selected
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@return boolean
|
|
function List:getSelectable()
|
|
return self.selectable
|
|
end
|
|
|
|
--- Sets the Whether items in the list can be selected
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param selectable boolean
|
|
---@return Element
|
|
function List:setSelectable(selectable)
|
|
self.selectable = selectable
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether multiple items can be selected at once
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@return boolean
|
|
function List:getMultiSelection()
|
|
return self.multiSelection
|
|
end
|
|
|
|
--- Sets the Whether multiple items can be selected at once
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param multiSelection boolean
|
|
---@return Element
|
|
function List:setMultiSelection(multiSelection)
|
|
self.multiSelection = multiSelection
|
|
return self
|
|
end
|
|
|
|
--- Gets the Current scroll offset for viewing long lists
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@return number
|
|
function List:getOffset()
|
|
return self.offset
|
|
end
|
|
|
|
--- Sets the Current scroll offset for viewing long lists
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param offset number
|
|
---@return Element
|
|
function List:setOffset(offset)
|
|
self.offset = offset
|
|
return self
|
|
end
|
|
|
|
--- Gets the Background color for selected items
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@return color
|
|
function List:getSelectedBackground()
|
|
return self.selectedBackground
|
|
end
|
|
|
|
--- Sets the Background color for selected items
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param selectedBackground color
|
|
---@return Element
|
|
function List:setSelectedBackground(selectedBackground)
|
|
self.selectedBackground = selectedBackground
|
|
return self
|
|
end
|
|
|
|
--- Gets the Text color for selected items
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@return color
|
|
function List:getSelectedForeground()
|
|
return self.selectedForeground
|
|
end
|
|
|
|
--- Sets the Text color for selected items
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param selectedForeground color
|
|
---@return Element
|
|
function List:setSelectedForeground(selectedForeground)
|
|
self.selectedForeground = selectedForeground
|
|
return self
|
|
end
|
|
|
|
--- {index number, item any} Fired when an item is selected
|
|
---@generic Element: List
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function List:onOnSelect(callback)
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Menu
|
|
---@field separatorColor color
|
|
local Menu = {}
|
|
|
|
--- Gets the The color used for separator items in the menu
|
|
---@generic Element: Menu
|
|
---@param self Element
|
|
---@return color
|
|
function Menu:getSeparatorColor()
|
|
return self.separatorColor
|
|
end
|
|
|
|
--- Sets the The color used for separator items in the menu
|
|
---@generic Element: Menu
|
|
---@param self Element
|
|
---@param separatorColor color
|
|
---@return Element
|
|
function Menu:setSeparatorColor(separatorColor)
|
|
self.separatorColor = separatorColor
|
|
return self
|
|
end
|
|
|
|
|
|
---@class ProgressBar
|
|
---@field progress number
|
|
---@field showPercentage boolean
|
|
---@field progressColor color
|
|
local ProgressBar = {}
|
|
|
|
--- Gets the Current progress value (0-100)
|
|
---@generic Element: ProgressBar
|
|
---@param self Element
|
|
---@return number
|
|
function ProgressBar:getProgress()
|
|
return self.progress
|
|
end
|
|
|
|
--- Sets the Current progress value (0-100)
|
|
---@generic Element: ProgressBar
|
|
---@param self Element
|
|
---@param progress number
|
|
---@return Element
|
|
function ProgressBar:setProgress(progress)
|
|
self.progress = progress
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether to show the percentage text in the center
|
|
---@generic Element: ProgressBar
|
|
---@param self Element
|
|
---@return boolean
|
|
function ProgressBar:getShowPercentage()
|
|
return self.showPercentage
|
|
end
|
|
|
|
--- Sets the Whether to show the percentage text in the center
|
|
---@generic Element: ProgressBar
|
|
---@param self Element
|
|
---@param showPercentage boolean
|
|
---@return Element
|
|
function ProgressBar:setShowPercentage(showPercentage)
|
|
self.showPercentage = showPercentage
|
|
return self
|
|
end
|
|
|
|
--- Gets the The color used for the filled portion of the progress bar
|
|
---@generic Element: ProgressBar
|
|
---@param self Element
|
|
---@return color
|
|
function ProgressBar:getProgressColor()
|
|
return self.progressColor
|
|
end
|
|
|
|
--- Sets the The color used for the filled portion of the progress bar
|
|
---@generic Element: ProgressBar
|
|
---@param self Element
|
|
---@param progressColor color
|
|
---@return Element
|
|
function ProgressBar:setProgressColor(progressColor)
|
|
self.progressColor = progressColor
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Scrollbar
|
|
---@field value number
|
|
---@field min number
|
|
---@field max number
|
|
---@field step number
|
|
---@field dragMultiplier number
|
|
---@field symbol string
|
|
---@field backgroundSymbol string
|
|
---@field symbolBackgroundColor color
|
|
---@field backgroundSymbol string
|
|
---@field orientation string
|
|
---@field handleSize number
|
|
local Scrollbar = {}
|
|
|
|
--- Gets the Current scroll value
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return number
|
|
function Scrollbar:getValue()
|
|
return self.value
|
|
end
|
|
|
|
--- Sets the Current scroll value
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param value number
|
|
---@return Element
|
|
function Scrollbar:setValue(value)
|
|
self.value = value
|
|
return self
|
|
end
|
|
|
|
--- Gets the Minimum scroll value
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return number
|
|
function Scrollbar:getMin()
|
|
return self.min
|
|
end
|
|
|
|
--- Sets the Minimum scroll value
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param min number
|
|
---@return Element
|
|
function Scrollbar:setMin(min)
|
|
self.min = min
|
|
return self
|
|
end
|
|
|
|
--- Gets the Maximum scroll value
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return number
|
|
function Scrollbar:getMax()
|
|
return self.max
|
|
end
|
|
|
|
--- Sets the Maximum scroll value
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param max number
|
|
---@return Element
|
|
function Scrollbar:setMax(max)
|
|
self.max = max
|
|
return self
|
|
end
|
|
|
|
--- Gets the Step size for scroll operations
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return number
|
|
function Scrollbar:getStep()
|
|
return self.step
|
|
end
|
|
|
|
--- Sets the Step size for scroll operations
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param step number
|
|
---@return Element
|
|
function Scrollbar:setStep(step)
|
|
self.step = step
|
|
return self
|
|
end
|
|
|
|
--- Gets the How fast the scrollbar moves when dragging
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return number
|
|
function Scrollbar:getDragMultiplier()
|
|
return self.dragMultiplier
|
|
end
|
|
|
|
--- Sets the How fast the scrollbar moves when dragging
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param dragMultiplier number
|
|
---@return Element
|
|
function Scrollbar:setDragMultiplier(dragMultiplier)
|
|
self.dragMultiplier = dragMultiplier
|
|
return self
|
|
end
|
|
|
|
--- Gets the " Symbol used for the scrollbar handle
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return string
|
|
function Scrollbar:getSymbol()
|
|
return self.symbol
|
|
end
|
|
|
|
--- Sets the " Symbol used for the scrollbar handle
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param symbol string
|
|
---@return Element
|
|
function Scrollbar:setSymbol(symbol)
|
|
self.symbol = symbol
|
|
return self
|
|
end
|
|
|
|
--- Gets the Symbol used for the scrollbar background
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return string
|
|
function Scrollbar:getBackgroundSymbol()
|
|
return self.backgroundSymbol
|
|
end
|
|
|
|
--- Sets the Symbol used for the scrollbar background
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param backgroundSymbol string
|
|
---@return Element
|
|
function Scrollbar:setBackgroundSymbol(backgroundSymbol)
|
|
self.backgroundSymbol = backgroundSymbol
|
|
return self
|
|
end
|
|
|
|
--- Gets the Background color of the scrollbar handle
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return color
|
|
function Scrollbar:getSymbolBackgroundColor()
|
|
return self.symbolBackgroundColor
|
|
end
|
|
|
|
--- Sets the Background color of the scrollbar handle
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param symbolBackgroundColor color
|
|
---@return Element
|
|
function Scrollbar:setSymbolBackgroundColor(symbolBackgroundColor)
|
|
self.symbolBackgroundColor = symbolBackgroundColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Symbol used for the scrollbar background
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return string
|
|
function Scrollbar:getBackgroundSymbol()
|
|
return self.backgroundSymbol
|
|
end
|
|
|
|
--- Sets the Symbol used for the scrollbar background
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param backgroundSymbol string
|
|
---@return Element
|
|
function Scrollbar:setBackgroundSymbol(backgroundSymbol)
|
|
self.backgroundSymbol = backgroundSymbol
|
|
return self
|
|
end
|
|
|
|
--- Gets the Orientation of the scrollbar ("vertical" or "horizontal")
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return string
|
|
function Scrollbar:getOrientation()
|
|
return self.orientation
|
|
end
|
|
|
|
--- Sets the Orientation of the scrollbar ("vertical" or "horizontal")
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param orientation string
|
|
---@return Element
|
|
function Scrollbar:setOrientation(orientation)
|
|
self.orientation = orientation
|
|
return self
|
|
end
|
|
|
|
--- Gets the Size of the scrollbar handle in characters
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@return number
|
|
function Scrollbar:getHandleSize()
|
|
return self.handleSize
|
|
end
|
|
|
|
--- Sets the Size of the scrollbar handle in characters
|
|
---@generic Element: Scrollbar
|
|
---@param self Element
|
|
---@param handleSize number
|
|
---@return Element
|
|
function Scrollbar:setHandleSize(handleSize)
|
|
self.handleSize = handleSize
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Slider
|
|
---@field step number
|
|
---@field max number
|
|
---@field horizontal boolean
|
|
---@field barColor color
|
|
---@field sliderColor color
|
|
local Slider = {}
|
|
|
|
--- Gets the Current position of the slider handle (1 to width/height)
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@return number
|
|
function Slider:getStep()
|
|
return self.step
|
|
end
|
|
|
|
--- Sets the Current position of the slider handle (1 to width/height)
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@param step number
|
|
---@return Element
|
|
function Slider:setStep(step)
|
|
self.step = step
|
|
return self
|
|
end
|
|
|
|
--- Gets the Maximum value for value conversion (maps slider position to this range)
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@return number
|
|
function Slider:getMax()
|
|
return self.max
|
|
end
|
|
|
|
--- Sets the Maximum value for value conversion (maps slider position to this range)
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@param max number
|
|
---@return Element
|
|
function Slider:setMax(max)
|
|
self.max = max
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the slider is horizontal (false for vertical)
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@return boolean
|
|
function Slider:getHorizontal()
|
|
return self.horizontal
|
|
end
|
|
|
|
--- Sets the Whether the slider is horizontal (false for vertical)
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@param horizontal boolean
|
|
---@return Element
|
|
function Slider:setHorizontal(horizontal)
|
|
self.horizontal = horizontal
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of the slider track
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@return color
|
|
function Slider:getBarColor()
|
|
return self.barColor
|
|
end
|
|
|
|
--- Sets the Color of the slider track
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@param barColor color
|
|
---@return Element
|
|
function Slider:setBarColor(barColor)
|
|
self.barColor = barColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of the slider handle
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@return color
|
|
function Slider:getSliderColor()
|
|
return self.sliderColor
|
|
end
|
|
|
|
--- Sets the Color of the slider handle
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@param sliderColor color
|
|
---@return Element
|
|
function Slider:setSliderColor(sliderColor)
|
|
self.sliderColor = sliderColor
|
|
return self
|
|
end
|
|
|
|
--- {value number} Fired when the slider value changes
|
|
---@generic Element: Slider
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function Slider:onOnChange(callback)
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Table
|
|
---@field columns table
|
|
---@field data table
|
|
---@field headerColor color
|
|
---@field selectedColor color
|
|
---@field gridColor color
|
|
---@field sortDirection string
|
|
---@field scrollOffset number
|
|
local Table = {}
|
|
|
|
--- Gets the List of column definitions with {name, width} properties
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return table
|
|
function Table:getColumns()
|
|
return self.columns
|
|
end
|
|
|
|
--- Sets the List of column definitions with {name, width} properties
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param columns table
|
|
---@return Element
|
|
function Table:setColumns(columns)
|
|
self.columns = columns
|
|
return self
|
|
end
|
|
|
|
--- Gets the The table data as array of row arrays
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return table
|
|
function Table:getData()
|
|
return self.data
|
|
end
|
|
|
|
--- Sets the The table data as array of row arrays
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param data table
|
|
---@return Element
|
|
function Table:setData(data)
|
|
self.data = data
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of the column headers
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return color
|
|
function Table:getHeaderColor()
|
|
return self.headerColor
|
|
end
|
|
|
|
--- Sets the Color of the column headers
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param headerColor color
|
|
---@return Element
|
|
function Table:setHeaderColor(headerColor)
|
|
self.headerColor = headerColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Background color of selected row
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return color
|
|
function Table:getSelectedColor()
|
|
return self.selectedColor
|
|
end
|
|
|
|
--- Sets the Background color of selected row
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param selectedColor color
|
|
---@return Element
|
|
function Table:setSelectedColor(selectedColor)
|
|
self.selectedColor = selectedColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of grid lines
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return color
|
|
function Table:getGridColor()
|
|
return self.gridColor
|
|
end
|
|
|
|
--- Sets the Color of grid lines
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param gridColor color
|
|
---@return Element
|
|
function Table:setGridColor(gridColor)
|
|
self.gridColor = gridColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Sort direction ("asc" or "desc")
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return string
|
|
function Table:getSortDirection()
|
|
return self.sortDirection
|
|
end
|
|
|
|
--- Sets the Sort direction ("asc" or "desc")
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param sortDirection string
|
|
---@return Element
|
|
function Table:setSortDirection(sortDirection)
|
|
self.sortDirection = sortDirection
|
|
return self
|
|
end
|
|
|
|
--- Gets the Current scroll position
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@return number
|
|
function Table:getScrollOffset()
|
|
return self.scrollOffset
|
|
end
|
|
|
|
--- Sets the Current scroll position
|
|
---@generic Element: Table
|
|
---@param self Element
|
|
---@param scrollOffset number
|
|
---@return Element
|
|
function Table:setScrollOffset(scrollOffset)
|
|
self.scrollOffset = scrollOffset
|
|
return self
|
|
end
|
|
|
|
|
|
---@class TextBox
|
|
---@field lines table
|
|
---@field cursorX number
|
|
---@field cursorY number
|
|
---@field scrollX number
|
|
---@field scrollY number
|
|
---@field editable boolean
|
|
---@field syntaxPatterns table
|
|
---@field cursorColor number
|
|
local TextBox = {}
|
|
|
|
--- Gets the Array of text lines
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return table
|
|
function TextBox:getLines()
|
|
return self.lines
|
|
end
|
|
|
|
--- Sets the Array of text lines
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param lines table
|
|
---@return Element
|
|
function TextBox:setLines(lines)
|
|
self.lines = lines
|
|
return self
|
|
end
|
|
|
|
--- Gets the Cursor X position
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return number
|
|
function TextBox:getCursorX()
|
|
return self.cursorX
|
|
end
|
|
|
|
--- Sets the Cursor X position
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param cursorX number
|
|
---@return Element
|
|
function TextBox:setCursorX(cursorX)
|
|
self.cursorX = cursorX
|
|
return self
|
|
end
|
|
|
|
--- Gets the Cursor Y position (line number)
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return number
|
|
function TextBox:getCursorY()
|
|
return self.cursorY
|
|
end
|
|
|
|
--- Sets the Cursor Y position (line number)
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param cursorY number
|
|
---@return Element
|
|
function TextBox:setCursorY(cursorY)
|
|
self.cursorY = cursorY
|
|
return self
|
|
end
|
|
|
|
--- Gets the Horizontal scroll offset
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return number
|
|
function TextBox:getScrollX()
|
|
return self.scrollX
|
|
end
|
|
|
|
--- Sets the Horizontal scroll offset
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param scrollX number
|
|
---@return Element
|
|
function TextBox:setScrollX(scrollX)
|
|
self.scrollX = scrollX
|
|
return self
|
|
end
|
|
|
|
--- Gets the Vertical scroll offset
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return number
|
|
function TextBox:getScrollY()
|
|
return self.scrollY
|
|
end
|
|
|
|
--- Sets the Vertical scroll offset
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param scrollY number
|
|
---@return Element
|
|
function TextBox:setScrollY(scrollY)
|
|
self.scrollY = scrollY
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether text can be edited
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return boolean
|
|
function TextBox:getEditable()
|
|
return self.editable
|
|
end
|
|
|
|
--- Sets the Whether text can be edited
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param editable boolean
|
|
---@return Element
|
|
function TextBox:setEditable(editable)
|
|
self.editable = editable
|
|
return self
|
|
end
|
|
|
|
--- Gets the Syntax highlighting patterns
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return table
|
|
function TextBox:getSyntaxPatterns()
|
|
return self.syntaxPatterns
|
|
end
|
|
|
|
--- Sets the Syntax highlighting patterns
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param syntaxPatterns table
|
|
---@return Element
|
|
function TextBox:setSyntaxPatterns(syntaxPatterns)
|
|
self.syntaxPatterns = syntaxPatterns
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of the cursor
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@return number
|
|
function TextBox:getCursorColor()
|
|
return self.cursorColor
|
|
end
|
|
|
|
--- Sets the Color of the cursor
|
|
---@generic Element: TextBox
|
|
---@param self Element
|
|
---@param cursorColor number
|
|
---@return Element
|
|
function TextBox:setCursorColor(cursorColor)
|
|
self.cursorColor = cursorColor
|
|
return self
|
|
end
|
|
|
|
|
|
---@class Tree
|
|
---@field nodes table
|
|
---@field expandedNodes table
|
|
---@field scrollOffset number
|
|
---@field horizontalOffset number
|
|
---@field nodeColor color
|
|
---@field selectedColor color
|
|
local Tree = {}
|
|
|
|
--- Gets the The tree structure containing node objects with {text, children} properties
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@return table
|
|
function Tree:getNodes()
|
|
return self.nodes
|
|
end
|
|
|
|
--- Sets the The tree structure containing node objects with {text, children} properties
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@param nodes table
|
|
---@return Element
|
|
function Tree:setNodes(nodes)
|
|
self.nodes = nodes
|
|
return self
|
|
end
|
|
|
|
--- Gets the Table of nodes that are currently expanded
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@return table
|
|
function Tree:getExpandedNodes()
|
|
return self.expandedNodes
|
|
end
|
|
|
|
--- Sets the Table of nodes that are currently expanded
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@param expandedNodes table
|
|
---@return Element
|
|
function Tree:setExpandedNodes(expandedNodes)
|
|
self.expandedNodes = expandedNodes
|
|
return self
|
|
end
|
|
|
|
--- Gets the Current vertical scroll position
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@return number
|
|
function Tree:getScrollOffset()
|
|
return self.scrollOffset
|
|
end
|
|
|
|
--- Sets the Current vertical scroll position
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@param scrollOffset number
|
|
---@return Element
|
|
function Tree:setScrollOffset(scrollOffset)
|
|
self.scrollOffset = scrollOffset
|
|
return self
|
|
end
|
|
|
|
--- Gets the Current horizontal scroll position
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@return number
|
|
function Tree:getHorizontalOffset()
|
|
return self.horizontalOffset
|
|
end
|
|
|
|
--- Sets the Current horizontal scroll position
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@param horizontalOffset number
|
|
---@return Element
|
|
function Tree:setHorizontalOffset(horizontalOffset)
|
|
self.horizontalOffset = horizontalOffset
|
|
return self
|
|
end
|
|
|
|
--- Gets the Color of unselected nodes
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@return color
|
|
function Tree:getNodeColor()
|
|
return self.nodeColor
|
|
end
|
|
|
|
--- Sets the Color of unselected nodes
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@param nodeColor color
|
|
---@return Element
|
|
function Tree:setNodeColor(nodeColor)
|
|
self.nodeColor = nodeColor
|
|
return self
|
|
end
|
|
|
|
--- Gets the Background color of selected node
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@return color
|
|
function Tree:getSelectedColor()
|
|
return self.selectedColor
|
|
end
|
|
|
|
--- Sets the Background color of selected node
|
|
---@generic Element: Tree
|
|
---@param self Element
|
|
---@param selectedColor color
|
|
---@return Element
|
|
function Tree:setSelectedColor(selectedColor)
|
|
self.selectedColor = selectedColor
|
|
return self
|
|
end
|
|
|
|
|
|
---@class VisualElement
|
|
---@field x number
|
|
---@field y number
|
|
---@field z number
|
|
---@field width number
|
|
---@field height number
|
|
---@field background color
|
|
---@field foreground color
|
|
---@field clicked boolean
|
|
---@field hover boolean
|
|
---@field backgroundEnabled boolean
|
|
---@field focused boolean
|
|
---@field visible boolean
|
|
---@field ignoreOffset boolean
|
|
local VisualElement = {}
|
|
|
|
--- Gets the The horizontal position relative to parent
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return number
|
|
function VisualElement:getX()
|
|
return self.x
|
|
end
|
|
|
|
--- Sets the The horizontal position relative to parent
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param x number
|
|
---@return Element
|
|
function VisualElement:setX(x)
|
|
self.x = x
|
|
return self
|
|
end
|
|
|
|
--- Gets the The vertical position relative to parent
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return number
|
|
function VisualElement:getY()
|
|
return self.y
|
|
end
|
|
|
|
--- Sets the The vertical position relative to parent
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param y number
|
|
---@return Element
|
|
function VisualElement:setY(y)
|
|
self.y = y
|
|
return self
|
|
end
|
|
|
|
--- Gets the The z-index for layering elements
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return number
|
|
function VisualElement:getZ()
|
|
return self.z
|
|
end
|
|
|
|
--- Sets the The z-index for layering elements
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param z number
|
|
---@return Element
|
|
function VisualElement:setZ(z)
|
|
self.z = z
|
|
return self
|
|
end
|
|
|
|
--- Gets the The width of the element
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return number
|
|
function VisualElement:getWidth()
|
|
return self.width
|
|
end
|
|
|
|
--- Sets the The width of the element
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param width number
|
|
---@return Element
|
|
function VisualElement:setWidth(width)
|
|
self.width = width
|
|
return self
|
|
end
|
|
|
|
--- Gets the The height of the element
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return number
|
|
function VisualElement:getHeight()
|
|
return self.height
|
|
end
|
|
|
|
--- Sets the The height of the element
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param height number
|
|
---@return Element
|
|
function VisualElement:setHeight(height)
|
|
self.height = height
|
|
return self
|
|
end
|
|
|
|
--- Gets the The background color
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return color
|
|
function VisualElement:getBackground()
|
|
return self.background
|
|
end
|
|
|
|
--- Sets the The background color
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param background color
|
|
---@return Element
|
|
function VisualElement:setBackground(background)
|
|
self.background = background
|
|
return self
|
|
end
|
|
|
|
--- Gets the The text/foreground color
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return color
|
|
function VisualElement:getForeground()
|
|
return self.foreground
|
|
end
|
|
|
|
--- Sets the The text/foreground color
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param foreground color
|
|
---@return Element
|
|
function VisualElement:setForeground(foreground)
|
|
self.foreground = foreground
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the element is currently clicked
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return boolean
|
|
function VisualElement:getClicked()
|
|
return self.clicked
|
|
end
|
|
|
|
--- Sets the Whether the element is currently clicked
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param clicked boolean
|
|
---@return Element
|
|
function VisualElement:setClicked(clicked)
|
|
self.clicked = clicked
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the mouse is currently hover over the element (Craftos-PC only)
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return boolean
|
|
function VisualElement:getHover()
|
|
return self.hover
|
|
end
|
|
|
|
--- Sets the Whether the mouse is currently hover over the element (Craftos-PC only)
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param hover boolean
|
|
---@return Element
|
|
function VisualElement:setHover(hover)
|
|
self.hover = hover
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether to render the background
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return boolean
|
|
function VisualElement:getBackgroundEnabled()
|
|
return self.backgroundEnabled
|
|
end
|
|
|
|
--- Sets the Whether to render the background
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param backgroundEnabled boolean
|
|
---@return Element
|
|
function VisualElement:setBackgroundEnabled(backgroundEnabled)
|
|
self.backgroundEnabled = backgroundEnabled
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the element has input focus
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return boolean
|
|
function VisualElement:getFocused()
|
|
return self.focused
|
|
end
|
|
|
|
--- Sets the Whether the element has input focus
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param focused boolean
|
|
---@return Element
|
|
function VisualElement:setFocused(focused)
|
|
self.focused = focused
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether the element is visible
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return boolean
|
|
function VisualElement:getVisible()
|
|
return self.visible
|
|
end
|
|
|
|
--- Sets the Whether the element is visible
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param visible boolean
|
|
---@return Element
|
|
function VisualElement:setVisible(visible)
|
|
self.visible = visible
|
|
return self
|
|
end
|
|
|
|
--- Gets the Whether to ignore the parent's offset
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@return boolean
|
|
function VisualElement:getIgnoreOffset()
|
|
return self.ignoreOffset
|
|
end
|
|
|
|
--- Sets the Whether to ignore the parent's offset
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param ignoreOffset boolean
|
|
---@return Element
|
|
function VisualElement:setIgnoreOffset(ignoreOffset)
|
|
self.ignoreOffset = ignoreOffset
|
|
return self
|
|
end
|
|
|
|
--- {button, x, y} Fired on mouse click
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnClick(callback)
|
|
return self
|
|
end
|
|
|
|
--- {button, x, y} Fired on mouse button release
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnMouseUp(callback)
|
|
return self
|
|
end
|
|
|
|
--- {button, x, y} Fired when mouse leaves while clicked
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnRelease(callback)
|
|
return self
|
|
end
|
|
|
|
--- {button, x, y} Fired when mouse moves while clicked
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnDrag(callback)
|
|
return self
|
|
end
|
|
|
|
--- {direction, x, y} Fired on mouse scroll
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnScroll(callback)
|
|
return self
|
|
end
|
|
|
|
--- {-} Fired when mouse enters element
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnEnter(callback)
|
|
return self
|
|
end
|
|
|
|
--- {-} Fired when mouse leaves element
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnLeave(callback)
|
|
return self
|
|
end
|
|
|
|
--- {-} Fired when element receives focus
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnFocus(callback)
|
|
return self
|
|
end
|
|
|
|
--- {-} Fired when element loses focus
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnBlur(callback)
|
|
return self
|
|
end
|
|
|
|
--- {key} Fired on key press
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnKey(callback)
|
|
return self
|
|
end
|
|
|
|
--- {key} Fired on key release
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnKeyUp(callback)
|
|
return self
|
|
end
|
|
|
|
--- {char} Fired on character input
|
|
---@generic Element: VisualElement
|
|
---@param self Element
|
|
---@param callback function
|
|
---@return Element
|
|
function VisualElement:onOnChar(callback)
|
|
return self
|
|
end
|