---@meta ---@class Button : Frame Button = { --- Clicks the button programmatically. --- @param button? string Optional. The mouse button to simulate ("LeftButton", "RightButton", "MiddleButton"). --- @param down? boolean Optional. Whether the button is being pressed down. --- @example --- myButton:Click() Click = function(self, button, down) end, --- Gets the button state. --- @return string state The button state ("PUSHED", "NORMAL"). --- @example --- local state = myButton:GetButtonState() GetButtonState = function(self) end, --- Gets the text displayed on the button. --- @return string text The button text. --- @example --- local text = myButton:GetText() GetText = function(self) end, --- Gets the texture for the specified state. --- @param stateIndex number The state index. --- @return Texture texture The state texture. --- @example --- local texture = myButton:GetTextureStateTexture(1) GetTextureStateTexture = function(self, stateIndex) end, --- Enables or disables the button. --- @param enabled boolean True to enable the button. --- @example --- myButton:Enable() Enable = function(self, enabled) end, --- Disables the button. --- @example --- myButton:Disable() Disable = function(self) end, --- Returns whether the button is enabled. --- @return boolean enabled True if the button is enabled. --- @example --- local enabled = myButton:IsEnabled() IsEnabled = function(self) end, --- Sets whether the button is locked. --- @param locked boolean True to lock the button. --- @example --- myButton:LockHighlight(true) LockHighlight = function(self, locked) end, --- Registers the button for drag events. --- @param ... string The mouse buttons to register ("LeftButton", "RightButton", "MiddleButton"). --- @example --- myButton:RegisterForDrag("LeftButton", "RightButton") RegisterForDrag = function(self, ...) end, --- Sets the button state. --- @param state string The state to set ("PUSHED", "NORMAL"). --- @example --- myButton:SetButtonState("PUSHED") SetButtonState = function(self, state) end, --- Sets whether the button is enabled. --- @param enabled boolean True to enable the button. --- @example --- myButton:SetEnabled(true) SetEnabled = function(self, enabled) end, --- Sets the font string used for the button text. --- @param fontString FontString The font string to use. --- @example --- myButton:SetFontString(myFontString) SetFontString = function(self, fontString) end, --- Sets the button text. --- @param text string The text to display. --- @example --- myButton:SetText("Click Me") SetText = function(self, text) end, --- Sets the texture for a button state. --- @param texture Texture|string The texture or texture path. --- @param stateIndex number The state index. --- @example --- myButton:SetTextureStateTexture(myTexture, 1) SetTextureStateTexture = function(self, texture, stateIndex) end, --- Unlocks the button highlight. --- @example --- myButton:UnlockHighlight() UnlockHighlight = function(self) end, }