Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UToastRootHUDWidget 클래스 참조

#include <ToastRootHUDWidget.h>

UToastRootHUDWidget에 대한 상속 다이어그램 :
Inheritance graph
UToastRootHUDWidget에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

bool ShowToastByID (const int32 ToastID, const bool bApplyImmediately=false)
 
bool ShowToastByRowName (const FName ToastRowName, const bool bApplyImmediately=false)
 
void ShowToast (const FDT_ToastMessageTable &InToastData, const bool bApplyImmediately=false)
 
void SetToastDataTable (UDataTable *InToastDataTable)
 
UDataTable * GetToastDataTable () const
 
- UStageEventListenableUserWidget(으)로부터 상속된 Public 멤버 함수
virtual EEventListenableUI GetListeningUIEvent ()
 
virtual UUIEventProxyGetEventProxy () const
 
- UUserWidgetBase(으)로부터 상속된 Public 멤버 함수
virtual void SetAbilitySystemComponent (AActor *InOwner)
 
virtual UAbilitySystemComponent * GetAbilitySystemComponent () const override
 
virtual void OnActivated ()
 
virtual void OnDeactivated ()
 
void Activate ()
 
void Deactivate ()
 
FORCEINLINE FGameplayTag GetLayerTag () const
 
FORCEINLINE void SetLayerTag (const FGameplayTag InTag)
 
FORCEINLINE bool IsPrimary () const
 
FORCEINLINE void SetPrimary (const bool InPrimary)
 
FORCEINLINE EWidgetState GetWidgetState () const
 
FORCEINLINE void SetWidgetState (const EWidgetState InState)
 
FORCEINLINE UWaitForWidgetActivationGetActivationHandle ()
 
FORCEINLINE bool HasAppearanceAnim () const
 
FORCEINLINE bool HasDisappearanceAnim () const
 

Protected 멤버 함수

virtual void NativeDestruct () override
 
bool CanAddToastWidget () const
 
void EnqueueToast (const FDT_ToastMessageTable &InToastData)
 
void ProcessPendingToastQueue ()
 
void ShowToastInternal (const FDT_ToastMessageTable &InToastData)
 
void AddToastWidget (UToastWidgetBase *ToastWidget, const FDT_ToastMessageTable &InToastData)
 
bool TryUpdateActiveToastByGroup (const FDT_ToastMessageTable &InToastData)
 
void RequestOldestToastExit ()
 
void StartToastDurationTimer (UToastWidgetBase *ToastWidget, const float ToastDuration)
 
void RequestToastExit (UToastWidgetBase *ToastWidget)
 
void RemoveToastWidget (UToastWidgetBase *ToastWidget)
 
bool TryShowNextToastInGroup (UToastWidgetBase *ToastWidget)
 
const FDT_ToastMessageTableFindNextToastRowInGroup (const FDT_ToastMessageTable &CurrentToastData)
 
UToastWidgetBaseCreateToastWidget (const FDT_ToastMessageTable &InToastData)
 
int32 FindActiveToastIndex (const UToastWidgetBase *ToastWidget) const
 
int32 FindActiveToastIndexByGroupID (const int32 GroupID) const
 
UDataTable * ResolveToastDataTable ()
 
void OnToastRequested (const FDT_ToastMessageTable &InToastData)
 
- UStageEventListenableUserWidget(으)로부터 상속된 Protected 멤버 함수
virtual void OnPushedToLayer () override
 
virtual void OnPoppedFromLayer () override
 
- UUserWidgetBase(으)로부터 상속된 Protected 멤버 함수
virtual void OnWidgetActivated ()
 
virtual void OnWidgetDeactivated ()
 
void OnPushedToLayer_Internal ()
 
void OnPoppedFromLayer_Internal ()
 
void OnActivated_Internal ()
 
void OnDeactivated_Internal ()
 

Protected 속성

TSubclassOf< UToastWidgetBaseToastWidgetClass
 
int32 MaxStackCount = 3
 
TObjectPtr< UDataTable > CachedToastDataTable
 
TObjectPtr< UStackBox > ToastMessageStack
 
TArray< FActiveToastWidgetEntryActiveToastWidgets
 
TArray< FPendingToastWidgetEntryPendingToastWidgets
 
int32 ExitingToastCount = 0
 
- UStageEventListenableUserWidget(으)로부터 상속된 Protected 속성
TObjectPtr< UUIEventProxyEventProxy
 
