Add dirty add_scroll_offset to scroll component

This commit is contained in:
Insality 2020-09-27 22:13:15 +03:00
parent 5c4497330c
commit 19139ca0ef

View File

@ -103,6 +103,7 @@ function Scroll:init(view_node, content_node)
self.view_node = self:get_node(view_node)
self.content_node = self:get_node(content_node)
self.scroll_offset = vmath.vector3(0)
self.position = gui.get_position(self.content_node)
self.target_position = vmath.vector3(self.position)
@ -236,6 +237,19 @@ function Scroll:set_size(size)
end
--- Set scroll content size by borders
-- It will change content gui node sizes
-- @function scroll:set_border
-- @tparam vector4 border The new scroll borders for content node
-- @treturn druid.Scroll Current scroll instance
function Scroll:set_scroll_offset(offset)
self.scroll_offset = offset
self:_update_size()
return self
end
--- Enable or disable scroll inert.
-- If disabled, scroll through points (if exist)
-- If no points, just simple drag without inertion
@ -538,6 +552,10 @@ function Scroll:_update_size()
self.available_pos = get_border_vector(view_border - content_border)
self.available_size = get_size_vector(self.available_pos)
self.available_pos.x = self.available_pos.x + self.scroll_offset.x
self.available_pos.z = self.available_pos.z + self.scroll_offset.x
self.available_pos.y = self.available_pos.y + self.scroll_offset.y
self.available_pos.w = self.available_pos.w + self.scroll_offset.y
self.drag.can_x = self.available_size.x > 0 and self._is_horizontal_scroll
self.drag.can_y = self.available_size.y > 0 and self._is_vertical_scroll
@ -567,6 +585,10 @@ function Scroll:_update_size()
self.available_pos_extra = get_border_vector(view_border - content_border_extra)
self.available_size_extra = get_size_vector(self.available_pos_extra)
self.available_pos_extra.x = self.available_pos_extra.x + self.scroll_offset.x
self.available_pos_extra.z = self.available_pos_extra.z + self.scroll_offset.x
self.available_pos_extra.y = self.available_pos_extra.y + self.scroll_offset.y
self.available_pos_extra.w = self.available_pos_extra.w + self.scroll_offset.y
end