WoW:XML elements: Difference between revisions
(moved stuff out into what is to be merged with UIOBJECT pages) |
m (Move page script moved page XML elements to XML elements without leaving a redirect) |
||
| (4 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{uixmlelem}} | |||
This reference is for [[XML elements]] of the WoW XML Ui hieracry. These [[XML elements]] define game UI elements, and have [[XML attributes]] whos values are defined by [[XML types]]. This reference covers only the major WoW UI element types, see [[XML attributes]] and [[XML types]] for the rest. | |||
== Summary == | |||
[[XML elements]] are used to define WoW User Interface elements. These elements are defined using [[FrameXML]] '.xml' files which are loaded by WoW. When a [[FrameXML]] file is loaded, it processes the file's [[XML]] and from it's XML elements generates the actual game elements, which can be accessed programatically using the [[Widget API|UIObjects]] in the [[Lua functions|WoW Lua]] environment. The root element of the WoW XML hierarcy is the [[XML/Ui|Ui]] element. See [[XML UI]] for a general overview. | |||
== Reference == | |||
Curly braces {} are used to indicate when other inheriting element types maybe substituted. See [[XML inheritance]] for an explanation of WoW UI XML inheritance relationships. '''''Note''': Much of the information here is from the WoW Ui.xsd, and is by no means complete. All this information should be updated with patch changes. All non-default attriutes should be added here, with a link to a source and name of element. '''Note''': the ''Source'' notes have been removed, and can now be found in [[XML elements history]].'' | |||
== [[XML/LayoutFrame|LayoutFrames]] (Layer Elements) == | |||
=== [[XML/FontString|FontString]] === | |||
Displays text that can't be edited. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#bytes|bytes]] | |||
*[[XML attributes#text|text]] | |||
*[[XML attributes#spacing|spacing]] | |||
*[[XML attributes#outline|outline]] | |||
*[[XML attributes#monochrome|monochrome]] | |||
*[[XML attributes#nonspacewrap|nonspacewrap]] | |||
*[[XML attributes#wordwrap|wordwrap]] | |||
*[[XML attributes#justifyH|justifyH]] | |||
*[[XML attributes#justifyV|justifyV]] | |||
*[[XML attributes#maxLines|maxLines]] | |||
*[[XML attributes#indented|indented]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#FontHeight|FontHeight]] | |||
*[[XML properties#Color|Color]] | |||
*[[XML properties#Shadow|Shadow]] | |||
=== [[XML/Texture|Texture]] === | |||
Used for drawing textures in a frame. Is a [[XML/LayoutFrame|LayoutFrame]] type | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#file|file]] | |||
*[[XML attributes#alphaMode|alphaMode]] | |||
*[[XML attributes#horizTile|horizTile]] | |||
*[[XML attributes#virtTile|virtTile]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#TexCoords|TexCoords]] | |||
*[[XML properties#Color|Color]] | |||
*[[XML properties#Gradient|Gradient]] | |||
== [[XML/Frame|Frames]] (Widgets) == | |||
=== [[XML/Frame|Frame]] === | |||
A clean window to put any kind of widgets inside. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#alpha|alpha]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#movable|movable]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#id|id]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#enableKeyboard|enableKeyboard]] | |||
*[[XML attributes#clampedToScreen|clampedToScreen]] | |||
*[[XML attributes#protected|protected]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#TitleRegion|TitleRegion]] | |||
*[[XML properties#Backdrop|Backdrop]] | |||
*[[XML properties#HitRectInsets|HitRectInsets]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#Attributes|Attributes]] | |||
=== [[XML/Button|Button]] === | |||
It's just a button you can click with mouse. Common use - executing some scripts when pressed (show/hide frame, accept quests or trades, accept or cancel changes in options etc. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#movable|movable]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#id|id]] | |||
*[[XML attributes#text|text]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#enableKeyboard|enableKeyboard]] | |||
*[[XML attributes#clampedToScreen|clampedToScreen]] | |||
*[[XML attributes#registerForClicks|registerForClicks]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#HitRectInsets|HitRectInsets]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#normaltexture|NormalTexture]] | |||
*[[XML properties#pushedtexture|PushedTexture]] | |||
*[[XML properties#disabledtexture|DisabledTexture]] | |||
*[[XML properties#highlighttexture|HighlightTexture]] | |||
*[[XML properties#buttontext|ButtonText]] | |||
*[[XML properties#normalfont|NormalFont]] | |||
*[[XML properties#highlightfont|HighlightFont]] | |||
*[[XML properties#disabledfont|DisabledFont]] | |||
*[[XML properties#pushedtextoffset|PushedTextOffset]] | |||
=== [[XML/CheckButton|CheckButton]] === | |||
Click adds or remove check mark. Common use for options of any kind | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#id|id]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#checked|checked]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#HitRectInsets|HitRectInsets]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#normaltexture|normaltexture]] | |||
*[[XML properties#pushedtexture|pushedtexture]] | |||
*[[XML properties#highlighttexture|highlighttexture]] | |||
*[[XML properties#checkedtexture|checkedtexture]] | |||
*[[XML properties#disabledcheckedtexture|disabledcheckedtexture]] | |||
=== [[XML/ColorSelect|ColorSelect]] === | |||
Allows you to choose a color. Used rarely for customizing addons appearance | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#movable|movable]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#enableKeyboard|enableKeyboard]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Backdrop|Backdrop]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#colorwheeltexture|colorwheeltexture]] | |||
*[[XML properties#colorwheelthumbtexture|colorwheelthumbtexture]] | |||
*[[XML properties#colorvaluetexture|colorvaluetexture]] | |||
*[[XML properties#colorvaluethumbtexture|colorvaluethumbtexture]] | |||
=== [[XML/Cooldown|Cooldown]] === | |||
Used for spell and action buttons to show it's cooldown state | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#reverse|reverse]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
=== [[XML/DressUpModel|DressUpModel]] === | |||
Used for checking how some linked item will look on character. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#scale|scale]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/EditBox|EditBox]] === | |||
Used to type in any kind of text. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#font|font]] | |||
*[[XML attributes#letters|letters]] | |||
*[[XML attributes#blinkSpeed|blinkSpeed]] | |||
*[[XML attributes#numeric|numeric]] | |||
*[[XML attributes#password|password]] | |||
*[[XML attributes#multiLine|multiLine]] | |||
*[[XML attributes#historyLines|historyLines]] | |||
*[[XML attributes#autoFocus|autoFocus]] | |||
*[[XML attributes#ignoreArrows|ignoreArrows]] | |||
*[[XML attributes#countInvisibleLetters|countInvisibleLetters]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#FontString|FontString]] | |||
=== [[XML/GameTooltip|GameTooltip]] === | |||
Probably shows up a frame depending what's under cursor (player name, item etc.) | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#movable|movable]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#clampedToScreen|clampedToScreen]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Backdrop|Backdrop]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/MessageFrame|MessageFrame]] === | |||
A window like a frame, but for storing messages. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#insertmode|insertmode]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#displayduration|displayduration]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#FontString|FontString]] | |||
=== [[XML/Minimap|Minimap]] === | |||
This is specific element for a radar showing you detailed map with units/resources on it | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#minimapplayermodel|minimapplayermodel]] | |||
*[[XML attributes#minimaparrowmodel|minimaparrowmodel]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/Model|Model]] === | |||
Real purpose unknown. Probably allows to show up some 3D object inside | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#alpha|alpha]] | |||
*[[XML attributes#file|file]] | |||
*[[XML attributes#scale|scale]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/PlayerModel|PlayerModel]] === | |||
Real purpose unknown. Probably for showing 3D portrait. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/ScrollFrame|ScrollFrame]] === | |||
Window that allows to scroll in up/down to show more info (As example - quest log) | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#hidden|hidden]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#scrollchild|scrollchild]] | |||
=== [[XML/ScrollingMessageFrame|ScrollingMessageFrame]] === | |||
Same as scrollframe but for messages only | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#frameStrata|frameStrata]] | |||
*[[XML attributes#id|id]] | |||
*[[XML attributes#displayduration|displayduration]] | |||
*[[XML attributes#maxLines|maxLines]] | |||
*[[XML attributes#movable|movable]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#resizable|resizable]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#TitleRegion|TitleRegion]] | |||
*[[XML properties#ResizeBounds|ResizeBounds]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#FontString|FontString]] | |||
=== [[XML/SimpleHTML|SimpleHTML]] === | |||
Shows up a window with content organized as in html file. Still only some common tags of html are supported, so it's impossible to load html pages inside it. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#FontString|FontString]] | |||
=== [[XML/Slider|Slider]] === | |||
A scroll bar for scrolling elements. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#orientation|orientation]] | |||
*[[XML attributes#minvalue|minvalue]] | |||
*[[XML attributes#maxvalue|maxvalue]] | |||
*[[XML attributes#valuestep|valuestep]] | |||
*[[XML attributes#defaultvalue|defaultvalue]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
*[[XML attributes#id|id]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Backdrop|Backdrop]] | |||
*[[XML properties#HitRectInsets|HitRectInsets]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#ThumbTexture|ThumbTexture]] | |||
=== [[XML/StatusBar|StatusBar]] === | |||
Used in casing bar. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#drawlayer|drawlayer]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#toplevel|toplevel]] | |||
*[[XML attributes#parent|parent]] | |||
*[[XML attributes#hidden|hidden]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#minvalue|minvalue]] | |||
*[[XML attributes#maxvalue|maxvalue]] | |||
*[[XML attributes#defaultvalue|defaultvalue]] | |||
*[[XML attributes#id|id]] | |||
*[[XML attributes#enableMouse|enableMouse]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#HitRectInsets|HitRectInsets]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
*[[XML properties#bartexture|bartexture]] | |||
*[[XML properties#barcolor|barcolor]] | |||
=== [[XML/TabardModel|TabardModel]] === | |||
Showing up tabard. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/TaxiRouteFrame|TaxiRouteFrame]] === | |||
Probably for showing up fly routes. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Size|Size]] | |||
*[[XML properties#Anchors|Anchors]] | |||
=== [[XML/WorldFrame|WorldFrame]] === | |||
A layout frame type that holds a 3D view of the world. This type is not nomrally very useful for AddOn development, and is used by the system for displaying the world view and related. AddOns should use the UIParent as their topmost parent and not any frames derrived from this type. | |||
[[XML attributes#Attributies|attributes]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#setAllPoints|setAllPoints]] | |||
*[[XML attributes#movable|movable]] | |||
*[[XML attributes#resizable|resizable]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#Layers|Layers]] | |||
*[[XML properties#Frames|Frames]] | |||
*[[XML properties#Scripts|Scripts]] | |||
=== [[XML/UIParent|UIParent]] === | |||
This is not actually a Frame type, but a named instance of Frame, named "UIParent". Whats special about this system frame is that every addon you use loaded by default inside it (if parent attribute not defined). Also it's important that when you toggle addons visibility to take screenshot this frame becomes hidden, so any of its content not drawn. If you put your upmost addon frame outside of this frame, your addon will be visible always. For example when a user toggles UI visibility, its toggling the visibility of UIParent. To be a good citizen always use UIParent as your topmost parent, which can be done by leaving the parent of your topmost parents blank. | |||
== Animation Elements == | |||
Define animations for the UI animation system. Animation and AnimationGroup have event handlers like Frames. [http://urbad.net/blue/us/15443414368-310_API_Changes_Animation_System Blue posts] (added 3.1.0) | |||
=== [[XML/AnimationGroup|AnimationGroup]] === | |||
Groups animations. | |||
=== [[XML/Animation|Animation]] === | |||
Base type for all animation elements. Animation elements are added to an [[XML/AnimationGroup|AnimationGroup]], or under [[XML/Ui|Ui]]. Actual funcitonal animation elements must be one of the derrived types. Can also be defined in Ui as base for other animations. | |||
=== [[XML/Translation|Translation]] === | |||
Animation element type that moves its target. | |||
=== [[XML/Scale|Scale]] === | |||
Animation element type that scales or stretches its target. | |||
=== [[XML/Rotation|Rotation]] === | |||
Animation element type that rotates its target. | |||
=== [[XML/Alpha|Alpha]] === | |||
Animation element type that changes the alpha of its target. | |||
=== [[XML/Path|Path]] === | |||
Animation element type that defines a traditional animation path for its target using [[XML/ControlPoint|ControlPoints]]. | |||
== Other Ui elements == | |||
=== [[XML/UiInclude|Include]] === | |||
[[XML attributes#Attributies|attributies]]: | |||
* [[XML attributes#file|file]]- refers to another .xml source file to load. | |||
=== [[XML/UiScript|Script]] === | |||
The Ui element level Script element, that can be used to run plain text Lua script, or reference a [[Lua]] script file to be inlined, at that point during UI load. Is not the same as the script handler [[XML/Script]] elements that go in the [[XML/Scripts]] lists. | |||
payload: | |||
* (optional) plain Lua text to be run at that point in the XML during UI load. | |||
[[XML attributes#Attributies|attributies]]: | |||
* [[XML attributes#file|file]] (optional) - refers to a script (.lua) file to be loaded and run. | |||
=== [[XML/Font|Font]] === | |||
Defines a complete font for use in other elements. | |||
[[XML attributes#Attributies|attributies]]: | |||
*[[XML attributes#name|name]] | |||
*[[XML attributes#inherits|inherits]] | |||
*[[XML attributes#virtual|virtual]] | |||
*[[XML attributes#font|font]] | |||
*[[XML attributes#outline|outline]] | |||
*[[XML attributes#monochrome|monochrome]] | |||
*[[XML attributes#justifyH|justifyH]] | |||
*[[XML attributes#justifyV|justifyV]] | |||
[[XML properties#Elements|elements]]: | |||
*[[XML properties#FontHeight|FontHeight]] | |||
*[[XML properties#Color|Color]] | |||
*[[XML properties#Shadow|Shadow]] | |||
== See also == | |||
* [[XML attributes]] | |||
* [[XML properties]] | |||
* [[XML types]] | |||
[[Category:Interface customization]] | |||
Latest revision as of 04:49, 15 August 2023
← XML UI
This reference is for XML elements of the WoW XML Ui hieracry. These XML elements define game UI elements, and have XML attributes whos values are defined by XML types. This reference covers only the major WoW UI element types, see XML attributes and XML types for the rest.
Summary
XML elements are used to define WoW User Interface elements. These elements are defined using FrameXML '.xml' files which are loaded by WoW. When a FrameXML file is loaded, it processes the file's XML and from it's XML elements generates the actual game elements, which can be accessed programatically using the UIObjects in the WoW Lua environment. The root element of the WoW XML hierarcy is the Ui element. See XML UI for a general overview.
Reference
Curly braces {} are used to indicate when other inheriting element types maybe substituted. See XML inheritance for an explanation of WoW UI XML inheritance relationships. Note: Much of the information here is from the WoW Ui.xsd, and is by no means complete. All this information should be updated with patch changes. All non-default attriutes should be added here, with a link to a source and name of element. Note: the Source notes have been removed, and can now be found in XML elements history.
LayoutFrames (Layer Elements)
FontString
Displays text that can't be edited.
- name
- inherits
- virtual
- hidden
- bytes
- text
- spacing
- outline
- monochrome
- nonspacewrap
- wordwrap
- justifyH
- justifyV
- maxLines
- indented
Texture
Used for drawing textures in a frame. Is a LayoutFrame type
Frames (Widgets)
Frame
A clean window to put any kind of widgets inside.
- name
- inherits
- virtual
- setAllPoints
- hidden
- alpha
- parent
- toplevel
- movable
- enableMouse
- id
- frameStrata
- enableKeyboard
- clampedToScreen
- protected
Button
It's just a button you can click with mouse. Common use - executing some scripts when pressed (show/hide frame, accept quests or trades, accept or cancel changes in options etc.
- name
- inherits
- virtual
- setAllPoints
- hidden
- parent
- toplevel
- movable
- frameStrata
- id
- text
- enableMouse
- enableKeyboard
- clampedToScreen
- registerForClicks
- Size
- Anchors
- HitRectInsets
- Layers
- Frames
- Scripts
- NormalTexture
- PushedTexture
- DisabledTexture
- HighlightTexture
- ButtonText
- NormalFont
- HighlightFont
- DisabledFont
- PushedTextOffset
CheckButton
Click adds or remove check mark. Common use for options of any kind
- Size
- Anchors
- HitRectInsets
- Layers
- Frames
- Scripts
- normaltexture
- pushedtexture
- highlighttexture
- checkedtexture
- disabledcheckedtexture
ColorSelect
Allows you to choose a color. Used rarely for customizing addons appearance
- Size
- Anchors
- Backdrop
- Layers
- Frames
- Scripts
- colorwheeltexture
- colorwheelthumbtexture
- colorvaluetexture
- colorvaluethumbtexture
Cooldown
Used for spell and action buttons to show it's cooldown state
DressUpModel
Used for checking how some linked item will look on character.
EditBox
Used to type in any kind of text.
- name
- inherits
- virtual
- hidden
- parent
- toplevel
- enableMouse
- frameStrata
- font
- letters
- blinkSpeed
- numeric
- password
- multiLine
- historyLines
- autoFocus
- ignoreArrows
- countInvisibleLetters
GameTooltip
Probably shows up a frame depending what's under cursor (player name, item etc.)
- name
- inherits
- virtual
- setAllPoints
- hidden
- parent
- toplevel
- movable
- frameStrata
- enableMouse
- clampedToScreen
MessageFrame
A window like a frame, but for storing messages.
Minimap
This is specific element for a radar showing you detailed map with units/resources on it
Model
Real purpose unknown. Probably allows to show up some 3D object inside
PlayerModel
Real purpose unknown. Probably for showing 3D portrait.
ScrollFrame
Window that allows to scroll in up/down to show more info (As example - quest log)
ScrollingMessageFrame
Same as scrollframe but for messages only
- name
- inherits
- virtual
- hidden
- parent
- toplevel
- frameStrata
- id
- displayduration
- maxLines
- movable
- enableMouse
- resizable
SimpleHTML
Shows up a window with content organized as in html file. Still only some common tags of html are supported, so it's impossible to load html pages inside it.
Slider
A scroll bar for scrolling elements.
StatusBar
Used in casing bar.
- name
- drawlayer
- virtual
- toplevel
- parent
- hidden
- inherits
- minvalue
- maxvalue
- defaultvalue
- id
- enableMouse
TabardModel
Showing up tabard.
TaxiRouteFrame
Probably for showing up fly routes.
WorldFrame
A layout frame type that holds a 3D view of the world. This type is not nomrally very useful for AddOn development, and is used by the system for displaying the world view and related. AddOns should use the UIParent as their topmost parent and not any frames derrived from this type.
UIParent
This is not actually a Frame type, but a named instance of Frame, named "UIParent". Whats special about this system frame is that every addon you use loaded by default inside it (if parent attribute not defined). Also it's important that when you toggle addons visibility to take screenshot this frame becomes hidden, so any of its content not drawn. If you put your upmost addon frame outside of this frame, your addon will be visible always. For example when a user toggles UI visibility, its toggling the visibility of UIParent. To be a good citizen always use UIParent as your topmost parent, which can be done by leaving the parent of your topmost parents blank.
Animation Elements
Define animations for the UI animation system. Animation and AnimationGroup have event handlers like Frames. Blue posts (added 3.1.0)
AnimationGroup
Groups animations.
Animation
Base type for all animation elements. Animation elements are added to an AnimationGroup, or under Ui. Actual funcitonal animation elements must be one of the derrived types. Can also be defined in Ui as base for other animations.
Translation
Animation element type that moves its target.
Scale
Animation element type that scales or stretches its target.
Rotation
Animation element type that rotates its target.
Alpha
Animation element type that changes the alpha of its target.
Path
Animation element type that defines a traditional animation path for its target using ControlPoints.
Other Ui elements
Include
- file- refers to another .xml source file to load.
Script
The Ui element level Script element, that can be used to run plain text Lua script, or reference a Lua script file to be inlined, at that point during UI load. Is not the same as the script handler XML/Script elements that go in the XML/Scripts lists.
payload:
- (optional) plain Lua text to be run at that point in the XML during UI load.
- file (optional) - refers to a script (.lua) file to be loaded and run.
Font
Defines a complete font for use in other elements.