Update layout component

This commit is contained in:
Insality
2022-06-15 10:37:45 +05:00
parent e029d1eac3
commit 0107c015a1
4 changed files with 22 additions and 5 deletions

View File

@@ -23,6 +23,7 @@ function Layout:init(node, mode, on_size_changed_callback)
self._min_size = nil
self._max_size = nil
self._inited = false
self._is_stretch_position = nil
self.gui_size = vmath.vector3(gui.get_width(), gui.get_height(), 0)
self.mode = mode or const.LAYOUT_MODE.FIT
@@ -81,11 +82,14 @@ function Layout:on_window_resized()
new_size.x = math.min(new_size.x, self._max_size.x)
new_size.y = math.min(new_size.y, self._max_size.y)
end
gui.set_size(self.node, new_size)
self.position.x = self.origin_position.x + self.origin_position.x * (1 - x_koef) * self.pivot.x * 2
self.position.y = self.origin_position.y + self.origin_position.y * (1 - y_koef) * self.pivot.y * 2
self.position.x = self.origin_position.x
self.position.y = self.origin_position.y
if self._is_stretch_position then
self.position.x = self.position.x + self.origin_position.x * (1 - x_koef) * (self.pivot.x * 2)
self.position.y = self.position.y + self.origin_position.y * (1 - y_koef) * (self.pivot.y * 2)
end
gui.set_position(self.node, self.position)
self.on_size_changed:trigger(self:get_context(), new_size)
@@ -110,6 +114,14 @@ function Layout:set_origin_position(new_origin_position)
end
--@tparam boolean state
function Layout:set_stretch_position(state)
self._is_stretch_position = state
self:on_window_resized()
return self
end
function Layout:set_origin_size(new_origin_size)
self.origin_size = new_origin_size or self.origin_size
self:on_window_resized()