Frame
From Multiverse
| User Interface Widgets | |
|
Browser
|
Region
|
A Frame is a rectangular region with an opacity.
Derived from: Region.
Contents |
Tag
<Frame alpha=number enableKeyboard=[true|false] enableMouse=[true|false] frameStrata=[TOOLTIP | FULLSCREEN_DIALOG | FULLSCREEN | DIALOG | HIGH | MEDIUM | LOW | BACKGROUND] id=number parent=widgetName hidden=[true|false] inherits=parentWidgetName name=widgetName setAllPoints=[true|false] virtual=[true|false] > ... </Frame>
Attributes
Frame has the following attributes:
- alpha - Opacity of the frame widget; 0 is transparent, 1 opaque.
- enableKeyboard - one of
trueorfalse. If this is set to true, keyboard events will be intercepted by this frame, and will not be passed through, even if they are not handled by a script handler such as OnKeyDown. - enableMouse - one of
trueorfalse. If this is set to true, mouse events will be intercepted by this frame, and will not be passed through, even if they are not handled by a script handler such as OnMouseDown. - frameLevel* - The level of the frame. This is the second most important factor in whether one widget is in front of another. This attribute is determined by the nesting of the tag. See Note on frameLevel.
- frameStrata - The strata of the frame. This is the most important factor in whether one widget is in front of another. frameStrata is basically which layer your frame should be on. Valid values:
- TOOLTIP
- FULLSCREEN_DIALOG
- FULLSCREEN
- DIALOG
- HIGH
- MEDIUM
- LOW
- BACKGROUND
- id - Number associated with the frame used in scripting to associate the widget with a Python object.
- parent - Name of the parent of the window. Anchors will default to being relative to the parent, and if the parent is hidden, this widget will not be shown.
All widgets have these attributes that they inherit from Region:
- hidden - Boolean; whether the widget is initially hidden.
- inherits - name of the widget from which to inherit all attribute values. Must be widget of the same type as this widget (or an ancestor type).
- name - name of the widget. The name must be unique across all widgets in the UI.
- setAllPoints - Boolean (Not currently implemented)
- virtual - Boolean; if true, indicates this widget is not actually created, but will be used as a template for other widgets.
Note on frameLevel
The frameLevel attribute is not set in a <Frame> tag, but rather dictated by XML nesting, for example:
<Frame name="MyFrame" frameStrata="DIALOG" parent="UIParent"> <Frames> <Button name="MyButton"> </Button> </Frames> </Frame>
Since UIParent's frameLevel is 1, the frame created here is frameLevel 2 and the Button is frameLevel 3.
Use GetFrameLevel() to get a Frame's level and set it with SetFrameLevel(). However, in general it is better to rewrite your XML rather than setting a Frame's level programmatically.
If the parent of a Frame is changed by your code, the Frame levels are not adjusted to compensate. You may need to adjust the Frame's level to fix the way the frame displays.
Property Elements
As a Frame, it can contain any of these property elements:
Additionally, all widgets can contain these property elements:
- Anchors - contains one or more Anchor elements that specify the positioning of the widget relative to its parent.
- Size - specifies the size of the widget with an AbsDimension element.
Methods
The following table describes the methods of Frame.
| Method | Description | Parameters |
|---|---|---|
| GetFrameLevel() | Returns the Frame's frameLevel. See Note below.
Possbile values:
| None |
| GetFrameStrata() | Get the frame strata of the frame. One of the following:
| None |
| GetID() | Get the ID of the Frame (an integer). | None |
| GetScript( handler ) | Returns the function for the specified event handler. | |
| HasScript( handler ) | Returns true if the widget can be given a handler of the specified type (NOT whether it actually HAS one; use GetScript for that). | |
| RegisterEvent( event ) | Registers an events for the widget. See Client Event Handling. | Name of the event to register. |
| SetBackdropColor(r, g, b, [a]) | Sets the color value alpha values that tints the backdrop of a frame, as set by SetBackdrop([backdropTable]) method.
This color tints the Frame's backdrop file, which does not change the base color values of the file used, but rather modifies it. For example, tinting a black backdrop will have no effect. Alpha multiplies the existing alpha value. So, for example, an alpha of 1.0 for an image with an alpha channel of 0.5 shows the image with 50% opacity. |
|
| SetBackdropBorderColor(r, g, b, [a]) | Sets the color of the border for the backdrop on a Frame. |
|
| SetFrameLevel( level ) | Set the level of this frame (determines which of overlapping frames shows on top). Higher numbers always show up on top of lower numbers. | Integer value. Possible values;
See Note on frameLevel. |
| SetFrameStrata(strata) | Set the frame strata of the frame. | strata: the frame strata for the frame. One of the following:
|
| SetID(id) | Set the ID of the Frame to be used in scripting. | Number |
| SetScript( handler, func ) | Set the specified function as the event handler for the wdiget. | handler: String that specifies the handler to which to attach the function (for example, "OnShow", "OnEvent").
func: Function - The function to call. Use nil to remove the handler. func is called with arguments (frame, event). See Event handler arguments for more information. |
| UnregisterEvent( event ) | Unregisters an event that the object is currently monitoring. | Name of the event to unregister. |
| Methods Inherited from Region | ||
| ClearAllPoints() | Clears all the anchors for the widget | None |
| GetAlpha() | Returns the opacity (alpha) of the texture object, from 0 to 1. This does not include the effect of the alpha values of the parent widgets. | None |
| GetBottom() | Returns the y coordinate of the bottom edge of the frame. NOTE: This method is available on FontString and Texture widgets only with 1.5. | None |
| GetHeight() | Returns the height of the widget | None |
| GetLeft() | Returns the x coordinate of the left edge of the frame.
NOTE: This method is available on FontString and Texture widgets only with 1.5. | None |
| GetName() | Returns the name of the widget. | None |
| GetParent() | Returns the parent widget of the frame. NOTE: This method is available on FontString and Texture widgets only with 1.5. | None |
| GetRight() | Returns the x coordinate of the right edge of the frame. NOTE: This method is available on FontString and Texture widgets only with 1.5. | None |
| GetTop() | Returns the y coordinate of the top of the frame, but inverted so that 0 is the bottom of the screen. NOTE: This method is available on FontString and Texture widgets only with 1.5. | None |
| GetWidth() | Returns the width of the widget | None |
| Hide() | Mark the widget as hidden. If the widget, or any of the widget's parents are hidden, the widget will not be displayed. | None |
| IsVisible() | Returns true if the widget is visible, false otherwise. If the widget, or any of the widget's parents are hidden, the widget will not be displayed. | None |
| SetAlpha(alpha) | Set the alpha value (opacity) of the widget. | alpha - a measure of opacity: zero (0) means transparent, while one (1) means opaque. |
| SetHeight(height) | Set the height of the widget. | height -height in pixels (integer) |
| SetPoint( point,
relativeTo,
| Set an anchor point for the widget. Valid values for point and relativePoint arguments:
| point - Point on the widget that is anchored.
relativeTo - Name of the widget being achored to.
|
| SetWidth(width) | Set the width of the widget | width - width in pixels(integer) |
| Show() | Mark the widget as visible. If the widget, or any of the widget's parents are hidden, the widget will not be displayed. | None
|
Event handlers
| Event Handler | Called When... |
|---|---|
| OnDragStart | User starts drag action. Not called by the input handler. |
| OnDragStop | User stops drag action. Not called by the input handler. |
| OnEnter | The mouse pointer moves over the widget. |
| OnEvent | Any other event occurs. |
| OnHide | Widget is hidden. |
| OnKeyDown | User presses any key down. |
| OnKeyUp | User releases any key. |
| OnLeave | The mouse pointer leaves the widget. |
| OnLoad | Widget is loaded. |
| OnMouseDown | User presses mouse button down when the pointer is over the widget. |
| OnMouseUp | User releases mouse button when the pointer is over the widget. |
| OnMouseWheel | User moves mouse wheel when the pointer is over the widget. |
| OnReceiveDrag | User drags an object onto the widget. Not called by the input handler. |
| OnShow | Widget is shown (un-hidden). |
| OnSizeChanged | Widget's size changes. Not called by the input handler. |
| OnUpdate | Called before each frame is painted (between the processing of events and user actions, but before the UI elements are drawn onto the screen). It is invoked for every visible widget that declares an OnUpdate handler. |
Example
<Frame name="QuestLogHighlightFrame" hidden="true">
<Size> <AbsDimension x="293" y="16"/> </Size>
<Anchors>
<Anchor point="TOPLEFT"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture name="QuestLogSkillHighlight"
file="Interface\QuestFrame\UI-QuestLogTitleHighlight"
alphaMode="ADD"/>
</Layer>
</Layers>
</Frame>