- UUserWidgetBase(으)로부터 상속된 Protected 속성
EWidgetState WidgetState
 
TObjectPtr< UAbilitySystemComponent > ASC
 
FGameplayTag LayerTag
 
bool bPrimary = false
 
TObjectPtr< UWidgetAnimation > AppearanceAnim
 
TObjectPtr< UWidgetAnimation > DisappearanceAnim
 

멤버 함수 문서화

◆ AddToastWidget()

void UToastRootHUDWidget::AddToastWidget ( UToastWidgetBase ToastWidget,
const FDT_ToastMessageTable InToastData 
)
protected
230{
231 if (IsValid(ToastWidget) == false)
232 {
233 return;
234 }
235
236 if (IsValid(ToastMessageStack) == false)
237 {
238 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(ToastMessageStack));
239 return;
240 }
241
242 ToastMessageStack->AddChild(ToastWidget);
243
244 FActiveToastWidgetEntry ActiveToastWidget;
245 ActiveToastWidget.ToastWidget = ToastWidget;
246 ActiveToastWidget.GroupID = InToastData.Group_ID;
247 ActiveToastWidgets.Add(ActiveToastWidget);
248
249 ToastWidget->PlayEnterToastAnimation();
250 StartToastDurationTimer(ToastWidget, InToastData.Toast_Duration);
251}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF_VAR(Expr)
Definition CK_UE.h:34
TArray< FActiveToastWidgetEntry > ActiveToastWidgets
Definition ToastRootHUDWidget.h:105
TObjectPtr< UStackBox > ToastMessageStack
Definition ToastRootHUDWidget.h:102
void StartToastDurationTimer(UToastWidgetBase *ToastWidget, const float ToastDuration)
Definition ToastRootHUDWidget.cpp:296
void PlayEnterToastAnimation()
Definition ToastWidgetBase.cpp:116
Definition ToastRootHUDWidget.h:19
int32 GroupID
Definition ToastRootHUDWidget.h:27
TObjectPtr< UToastWidgetBase > ToastWidget
Definition ToastRootHUDWidget.h:24
float Toast_Duration
Definition DT_ToastMessageTable.h:47
int32 Group_ID
Definition DT_ToastMessageTable.h:26
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CanAddToastWidget()

bool UToastRootHUDWidget::CanAddToastWidget ( ) const
protected
94{
95 const int32 EffectiveMaxStackCount = FMath::Max(1, MaxStackCount);
96 return ActiveToastWidgets.Num() + ExitingToastCount < EffectiveMaxStackCount;
97}
int32 MaxStackCount
Definition ToastRootHUDWidget.h:96
int32 ExitingToastCount
Definition ToastRootHUDWidget.h:111
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateToastWidget()

UToastWidgetBase * UToastRootHUDWidget::CreateToastWidget ( const FDT_ToastMessageTable InToastData)
protected
204{
205 if (IsValid(ToastMessageStack) == false)
206 {
207 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(ToastMessageStack));
208 return nullptr;
209 }
210
211 if (ToastWidgetClass == nullptr)
212 {
213 LOG_ERROR(LogCK, "%s 설정이 없습니다.", NAMEOF_VAR(ToastWidgetClass));
214 return nullptr;
215 }
216
217 UToastWidgetBase* ToastWidget = CreateWidget<UToastWidgetBase>(GetOwningPlayer(), ToastWidgetClass);
218 if (IsValid(ToastWidget) == false)
219 {
220 LOG_ERROR(LogCK, "ToastWidget 생성에 실패했습니다.");
221 return nullptr;
222 }
223
224 ToastWidget->SetupToast(InToastData);
225 return ToastWidget;
226}
TSubclassOf< UToastWidgetBase > ToastWidgetClass
Definition ToastRootHUDWidget.h:93
Definition ToastWidgetBase.h:20
void SetupToast(const FDT_ToastMessageTable &InToastData)
Definition ToastWidgetBase.cpp:16
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EnqueueToast()

void UToastRootHUDWidget::EnqueueToast ( const FDT_ToastMessageTable InToastData)
protected
101{
102 FPendingToastWidgetEntry PendingToastWidget;
103 PendingToastWidget.ToastData = InToastData;
104 PendingToastWidgets.Add(PendingToastWidget);
105}
TArray< FPendingToastWidgetEntry > PendingToastWidgets
Definition ToastRootHUDWidget.h:108
Definition ToastRootHUDWidget.h:33
FDT_ToastMessageTable ToastData
Definition ToastRootHUDWidget.h:38
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FindActiveToastIndex()

