Widget API

Widgets are graphical elements created in Lua with () or via XML. Widget objects can be extended with templates, mixins and intrinsics. The user interface may be inspected with /fstack, /tinspect and development addons like DevTool and Spew.
Widget_Hierarchy.png|UI.xsd, Documentation
API_framestack_02.png|/fstack and /tinspect
==Abstract Classes==
===FrameScriptObject===
===Object===
===ScriptRegion===
===Region===
===TextureBase===
==Textures==
===Texture===
===MaskTexture===
===Line===
==Fonts==
===Font===
===FontString===
==Animations==
===AnimationGroup===
===Animation===
===Alpha===
===FlipBook===
===Path===
===ControlPoint===
===Rotation===
===Scale===
===TextureCoordTranslation===
===Translation===
==Frames==
===Frame===
===Button===
===CheckButton===
===Model===
===PlayerModel===
PlayerModel is officially documented as CharacterModelBase.
===DressUpModel===
===ColorSelect===
===Cooldown===
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===EditBox===
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===GameTooltip===
In patch 10.0.2 any addons that are creating GameTooltip frames should now ensure they inherit GameTooltipTemplate. This template has been updated to include the new GameTooltipDataMixin mixin, which provides automatic updates of tooltip contents from the event as well as a subset of backwards-compatible methods for retrieving or populating tooltip contents from the new C_TooltipInfo APIs.
CreateFrame("GameTooltip") -- inherits `Frame`
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
CreateFrame("GameTooltip", nil, nil, "GameTooltipTemplate") -- includes `GameTooltipDataMixin`
See also C_TooltipInfo
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===MessageFrame===
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===Minimap===
unique widget
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===MovieFrame===
: 
: 
: 
: 
===ScrollFrame===
: 
: 
: 
: 
: 
: 
: 
: 
: 
===SimpleHTML===
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===Slider===
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
===StatusBar===
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
==Undocumented==
These widget types have yet to be documented on the wiki.
===CinematicModel===
CinematicModel was added in Patch 6.0.2 and has all the methods from PlayerModel, plus the following:
: CinematicModel:EquipItem(itemID)
: CinematicModel:InitializeCamera()
: CinematicModel:InitializePanCamera()
: CinematicModel:SetAnimOffset(offset)
: CinematicModel:SetCreatureData(creatureID)
: CinematicModel:SetFacingLeft(isFacingLeft)
: CinematicModel:SetFadeTimes(fadeIn, fadeOut)
: CinematicModel:SetHeightFactor(factor)
: CinematicModel:SetJumpInfo(length, height)
: CinematicModel:SetPanDistance(scale)
: CinematicModel:SetSpellVisualKit(kitID)
: CinematicModel:SetTargetDistance(scale)
: CinematicModel:StartPan(panType, timeInSeconds[, doFade, visualKitID])
: CinematicModel:StopPan()
: CinematicModel:UnequipItems()
===TabardModel===
TabardModel has all the methods from PlayerModel, plus the following:
: TabardModel:CanSaveTabardNow() - Indicate if the tabard can be saved.
: TabardModel:CycleVariation(variationIndex, delta)
: TabardModel:GetLowerBackgroundFileName()
: TabardModel:GetLowerEmblemFile()
: TabardModel:GetLowerEmblemTexture(textureName)
: TabardModel:GetUpperBackgroundFileName()
: TabardModel:GetUpperEmblemFile()
: TabardModel:GetUpperEmblemTexture(textureName)
: TabardModel:InitializeTabardColors()
: TabardModel:Save() - Save the tabard.
===ModelScene===
ModelScene has all the methods from Frame, plus the following:
: ModelScene:ClearFog()
: ModelScene:CreateActor([name, template])
: ModelScene:GetActorAtIndex(actorIndex)
: ModelScene:GetCameraFarClip()
: ModelScene:GetCameraFieldOfView()
: ModelScene:GetCameraForward()
: ModelScene:GetCameraNearClip()
: ModelScene:GetCameraPosition()
: ModelScene:GetCameraRight()
: ModelScene:GetCameraUp()
: ModelScene:GetDrawLayer()
: ModelScene:GetFogColor()
: ModelScene:GetFogFar()
: ModelScene:GetFogNear()
: ModelScene:GetItemTransmogInfo(slotID)
: ModelScene:GetItemTransmogInfoList()
: ModelScene:GetLightAmbientColor()
: ModelScene:GetLightDiffuseColor()
: ModelScene:GetLightDirection()
: ModelScene:GetLightPosition()
: ModelScene:GetLightType()
: ModelScene:GetNumActors()
: ModelScene:GetViewInsets()
: ModelScene:GetViewTranslation()
: ModelScene:IsLightVisible()
: ModelScene:Project3DPointTo2D(x, y, z)
: ModelScene:SetCameraFarClip(value)
: ModelScene:SetCameraFieldOfView(radians)
: ModelScene:SetCameraNearClip(value)
: ModelScene:SetCameraOrientationByAxisVectors(forwardX, forwardY, forwardZ, rightX, rightY, rightZ, upX, upY, upZ) each vector must be orthonormal
: ModelScene:SetCameraOrientationByYawPitchRoll(yaw, pitch, roll)
: ModelScene:SetCameraPosition(x, y, z)
: ModelScene:SetDrawLayer(layer)
: ModelScene:SetFogColor(r, g, b)
: ModelScene:SetFogFar(value)
: ModelScene:SetFogNear(value)
: ModelScene:SetItemTransmogInfo(itemTransmogInfo [, weaponSlotID])
: ModelScene:SetLightAmbientColor(r, g, b)
: ModelScene:SetLightDiffuseColor(r, g, b)
: ModelScene:SetLightDirection(x, y, z)
: ModelScene:SetLightPosition(x, y, z)
: ModelScene:SetLightType(LE_MODEL_LIGHT_TYPE)
: ModelScene:SetLightVisible()
: ModelScene:SetPaused(paused, [affectsGlobalPause])
: ModelScene:SetViewInsets(l, r, t, b)
: ModelScene:SetViewTranslation(x, y)
: ModelScene:TakeActor()
===ModelSceneActor===
ModelSceneActor can be created from ModelScene:CreateActor. It has the following methods:
: ModelSceneActor:AttachToMount()
: ModelSceneActor:CalculateMountScale()
: ModelSceneActor:ClearModel()
: ModelSceneActor:Dress()
: ModelSceneActor:GetActiveBoundingBox()
: ModelSceneActor:GetAlpha()
: ModelSceneActor:GetAnimation()
: ModelSceneActor:GetAnimationBlendOperation()
: ModelSceneActor:GetAnimationVariation()
: ModelSceneActor:GetAutoDress()
: ModelSceneActor:GetDebugName()
: ModelSceneActor:GetDesaturation()
: ModelSceneActor:GetMaxBoundingBox()
: ModelSceneActor:GetModelFileID()
: ModelSceneActor:GetModelPath()
: ModelSceneActor:GetModelUnitGUID()
: ModelSceneActor:GetObeyHideInTransmogFlag()
: ModelSceneActor:GetParent()
: ModelSceneActor:GetParticleOverrideScale()
: ModelSceneActor:GetPaused()
: ModelSceneActor:GetPitch()
: ModelSceneActor:GetPosition()
: ModelSceneActor:GetRoll()
: ModelSceneActor:GetScale()
: ModelSceneActor:GetSheathed()
: ModelSceneActor:GetSpellVisualKit()
: ModelSceneActor:GetUseTransmogChoices()
: ModelSceneActor:GetUseTransmogSkin()
: ModelSceneActor:GetYaw()
: ModelSceneActor:Hide()
: ModelSceneActor:IsForbidden()
: ModelSceneActor:IsLoaded()
: ModelSceneActor:IsShown()
: ModelSceneActor:IsUsingCenterForOrigin()
: ModelSceneActor:IsVisible()
: ModelSceneActor:PlayAnimationKit(id [, loop])
: ModelSceneActor:ReleaseFrontEndCharacterDisplays()
: ModelSceneActor:SetAlpha(alpha)
: ModelSceneActor:SetAnimation(animation [, variation, animSpeed, timeOffsetSecs])
: ModelSceneActor:SetAnimationBlendOperation(LE_MODEL_BLEND_OPERATION)
: ModelSceneActor:SetAutoDress(true/false)
: ModelSceneActor:SetDesaturation(strength)
: ModelSceneActor:SetForbidden() - Protected
: ModelSceneActor:SetFrontEndLobbyModelFromDefaultCharacterDisplay()
: ModelSceneActor:SetModelByCreatureDisplayID(creatureDisplayID)
: ModelSceneActor:SetModelByFileID(fileID [, enableMips])
: ModelSceneActor:SetModelByPath(filePath [, enableMips])
: ModelSceneActor:SetModelByUnit("unit" [,sheatheWeapons, autoDress])
: ModelSceneActor:SetObeyHideInTransmogFlag(bool)
: ModelSceneActor:SetParticleOverrideScale()
: ModelSceneActor:SetPaused(paused [, affectsGlobalPause = true])
: ModelSceneActor:SetPitch(pitch)
: ModelSceneActor:SetPlayerModelFromGlues()
: ModelSceneActor:SetPosition(x, y, z)
: ModelSceneActor:SetRoll(roll)
: ModelSceneActor:SetScale(scale)
: ModelSceneActor:SetSheathed(true/false)
: ModelSceneActor:SetShown(true/false)
: ModelSceneActor:SetSpellVisualKit()
: ModelSceneActor:SetUseCenterForOrigin()
: ModelSceneActor:SetUseTransmogChoices(bool)
: ModelSceneActor:SetUseTransmogSkin(true/false)
: ModelSceneActor:SetYaw(facing)
: ModelSceneActor:Show()
: ModelSceneActor:StopAnimationKit()
: ModelSceneActor:TryOn()
: ModelSceneActor:Undress()
: ModelSceneActor:UndressSlot(slotIndex)
===FogOfWarFrame===
FogOfWarFrame has all the methods from Frame, plus the following:
: FogOfWarFrame:GetFogOfWarBackgroundAtlas()
: FogOfWarFrame:GetFogOfWarBackgroundTexture()
: FogOfWarFrame:GetFogOfWarMaskAtlas()
: FogOfWarFrame:GetFogOfWarMaskTexture()
: FogOfWarFrame:GetMaskScalar()
: FogOfWarFrame:GetUiMapID()
: FogOfWarFrame:SetFogOfWarBackgroundAtlas(atlasName)
: FogOfWarFrame:SetFogOfWarBackgroundTexture(textureName or FileDataID, [horizontalTile, verticalTile])
: FogOfWarFrame:SetFogOfWarMaskAtlas(atlasName)
: FogOfWarFrame:SetFogOfWarMaskTexture(textureName)
: FogOfWarFrame:SetMaskScalar(mapID)
: FogOfWarFrame:SetUiMapID()
===UnitPositionFrame===
UnitPositionFrame has all the methods from Frame, plus the following:
: UnitPositionFrame:AddUnit(unit, texture, width, height, r, g, b, a, subLayer, showFacing)
: UnitPositionFrame:AddUnitAtlas(unit, texture, width, height, r, g, b, a, subLayer)
: UnitPositionFrame:AddUnitFileID(unit, fileID, width, height, r, g, b, a, subLayer, showFacing)
: UnitPositionFrame:ClearUnits()
: UnitPositionFrame:FinalizeUnits()
: UnitPositionFrame:GetMouseOverUnits()
: UnitPositionFrame:GetPlayerPingScale()
: UnitPositionFrame:GetUiMapID()
: UnitPositionFrame:SetPlayerPingScale(scale)
: UnitPositionFrame:SetPlayerPingTexture(textureIndex, textureName or fileDataID, [width, height])
: UnitPositionFrame:SetUiMapID(mapID)
: UnitPositionFrame:SetUnitColor(unit, r, g, b, a)
: UnitPositionFrame:StartPlayerPing()
: UnitPositionFrame:StopPlayerPing()
Category:Widgets
Widget API