ScrollFrame
From Multiverse
| User Interface Widgets | |
|
Browser
|
Region
|
A ScrollFrame is a region that can contain arbitrary widgets, is clipped, and can scroll vertically.
Derived from: Frame.
Contents |
Tag
<ScrollFrame 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] > ... </ScrollFrame>
Attributes
ScrollFrame inherits these attributes from Frame:
- 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.
Property elements
ScrollFrame can contain this special property element: ScrollChild
As a Frame, ScrollFrame 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 ScrollFrame.
| Method | Description | Parameters |
|---|---|---|
| GetHorizontalScroll() | Returns the horizontal offset of the ScrollFrame | None |
| GetHorizontalScrollRange() | Returns the range for the horizontal scroll. This is the maximum value for the horizontal offset. | None |
| GetScrollChild() | Returns the child frame that is contained within and clipped by the ScrollFrame. | None |
| GetVerticalScroll() | Returns the vertical offset of the ScrollFrame | None |
| GetVerticalScrollRange() | Returns the range for the vertical scroll. This is the maximum value for the vertical offset. | None |
| SetHorizontalScroll(offset) | Sets the horizontal offset of the scroll frame | offset: offset in pixels that the child frame is scrolled off to the left |
| SetScrollChild(frame) | Sets the frame that is contained within and clipped by the ScrollFrame. | frame : either the name of the frame or the actual frame object that will be managed by the ScrollFrame |
| SetVerticalScroll(offset) | Sets the vertical offset of the ScrollFrame | offset: offset in pixels that the child frame is scrolled off to the top |
| UpdateScrollChildRect() | Updates the Scroll Child Rectangle. Call this when you change the contents of a ScrollFrame. | None |
| Methods Inherited from Frame | ||
| 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... |
|---|---|
| OnChar | User types a character into the ScrollFrame. |
| OnHorizontalScroll | User scrolls ScrollFrame horizontally. |
| OnScrollRangeChanged | Min or max values of scroll range change. |
| OnVerticalScroll | User scrolls vertically. |
| Event Handlers inherited from Frame | |
| 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
<ScrollFrame name="FriendsFrameIgnoreScrollFrame" inherits="FauxScrollFrameTemplate">
<Size> <AbsDimension x="296" y="330"/> </Size>
<Anchors>
<Anchor point="TOPRIGHT" relativeTo="FriendsFrame">
<Offset> <AbsDimension x="-67" y="-75"/> </Offset>
</Anchor>
</Anchors>
<ScrollChild>
<Frame name="FriendsFrameIgnoreScrollChildFrame">
...
</Frame>
</ScrollChild>
</ScrollFrame>
