UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TextWidgetTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Misc/Attribute.h"
8#include "Layout/Margin.h"
9#include "Components/Widget.h"
11#include "TextWidgetTypes.generated.h"
12
13enum class ETextShapingMethod : uint8;
14
19USTRUCT(BlueprintType)
21{
23
25
27 template <typename TWidgetType>
29 {
30 InWidget.SetTextShapingMethod(bOverride_TextShapingMethod ? TOptional<ETextShapingMethod>(TextShapingMethod) : TOptional<ETextShapingMethod>());
31 InWidget.SetTextFlowDirection(bOverride_TextFlowDirection ? TOptional<ETextFlowDirection>(TextFlowDirection) : TOptional<ETextFlowDirection>());
32 }
33
34 inline bool operator==(const FShapedTextOptions& Other) const
35 {
36 return bOverride_TextShapingMethod == Other.bOverride_TextShapingMethod
37 && bOverride_TextFlowDirection == Other.bOverride_TextFlowDirection
38 && (!bOverride_TextShapingMethod || TextShapingMethod == Other.TextShapingMethod)
39 && (!bOverride_TextFlowDirection || TextFlowDirection == Other.TextFlowDirection);
40 }
41
42 inline bool operator!=(const FShapedTextOptions& Other) const
43 {
44 return !operator==(Other);
45 }
46
48 UPROPERTY(EditAnywhere, Category=Localization, meta=(InlineEditConditionToggle))
49 uint8 bOverride_TextShapingMethod : 1;
50
52 UPROPERTY(EditAnywhere, Category=Localization, meta=(InlineEditConditionToggle))
53 uint8 bOverride_TextFlowDirection : 1;
54
56 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Localization, AdvancedDisplay, meta=(EditCondition="bOverride_TextShapingMethod"))
57 ETextShapingMethod TextShapingMethod;
58
60 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Localization, AdvancedDisplay, meta=(EditCondition="bOverride_TextFlowDirection"))
61 ETextFlowDirection TextFlowDirection;
62};
63
64
69UCLASS(Abstract, BlueprintType, MinimalAPI)
71{
73
74public:
75 bool GetAutoWrapText() const { return AutoWrapText; }
76 float GetWrapTextAt() const { return WrapTextAt; }
77
78 UFUNCTION(BlueprintSetter)
79 UMG_API virtual void SetJustification(ETextJustify::Type InJustification);
80
81 UMG_API void SetShapedTextOptions(FShapedTextOptions InShapedTextOptions);
82 UMG_API void SetWrappingPolicy(ETextWrappingPolicy InWrappingPolicy);
83 UMG_API void SetAutoWrapText(bool InAutoWrapText);
84 UMG_API void SetWrapTextAt(float InWrapTextAt);
85 UMG_API void SetLineHeightPercentage(float InLineHeightPercentage);
86 UMG_API void SetApplyLineHeightToBottomLine(bool InApplyLineHeightToBottomLine);
87 UMG_API void SetMargin(const FMargin& InMargin);
88
89protected:
94 virtual void OnWrapTextAtChanged(float InWrapTextAt) {};
97 virtual void OnMarginChanged(const FMargin& InMargin) {};
98
100 template <typename TWidgetType>
102 {
103 ShapedTextOptions.SynchronizeShapedTextProperties(InWidget);
104
105 InWidget.SetJustification(Justification);
106 InWidget.SetAutoWrapText(!!AutoWrapText);
107 InWidget.SetWrapTextAt(WrapTextAt != 0 ? WrapTextAt : TAttribute<float>());
108 InWidget.SetWrappingPolicy(WrappingPolicy);
109 InWidget.SetMargin(Margin);
110 InWidget.SetLineHeightPercentage(LineHeightPercentage);
111 InWidget.SetApplyLineHeightToBottomLine(ApplyLineHeightToBottomLine);
112 }
113
115 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Localization, AdvancedDisplay, meta=(ShowOnlyInnerProperties))
116 FShapedTextOptions ShapedTextOptions;
117
119 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter=SetJustification, Setter, Category=Appearance)
120 TEnumAsByte<ETextJustify::Type> Justification;
121
123 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Wrapping, AdvancedDisplay)
124 ETextWrappingPolicy WrappingPolicy;
125
127 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Wrapping)
128 uint8 AutoWrapText:1;
129
131 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Appearance, AdvancedDisplay)
132 bool ApplyLineHeightToBottomLine;
133
135 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Wrapping)
136 float WrapTextAt;
137
139 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Appearance, AdvancedDisplay)
140 FMargin Margin;
141
143 UPROPERTY(EditAnywhere, BlueprintReadWrite, Setter, Category=Appearance, AdvancedDisplay)
144 float LineHeightPercentage;
145
146};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ETextShapingMethod
Definition FontCache.h:52
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
ETextFlowDirection
Definition TextLayout.h:81
ETextWrappingPolicy
Definition TextLayout.h:67
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Attribute.h:17
Definition EnumAsByte.h:22
Definition TextWidgetTypes.h:71
bool GetAutoWrapText() const
Definition TextWidgetTypes.h:75
float GetWrapTextAt() const
Definition TextWidgetTypes.h:76
virtual void OnAutoWrapTextChanged(bool InAutoWrapText)
Definition TextWidgetTypes.h:93
virtual void OnShapedTextOptionsChanged(FShapedTextOptions InShapedTextOptions)
Definition TextWidgetTypes.h:90
virtual void OnWrapTextAtChanged(float InWrapTextAt)
Definition TextWidgetTypes.h:94
virtual void OnWrappingPolicyChanged(ETextWrappingPolicy InWrappingPolicy)
Definition TextWidgetTypes.h:92
virtual void OnApplyLineHeightToBottomLineChanged(bool InApplyLineHeightToBottomLine)
Definition TextWidgetTypes.h:96
virtual void OnJustificationChanged(ETextJustify::Type InJustification)
Definition TextWidgetTypes.h:91
void SynchronizeTextLayoutProperties(TWidgetType &InWidget)
Definition TextWidgetTypes.h:101
virtual void OnLineHeightPercentageChanged(float InLineHeightPercentage)
Definition TextWidgetTypes.h:95
virtual void OnMarginChanged(const FMargin &InMargin)
Definition TextWidgetTypes.h:97
Definition Widget.h:217
Definition TextLayout.h:26
Type
Definition TextLayout.h:28
Definition Margin.h:17
Definition TextWidgetTypes.h:21
bool operator!=(const FShapedTextOptions &Other) const
Definition TextWidgetTypes.h:42
bool operator==(const FShapedTextOptions &Other) const
Definition TextWidgetTypes.h:34
void SynchronizeShapedTextProperties(TWidgetType &InWidget) const
Definition TextWidgetTypes.h:28
Definition Optional.h:131