WoW:XML/Frame: Difference between revisions

93 bytes added ,  17 December 2020
m
no edit summary
(Fixed typo "inherts")
mNo edit summary
Line 1: Line 1:
{{uixmltype}}
{{uixmlelem}}
 
[[XML/Frame|Frame]] is a base type used as a fundamental UI building block for defining 'active' visible screen elements. The Frame type can be used for '''Layout''' due to [[XML/LayoutFrame|LayoutFrame]], and a full set of '''Appearance''' and '''Behaviour''' facilities.  Provides a base type for [[XML/Button|Button]], [[XML/EditBox|EditBox]], [[XML/ScrollingMessageFrame|ScrollingMessageFrame]], and many others.
[[XML/Frame|Frame]] is a base type used as a fundamental UI building block for defining 'active' visible screen elements. The Frame type can be used for '''Layout''' due to [[XML/LayoutFrame|LayoutFrame]], and a full set of '''Appearance''' and '''Behaviour''' facilities.  Provides a base type for [[XML/Button|Button]], [[XML/EditBox|EditBox]], [[XML/ScrollingMessageFrame|ScrollingMessageFrame]], and many others.


== Inheritance ==
== Inheritance ==
Inherited by: [[XML/Button|Button]] ..., Inherits: [[XML/LayoutFrame|LayoutFrame]], Defined in: [[XML/Frames|Frames]], [[XML/Ui|Ui]],
: Inherited by: [[XML/Button|Button]] ..., Inherits: [[XML/LayoutFrame|LayoutFrame]], Runtime object: [[UIOBJECT_Frame|Frame]]
Runtime object: [[UIOBJECT_Frame]]
: Defined in: [[XML/Frames|Frames]], [[XML/Ui|Ui]]


== Elements ==
== Elements ==
Line 49: Line 48:
* jumpNavigateEnabled {{attrtype|boolean}}
* jumpNavigateEnabled {{attrtype|boolean}}
* jumpNavigateStart {{attrtype|boolean}}
* jumpNavigateStart {{attrtype|boolean}}
* intrinsic {{attrtype|boolean}} - marks frame as an intrinsic frame type


=== Inherited from [[XML/LayoutFrame|LayoutFrame]]: ===
=== Inherited from [[XML/LayoutFrame|LayoutFrame]]: ===
Line 89: Line 89:


=== Events ===
=== Events ===
In addition to Frames being the things that you can see, Frames are also the things which UI and game events are delivered to. If you're writing code that needs to know about something, it will need a Frame (though not necessarily a visible one) to receive the event. There are many types of events, though often in AddOn development it refers to a [[API Events|Game Event]] rather than other UI events.
In addition to Frames being the things that you can see, Frames are also the things which UI and game events are delivered to. If you're writing code that needs to know about something, it will need a Frame (though not necessarily a visible one) to receive the event. There are many types of events, though often in AddOn development it refers to an [[API event]] game event. rather than other UI events.


A frame indicates its interest in events in a number of ways:
A frame indicates its interest in events in a number of ways:
Line 117: Line 117:
Instead of going around and specifying that frame A should have frame level 12, and frame B frame level 15, Blizzard uses a set of predefined "groups" of frame levels called frameStrata. The valid values for frameStrata are "PARENT", "BACKGROUND", "LOW", "MEDIUM", "HIGH", "DIALOG", "FULLSCREEN_DIALOG" and "TOOLTIP" (there may be more).  For the values "BACKGROUND" through "TOOLTIP" the values are listed in their assumed ascendancy (i.e. it is assumed that "BACKGROUND" will be below "LOW").  The default value is "PARENT" if no frameStrata is specified.
Instead of going around and specifying that frame A should have frame level 12, and frame B frame level 15, Blizzard uses a set of predefined "groups" of frame levels called frameStrata. The valid values for frameStrata are "PARENT", "BACKGROUND", "LOW", "MEDIUM", "HIGH", "DIALOG", "FULLSCREEN_DIALOG" and "TOOLTIP" (there may be more).  For the values "BACKGROUND" through "TOOLTIP" the values are listed in their assumed ascendancy (i.e. it is assumed that "BACKGROUND" will be below "LOW").  The default value is "PARENT" if no frameStrata is specified.


There is also a special attribute called toplevel - this means (hopefully) that the frame should be on top of any other frame (or, possibly, on top of any other frame in the same [[frameStrata]]).
There is also a special attribute called toplevel - this means (hopefully) that the frame should be on top of any other frame (or, possibly, on top of any other frame in the same [[XML/Frame|frameStrata]]).


=== frameLevel and frameStrata ===
=== frameLevel and frameStrata ===