WoW:XML properties

From AddOn Studio
Revision as of 06:16, 16 January 2023 by Bear (talk | contribs) (→‎Scripts)
Jump to navigation Jump to search

XML UI

FrameXML XML properties, as used here are common complex XML elements, used to help define major Ui XML elements for creating WoW UI frames and widgets. See also XML elements, XML attributes, and XML types.

Summary

A particular element is defined by both its attributes, and by any 'child elements' it may have. These along with attributes, all together make up the definition major XML Ui elements, like widgets.

In XML, 'attributes' are the in-line properties of an 'element', like:

<element attribute="value"/>

Each 'element' may also contain its own child elements, like:

<element>
  <element attribute="value"/>
  <element attribute="value"/>
</element>

The intent for this reference is to document all of the actual common complex properties, like '<Size>' or '<Anchor>', for major elements that are not regular attributes. A standard FrameXML XML property use to define a size of 100 x 100 looks like:

<Size>
  <AbsDimension x="100" y="100" />
</Size>

Properties are usually defined in a standard order in a major element, like <Size>' must come before '<Anchors>', or it may not work correctly.

Major Ui elements are almost never placed directly inside another major Ui element, but inside list properties like '<Frames>'. Each major element only uses a subset of the properties below, like '<Font>' does not use '<Scripts>', like.

<Frame>
  <Size> <-- FrameXML standard property not in a list
    <AbsDimension x="100" y="100" />
  </Size>
  <Frames>
    <Frame> <-- major FrameXML element in a list 
      ...
    </Frame>
  </Frames>
  <Scripts>
    <Script ... />  <-- major FrameXML element in a list
  </Scripts>
</Frame>

Reference

Below lists in alphabetical order the common complex property definitions, as used by the major Ui XML elements.

Key for attributes types (see XML types):

  • string - String, just some text
  • int - Integer, number (0,1,2,3,4,5...)
  • float - Single, number with point (0.3 or 1.65 etc)
  • bool - Boolean, one of '0', '1', 'true', 'false' to indicate enable or disable, or on or off, etc...
  • enum - List, an enumeration, or one of a set of predefined values
  • [Element] - Element Type, name of element

Anchors

A list of Anchors that defines position of element relative to its parent position.

Animations

A list of AnimationGroups that define arbitrary animations for a target element.

Attribute

Elements of the Attributes property that add internal flags to UI objects, often used to denote secure frames.

  • name (string) - Lua name for the member
  • type (ATTRIBUTETYPE) - the Lua type for the member. Default is 'string'.
  • value - value to set for the member

Attributes

A list of Attributes that define internal options for elements, often used for secure frames.

Backdrop

Provides a background for a frame.

BarColor

BarTexture

ButtonText

CheckedTexture

Color

Generally represents a font text, foreground, or fill color

ColorValueTexture

ColorValueThumbTexture

ColorWheelTexture

ColorWheelThumbTexture

DisabledCheckedTexture

Define the texture to use when a check button is checked.

DisabledFont

Define the font to use when a button is disabled.

DisabledTexture

Define the texture to use when a button is disabled.

FontHeight

(Value) -

FontString

(FontString) -

Frames

Contains the set of child frames of a Frame type. If you want button inside a frame you need put it inside this tag of frame.

Gradient

(Gradient) - defines gradation of color blended with Color or texture File. currenly is only a property of Texture.

HighlightFont

Mouseover font.

HighlightTexture

Mouseover texture.

HitRectInsets

(Inset) - Alters the user input hit box for a frame.

KeyValue

Contained by the KeyValues property, and set Lua values at run time.

  • key - Lua key, usually a name, for the member
  • value - value to set for the member
  • keyType (KEYVALUETYPE) - the Lua type for the member key. Default is 'string'.
  • type (KEYVALUETYPE) - the Lua type for the member value. Default is 'string'.

KeyValues

Layer

Placed inside the Layers property, and contains a list of <FontString> and <Texture> elements, which define what will actually be drawn on screen. Only <FontString> and <Texture> elements are allowed inside Layer element.

Layers

Contains a Layer list. Layers and Layer define what will actually be drawn on screen. Only 'Layer' elements can be inside this tag, each have 'level' property to define the order they will be drawn. Only <FontString> and <Texture> elements are allowed inside Layer element.

NormalFont

NormalTexture

PushedTextOffset

Text moves when clicked (and held), this defines how far it moves. Text moves back to its previous location when the mouse button is released.

PushedTexture

Change the texture to this when clicked (and held). The texture changes back to its texture when the mouse button is released.

ResizeBounds

Defines how big or small this frame can possibly be.

  • minResize (Dimension) - lower bounds of a frames size
  • maxResize (Dimension) - upper bounds of a frames size

Script

Lua script handler defined inside a Scripts element.

Scripts

This element accepts specific script handler elements of a Script type. See the widget event handlers category for more detail on individual handler semantics, and Widget handlers for which element types use handlers. Script types:

  • OnLoad
  • OnAttributeChanged
  • OnSizeChanged
  • OnEvent
  • OnUpdate
  • OnShow
  • OnHide
  • OnEnter
  • OnLeave
  • OnMouseDown
  • OnMouseUp
  • OnMouseWheel
  • OnJoystickStickMotion
  • OnJoystickAxisMotion
  • OnJoystickButtonDown
  • OnJoystickButtonUp
  • OnJoystickHatMotion
  • OnDragStart
  • OnDragStop
  • OnReceiveDrag
  • PreClick
  • OnClick
  • PostClick
  • OnDoubleClick
  • OnValueChanged
  • OnMinMaxChanged
  • OnUpdateModel
  • OnAnimFinished
  • OnEnterPressed
  • OnEscapePressed
  • OnSpacePressed
  • OnTabPressed
  • OnTextChanged
  • OnTextSet
  • OnCursorChanged
  • OnInputLanguageChanged
  • OnEditFocusGained
  • OnEditFocusLost
  • OnHorizontalScroll
  • OnVerticalScroll
  • OnScrollRangeChanged
  • OnCharComposition
  • OnChar
  • OnKeyDown
  • OnKeyUp
  • OnColorSelect
  • OnHyperlinkEnter
  • OnHyperlinkLeave
  • OnHyperlinkClick
  • OnMessageScrollChanged
  • OnMovieFinished
  • OnMovieShowSubtitle
  • OnMovieHideSubtitle
  • OnTooltipSetDefaultAnchor
  • OnTooltipCleared
  • OnTooltipAddMoney
  • OnTooltipSetUnit
  • OnTooltipSetItem
  • OnTooltipSetSpell
  • OnTooltipSetQuest
  • OnTooltipSetAchievement
  • OnEnable
  • OnDisable
  • OnArrowPressed
  • OnExternalLink
  • OnButtonUpdate
  • OnError

ScrollChild

Shadow

(Shadow) - Puts a shadow behind an element.

Size

(Dimension) - Defines a size of an element. Normally this is done by putting "AbsDimension" tag inside with "x" and "y" attributes, but sometimes this is done by just giving "x" and "y" attributes to "Size" tag itself. Last one is probably old way of defining and left for a backward compatibility.

ThumbTexture

TexCoords

Determines how much of the specified texture is to be shown.

TitleRegion

(LayoutFrame) - Adds a region used for automatically dragging a frame.

See also