Add more scroll examples

This commit is contained in:
Insality
2020-03-19 00:07:55 +03:00
parent 5ef9e6fa65
commit 85e2235bae
9 changed files with 394 additions and 36 deletions

View File

@@ -98,7 +98,7 @@ end
function M.get_size(self)
return vmath.vector3(
self.border.z - self.border.x,
self.border.w - self.border.y,
self.border.y - self.border.w,
0)
end

View File

@@ -27,6 +27,25 @@ local function get_border(node)
end
local function update_border(self)
local input_border = get_border(self.input_zone)
local content_border = get_border(self.node)
-- border.x - min content.x node pos
-- border.y - min content.y node pos
-- border.z - max content.x node pos
-- border.w - max content.y node pos
self.border = vmath.vector4(
input_border.x - content_border.x,
-input_border.w + content_border.w,
input_border.z - content_border.z,
-input_border.y + content_border.y
)
self.can_x = (self.border.x ~= self.border.z)
self.can_y = (self.border.y ~= self.border.w)
end
function M.init(self, scroll_parent, input_zone, border)
self.style = self:get_style()
self.node = self:get_node(scroll_parent)
@@ -53,14 +72,7 @@ function M.init(self, scroll_parent, input_zone, border)
side = false,
}
local input_border = get_border(self.input_zone)
local content_border = get_border(self.node)
self:set_border(vmath.vector4(
input_border.x - content_border.x,
-input_border.w + content_border.w,
input_border.z - content_border.z,
-input_border.y + content_border.y
))
update_border(self)
self.on_scroll = Event()
self.on_scroll_to = Event()
@@ -432,14 +444,9 @@ end
-- @function scroll:set_border
-- @tparam table self Component instance
-- @tparam vmath.vector3 border Size of scrolling area
function M.set_border(self, border)
-- border.x - min content.x node pos
-- border.y - min content.y node pos
-- border.z - max content.x node pos
-- border.w - max content.y node pos
self.border = border
self.can_x = (border.x ~= border.z)
self.can_y = (border.y ~= border.w)
function M.set_border(self, content_size)
gui.set_size(self.node, content_size)
update_border(self)
end

View File

@@ -48,6 +48,9 @@ end
--- Setup scale x, but can only be smaller, than start text scale
local function update_text_area_size(self)
gui.set_scale(self.node, self.start_scale)
gui.set_size(self.node, self.start_size)
local max_width = self.text_area.x
local max_height = self.text_area.y