KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
Popup_WriteBoard.h
이 파일의 문서화 페이지로 가기
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#pragma once
4
5#include "CoreMinimal.h"
6#include "NetworkData.h"
7#include "UBasePopup.h"
8#include "Popup_WriteBoard.generated.h"
9
12
16UCLASS()
17class ONEPIECE_API UPopup_WriteBoard : public UBasePopup
18{
19 GENERATED_BODY()
20
21public:
22 UPopup_WriteBoard(const FObjectInitializer& ObjectInitializer);
23 virtual void NativeOnInitialized() override;
24 virtual void NativeConstruct() override;
25
26 // Init Popup
27 void InitPopup(int32 InQid, const FWriteQuestionData& InQuestionData);
28
29 FVector2D GetPrevMousePos();
30
32 UPROPERTY(BlueprintAssignable)
33 FOnCanvasSaved OnCanvasSaved;
34
35protected:
36 // Objects
37 UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
38 TObjectPtr<class UTextureRenderTarget2D> RT_Canvas;
39
40 // Widgets
41 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
42 TObjectPtr<class UOverlay> Overlay_WriteBoard;
43 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
44 TObjectPtr<class UTextBlock> Text_Question;
45 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
46 TObjectPtr<class USizeBox> SizeBox_Canvas;
47 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
48 TObjectPtr<class UImageButton> Button_Save;
49
50 // WriteBoard Widgets
51 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
52 TObjectPtr<class UHorizontalBox> HorizontalBox_DotLine;
53 UPROPERTY()
54 TArray<class UImage*> DotLineImages;
55
56 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
57 TObjectPtr<class UHorizontalBox> HorizontalBox_Guide;
58 UPROPERTY()
59 TArray<class UTextBlock*> GuideTexts;
60 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
61 TObjectPtr<class UTextBlock> Text_Guide;
62 FSlateFontInfo tempFontInfo;
63
64 UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
65 TObjectPtr<class UImage> Image_Canvas;
66
67 // Values
68 UPROPERTY(BlueprintReadOnly)
69 FVector2D prevMousePos;
70 UPROPERTY(BlueprintReadOnly)
71 bool bIsDrawing;
72
73 // Mouse Event
74 virtual FReply NativeOnMouseButtonDown(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
75 virtual FReply NativeOnMouseButtonUp(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
76 virtual FReply NativeOnMouseMove(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
77
78 // Adjust WriteBoard Length
79 void AdjustLength();
80
81 // Clear WriteBoard
82 void ClearWriteBoard();
83
84private:
85 // WriteBoard
86 UPROPERTY()
87 TObjectPtr<class UWriteBoard> writeBoardObject;
88
89 // Question Id
90 int32 Qid;
91 FString AnswerKr;
92
93 // Now Answer Index
94 int32 AnswerIdx = 0;
95 // Canvas Step Length
96 float stepLength = 360;
97 // Border Min Width
98 float borderMinWidth = 560;
99
100 // DotLine Image
101 UPROPERTY()
102 TObjectPtr<class UTexture2D> dotLineTexture;
103 UPROPERTY()
104 TObjectPtr<class UFont> guideTextFont;
105
106 // Draw Functions
107 void DrawLines(FVector2D mousePos, FLinearColor drawColor);
108 void DrawPoint(FVector2D mousePos, FLinearColor drawColor);
109 FVector2D GetLocalMousePos(FVector2D mousePos);
110
111 UFUNCTION()
112 void SaveCanvas();
113
114 void ClearCanvas();
115};
네트워크 요청과 응답에 사용되는 구조체 및 설정을 정의합니다.
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnCanvasSaved)
캔버스 저장 완료 델리게이트
모든 팝업의 기본 클래스
Definition UBasePopup.h:19
UImageButton
Write 질문 및 정답 구조체입니다.