Files
Basalt2/docs/references/elements/Button.md
2025-02-16 16:54:18 +00:00

1.3 KiB

local elementManager = require("elementManager") local VisualElement = elementManager.getElement("VisualElement") local getCenteredPosition = require("libraries/utils").getCenteredPosition

---@class Button : VisualElement local Button = setmetatable({}, VisualElement) Button.__index = Button

---@property text string Button Button text Button.defineProperty(Button, "text", {default = "Button", type = "string", canTriggerRender = true})

---@event mouse_click The event that is triggered when the button is clicked Button.listenTo(Button, "mouse_click") Button.listenTo(Button, "mouse_up")

--- Creates a new Button instance --- @return table self The created instance function Button.new() local self = setmetatable({}, Button):__init() self.set("width", 10) self.set("height", 3) self.set("z", 5) return self end

--- Initializes the Button instance --- @param props table The properties to initialize the element with --- @param basalt table The basalt instance function Button:init(props, basalt) VisualElement.init(self, props, basalt) self.set("type", "Button") end

--- Renders the Button function Button:render() VisualElement.render(self) local text = self.get("text") local xO, yO = getCenteredPosition(text, self.get("width"), self.get("height")) self:textFg(xO, yO, text, self.get("foreground")) end

return Button