UGCProjects/JungleSpecialOperations/Script/UI/SecondaryConfirmation/WB_SecondaryConfirmation_EditableText.lua
2025-01-04 23:00:19 +08:00

111 lines
3.8 KiB
Lua

---@class WB_SecondaryConfirmation_EditableText_C:UUserWidget
---@field AnimShow UWidgetAnimation
---@field Button_Cancellation UButton
---@field Button_Confirm UButton
---@field EditableText_Name UWidget_NewEditableText_C
---@field TextBlock_Cancellation UTextBlock
---@field TextBlock_Confirm UTextBlock
--Edit Below--
local WB_SecondaryConfirmation_EditableText = {
bInitDoOnce = false;
TextCount = 6;
};
function WB_SecondaryConfirmation_EditableText:Construct()
WidgetLibrary.BindButtonClicked(self.Button_Cancellation, self.ClickCancellation, self)
WidgetLibrary.BindButtonClicked(self.Button_Confirm, self.ClickConfirm, self)
self.EditableText_Name.OnTextCommitted:Add(self.TextCommit, self)
end
function WB_SecondaryConfirmation_EditableText:NotifyToPlaceMode()
UGCSendRPCSystem.RPCEvent(nil, EventEnum.BackToPlaceMode)
end
function WB_SecondaryConfirmation_EditableText:NotifySaveMap()
local Text = self.EditableText_Name:GetText()
UGCSendRPCSystem.RPCEvent(nil, EventEnum.SaveRunMap, Text)
end
function WB_SecondaryConfirmation_EditableText:TextCommit(InText)
-- UGCLogSystem.Log("[WB_SaveMap_TextCommit] InText:%s", InText)
local TargetText = UGCSystemLibrary.remove_punctuation(InText)
UGCLogSystem.Log("[WB_SaveMap_TextCommit] TargetText:%s", TargetText)
self.EditableText_Name:SetText(UGCSystemLibrary.utf8sub(TargetText, 1, self.TextCount))
end
function WB_SecondaryConfirmation_EditableText:OnShowPanel()
self.bIsShowing = true
self:PlayAnimation(self.ShowAnim, 0, 1, EUMGSequencePlayMode.Forward, 1);
end
---@param HintTextInfo 提示文本
---@param InTextCount 限制字数
function WB_SecondaryConfirmation_EditableText:SetTextInfo(HintTextInfo, InTextCount, CancellationText, ConfirmText)
-- self.EditableText_Name:SetHintText(HintTextInfo)
self.TextCount = InTextCount
if CancellationText then
self.TextBlock_Cancellation:SetText(CancellationText)
end
if ConfirmText then
self.TextBlock_Confirm:SetText(ConfirmText)
end
end
function WB_SecondaryConfirmation_EditableText:BindCancellationCallBack(InCancellationCallBackFunc, InCancellationCallBackObj)
self.CancellationCallBackFunc = InCancellationCallBackFunc
self.CancellationCallBackObj = InCancellationCallBackObj
end
function WB_SecondaryConfirmation_EditableText:BindConfirmCallBack(InConfirmCallBackFunc, InConfirmCallBackObj)
self.ConfirmCallBackFunc = InConfirmCallBackFunc
self.ConfirmCallBackObj = InConfirmCallBackObj
end
function WB_SecondaryConfirmation_EditableText:Reset()
self.bIsShowing = false
self:BindCancellationCallBack()
self:BindConfirmCallBack()
self.TextBlock_Cancellation:SetText("取消")
self.TextBlock_Confirm:SetText("确认")
WidgetManager:ClosePanel(WidgetConfig.EUIType.SecondaryConfirmation_EditableText)
end
function WB_SecondaryConfirmation_EditableText:ClickCancellation()
if not self.bIsShowing then return end
SoundSystem.PlaySound(SoundSystem.ESound.Click)
if self.CancellationCallBackFunc then
if self.CancellationCallBackObj then
self.CancellationCallBackFunc(self.CancellationCallBackObj)
else
self.CancellationCallBackFunc()
end
end
self:Reset()
end
function WB_SecondaryConfirmation_EditableText:ClickConfirm()
if not self.bIsShowing then return end
SoundSystem.PlaySound(SoundSystem.ESound.Click)
if self.ConfirmCallBackFunc then
if self.ConfirmCallBackObj then
self.ConfirmCallBackFunc(self.ConfirmCallBackObj, self.EditableText_Name:GetText())
else
self.ConfirmCallBackFunc(self.EditableText_Name:GetText())
end
end
self:Reset()
end
-- function WB_SecondaryConfirmation_EditableText:Tick(MyGeometry, InDeltaTime)
-- end
-- function WB_SecondaryConfirmation_EditableText:Destruct()
-- end
return WB_SecondaryConfirmation_EditableText;