Module Scroll
Component to handle scroll content.
Scroll consist from two nodes: scroll parent and scroll input
Scroll input the user input zone, it's static
Scroll parent the scroll moving part, it will change position.
Setup initial scroll size by changing scroll parent size. If scroll parent
size will be less than scroll_input size, no scroll is available. For scroll
parent size should be more than input size
init(self, view_node, content_node) |
Scroll constructor |
scroll_to(self, point[, is_instant]) |
Start scroll to target point. |
scroll_to_index(self, index[, skip_cb]) |
Scroll to item in scroll by point index. |
scroll_to_percent(self, percent[, is_instant]) |
Start scroll to target scroll percent |
get_percent(self) |
Return current scroll progress status. |
set_size(self, size) |
Set scroll content size. |
set_inert(self, state) |
Enable or disable scroll inert. |
is_inert(self) |
Return if scroll have inertion. |
set_extra_stretch_size(self[, stretch_size=0]) |
Set extra size for scroll stretching. |
get_scroll_size(self) |
Return vector of scroll size with width and height. |
set_points(self, points) |
Set points of interest. |
set_horizontal_scroll(self, state) |
Lock or unlock horizontal scroll |
set_vertical_scroll(self, state) |
Lock or unlock vertical scroll |
bind_grid(self, grid) |
Bind the grid component (Static or Dynamic) to recalculate
scroll size on grid changes |
_cancel_animate(self) |
Cancel animation on other animation or input touch |
style |
Component style params. |
on_scroll |
On scroll move callback(self, position) |
on_scroll_to |
On scroll_to function callback(self, target, is_instant) |
on_point_scroll |
On scroll_to_index function callback(self, index, point) |
view_node |
Scroll view node |
content_node |
Scroll content node |
is_inert |
Flag, if scroll now moving by inertion |
inertion |
Current inert speed |
position |
Current scroll posisition |
target_position |
Current scroll target position |
available_pos |
Available position for content node: (min_x, max_y, max_x, min_y) |
available_size |
Size of available positions: (width, height, 0) |
drag |
Drag Druid component |
selected |
Current index of points of interests |
-
init(self, view_node, content_node)
-
Scroll constructor
Parameters:
- self
Scroll
- view_node
node
GUI view scroll node
- content_node
node
GUI content scroll node
-
scroll_to(self, point[, is_instant])
-
Start scroll to target point.
Parameters:
- self
Scroll
- point
vector3
Target point
- is_instant
bool
Instant scroll flag
(optional)
Usage:
scroll:scroll_to(vmath.vector3(0, 50, 0))
scroll:scroll_to(vmath.vector3(0), true)
-
scroll_to_index(self, index[, skip_cb])
-
Scroll to item in scroll by point index.
Parameters:
- self
Scroll
- index
number
Point index
- skip_cb
bool
If true, skip the point callback
(optional)
-
scroll_to_percent(self, percent[, is_instant])
-
Start scroll to target scroll percent
Parameters:
- self
Scroll
- percent
vector3
target percent
- is_instant
bool
instant scroll flag
(optional)
Usage:
scroll:scroll_to_percent(vmath.vector3(0.5, 0, 0))
-
get_percent(self)
-
Return current scroll progress status.
Values will be in [0..1] interval
Parameters:
Returns:
vector3
New vector with scroll progress values
-
set_size(self, size)
-
Set scroll content size.
It will change content gui node size
Parameters:
- self
Scroll
- size
vector3
The new size for content node
Returns:
druid.scroll
Current scroll instance
-
set_inert(self, state)
-
Enable or disable scroll inert.
If disabled, scroll through points (if exist)
If no points, just simple drag without inertion
Parameters:
- self
Scroll
- state
bool
Inert scroll state
Returns:
druid.scroll
Current scroll instance
-
is_inert(self)
-
Return if scroll have inertion.
Parameters:
Returns:
bool
If scroll have inertion
-
set_extra_stretch_size(self[, stretch_size=0])
-
Set extra size for scroll stretching.
Set 0 to disable stretching effect
Parameters:
- self
Scroll
- stretch_size
number
Size in pixels of additional scroll area
(default 0)
Returns:
druid.scroll
Current scroll instance
-
get_scroll_size(self)
-
Return vector of scroll size with width and height.
Parameters:
Returns:
vector3
Available scroll size
-
set_points(self, points)
-
Set points of interest.
Scroll will always centered on closer points
Parameters:
- self
Scroll
- points
table
Array of vector3 points
Returns:
druid.scroll
Current scroll instance
-
set_horizontal_scroll(self, state)
-
Lock or unlock horizontal scroll
Parameters:
- self
Scroll
- state
bool
True, if horizontal scroll is enabled
Returns:
druid.scroll
Current scroll instance
-
set_vertical_scroll(self, state)
-
Lock or unlock vertical scroll
Parameters:
- self
Scroll
- state
bool
True, if vertical scroll is enabled
Returns:
druid.scroll
Current scroll instance
-
bind_grid(self, grid)
-
Bind the grid component (Static or Dynamic) to recalculate
scroll size on grid changes
Parameters:
- self
Scroll
- grid
StaticGrid or DynamicGrid
Druid grid component
Returns:
druid.scroll
Current scroll instance
-
_cancel_animate(self)
-
Cancel animation on other animation or input touch
Parameters:
-
style
-
Component style params.
You can override this component styles params in druid styles table
or create your own style
Fields:
- FRICT
number
Multiplier for free inertion
(default 0)
- FRICT_HOLD
number
Multiplier for inertion, while touching
(default 0)
- INERT_THRESHOLD
number
Scroll speed to stop inertion
(default 3)
- INERT_SPEED
number
Multiplier for inertion speed
(default 30)
- POINTS_DEADZONE
number
Speed to check points of interests in no_inertion mode
(default 20)
- BACK_SPEED
number
Scroll back returning lerp speed
(default 0.35)
- ANIM_SPEED
number
Scroll gui.animation speed for scroll_to function
(default 0.2)
- EXTRA_STRETCH_SIZE
number
extra size in pixels outside of scroll (stretch effect)
(default 0)
- SMALL_CONTENT_SCROLL
bool
If true, content node with size less than view node size can be scrolled
(default false)
-
on_scroll
-
On scroll move callback(self, position)
-
on_scroll_to
-
On scroll_to function callback(self, target, is_instant)
-
on_point_scroll
-
On scroll_to_index function callback(self, index, point)
- on_point_scroll
druid_event
-
view_node
-
Scroll view node
-
content_node
-
Scroll content node
-
is_inert
-
Flag, if scroll now moving by inertion
-
inertion
-
Current inert speed
-
position
-
Current scroll posisition
-
target_position
-
Current scroll target position
-
available_pos
-
Available position for content node: (min_x, max_y, max_x, min_y)
-
available_size
-
Size of available positions: (width, height, 0)
-
drag
-
Drag Druid component
-
selected
-
Current index of points of interests
- selected
number
(optional)