111 lines
3.8 KiB
Lua
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; |