KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
ChatInputBox.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 "Blueprint/UserWidget.h"
7#include "ChatInputBox.generated.h"
8
14UCLASS()
15class ONEPIECE_API UChatInputBox : public UUserWidget
16{
17 GENERATED_BODY()
18
19public:
20 virtual void NativeOnInitialized() override;
21 virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
22 virtual FReply NativeOnPreviewKeyDown(const FGeometry& InGeometry, const FKeyEvent& InKeyEvent) override;
23
24 void SetOwningChatWidget(class UChatWidget* InChatWidget) { OwningChatWidget = InChatWidget; }
25
26 void SetInputFocus(bool bFocus);
27 bool HasKeyboardFocus();
28
29private:
30 FText FlushMessage();
31
32 bool IsAIAsk(const FString& InMessage, FString& OutQuestion) const;
33 bool IsDailyAsk(const FString& InMessage, FString& OutQuestion) const;
34
36 TArray<struct FWordData> GetRandomKoreanWords(int32 Count);
37
38 UFUNCTION()
39 void OnDailyAnswerReceived(FResponseChatDailys& ResponseData, bool bWasSuccessful);
40
41 UFUNCTION()
42 void HandleSendClicked();
43
44public:
45 UPROPERTY(meta=(BindWidget))
46 TObjectPtr<class UMultiLineEditableTextBox> MultiLineEditableTextBox_Input;
47
48 UPROPERTY(meta=(BindWidget))
49 TObjectPtr<class UButton> Button_Send;
50
51private:
52 // 이전 프레임의 포커스 상태 추적
53 bool bWasFocused = false;
54
55 // 부모 ChatWidget 참조
56 UPROPERTY()
57 TObjectPtr<class UChatWidget> OwningChatWidget = nullptr;
58};
void SetOwningChatWidget(class UChatWidget *InChatWidget)
Chat Dailys 응답 구조체입니다.