KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
URichText.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 "UObject/Object.h"
7#include "Blueprint/UserWidget.h"
8#include "URichText.generated.h"
9
10
11struct FWordData;
12struct FPhonemeData;
13
14DECLARE_DELEGATE_OneParam(FOnClickHyperLink, const FPhonemeData&);
15
16UCLASS()
17class ONEPIECE_API URichText : public UUserWidget
18{
19 GENERATED_BODY()
20
21protected:
22 virtual void NativePreConstruct() override;
23 virtual void NativeConstruct() override;
24 virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
25
26public:
27 void SetText(const FWordData& WordData);
28 void SetText(const FString& InString);
29 void SetText(const FText& InText);
30
31 void SetOnClickHyperLink(const FOnClickHyperLink& InClick) { OnClickHyperLink = InClick; }
32
33private:
34 UFUNCTION()
35 void OnClickLink(const FString& LinkID, const FString& Content);
36
37 void ApplyStyleWithFontSize(int32 InFontSize, bool bPreserveText);
38 void UpdateFontSizeToFitWidth(const FGeometry& MyGeometry);
39
40public:
41 UPROPERTY(meta = (BindWidget), BlueprintReadOnly)
42 TObjectPtr<class URichTextBlock> RichTxt;
43
44 // URichText.h
45 UPROPERTY(EditAnywhere, Category = "Style")
46 int32 FontSize = 32;
47
48 UPROPERTY(EditAnywhere, Category = "Style")
49 bool bAutoFitToWidth = true;
50
51 UPROPERTY(EditAnywhere, Category = "Style", meta = (EditCondition = "bAutoFitToWidth", ClampMin = "4"))
52 int32 MinAutoFontSize = 12;
53
54 UPROPERTY(EditAnywhere, Category = "Style")
55 FLinearColor TextColor = FLinearColor::White;
56
57 UPROPERTY(EditAnywhere, Category = "Style")
58 FString DefaultText;
59
60
61private:
62 TArray<FPhonemeData> CachedPhonemeData;
63
64 FOnClickHyperLink OnClickHyperLink;
65
66 int32 CurrentFontSize = 0;
67
69 bool bNeedsFontSizeUpdate = false;
70
72 int32 StabilizationFrames = 0;
73
75 float LastWidgetWidth = 0.0f;
76};
DECLARE_DELEGATE_OneParam(FOnClickHyperLink, const FPhonemeData &)
void SetOnClickHyperLink(const FOnClickHyperLink &InClick)
Definition URichText.h:31
단어 데이터 구조체입니다.
단어 데이터 구조체입니다.