---@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;