Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
PopupWidgetBase.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "EPopupResult.h"
7#include "UI/UserWidgetBase.h"
8#include "PopupWidgetBase.generated.h"
9
10
12
13
14// 결과 통지 델리게이트. 외부는 여기에 바인딩만 한다(느슨한 결합).
16
17
23UCLASS()
24class CK_UE_API UPopupWidgetBase : public UUserWidgetBase
25{
26 GENERATED_BODY()
27
28public:
29 virtual void OnPoppedFromLayer() override;
30 virtual void BeginDestroy() override;
31
32public:
33 // 닫기 진입점(2단계 닫기 1단계). 결과를 확정하고 닫기 연출을 시작한다.
34 // 결과를 가진 모든 닫기는 이 함수를 통한다.
35 UFUNCTION(BlueprintCallable, Category = "UI|Popup")
36 void Close(EPopupResult Result);
37
38 // 2단계 닫기 마지막 단계. 닫기 연출이 끝난 뒤 호출해 실제 Pop을 수행한다.
39 // OnCloseRequested 기본 구현이 자동 호출하므로, 연출을 넣은 BP만 직접 호출하면 된다.
40 UFUNCTION(BlueprintCallable, Category = "UI|Popup")
41 void FinishClose();
42
43public:
44 FORCEINLINE EPopupResult GetResult() const
45 {
46 return CachedResult;
47 }
48
49 FORCEINLINE bool IsClosing() const
50 {
51 return bClosing;
52 }
53
54protected:
55 // 닫기 연출 훅. 기본 구현은 즉시 FinishClose()를 호출한다.
56 // BP에서 오버라이드해 fade-out 등을 재생한 뒤 직접 FinishClose()를 호출하면 연출이 적용된다.
57 UFUNCTION(BlueprintNativeEvent, Category = "UI|Popup")
59
61
62private:
64
65public:
66 UPROPERTY(BlueprintAssignable, Category = "UI|Popup")
67 FOnPopupClosed OnPopupClosed;
68
69private:
70 UPROPERTY(Transient, BlueprintReadOnly, Category = "UI|Popup", meta = (AllowPrivateAccess = "true"))
72
73private:
74 bool bClosing = false;
75 bool bClosed = false;
76 bool bResultBroadcasted = false;
77};
EPopupResult
Definition EPopupResult.h:8
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnPopupClosed, UPopupWidgetBase *, Popup, EPopupResult, Result)
Definition PopupWidgetBase.h:25
virtual void OnPoppedFromLayer() override
Definition PopupWidgetBase.cpp:68
void BroadcastResultIfNeeded(EPopupResult Result)
Definition PopupWidgetBase.cpp:85
FORCEINLINE bool IsClosing() const
Definition PopupWidgetBase.h:49
EPopupResult CachedResult
Definition PopupWidgetBase.h:71
void OnCloseRequested(EPopupResult Result)
bool bClosing
Definition PopupWidgetBase.h:74
void FinishClose()
Definition PopupWidgetBase.cpp:30
virtual void OnCloseRequested_Implementation(EPopupResult Result)
Definition PopupWidgetBase.cpp:61
bool bClosed
Definition PopupWidgetBase.h:75
virtual void BeginDestroy() override
Definition PopupWidgetBase.cpp:77
bool bResultBroadcasted
Definition PopupWidgetBase.h:76
FORCEINLINE EPopupResult GetResult() const
Definition PopupWidgetBase.h:44
FOnPopupClosed OnPopupClosed
Definition PopupWidgetBase.h:67
void Close(EPopupResult Result)
Definition PopupWidgetBase.cpp:12
Definition UserWidgetBase.h:33