remove absolute positioning in elements

This commit is contained in:
PeaAshMeter 2026-05-29 03:04:40 +03:00
parent 939f03b8c8
commit d1525539e3
3 changed files with 5 additions and 5 deletions

View File

@ -6,8 +6,8 @@ local Vec3 = require "lib.utils.vec3"
--- @field key? any Must be convertible to string --- @field key? any Must be convertible to string
--- @field parent? UIElement --- @field parent? UIElement
--- @field constraints Constraints --- @field constraints Constraints
--- @field offset Vec3 Положение левого верхнего угла элемента в экранных координатах {x, y}. Устанавливается родительским элементом. --- @field offset Vec3 Положение левого верхнего угла элемента в локальных координатах {x, y}. Устанавливается родительским элементом.
--- @field size Vec3 Размеры элемента в экранных координатах {x, y} --- @field size Vec3 Размеры элемента {x, y}
--- @field build? fun(self, ctx: UIElement): UIElement --- @field build? fun(self, ctx: UIElement): UIElement
local element = {} local element = {}
element.__index = element element.__index = element

View File

@ -14,8 +14,8 @@ function element:layout()
self.child:layout() self.child:layout()
self.child.offset = Vec3 { self.child.offset = Vec3 {
self.offset.x + (self.size.x - self.child.size.x) / 2, (self.size.x - self.child.size.x) / 2,
self.offset.y + (self.size.y - self.child.size.y) / 2, (self.size.y - self.child.size.y) / 2,
} }
end end

View File

@ -29,7 +29,7 @@ function element:layout()
self.child:layout() self.child:layout()
self.size = Vec3 { self.child.size.x + self.left + self.right, self.child.size.y + self.top + self.bottom } self.size = Vec3 { self.child.size.x + self.left + self.right, self.child.size.y + self.top + self.bottom }
self.child.offset = self.offset + Vec3 { self.left, self.top } self.child.offset = Vec3 { self.left, self.top }
end end
--- @return Padding --- @return Padding