local Constraints = require "lib.simple_ui.core.constraints" local SingleChildElement = require "lib.simple_ui.core.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._size_.x - self._child_._size_.x) / 2, (self._size_.y - self._child_._size_.y) / 2, } end --- @return Center --- @param values {child: UIElement?} function element:new(values) return SingleChildElement.new(self, values) end return element