2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2020-02-01 09:03:48 +08:00
<class name= "ScrollContainer" inherits= "Container" version= "4.0" >
2017-09-13 04:42:36 +08:00
<brief_description >
2019-06-22 07:04:47 +08:00
A helper node for displaying scrollable elements such as lists.
2017-09-13 04:42:36 +08:00
</brief_description>
<description >
2020-02-26 11:47:06 +08:00
A ScrollContainer node meant to contain a [Control] child.
ScrollContainers will automatically create a scrollbar child ([HScrollBar], [VScrollBar], or both) when needed and will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the [member Control.rect_min_size] of the Control relative to the ScrollContainer.
Works great with a [Panel] control. You can set [code]EXPAND[/code] on the children's size flags, so they will upscale to the ScrollContainer's size if it's larger (scroll is invisible for the chosen dimension).
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
</tutorials>
<methods >
2021-05-15 11:19:23 +08:00
<method name= "ensure_control_visible" >
<return type= "void" >
</return>
<argument index= "0" name= "control" type= "Control" >
</argument>
<description >
Ensures the given [code]control[/code] is visible (must be a direct or indirect child of the ScrollContainer). Used by [member follow_focus].
</description>
</method>
2018-06-12 00:41:16 +08:00
<method name= "get_h_scrollbar" >
<return type= "HScrollBar" >
</return>
<description >
2020-01-25 00:21:53 +08:00
Returns the horizontal scrollbar [HScrollBar] of this [ScrollContainer].
2018-06-12 00:41:16 +08:00
</description>
</method>
<method name= "get_v_scrollbar" >
<return type= "VScrollBar" >
</return>
<description >
2020-01-25 00:21:53 +08:00
Returns the vertical scrollbar [VScrollBar] of this [ScrollContainer].
2018-06-12 00:41:16 +08:00
</description>
</method>
2017-09-13 04:42:36 +08:00
</methods>
<members >
2019-12-24 07:03:24 +08:00
<member name= "follow_focus" type= "bool" setter= "set_follow_focus" getter= "is_following_focus" default= "false" >
If [code]true[/code], the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.
</member>
2020-01-03 22:09:03 +08:00
<member name= "rect_clip_content" type= "bool" setter= "set_clip_contents" getter= "is_clipping_contents" override= "true" default= "true" />
2019-06-29 18:38:01 +08:00
<member name= "scroll_deadzone" type= "int" setter= "set_deadzone" getter= "get_deadzone" default= "0" >
2018-04-10 16:12:42 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "scroll_horizontal" type= "int" setter= "set_h_scroll" getter= "get_h_scroll" default= "0" >
2018-01-12 06:38:35 +08:00
The current horizontal scroll value.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "scroll_horizontal_enabled" type= "bool" setter= "set_enable_h_scroll" getter= "is_h_scroll_enabled" default= "true" >
2018-01-12 06:38:35 +08:00
If [code]true[/code], enables horizontal scrolling.
</member>
2021-04-19 04:38:44 +08:00
<member name= "scroll_horizontal_visible" type= "bool" setter= "set_h_scroll_visible" getter= "is_h_scroll_visible" default= "true" >
If [code]false[/code], hides the horizontal scrollbar.
</member>
2019-06-29 18:38:01 +08:00
<member name= "scroll_vertical" type= "int" setter= "set_v_scroll" getter= "get_v_scroll" default= "0" >
2018-05-12 16:45:56 +08:00
The current vertical scroll value.
2018-01-12 06:38:35 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "scroll_vertical_enabled" type= "bool" setter= "set_enable_v_scroll" getter= "is_v_scroll_enabled" default= "true" >
2018-01-12 06:38:35 +08:00
If [code]true[/code], enables vertical scrolling.
2017-09-13 04:42:36 +08:00
</member>
2021-04-19 04:38:44 +08:00
<member name= "scroll_vertical_visible" type= "bool" setter= "set_v_scroll_visible" getter= "is_v_scroll_visible" default= "true" >
If [code]false[/code], hides the vertical scrollbar.
</member>
2017-09-13 04:42:36 +08:00
</members>
2018-04-10 16:12:42 +08:00
<signals >
<signal name= "scroll_ended" >
<description >
2019-06-22 07:04:47 +08:00
Emitted when scrolling stops.
2018-04-10 16:12:42 +08:00
</description>
</signal>
<signal name= "scroll_started" >
<description >
2019-06-22 07:04:47 +08:00
Emitted when scrolling is started.
2018-04-10 16:12:42 +08:00
</description>
</signal>
</signals>
2017-09-13 04:42:36 +08:00
<constants >
</constants>
2018-05-28 20:53:15 +08:00
<theme_items >
<theme_item name= "bg" type= "StyleBox" >
2020-01-27 09:15:37 +08:00
The background [StyleBox] of the [ScrollContainer].
2018-05-28 20:53:15 +08:00
</theme_item>
</theme_items>
2017-09-13 04:42:36 +08:00
</class>