Files
BusyRabbit/Content/Lua/UI/UILayerManager.lua
2025-07-09 01:08:35 +08:00

41 lines
1003 B
Lua

local UILayerManager = {}
local EWidgetLayoutType = import("EWidgetLayoutType")
function UILayerManager:ctor()
self.layer_mapping = {}
end
function UILayerManager:OnInitialized()
self.layer_mapping = {
[EWidgetLayoutType.MainLayer] = self.MainLayer,
[EWidgetLayoutType.PopupLayer] = self.PopupLayer,
[EWidgetLayoutType.FloatLayer] = self.FloatLayer,
[EWidgetLayoutType.TopLayer] = self.TopLayer,
}
end
function UILayerManager:ShowWidget(widget, args)
local layer = self.layer_mapping[widget.LayoutType]
if layer == nil then
return
end
layer:AddChild(widget)
if widget.Refresh then
widget:Refresh(args)
end
widget.Slot:SetVerticalAlignment(0)
widget.Slot:SetHorizontalAlignment(0)
widget:SetVisible(true)
end
function UILayerManager:HideWidget(widget)
widget:SetVisible(false)
end
function UILayerManager:CloseWidget(widget)
widget:SetVisible(false)
end
return Class(nil, nil, UILayerManager)