int32 UToastRootHUDWidget::FindActiveToastIndex ( const UToastWidgetBase ToastWidget) const
protected
486{
487 if (ToastWidget == nullptr)
488 {
489 return INDEX_NONE;
490 }
491
492 return ActiveToastWidgets.IndexOfByPredicate([&ToastWidget](auto ActiveToastWidget)
493 {
494 return ActiveToastWidget.ToastWidget == ToastWidget;
495 });
496}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FindActiveToastIndexByGroupID()

int32 UToastRootHUDWidget::FindActiveToastIndexByGroupID ( const int32  GroupID) const
protected
500{
501 return ActiveToastWidgets.IndexOfByPredicate([GroupID](const FActiveToastWidgetEntry& ActiveToastWidget)
502 {
503 return ActiveToastWidget.GroupID == GroupID;
504 });
505}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FindNextToastRowInGroup()

const FDT_ToastMessageTable * UToastRootHUDWidget::FindNextToastRowInGroup ( const FDT_ToastMessageTable CurrentToastData)
protected
451{
452 const UDataTable* ToastDataTable = ResolveToastDataTable();
453
454 if (IsValid(ToastDataTable) == false)
455 {
456 return nullptr;
457 }
458
459 const TArray<FName> RowNames = ToastDataTable->GetRowNames();
460 const FName CurrentRowName = FName(*FString::FromInt(CurrentToastData.Toast_ID));
461 const int32 CurrentRowIndex = RowNames.IndexOfByKey(CurrentRowName);
462
463 if (CurrentRowIndex == INDEX_NONE || RowNames.IsValidIndex(CurrentRowIndex + 1) == false)
464 {
465 return nullptr;
466 }
467
468 const FString ContextString = FString::Printf(TEXT("%s::FindNextToastRowInGroup"), TEXT("UToastRootHUDWidget"));
469 const FDT_ToastMessageTable* NextToastData = ToastDataTable->FindRow<FDT_ToastMessageTable>(RowNames[CurrentRowIndex + 1], *ContextString);
470
471 if (NextToastData == nullptr)
472 {
473 return nullptr;
474 }
475
476 if (NextToastData->Group_ID != CurrentToastData.Group_ID)
477 {
478 return nullptr;
479 }
480
481 return NextToastData;
482}
UDataTable * ResolveToastDataTable()
Definition ToastRootHUDWidget.cpp:148
Definition DT_ToastMessageTable.h:10
int32 Toast_ID
Definition DT_ToastMessageTable.h:23
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetToastDataTable()

UDataTable * UToastRootHUDWidget::GetToastDataTable ( ) const
143{
145}
TObjectPtr< UDataTable > CachedToastDataTable
Definition ToastRootHUDWidget.h:99

◆ NativeDestruct()

void UToastRootHUDWidget::NativeDestruct ( )
overrideprotectedvirtual
161{
162 UWorld* World = GetWorld();
163 check(World);
164
165 for (FActiveToastWidgetEntry& ActiveToastWidget : ActiveToastWidgets)
166 {
167 World->GetTimerManager().ClearTimer(ActiveToastWidget.DurationTimerHandle);
168 }
169
170 ActiveToastWidgets.Empty();
171 PendingToastWidgets.Empty();
173 Super::NativeDestruct();
174}

◆ OnToastRequested()

void UToastRootHUDWidget::OnToastRequested ( const FDT_ToastMessageTable InToastData)
protected

◆ ProcessPendingToastQueue()

void UToastRootHUDWidget::ProcessPendingToastQueue ( )
protected
109{
110 while (PendingToastWidgets.IsEmpty() == false)
111 {
112 const FDT_ToastMessageTable ToastData = PendingToastWidgets[0].ToastData;
113
114 if (TryUpdateActiveToastByGroup(ToastData))
115 {
116 PendingToastWidgets.RemoveAt(0);
117 continue;
118 }
119
120 if (CanAddToastWidget() == false)
121 {
122 if (ExitingToastCount <= 0)
123 {
125 }
126
127 return;
128 }
129
130 PendingToastWidgets.RemoveAt(0);
131 ShowToastInternal(ToastData);
132 }
133}
void RequestOldestToastExit()
Definition ToastRootHUDWidget.cpp:285
bool TryUpdateActiveToastByGroup(const FDT_ToastMessageTable &InToastData)
Definition ToastRootHUDWidget.cpp:254
void ShowToastInternal(const FDT_ToastMessageTable &InToastData)
Definition ToastRootHUDWidget.cpp:177
bool CanAddToastWidget() const
Definition ToastRootHUDWidget.cpp:93
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RemoveToastWidget()

