XML/LayoutFrame

<LayoutFrame> abstracts tags and attributes common to most widgets.
 <LayoutFrame name="" parentKey= "" parentArray="" inherits="" mixin="" secureMixin="" virtual="" setAllPoints="" hidden="">
 	<Size />
 	<Anchors />
 	<KeyValues />
 	<Animations />
 </LayoutFrame>
==Attributes==
; References
: name () - Adds a reference to , substituting $parent with a parent's name.
: parentKey () - Adds a reference to the widget's parent.
: parentArray (() - a reference to an array in the widget's parent.
; Templates
: inherits () - Inherits a comma-separated list of XML virtual templates.
: virtual () - Creates an XML virtual template instead of a widget (requires name).
: mixin () - Inherits a comma-separated list of Lua mixins.
: secureMixin () - Inherits a comma-separated list of Lua mixins, wrapping inherited functions to force secure execution.
; Position & Visibility
: setAllPoints () - the top-left and bottom-right anchors to match the parent widget.
: hidden () - Controls the frame's initial .
==Children==
<Size> (inherits from ) sets the .
<Animations> encloses one or more tags.
==Example==
The following example uses to demonstrate <LayoutFrame>'s utility
* Creating (virtual) and using (inherits) XML virtual templates
* Extending a parent's name (name = "$parent____")
<Frame name="ContainerChildTemplate" virtual="true">
	<!-- insert stuff here -->
</Frame>
 
<Frame name="Container">
	<Frames>
		<Frame name="$parentChild1" inherits="ContainerChildTemplate" /> <!-- name="ContainerChild1" -->
		<Frame name="$parentChild2" inherits="ContainerChildTemplate" /> <!-- name="ContainerChild2" -->
	</Frames>
</Frame>
Extending the example, two more frames could be added to "Container" during runtime using Lua:
CreateFrame("Frame", "ContainerChild3", "Container", "ContainerChildTemplate");
CreateFrame("Frame", "ContainerChild4", "Container", "ContainerChildTemplate");
== See also ==
* Nearest Lua equivalent: .
* XML tags inheriting <LayoutFrame>: , , .