WoW:XML UI

From AddOn Studio
Revision as of 20:50, 13 October 2019 by Bear (talk | contribs) (Reverted edit(s) by 218.79.230.97 (talk) to last version by Celess22)
Jump to navigation Jump to search


This is the WoW XML UI and FrameXML main reference. Use Reference for detailed information, Guides for getting started and further understanding, and Summary for overall concepts about how FrameXML and XML UI relate to WoW Interface Customization.

Reference

  • XML elements - major Ui elements, including widgets
  • XML attributes - common attributes used to define major Ui elements
  • XML properties - configuration type elements used to define the major Ui elements
  • XML types - XML types used by the Ui elements and attributes

Guides

  • XML Basics - Starter guide for understanding XML and XML documents.
  • WoW XML Tutorial - Walk-through and many various examples for using WoW UI XML.


Summary

WoW is capable of loading special .xml files used to describe and create UI elements. WoW uses this facility to create nearly all of its own native user interface frames and elements when WoW is started. These .xml files and facilities can also be used for custom user interface elements.

The XML UI reference is useful for creating and understanding these FrameXML files, and useful as a cross-reference for the Widget API, and for the base WoW API with reguards to frame and UI element creation and the relationships between the elements. The term 'element' is classically an XML term for describing hierarcical parts of an XML document. However you will see the terms 'elements', 'uiobjects', 'widgets', 'frames', and 'layout frames' sometimes used interchangebly. To disambiguate when we are referring to the WoW XML UI facility and files, we will use the WoW term for this: 'FrameXML'.

Example

Example FrameXML File

 <Ui xmlns="http://www.blizzard.com/wow/ui/"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <Script file="MyFrame.lua" />
   <Frame name="MyAddon_MyFrame" parent="UIParent" toplevel="true" enableMouse="true">
     <Size>
       <AbsDimension x="200" y="200" />
     </Size>
     <Anchors>
       <Anchor point="CENTER" />
     </Anchors>
     <Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background"
           edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
       <BackgroundInsets>
         <AbsInset left="11" right="12" top="12" bottom="11"/>
       </BackgroundInsets>
       <TileSize>
         <AbsValue val="32"/>
       </TileSize>
       <EdgeSize>
         <AbsValue val="32"/>
       </EdgeSize>
     </Backdrop>
   </Frame>
 </Ui>