void UToastRootHUDWidget::RemoveToastWidget ( UToastWidgetBase ToastWidget)
protected
410{
411 if (IsValid(ToastWidget))
412 {
413 ToastWidget->RemoveFromParent();
414 }
415
416 ExitingToastCount = FMath::Max(0, ExitingToastCount - 1);
418}
void ProcessPendingToastQueue()
Definition ToastRootHUDWidget.cpp:108
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RequestOldestToastExit()

void UToastRootHUDWidget::RequestOldestToastExit ( )
protected
286{
287 if (ActiveToastWidgets.IsEmpty())
288 {
289 return;
290 }
291
292 RequestToastExit(ActiveToastWidgets[0].ToastWidget);
293}
void RequestToastExit(UToastWidgetBase *ToastWidget)
Definition ToastRootHUDWidget.cpp:353
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RequestToastExit()

void UToastRootHUDWidget::RequestToastExit ( UToastWidgetBase ToastWidget)
protected
354{
355 const int32 ActiveToastIndex = FindActiveToastIndex(ToastWidget);
356
357 if (ActiveToastIndex == INDEX_NONE)
358 {
359 return;
360 }
361
362 const UWorld* World = GetWorld();
363
364 if (World)
365 {
366 World->GetTimerManager().ClearTimer(ActiveToastWidgets[ActiveToastIndex].DurationTimerHandle);
367 }
368
369 UToastWidgetBase* ExitingToastWidget = ActiveToastWidgets[ActiveToastIndex].ToastWidget;
370 ActiveToastWidgets.RemoveAt(ActiveToastIndex);
371
372 if (IsValid(ExitingToastWidget) == false)
373 {
375 return;
376 }
377
379 ExitingToastWidget->PlayExitToastAnimation();
380
381 const float ExitDuration = FMath::Max(0.0f, ExitingToastWidget->GetExitAnimationDuration());
382
383 if (World == nullptr || ExitDuration < KINDA_SMALL_NUMBER)
384 {
385 RemoveToastWidget(ExitingToastWidget);
386 return;
387 }
388
389 TWeakObjectPtr<UToastRootHUDWidget> WeakThis(this);
390 TWeakObjectPtr<UToastWidgetBase> WeakToastWidget(ExitingToastWidget);
391
392 FTimerDelegate TimerDelegate;
393
394 TimerDelegate.BindLambda([WeakThis, WeakToastWidget]()
395 {
396 if (WeakThis.IsValid() == false || WeakToastWidget.IsValid() == false)
397 {
398 return;
399 }
400
401 WeakThis->RemoveToastWidget(WeakToastWidget.Get());
402 });
403
404 FTimerHandle RemoveTimerHandle;
405 World->GetTimerManager().SetTimer(RemoveTimerHandle, TimerDelegate, ExitDuration, false);
406}
void RemoveToastWidget(UToastWidgetBase *ToastWidget)
Definition ToastRootHUDWidget.cpp:409
int32 FindActiveToastIndex(const UToastWidgetBase *ToastWidget) const
Definition ToastRootHUDWidget.cpp:485
float GetExitAnimationDuration() const
Definition ToastWidgetBase.cpp:155
void PlayExitToastAnimation()
Definition ToastWidgetBase.cpp:129
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ResolveToastDataTable()

UDataTable * UToastRootHUDWidget::ResolveToastDataTable ( )
protected
149{
150 if (IsValid(CachedToastDataTable))
151 {
153 }
154
155 CachedToastDataTable = GetEnvironmentAssetByKey<UDataTable>("ToastMessageData");
157}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetToastDataTable()

void UToastRootHUDWidget::SetToastDataTable ( UDataTable *  InToastDataTable)
137{
138 CachedToastDataTable = InToastDataTable;
139}

◆ ShowToast()

void UToastRootHUDWidget::ShowToast ( const FDT_ToastMessageTable InToastData,
const bool  bApplyImmediately = false 
)
67{
68 if (bApplyImmediately)
69 {
70 PendingToastWidgets.Empty();
71 }
72
73 if (TryUpdateActiveToastByGroup(InToastData))
74 {
75 return;
76 }
77
79 {
80 ShowToastInternal(InToastData);
81 return;
82 }
83
84 EnqueueToast(InToastData);
85
86 if (ExitingToastCount <= 0)
87 {
89 }
90}
void EnqueueToast(const FDT_ToastMessageTable &InToastData)
Definition ToastRootHUDWidget.cpp:100
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ShowToastByID()

