KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UPopup_SpeakJudes.cpp
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
3#include "UPopup_SpeakJudes.h"
4
5#include "NetworkData.h"
6#include "UImageButton.h"
7#include "NetworkData.h"
8#include "UDialogManager.h"
9#include "UPopupManager.h"
10#include "UResultStatWidget.h"
11#include "UTextureButton.h"
12#include "Components/TextBlock.h"
13#include "Onepiece/Onepiece.h"
14
15void UPopup_SpeakJudes::InitPopup(const FResponseSpeakingJudes& Response, const FOnSpeakJudesConfirmDelegate& InOnConfirm)
16{
17 // 델리게이트 저장
18 OnConfirmDelegate = InOnConfirm;
19
20 if (Btn_Close)
21 {
22 Btn_Close->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_SpeakJudes::OnClickClose);
23 Btn_Close->OnButtonClickedEvent.AddDynamic(this, &UPopup_SpeakJudes::OnClickClose);
24 }
25
26 if (Btn_Confirm)
27 {
28 Btn_Confirm->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_SpeakJudes::OnClickClose);
29 Btn_Confirm->OnButtonClickedEvent.AddDynamic(this, &UPopup_SpeakJudes::OnClickClose);
30 }
31
32 UDialogManager::Get(GetWorld())->HideToastImmediately();
33
34 // GetResultStatData로 Grammar, Context 데이터 가져오기
35 auto ResultList = Response.GetResultStatData();
36
37 // Grammar 위젯 설정
38 Result_Grammer->InitData(ResultList[0]);
39 Result_Context->InitData(ResultList[1]);
40 Result_Overall->InitData(ResultList[2]);
41
42 // 피드백 텍스트 설정
43 Txt_Feedback->SetText(FText::FromString(Response.final_feedback));
44 Txt_Feedback->SetLineHeightPercentage( DefineData::LineHeightPercentage );
45}
46
48{
49 // 델리게이트가 바인딩되어 있으면 실행
50 if (OnConfirmDelegate.IsBound())
51 {
52 OnConfirmDelegate.Execute();
53 }
54
55 // PopupManager를 통해 팝업 닫기 (마우스 커서 처리 포함)
56 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
57 {
58 PopupMgr->HideCurrentPopup();
59 }
60}
네트워크 요청과 응답에 사용되는 구조체 및 설정을 정의합니다.
UDialogManager 클래스를 선언합니다.
팝업 관리자
TObjectPtr< class UResultStatWidget > Result_Context
Context Score 텍스트
TObjectPtr< class UTextureButton > Btn_Close
TObjectPtr< class UResultStatWidget > Result_Overall
Overall Score 텍스트
TObjectPtr< class UTextBlock > Txt_Feedback
Feedback 텍스트
void InitPopup(const struct FResponseSpeakingJudes &Response, const FOnSpeakJudesConfirmDelegate &InOnConfirm=FOnSpeakJudesConfirmDelegate())
팝업을 초기화하고 데이터를 설정합니다
TObjectPtr< class UResultStatWidget > Result_Grammer
Grammar Score 텍스트
void OnClickClose()
확인 버튼 클릭 시 호출
FOnSpeakJudesConfirmDelegate OnConfirmDelegate
확인 버튼 클릭 시 호출될 델리게이트
TObjectPtr< class UImageButton > Btn_Confirm
static const float LineHeightPercentage
Definition Onepiece.h:63
Speaking Questions 응답 구조체입니다.
TArray< FResultStatData > GetResultStatData() const