WoW:FrameXML: Difference between revisions

(typo)
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{uixml}}
{{uixml}}
'''FrameXML''' is [[Blizzard Entertainment|Blizzard's]] in-house name for the part of the standard World of Warcraft [[User Interface]] facility that allows UI constructs and '''Frames''' to be implemented using '''XML''' templates, and hence replaceable by users via [[AddOns]].
'''FrameXML''' is the Blizzard name for the main set of Lua and XML based UI code found in the game archives and folders, used when playing the game. FrameXML is also a name often used for the Blizzard [[XML UI|UI XML]] used to define UI frames.
 
FrameXML, the format, defines UI constructs and [[Frame]]s using regular [[XML]] files. FrameXML is used to create most of the standard World of Warcraft [[User Interface]]. It is used for both the default WoW UI, and for WoW [[AddOn]]s including user AddOns.


== Disambiguation ==
== Disambiguation ==
FrameXML can often refer to:
* The XML based UI definition language and facilities used in WoW
* The actual 'FrameXML' folder and .toc file in the WoW game folders


FrameXML can refer to either:
WoW UI customization is divided here as follows, starting at the highest level:
* the 'FrameXML' folder and .toc file in the wow game folders used for the main WoW UI.
* the general 'XML UI' mechanism and facilities in the WoW.


Here are the major categorites of 'UI Customization' documentation on WoWWIki, starting at the highest level:
* [[XML UI]] - The WoW FrameXML facility, language, existing constructs and folders. Includes documentation for inheriting from predefined 'Widgets'.
* [[Widget API]] - The Lua-only 'UI Frame' API and counterpart to FrameXML. Includes documentations for interacting from Lua with the pre-defined Blizzard 'Widgets', which are defined in both XML and Lua in the Blizzard FrameXML folders.
* [[World of Warcraft API]] - The core WoW UI API exposed to Lua code
* [[Lua functions|WoW Lua]] - The WoW customized flavor of [[Lua]]


* [[XML UI]] - Documents the actual FrameXML facility. Is useful for those that want to use FrameXML as a part of their AddOns, and is generally necessary for understanding of the Widget API.
Here in these documents, the term [[XML UI]] is often used to refer all of the [[FrameXML]] UI based APIs, facilities, and the Blizzard and user XML based UI file and code.
* [[Widget API]] - Documents the Lua-side FrameXML API, and provides documentation for a good portion of the pre-defined blizzard 'Widgets', which are defined in XML and Lua in the Blizzard FrameXML folders.
* [[World of Warcraft API|WoW API]] - Documentation for the Blizzard's core WoW API, exposed to Lua code.
* [[Lua functions|WoW Lua]] - Documentation for the WoW customized flavor of Lua.


== History ==
== History ==


Blizzard has historically used, and still uses, XML to define nearly all of their actual UI frame elements and facilites. One of the reasons for this originally was that using XML avoided having to generate Lua side 'objects' or representations of elements for every single object, table, and string that were already defined on the 'C' side and were part of the actual render and event paths. The XML could be read and discarded, only generating Lua side constructs as necessary.
Blizzard uses XML to define nearly all of their actual UI frame elements and facilities for the WoW UI. One of the historical reasons for this is that using XML avoids having to generate Lua side 'objects' or representations of elements for every single object, table, and string, that were already defined on the 'C' side and were part of the actual render and event paths. The XML could be read and discarded, and only generating the Lua side constructs necessary for running the UI.


The UIOBJECT API has grown over time to support more of the same facilites as XML loader, and now has near parity with the native XML loading. There is still a siginificant savings for the default UIs to load using the XML loader. However for AddOns following best pratices, the difference can be insignificant. Many veteran AddOn developers prefer using only the UIOBJECT APi.
The UIOBJECT API has grown over time to support more of the same facilites as XML loader, and now has near parity with the native XML loading. There is still a siginificant savings for the default UIs to load using the XML loader. However for AddOns following best pratices, the difference can be insignificant. Many veteran AddOn developers prefer using only the UIOBJECT APi.


Historically, the UIOBJECT API has been documented on WoWWiki in the 'Widget API', as everything that was considered 'Frame' or default UI related was lumped together. The FrameXML and base UI itself is now more clearly seperated from the Lua side API, in order to provide more clear documetation. Base 'WoW Addon' documentation is also now provided.
Historically, the UIOBJECT API was documented in the 'Widget API', as everything that was considered 'Frame' or default UI related was lumped together. The FrameXML documentation itself is now more clearly seperated from the Lua side UIOBJECT API documentation, in order to provide more clarity and special needs for documenting XML style UI definition constructs. Base 'WoW Addon' documentation is also now provided.


== See also ==
== See also ==
* [[XML UI]]
* [[XML UI]]
* [[WoWWiki:Interface customization]]
* [[:Category:FrameXML documentation]].
* [[:Category:FrameXML documentation]].
* [[Viewing Blizzard's interface code]] - to extract all of FrameXML to regular files
* [[WoW_development]]
* [[Viewing Blizzard's WoW user interface code]] - to extract all of FrameXML to regular files


== External links ==
== External links ==
{{elink|site=wow.go-hero.net|link=http://wow.go-hero.net/framexml/builds|desc=Available FrameXML Builds|bydate=(.lua, .toc, and .xml viewer)}}
{{elink|icon=|site=Townlong-Yak.com|link=https://www.townlong-yak.com/framexml/live|desc=FrameXML ''Build ##### (7.n.n)''|bydate=(sometimes a week or two behind current release; .lua, .toc, and .xml viewer)}}
[[Category:FrameXML documentation| ]]
[[Category:FrameXML documentation| ]]
[[Category:Game terms]]
[[Category:Game terms]]

Latest revision as of 06:30, 15 August 2023

XML UI

FrameXML is the Blizzard name for the main set of Lua and XML based UI code found in the game archives and folders, used when playing the game. FrameXML is also a name often used for the Blizzard UI XML used to define UI frames.

FrameXML, the format, defines UI constructs and Frames using regular XML files. FrameXML is used to create most of the standard World of Warcraft User Interface. It is used for both the default WoW UI, and for WoW AddOns including user AddOns.

Disambiguation

FrameXML can often refer to:

  • The XML based UI definition language and facilities used in WoW
  • The actual 'FrameXML' folder and .toc file in the WoW game folders

WoW UI customization is divided here as follows, starting at the highest level:

  • XML UI - The WoW FrameXML facility, language, existing constructs and folders. Includes documentation for inheriting from predefined 'Widgets'.
  • Widget API - The Lua-only 'UI Frame' API and counterpart to FrameXML. Includes documentations for interacting from Lua with the pre-defined Blizzard 'Widgets', which are defined in both XML and Lua in the Blizzard FrameXML folders.
  • World of Warcraft API - The core WoW UI API exposed to Lua code
  • WoW Lua - The WoW customized flavor of Lua

Here in these documents, the term XML UI is often used to refer all of the FrameXML UI based APIs, facilities, and the Blizzard and user XML based UI file and code.

History

Blizzard uses XML to define nearly all of their actual UI frame elements and facilities for the WoW UI. One of the historical reasons for this is that using XML avoids having to generate Lua side 'objects' or representations of elements for every single object, table, and string, that were already defined on the 'C' side and were part of the actual render and event paths. The XML could be read and discarded, and only generating the Lua side constructs necessary for running the UI.

The UIOBJECT API has grown over time to support more of the same facilites as XML loader, and now has near parity with the native XML loading. There is still a siginificant savings for the default UIs to load using the XML loader. However for AddOns following best pratices, the difference can be insignificant. Many veteran AddOn developers prefer using only the UIOBJECT APi.

Historically, the UIOBJECT API was documented in the 'Widget API', as everything that was considered 'Frame' or default UI related was lumped together. The FrameXML documentation itself is now more clearly seperated from the Lua side UIOBJECT API documentation, in order to provide more clarity and special needs for documenting XML style UI definition constructs. Base 'WoW Addon' documentation is also now provided.

See also

External links