Files
2025-12-02 20:37:18 +07:00

93 lines
2.0 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.Sketch
SketchCtrl = HL.Class('SketchCtrl', uiCtrl.UICtrl)
SketchCtrl.s_messages = HL.StaticField(HL.Table) << {
}
SketchCtrl.m_callback = HL.Field(HL.Userdata)
SketchCtrl.TryOpenSketch = HL.StaticMethod(HL.Table) << function(arg)
if BEYOND_DEBUG then
local ctrl = SketchCtrl.AutoOpen(PANEL_ID, nil, true)
if ctrl == nil then
return
end
local sketchData = unpack(arg)
ctrl:ShowSketch(sketchData)
end
end
SketchCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
self.view.button.onClick:RemoveAllListeners()
self.view.button.onClick:AddListener(function()
local callback = self.m_callback
self:Close()
if callback then
callback()
end
end)
end
SketchCtrl.ShowSketch = HL.Method(HL.Any) << function(self, sketchData)
self.m_callback = sketchData.callback
local sprite = not string.isEmpty(sketchData.imageBG) and self:LoadSprite(UIConst.UI_SPRITE_SKETCH, sketchData.imageBG)
self.view.bg.gameObject:SetActive(not not sprite)
self.view.bg.sprite = sprite
local leftActive = not string.isEmpty(sketchData.imageLeft)
local rightActive = not string.isEmpty(sketchData.imageRight)
self.view.leftImage.gameObject:SetActive(leftActive)
self.view.rightImage.gameObject:SetActive(rightActive)
if leftActive then
self.view.leftImage:LoadSprite(UIConst.UI_SPRITE_SKETCH, sketchData.imageLeft)
self.view.leftImage:SetNativeSize()
end
if rightActive then
self.view.rightImage:LoadSprite(UIConst.UI_SPRITE_SKETCH, sketchData.imageRight)
self.view.rightImage:SetNativeSize()
end
self.view.text.text = sketchData.text
UIUtils.changeAlpha(self.view.mask, sketchData.maskAlpha)
if sketchData.textBlack then
self.view.text.color = Color.black
else
self.view.text.color = Color.white
end
end
HL.Commit(SketchCtrl)