23 lines
685 B
Lua
23 lines
685 B
Lua
local Constraints = require "lib.simple_ui.constraints"
|
|
local SingleChildElement = require "lib.simple_ui.single_child_element"
|
|
|
|
--- @class Center : SingleChildElement
|
|
local element = setmetatable({}, SingleChildElement)
|
|
element.__index = element
|
|
element.__type = "Center"
|
|
|
|
function element:layout()
|
|
self.size = Vec3 { self.constraints.maxWidth, self.constraints.maxHeight }
|
|
|
|
if not self.child then return end
|
|
self.child.constraints = Constraints(self.constraints)
|
|
self.child:layout()
|
|
|
|
self.child.offset = Vec3 {
|
|
self.offset.x + (self.size.x - self.child.size.x) / 2,
|
|
self.offset.y + (self.size.y - self.child.size.y) / 2,
|
|
}
|
|
end
|
|
|
|
return element
|