---@meta ---@class Frame : Region Frame = { --- Aborts the current drag operation. --- @example --- myFrame:AbortDrag() AbortDrag = function(self) end, --- Returns true if secure frame attributes can be changed. --- @return boolean canChange True if attributes can be changed. --- @example --- local canChange = myFrame:CanChangeAttribute() CanChangeAttribute = function(self) end, --- Creates and returns a FontString as a child of this Frame. --- @param self Frame --- @param name string? Optional. The name of the FontString. --- @param layer string? Optional. The layer of the FontString. --- @param inheritsFrom string? Optional. The name of the FontString to inherit from. --- @return FontString fontString The created FontString. --- @example --- local myFontString = myFrame:CreateFontString("MyFontString", "OVERLAY") CreateFontString = function(self, name, layer, inheritsFrom) end, --- Creates and returns a Texture as a child of this Frame. --- @param self Frame --- @param name string? Optional. The name of the Texture. --- @param layer string? Optional. The layer of the Texture. --- @param inheritsFrom string? Optional. The name of the Texture to inherit from. --- @return Texture texture The created Texture. --- @example --- local myTexture = myFrame:CreateTexture("MyTexture", "BACKGROUND") CreateTexture = function(self, name, layer, inheritsFrom) end, --- Creates a title region for the frame if it does not have one. --- @param self Frame --- @return Region titleRegion The created title region. --- @example --- myFrame:CreateTitleRegion() CreateTitleRegion = function(self) end, --- Disables rendering of "regions" (fontstrings, textures) in the specified draw layer. --- @param self Frame --- @param layer string The layer to disable. --- @example --- myFrame:DisableDrawLayer("BORDER") DisableDrawLayer = function(self, layer) end, --- Enables rendering of "regions" (fontstrings, textures) in the specified draw layer. --- @param self Frame --- @param layer string The layer to enable. --- @example --- myFrame:EnableDrawLayer("BORDER") EnableDrawLayer = function(self, layer) end, --- Sets the opacity of the frame. --- @param self Frame --- @param alpha number The opacity value (0 to 1). --- @example --- myFrame:SetAlpha(0.5) -- Set to 50% opacity SetAlpha = function(self, alpha) end, --- Returns the frame's numeric identifier. --- @param self Frame --- @return number id The frame's ID. --- @example --- local id = myFrame:GetID() GetID = function(self) end, --- Shows this object (it will appear if its parent is visible). --- @example --- myFrame:Show() Show = function(self) end, --- Hides this object (it and all of its children will disappear). --- @example --- myFrame:Hide() Hide = function(self) end, --- Starts moving the frame via mouse movement. --- @example --- myFrame:StartMoving() StartMoving = function(self) end, --- Stops moving the frame. --- @example --- myFrame:StopMovingOrSizing() StopMovingOrSizing = function(self) end, --- Sets whether the frame can be moved. --- @param self Frame --- @param movable boolean True to allow moving. --- @example --- myFrame:SetMovable(true) SetMovable = function(self, movable) end, --- Sets the frame's level. --- @param self Frame --- @param level number The level to set. --- @example --- myFrame:SetFrameLevel(5) SetFrameLevel = function(self, level) end, --- Sets the frame's strata. --- @param self Frame --- @param strata string The strata to set (e.g., "BACKGROUND", "MEDIUM", "HIGH"). --- @example --- myFrame:SetFrameStrata("HIGH") SetFrameStrata = function(self, strata) end, --- Registers the frame for a specific event. --- @param self Frame --- @param eventName string The name of the event to register. --- @example --- myFrame:RegisterEvent("PLAYER_LOGIN") RegisterEvent = function(self, eventName) end, --- Unregisters an event from the frame. --- @param self Frame --- @param eventName string The name of the event to unregister. --- @example --- myFrame:UnregisterEvent("PLAYER_LOGIN") UnregisterEvent = function(self, eventName) end, --- Sets the backdrop of the frame according to the specification provided. --- @param self Frame --- @param backdropTable table? Optional. A table defining the backdrop. --- @example --- myFrame:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background"}) SetBackdrop = function(self, backdropTable) end, --- Sets the frame's backdrop color. --- @param self Frame --- @param r number The red component of the color. --- @param g number The green component of the color. --- @param b number The blue component of the color. --- @param a number? Optional. The alpha component of the color. --- @example --- myFrame:SetBackdropColor(0, 0, 0, 0.5) -- Set to semi-transparent black SetBackdropColor = function(self, r, g, b, a) end, --- Sets the frame's backdrop border color. --- @param self Frame --- @param r number The red component of the border color. --- @param g number The green component of the border color. --- @param b number The blue component of the border color. --- @param a number? Optional. The alpha component of the border color. --- @example --- myFrame:SetBackdropBorderColor(1, 1, 1) -- Set to white SetBackdropBorderColor = function(self, r, g, b, a) end, --- Sets whether this frame will get keyboard input. --- @param self Frame --- @param enableFlag boolean True to enable keyboard input. --- @example --- myFrame:EnableKeyboard(true) EnableKeyboard = function(self, enableFlag) end, --- Sets whether this frame will get mouse input. --- @param self Frame --- @param enableFlag boolean True to enable mouse input. --- @example --- myFrame:EnableMouse(true) EnableMouse = function(self, enableFlag) end, --- Sets whether this frame will get mouse wheel notifications. --- @param self Frame --- @param enableFlag boolean True to enable mouse wheel notifications. --- @example --- myFrame:EnableMouseWheel(true) EnableMouseWheel = function(self, enableFlag) end, --- Sets the height of the object. --- @param self Frame --- @param height number The height to set. --- @example --- myFrame:SetHeight(200) SetHeight = function(self, height) end, --- Sets the width of the object. --- @param self Frame --- @param width number The width to set. --- @example --- myFrame:SetWidth(300) SetWidth = function(self, width) end, --- Sets the size of the frame. --- @param self Frame --- @param width number The width to set. --- @param height number The height to set. --- @example --- myFrame:SetSize(300, 200) SetSize = function(self, width, height) end, --- Sets the parent for this frame. --- @param self Frame|string The parent frame or name of the parent frame. --- @example --- myFrame:SetParent(otherFrame) SetParent = function(self, parent) end, --- Returns the first existing attribute of (prefix..name..suffix), ("*"..name..suffix), (prefix..name.."*"), ("*"..name.."*"), (name). --- @param self Frame --- @param prefix string The prefix to use. --- @param name string The name of the attribute. --- @param suffix string The suffix to use. --- @return any attribute The found attribute. --- @example --- local attr = myFrame:GetAttribute("prefix", "name", "suffix") GetAttribute = function(self, prefix, name, suffix) end, --- Creates and returns a backdrop table suitable for use in SetBackdrop. --- @param self Frame --- @return table backdropTable The backdrop table. --- @example --- local backdrop = myFrame:GetBackdrop() GetBackdrop = function(self) end, --- Gets the frame's backdrop border color (r, g, b, a). --- @param self Frame --- @return number r The red component. --- @return number g The green component. --- @return number b The blue component. --- @return number a The alpha component. --- @example --- local r, g, b, a = myFrame:GetBackdropBorderColor() GetBackdropBorderColor = function(self) end, --- Gets the frame's backdrop color (r, g, b, a). --- @param self Frame --- @return number r The red component. --- @return number g The green component. --- @return number b The blue component. --- @return number a The alpha component. --- @example --- local r, g, b, a = myFrame:GetBackdropColor() GetBackdropColor = function(self) end, --- Gets the list of "children" (frames and things derived from frames) of this frame. --- @param self Frame --- @return table children The list of child frames. --- @example --- local children = myFrame:GetChildren() GetChildren = function(self) end, --- Gets the modifiers to the frame's rectangle used for clamping the frame to screen. --- @param self Frame --- @return number left The left modifier. --- @return number right The right modifier. --- @return number top The top modifier. --- @return number bottom The bottom modifier. --- @example --- local left, right, top, bottom = myFrame:GetClampRectInsets() GetClampRectInsets = function(self) end, --- Gets the effective alpha of a frame. --- @param self Frame --- @return number alpha The effective alpha. --- @example --- local alpha = myFrame:GetEffectiveAlpha() GetEffectiveAlpha = function(self) end, --- Gets the scale factor of this object relative to the root window. --- @param self Frame --- @return number scale The effective scale. --- @example --- local scale = myFrame:GetEffectiveScale() GetEffectiveScale = function(self) end, --- Gets the level of this frame. --- @param self Frame --- @return number level The frame level. --- @example --- local level = myFrame:GetFrameLevel() GetFrameLevel = function(self) end, --- Gets the strata of this frame. --- @param self Frame --- @return string strata The frame strata. --- @example --- local strata = myFrame:GetFrameStrata() GetFrameStrata = function(self) end, --- Gets the type of this frame. --- @param self Frame --- @return string frameType The frame type. --- @example --- local frameType = myFrame:GetFrameType() GetFrameType = function(self) end, --- Gets the frame's hit rectangle inset distances (l, r, t, b). --- @param self Frame --- @return number left The left inset. --- @return number right The right inset. --- @return number top The top inset. --- @return number bottom The bottom inset. --- @example --- local left, right, top, bottom = myFrame:GetHitRectInsets() GetHitRectInsets = function(self) end, --- Gets the frame's maximum allowed resize bounds (w, h). --- @param self Frame --- @return number maxWidth The maximum width. --- @return number maxHeight The maximum height. --- @example --- local maxWidth, maxHeight = myFrame:GetMaxResize() GetMaxResize = function(self) end, --- Gets the frame's minimum allowed resize bounds (w, h). --- @param self Frame --- @return number minWidth The minimum width. --- @return number minHeight The minimum height. --- @example --- local minWidth, minHeight = myFrame:GetMinResize() GetMinResize = function(self) end, --- Gets the number of "children" (frames and things derived from frames) this frame has. --- @param self Frame --- @return number numChildren The number of children. --- @example --- local numChildren = myFrame:GetNumChildren() GetNumChildren = function(self) end, --- Returns the number of "regions" (fontstrings, textures) belonging to this frame. --- @param self Frame --- @return number numRegions The number of regions. --- @example --- local numRegions = myFrame:GetNumRegions() GetNumRegions = function(self) end, --- Returns the "regions" (fontstrings, textures) of the frame (multiple return values) belonging to this frame. --- @param self Frame --- @return ... any regions The regions belonging to this frame. --- @example --- local regions = {myFrame:GetRegions()} GetRegions = function(self) end, --- Gets the scale factor of this object relative to its parent. --- @param self Frame --- @return number scale The scale factor. --- @example --- local scale = myFrame:GetScale() GetScale = function(self) end, --- Gets the function for one of this frame's handlers. --- @param self Frame --- @param handler string The handler name. --- @return function handlerFunction The handler function. --- @example --- local handlerFunction = myFrame:GetScript("OnClick") GetScript = function(self, handler) end, --- Returns true if the frame can be given a handler of the specified type. --- @param self Frame --- @param handler string The handler name. --- @return boolean canHaveHandler True if it can have the handler. --- @example --- local canHaveHandler = myFrame:HasScript("OnClick") HasScript = function(self, handler) end, --- Hooks a secure frame script. --- @param self Frame --- @param handler string The handler name. --- @param func function The function to hook. --- @example --- myFrame:HookScript("OnClick", function() print("Clicked!") end) HookScript = function(self, handler, func) end, --- Sets whether the frame is prohibited from being dragged off screen. --- @param self Frame --- @param clamped boolean True to enable clamping. --- @example --- myFrame:SetClampedToScreen(true) SetClampedToScreen = function(self, clamped) end, --- Modifies the frame's rectangle used to prevent dragging offscreen. --- @param self Frame --- @param left number The left inset. --- @param right number The right inset. --- @param top number The top inset. --- @param bottom number The bottom inset. --- @example --- myFrame:SetClampRectInsets(5, 5, 5, 5) SetClampRectInsets = function(self, left, right, top, bottom) end, --- Sets the inset distances for the frame's hit rectangle. --- @param self Frame --- @param left number The left inset. --- @param right number The right inset. --- @param top number The top inset. --- @param bottom number The bottom inset. --- @example --- myFrame:SetHitRectInsets(5, 5, 5, 5) SetHitRectInsets = function(self, left, right, top, bottom) end, --- Sets the ID of this frame. --- @param self Frame --- @param id number The ID to set. --- @example --- myFrame:SetID(1) SetID = function(self, id) end, --- Sets the maximum dimensions this frame can be resized to. --- @param self Frame --- @param maxWidth number The maximum width. --- @param maxHeight number The maximum height. --- @example --- myFrame:SetMaxResize(800, 600) SetMaxResize = function(self, maxWidth, maxHeight) end, --- Sets the minimum dimensions this frame can be resized to. --- @param self Frame --- @param minWidth number The minimum width. --- @param minHeight number The minimum height. --- @example --- myFrame:SetMinResize(200, 150) SetMinResize = function(self, minWidth, minHeight) end, --- Sets whether the frame can be resized. --- @param self Frame --- @param isResizable boolean True to make the frame resizable. --- @example --- myFrame:SetResizable(true) SetResizable = function(self, isResizable) end, --- Sets the scale factor of this frame relative to its parent. --- @param self Frame --- @param scale number The scale factor to set. --- @example --- myFrame:SetScale(1.5) SetScale = function(self, scale) end, --- Sets the function to use for a handler on this frame. --- @param self Frame --- @param handler string The handler name. --- @param func function The function to set. --- @example --- myFrame:SetScript("OnClick", function() print("Clicked!") end) SetScript = function(self, handler, func) end, --- Sets whether the frame should raise itself when clicked. --- @param self Frame --- @param isTopLevel boolean True to set as top-level. --- @example --- myFrame:SetToplevel(true) SetToplevel = function(self, isTopLevel) end, --- Sets whether the frame has been relocated by the user. --- @param self Frame --- @param isUserPlaced boolean True to mark as user-placed. --- @example --- myFrame:SetUserPlaced(true) SetUserPlaced = function(self, isUserPlaced) end, --- Starts sizing this frame using the specified anchor point. --- @param self Frame --- @param point string The anchor point to use. --- @example --- myFrame:StartSizing("TOPLEFT") StartSizing = function(self, point) end, --- Indicates that this frame should no longer be notified when any events occur. --- @param self Frame --- @example --- myFrame:UnregisterAllEvents() UnregisterAllEvents = function(self) end, --- Get the depth of the frame. --- @param self Frame --- @return number depth The depth of the frame. --- @example --- local depth = myFrame:GetDepth() GetDepth = function(self) end, --- Returns the effective depth of the frame. --- @param self Frame --- @return number effectiveDepth The effective depth. --- @example --- local effectiveDepth = myFrame:GetEffectiveDepth() GetEffectiveDepth = function(self) end, --- Ignores the depth of the frame. --- @param self Frame --- @param ignoreFlag boolean True to ignore depth. --- @example --- myFrame:IgnoreDepth(true) IgnoreDepth = function(self, ignoreFlag) end, --- Gets whether the frame is prohibited from being dragged off screen. --- @param self Frame --- @return boolean isClamped True if clamped to screen. --- @example --- local isClamped = myFrame:IsClampedToScreen() IsClampedToScreen = function(self) end, --- Returns true if the given event is registered to the frame. --- @param self Frame --- @param event string The event to check. --- @return boolean isRegistered True if the event is registered. --- @example --- local isRegistered = myFrame:IsEventRegistered("EVENT_NAME") IsEventRegistered = function(self, event) end, --- Determine if this frame is of the specified type, or a subclass of that type. --- @param self Frame --- @param type string The type to check. --- @return boolean isType True if it matches the type. --- @example --- local isType = myFrame:IsFrameType("FrameType") IsFrameType = function(self, type) end, --- Get whether this frame is ignoring depth. --- @param self Frame --- @return boolean isIgnoring True if ignoring depth. --- @example --- local isIgnoring = myFrame:IsIgnoringDepth() IsIgnoringDepth = function(self) end, --- Get whether this frame will get keyboard input. --- @param self Frame --- @return boolean isEnabled True if keyboard input is enabled. --- @example --- local isEnabled = myFrame:IsKeyboardEnabled() IsKeyboardEnabled = function(self) end, --- Get whether this frame will get mouse input. --- @param self Frame --- @return boolean isEnabled True if mouse input is enabled. --- @example --- local isEnabled = myFrame:IsMouseEnabled() IsMouseEnabled = function(self) end, --- Get whether this frame will get mouse wheel notifications. --- @param self Frame --- @return boolean isEnabled True if mouse wheel notifications are enabled. --- @example --- local isEnabled = myFrame:IsMouseWheelEnabled() IsMouseWheelEnabled = function(self) end, --- Determine if the frame can be moved. --- @param self Frame --- @return boolean isMovable True if movable. --- @example --- local isMovable = myFrame:IsMovable() IsMovable = function(self) end, --- Determine if the frame can be resized. --- @param self Frame --- @return boolean isResizable True if resizable. --- @example --- local isResizable = myFrame:IsResizable() IsResizable = function(self) end, --- Get whether the frame is set as toplevel. --- @param self Frame --- @return boolean isTopLevel True if toplevel. --- @example --- local isTopLevel = myFrame:IsToplevel() IsToplevel = function(self) end, --- Determine if this frame has been relocated by the user. --- @param self Frame --- @return boolean isUserPlaced True if user placed. --- @example --- local isUserPlaced = myFrame:IsUserPlaced() IsUserPlaced = function(self) end, --- Lower this frame behind other frames. --- @param self Frame --- @example --- myFrame:Lower() Lower = function(self) end, --- Raise this frame above other frames. --- @param self Frame --- @example --- myFrame:Raise() Raise = function(self) end, --- Register this frame to receive all events (For debugging purposes only!). --- @param self Frame --- @example --- myFrame:RegisterAllEvents() RegisterAllEvents = function(self) end, --- Indicate that this frame should be notified of drag events for the specified buttons. --- @param self Frame --- @param buttonType string The button type(s) to register for. --- @example --- myFrame:RegisterForDrag("LeftButton") RegisterForDrag = function(self, buttonType) end, }