bool UToastRootHUDWidget::ShowToastByID ( const int32  ToastID,
const bool  bApplyImmediately = false 
)
16{
17 if (ToastID <= 0)
18 {
19 LOG_WARNING(LogCK, "유효하지 않은 ToastID입니다. ToastID: %d", ToastID);
20 return false;
21 }
22
23 if (ShowToastByRowName(FName(*FString::FromInt(ToastID)), bApplyImmediately))
24 {
25 return true;
26 }
27 else
28 {
29 return false;
30 }
31}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
bool ShowToastByRowName(const FName ToastRowName, const bool bApplyImmediately=false)
Definition ToastRootHUDWidget.cpp:34
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ShowToastByRowName()

bool UToastRootHUDWidget::ShowToastByRowName ( const FName  ToastRowName,
const bool  bApplyImmediately = false 
)
35{
36 if (ToastRowName.IsNone())
37 {
38 LOG_WARNING(LogCK, "ToastRowName이 비어있습니다.");
39 return false;
40 }
41
42 const UDataTable* ToastDataTable = ResolveToastDataTable();
43
44 if (IsValid(ToastDataTable) == false)
45 {
46 LOG_WARNING(LogCK, "ToastDataTable을 찾을 수 없습니다.");
47 return false;
48 }
49
50 const FString ContextString = FString::Printf(TEXT("%s::ShowToastByRowName"), TEXT("UToastRootHUDWidget"));
51 const FDT_ToastMessageTable* RowData = ToastDataTable->FindRow<FDT_ToastMessageTable>(ToastRowName, *ContextString);
52
53 if (RowData == nullptr)
54 {
55 LOG_WARNING(LogCK, "Toast row를 찾을 수 없습니다. RowName: %s", *ToastRowName.ToString());
56 return false;
57 }
58 else
59 {
60 ShowToast(*RowData, bApplyImmediately);
61 return true;
62 }
63}
void ShowToast(const FDT_ToastMessageTable &InToastData, const bool bApplyImmediately=false)
Definition ToastRootHUDWidget.cpp:66
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ShowToastInternal()

void UToastRootHUDWidget::ShowToastInternal ( const FDT_ToastMessageTable InToastData)
protected
178{
179 if (CanAddToastWidget() == false)
180 {
181 EnqueueToast(InToastData);
182
183 if (ExitingToastCount <= 0)
184 {
186 }
187
188 return;
189 }
190
191 UToastWidgetBase* ToastWidget = CreateToastWidget(InToastData);
192
193 if (IsValid(ToastWidget) == false)
194 {
195 LOG_ERROR(LogCK, "%s가 유효하지 않습니다. ", NAMEOF_VAR(ToastWidget));
196 return;
197 }
198
199 AddToastWidget(ToastWidget, InToastData);
200}
UToastWidgetBase * CreateToastWidget(const FDT_ToastMessageTable &InToastData)
Definition ToastRootHUDWidget.cpp:203
void AddToastWidget(UToastWidgetBase *ToastWidget, const FDT_ToastMessageTable &InToastData)
Definition ToastRootHUDWidget.cpp:229
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StartToastDurationTimer()

void UToastRootHUDWidget::StartToastDurationTimer ( UToastWidgetBase ToastWidget,
const float  ToastDuration 
)
protected
297{
298 const int32 ActiveToastIndex = FindActiveToastIndex(ToastWidget);
299
300 if (ActiveToastIndex == INDEX_NONE)
301 {
302 return;
303 }
304
305 const UWorld* World = GetWorld();
306 check(World);
307
308 World->GetTimerManager().ClearTimer(ActiveToastWidgets[ActiveToastIndex].DurationTimerHandle);
309
310 const float ValidToastDuration = FMath::Max(0.0f, ToastDuration);
311
312 if (ValidToastDuration < KINDA_SMALL_NUMBER)
313 {
314 if (TryShowNextToastInGroup(ToastWidget))
315 {
316 return;
317 }
318
319 RequestToastExit(ToastWidget);
320 return;
321 }
322
323 TWeakObjectPtr<UToastRootHUDWidget> WeakThis(this);
324 TWeakObjectPtr<UToastWidgetBase> WeakToastWidget(ToastWidget);
325
326 FTimerDelegate TimerDelegate;
327
328 TimerDelegate.BindLambda([WeakThis, WeakToastWidget]()
329 {
330 if (WeakThis.IsValid() == false || WeakToastWidget.IsValid() == false)
331 {
332 return;
333 }
334
335 if (WeakThis->TryShowNextToastInGroup(WeakToastWidget.Get()))
336 {
337 return;
338 }
339
340 WeakThis->RequestToastExit(WeakToastWidget.Get());
341 });
342
343 World->GetTimerManager().SetTimer
344 (
345 ActiveToastWidgets[ActiveToastIndex].DurationTimerHandle,
346 TimerDelegate,
347 ValidToastDuration,
348 false
349 );
350}
bool TryShowNextToastInGroup(UToastWidgetBase *ToastWidget)
Definition ToastRootHUDWidget.cpp:421
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryShowNextToastInGroup()

