123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410 |
- :github_url: hide
- .. DO NOT EDIT THIS FILE!!!
- .. Generated automatically from Godot engine sources.
- .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
- .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/ScrollContainer.xml.
- .. _class_ScrollContainer:
- ScrollContainer
- ===============
- **Inherits:** :ref:`Container<class_Container>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- **Inherited By:** :ref:`EditorInspector<class_EditorInspector>`
- A container used to provide scrollbars to a child control when needed.
- .. rst-class:: classref-introduction-group
- Description
- -----------
- A container used to provide a child control with scrollbars when needed. 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 :ref:`Control.custom_minimum_size<class_Control_property_custom_minimum_size>` of the Control relative to the ScrollContainer.
- .. rst-class:: classref-introduction-group
- Tutorials
- ---------
- - :doc:`Using Containers <../tutorials/ui/gui_containers>`
- .. rst-class:: classref-reftable-group
- Properties
- ----------
- .. table::
- :widths: auto
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | clip_contents | ``true`` (overrides :ref:`Control<class_Control_property_clip_contents>`) |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`follow_focus<class_ScrollContainer_property_follow_focus>` | ``false`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` | :ref:`horizontal_scroll_mode<class_ScrollContainer_property_horizontal_scroll_mode>` | ``1`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`int<class_int>` | :ref:`scroll_deadzone<class_ScrollContainer_property_scroll_deadzone>` | ``0`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`int<class_int>` | :ref:`scroll_horizontal<class_ScrollContainer_property_scroll_horizontal>` | ``0`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`float<class_float>` | :ref:`scroll_horizontal_custom_step<class_ScrollContainer_property_scroll_horizontal_custom_step>` | ``-1.0`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`int<class_int>` | :ref:`scroll_vertical<class_ScrollContainer_property_scroll_vertical>` | ``0`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`float<class_float>` | :ref:`scroll_vertical_custom_step<class_ScrollContainer_property_scroll_vertical_custom_step>` | ``-1.0`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- | :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` | :ref:`vertical_scroll_mode<class_ScrollContainer_property_vertical_scroll_mode>` | ``1`` |
- +----------------------------------------------------+----------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+
- .. rst-class:: classref-reftable-group
- Methods
- -------
- .. table::
- :widths: auto
- +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`ensure_control_visible<class_ScrollContainer_method_ensure_control_visible>`\ (\ control\: :ref:`Control<class_Control>`\ ) |
- +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`HScrollBar<class_HScrollBar>` | :ref:`get_h_scroll_bar<class_ScrollContainer_method_get_h_scroll_bar>`\ (\ ) |
- +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`VScrollBar<class_VScrollBar>` | :ref:`get_v_scroll_bar<class_ScrollContainer_method_get_v_scroll_bar>`\ (\ ) |
- +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
- .. rst-class:: classref-reftable-group
- Theme Properties
- ----------------
- .. table::
- :widths: auto
- +---------------------------------+-------------------------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`panel<class_ScrollContainer_theme_style_panel>` |
- +---------------------------------+-------------------------------------------------------+
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Signals
- -------
- .. _class_ScrollContainer_signal_scroll_ended:
- .. rst-class:: classref-signal
- **scroll_ended**\ (\ ) :ref:`🔗<class_ScrollContainer_signal_scroll_ended>`
- Emitted when scrolling stops when dragging the scrollable area *with a touch event*. This signal is *not* emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events.
- \ **Note:** This signal is only emitted on Android or iOS, or on desktop/web platforms when :ref:`ProjectSettings.input_devices/pointing/emulate_touch_from_mouse<class_ProjectSettings_property_input_devices/pointing/emulate_touch_from_mouse>` is enabled.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_signal_scroll_started:
- .. rst-class:: classref-signal
- **scroll_started**\ (\ ) :ref:`🔗<class_ScrollContainer_signal_scroll_started>`
- Emitted when scrolling starts when dragging the scrollable area w\ *ith a touch event*. This signal is *not* emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events.
- \ **Note:** This signal is only emitted on Android or iOS, or on desktop/web platforms when :ref:`ProjectSettings.input_devices/pointing/emulate_touch_from_mouse<class_ProjectSettings_property_input_devices/pointing/emulate_touch_from_mouse>` is enabled.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Enumerations
- ------------
- .. _enum_ScrollContainer_ScrollMode:
- .. rst-class:: classref-enumeration
- enum **ScrollMode**: :ref:`🔗<enum_ScrollContainer_ScrollMode>`
- .. _class_ScrollContainer_constant_SCROLL_MODE_DISABLED:
- .. rst-class:: classref-enumeration-constant
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **SCROLL_MODE_DISABLED** = ``0``
- Scrolling disabled, scrollbar will be invisible.
- .. _class_ScrollContainer_constant_SCROLL_MODE_AUTO:
- .. rst-class:: classref-enumeration-constant
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **SCROLL_MODE_AUTO** = ``1``
- Scrolling enabled, scrollbar will be visible only if necessary, i.e. container's content is bigger than the container.
- .. _class_ScrollContainer_constant_SCROLL_MODE_SHOW_ALWAYS:
- .. rst-class:: classref-enumeration-constant
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **SCROLL_MODE_SHOW_ALWAYS** = ``2``
- Scrolling enabled, scrollbar will be always visible.
- .. _class_ScrollContainer_constant_SCROLL_MODE_SHOW_NEVER:
- .. rst-class:: classref-enumeration-constant
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **SCROLL_MODE_SHOW_NEVER** = ``3``
- Scrolling enabled, scrollbar will be hidden.
- .. _class_ScrollContainer_constant_SCROLL_MODE_RESERVE:
- .. rst-class:: classref-enumeration-constant
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **SCROLL_MODE_RESERVE** = ``4``
- Combines :ref:`SCROLL_MODE_AUTO<class_ScrollContainer_constant_SCROLL_MODE_AUTO>` and :ref:`SCROLL_MODE_SHOW_ALWAYS<class_ScrollContainer_constant_SCROLL_MODE_SHOW_ALWAYS>`. The scrollbar is only visible if necessary, but the content size is adjusted as if it was always visible. It's useful for ensuring that content size stays the same regardless if the scrollbar is visible.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Property Descriptions
- ---------------------
- .. _class_ScrollContainer_property_follow_focus:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **follow_focus** = ``false`` :ref:`🔗<class_ScrollContainer_property_follow_focus>`
- .. rst-class:: classref-property-setget
- - |void| **set_follow_focus**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **is_following_focus**\ (\ )
- If ``true``, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_horizontal_scroll_mode:
- .. rst-class:: classref-property
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **horizontal_scroll_mode** = ``1`` :ref:`🔗<class_ScrollContainer_property_horizontal_scroll_mode>`
- .. rst-class:: classref-property-setget
- - |void| **set_horizontal_scroll_mode**\ (\ value\: :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>`\ )
- - :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **get_horizontal_scroll_mode**\ (\ )
- Controls whether horizontal scrollbar can be used and when it should be visible. See :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` for options.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_scroll_deadzone:
- .. rst-class:: classref-property
- :ref:`int<class_int>` **scroll_deadzone** = ``0`` :ref:`🔗<class_ScrollContainer_property_scroll_deadzone>`
- .. rst-class:: classref-property-setget
- - |void| **set_deadzone**\ (\ value\: :ref:`int<class_int>`\ )
- - :ref:`int<class_int>` **get_deadzone**\ (\ )
- Deadzone for touch scrolling. Lower deadzone makes the scrolling more sensitive.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_scroll_horizontal:
- .. rst-class:: classref-property
- :ref:`int<class_int>` **scroll_horizontal** = ``0`` :ref:`🔗<class_ScrollContainer_property_scroll_horizontal>`
- .. rst-class:: classref-property-setget
- - |void| **set_h_scroll**\ (\ value\: :ref:`int<class_int>`\ )
- - :ref:`int<class_int>` **get_h_scroll**\ (\ )
- The current horizontal scroll value.
- \ **Note:** If you are setting this value in the :ref:`Node._ready<class_Node_private_method__ready>` function or earlier, it needs to be wrapped with :ref:`Object.set_deferred<class_Object_method_set_deferred>`, since scroll bar's :ref:`Range.max_value<class_Range_property_max_value>` is not initialized yet.
- ::
- func _ready():
- set_deferred("scroll_horizontal", 600)
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_scroll_horizontal_custom_step:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **scroll_horizontal_custom_step** = ``-1.0`` :ref:`🔗<class_ScrollContainer_property_scroll_horizontal_custom_step>`
- .. rst-class:: classref-property-setget
- - |void| **set_horizontal_custom_step**\ (\ value\: :ref:`float<class_float>`\ )
- - :ref:`float<class_float>` **get_horizontal_custom_step**\ (\ )
- Overrides the :ref:`ScrollBar.custom_step<class_ScrollBar_property_custom_step>` used when clicking the internal scroll bar's horizontal increment and decrement buttons or when using arrow keys when the :ref:`ScrollBar<class_ScrollBar>` is focused.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_scroll_vertical:
- .. rst-class:: classref-property
- :ref:`int<class_int>` **scroll_vertical** = ``0`` :ref:`🔗<class_ScrollContainer_property_scroll_vertical>`
- .. rst-class:: classref-property-setget
- - |void| **set_v_scroll**\ (\ value\: :ref:`int<class_int>`\ )
- - :ref:`int<class_int>` **get_v_scroll**\ (\ )
- The current vertical scroll value.
- \ **Note:** Setting it early needs to be deferred, just like in :ref:`scroll_horizontal<class_ScrollContainer_property_scroll_horizontal>`.
- ::
- func _ready():
- set_deferred("scroll_vertical", 600)
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_scroll_vertical_custom_step:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **scroll_vertical_custom_step** = ``-1.0`` :ref:`🔗<class_ScrollContainer_property_scroll_vertical_custom_step>`
- .. rst-class:: classref-property-setget
- - |void| **set_vertical_custom_step**\ (\ value\: :ref:`float<class_float>`\ )
- - :ref:`float<class_float>` **get_vertical_custom_step**\ (\ )
- Overrides the :ref:`ScrollBar.custom_step<class_ScrollBar_property_custom_step>` used when clicking the internal scroll bar's vertical increment and decrement buttons or when using arrow keys when the :ref:`ScrollBar<class_ScrollBar>` is focused.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_property_vertical_scroll_mode:
- .. rst-class:: classref-property
- :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **vertical_scroll_mode** = ``1`` :ref:`🔗<class_ScrollContainer_property_vertical_scroll_mode>`
- .. rst-class:: classref-property-setget
- - |void| **set_vertical_scroll_mode**\ (\ value\: :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>`\ )
- - :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` **get_vertical_scroll_mode**\ (\ )
- Controls whether vertical scrollbar can be used and when it should be visible. See :ref:`ScrollMode<enum_ScrollContainer_ScrollMode>` for options.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Method Descriptions
- -------------------
- .. _class_ScrollContainer_method_ensure_control_visible:
- .. rst-class:: classref-method
- |void| **ensure_control_visible**\ (\ control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_ScrollContainer_method_ensure_control_visible>`
- Ensures the given ``control`` is visible (must be a direct or indirect child of the ScrollContainer). Used by :ref:`follow_focus<class_ScrollContainer_property_follow_focus>`.
- \ **Note:** This will not work on a node that was just added during the same frame. If you want to scroll to a newly added child, you must wait until the next frame using :ref:`SceneTree.process_frame<class_SceneTree_signal_process_frame>`:
- ::
- add_child(child_node)
- await get_tree().process_frame
- ensure_control_visible(child_node)
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_method_get_h_scroll_bar:
- .. rst-class:: classref-method
- :ref:`HScrollBar<class_HScrollBar>` **get_h_scroll_bar**\ (\ ) :ref:`🔗<class_ScrollContainer_method_get_h_scroll_bar>`
- Returns the horizontal scrollbar :ref:`HScrollBar<class_HScrollBar>` of this **ScrollContainer**.
- \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use :ref:`horizontal_scroll_mode<class_ScrollContainer_property_horizontal_scroll_mode>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_ScrollContainer_method_get_v_scroll_bar:
- .. rst-class:: classref-method
- :ref:`VScrollBar<class_VScrollBar>` **get_v_scroll_bar**\ (\ ) :ref:`🔗<class_ScrollContainer_method_get_v_scroll_bar>`
- Returns the vertical scrollbar :ref:`VScrollBar<class_VScrollBar>` of this **ScrollContainer**.
- \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use :ref:`vertical_scroll_mode<class_ScrollContainer_property_vertical_scroll_mode>`.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Theme Property Descriptions
- ---------------------------
- .. _class_ScrollContainer_theme_style_panel:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **panel** :ref:`🔗<class_ScrollContainer_theme_style_panel>`
- The background :ref:`StyleBox<class_StyleBox>` of the **ScrollContainer**.
- .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
- .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
- .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
- .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
- .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
- .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
- .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
- .. |void| replace:: :abbr:`void (No return value.)`
|