bool UToastRootHUDWidget::TryShowNextToastInGroup ( UToastWidgetBase ToastWidget)
protected
422{
423 const int32 ActiveToastIndex = FindActiveToastIndex(ToastWidget);
424
425 if (ActiveToastIndex == INDEX_NONE)
426 {
427 return false;
428 }
429
430 if (IsValid(ToastWidget) == false)
431 {
432 return false;
433 }
434
435 const FDT_ToastMessageTable CurrentToastData = ToastWidget->GetToastData();
436 const FDT_ToastMessageTable* NextToastData = FindNextToastRowInGroup(CurrentToastData);
437
438 if (NextToastData == nullptr)
439 {
440 return false;
441 }
442
443 ToastWidget->QueueNextToastData(*NextToastData);
444 ToastWidget->PlayPingPongToastAnimation();
445 StartToastDurationTimer(ToastWidget, NextToastData->Toast_Duration);
446 return true;
447}
const FDT_ToastMessageTable * FindNextToastRowInGroup(const FDT_ToastMessageTable &CurrentToastData)
Definition ToastRootHUDWidget.cpp:450
void QueueNextToastData(const FDT_ToastMessageTable &InToastData)
Definition ToastWidgetBase.cpp:171
FDT_ToastMessageTable GetToastData() const
Definition ToastWidgetBase.cpp:98
void PlayPingPongToastAnimation()
Definition ToastWidgetBase.cpp:142
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryUpdateActiveToastByGroup()

bool UToastRootHUDWidget::TryUpdateActiveToastByGroup ( const FDT_ToastMessageTable InToastData)
protected
255{
256 const int32 ActiveToastIndex = FindActiveToastIndexByGroupID(InToastData.Group_ID);
257
258 if (ActiveToastIndex == INDEX_NONE)
259 {
260 return false;
261 }
262
263 UToastWidgetBase* ToastWidget = ActiveToastWidgets[ActiveToastIndex].ToastWidget;
264
265 if (IsValid(ToastWidget) == false)
266 {
267 const UWorld* World = GetWorld();
268
269 if (World)
270 {
271 World->GetTimerManager().ClearTimer(ActiveToastWidgets[ActiveToastIndex].DurationTimerHandle);
272 }
273
274 ActiveToastWidgets.RemoveAt(ActiveToastIndex);
275 return false;
276 }
277
278 ToastWidget->QueueNextToastData(InToastData);
279 ToastWidget->PlayPingPongToastAnimation();
280 StartToastDurationTimer(ToastWidget, InToastData.Toast_Duration);
281 return true;
282}
int32 FindActiveToastIndexByGroupID(const int32 GroupID) const
Definition ToastRootHUDWidget.cpp:499
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ ActiveToastWidgets

TArray<FActiveToastWidgetEntry> UToastRootHUDWidget::ActiveToastWidgets
protected

◆ CachedToastDataTable

TObjectPtr<UDataTable> UToastRootHUDWidget::CachedToastDataTable
protected

◆ ExitingToastCount

int32 UToastRootHUDWidget::ExitingToastCount = 0
protected

◆ MaxStackCount

int32 UToastRootHUDWidget::MaxStackCount = 3
protected

◆ PendingToastWidgets

TArray<FPendingToastWidgetEntry> UToastRootHUDWidget::PendingToastWidgets
protected

◆ ToastMessageStack

TObjectPtr<UStackBox> UToastRootHUDWidget::ToastMessageStack
protected

◆ ToastWidgetClass

TSubclassOf<UToastWidgetBase> UToastRootHUDWidget::ToastWidgetClass
protected

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: