UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
STextBlock.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"
6#include "Misc/Attribute.h"
9#include "Input/Reply.h"
10#include "Layout/Margin.h"
12#include "Fonts/SlateFontInfo.h"
13#include "Widgets/SLeafWidget.h"
14#include "Styling/SlateTypes.h"
15#include "Styling/CoreStyle.h"
18
19class FPaintArgs;
22class IBreakIterator;
23enum class ETextShapingMethod : uint8;
24
25namespace ETextRole
26{
33}
34
35template <>
37{
38 static constexpr bool SupportsInvalidation() { return true; }
39};
40
44class STextBlock : public SLeafWidget
45{
47
48public:
49
78
81
82
84
85
87
88
89 SLATE_ATTRIBUTE( const FSlateBrush*, StrikeBrush )
90
91
92 SLATE_ATTRIBUTE( FSlateColor, ColorAndOpacity )
93
94
95 SLATE_ATTRIBUTE( FVector2D, ShadowOffset )
96
97
98 SLATE_ATTRIBUTE( FLinearColor, ShadowColorAndOpacity )
99
100
101 SLATE_ATTRIBUTE( FLinearColor, HighlightColor )
102
103
104 SLATE_ATTRIBUTE( const FSlateBrush*, HighlightShape )
105
106
107 SLATE_ATTRIBUTE( FText, HighlightText )
108
109
110 SLATE_ATTRIBUTE( float, WrapTextAt )
111
112
115 SLATE_ATTRIBUTE( bool, AutoWrapText )
116
117
118 SLATE_ATTRIBUTE( ETextWrappingPolicy, WrappingPolicy )
119
120
121 SLATE_ATTRIBUTE( ETextTransformPolicy, TransformPolicy )
122
123
124 SLATE_ATTRIBUTE( FMargin, Margin )
125
126
127 SLATE_ATTRIBUTE( float, LineHeightPercentage )
128
129
130 SLATE_ATTRIBUTE( bool, ApplyLineHeightToBottomLine )
131
132
133 SLATE_ATTRIBUTE( ETextJustify::Type, Justification )
134
135
136 SLATE_ATTRIBUTE( float, MinDesiredWidth )
137
138
140
141
143
144
146
147
149
150
156
157
158 SLATE_EVENT(FPointerEventHandler, OnDoubleClicked)
159
161
162
164
167
173 SLATE_API void Construct( const FArguments& InArgs );
174
180 const FText& GetText() const
181 {
183 {
184 STextBlock& MutableSelf = const_cast<STextBlock&>(*this);
186 }
187 return BoundText.Get();
188 }
189
190public:
193
196
199
202
205
208
211
214
217
220
223
226
229
232
235
238
241
244
247
250
253
256
257 // SWidget interface
258 SLATE_API virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
259 SLATE_API virtual FVector2D ComputeDesiredSize(float) const override;
260#if WITH_ACCESSIBILITY
263#endif
264 // End of SWidget interface
265
266public:
269
272
275
277 SLATE_API const FSlateFontInfo& GetFontRef() const;
278
280 SLATE_API const FSlateBrush* GetStrikeBrush() const;
281
284
287
290
293
296
299
302
304 SLATE_API float GetMinDesiredWidth() const;
305
306private:
308 FTextBlockStyle GetComputedTextStyle() const;
309
311 void UpdateTextBlockLayout(float LayoutScaleMultiplier) const;
312
314 void InvalidateText(EInvalidateWidgetReason InvalidateReason);
315
316private:
318 TSlateAttribute<FText> BoundText;
319
322
324 FTextBlockStyle TextStyle;
325
328
331
333 TSlateAttribute<FSlateColor> ColorAndOpacity;
334
336 TSlateAttribute<FVector2D> ShadowOffset;
337
339 TSlateAttribute<FLinearColor> ShadowColorAndOpacity;
340
342 TSlateAttribute<FLinearColor> HighlightColor;
343
346
348 TSlateAttribute<FText> HighlightText;
349
351 TSlateAttribute<float> WrapTextAt;
352
354 TSlateAttribute<bool> AutoWrapText;
355
358
361
364
367
369 TSlateAttribute<float> LineHeightPercentage;
370
372 TSlateAttribute<bool> ApplyLineHeightToBottomLine;
373
375 TSlateAttribute<float> MinDesiredWidth;
376
378 mutable TOptional<FVector2f> CachedSimpleDesiredSize;
379
381 union
382 {
383 struct
384 {
385 //~ for attribute
396 //~ for TextBlockLayout
399 };
401 };
402
403 bool bSimpleTextMode;
404};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_STYLE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:280
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_EVENT(DelegateName, EventName)
Definition DeclarativeSyntaxSupport.h:458
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
return true
Definition ExternalRpcRegistry.cpp:601
ETextShapingMethod
Definition FontCache.h:52
EInvalidateWidgetReason
Definition InvalidateWidgetReason.h:14
EAccessibleType
Definition SWidget.h:76
#define SLATE_DECLARE_WIDGET_API(WidgetType, ParentType, ModuleApiDefine)
Definition SlateControlledConstruction.h:22
ETextTransformPolicy
Definition SlateTypes.h:310
ETextWrappingPolicy
Definition TextLayout.h:67
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition CoreStyle.h:15
Definition PaintArgs.h:23
Definition SlateRect.h:26
Definition SlateTextBlockLayout.h:21
Definition DrawElements.h:220
Definition Text.h:385
Definition WidgetStyle.h:15
Definition IBreakIterator.h:9
Definition SLeafWidget.h:29
Definition STextBlock.h:45
SLATE_API FSlateFontInfo GetFont() const
Definition STextBlock.cpp:165
SLATE_API void SetJustification(TAttribute< ETextJustify::Type > InJustification)
Definition STextBlock.cpp:476
SLATE_BEGIN_ARGS(STextBlock)
Definition STextBlock.h:50
uint16 bIsAttributeTransformPolicySet
Definition STextBlock.h:395
SLATE_API void SetShadowOffset(TAttribute< FVector2D > InShadowOffset)
Definition STextBlock.cpp:432
uint16 bIsAttributeBoundTextBound
Definition STextBlock.h:386
SLATE_API void SetFont(TAttribute< FSlateFontInfo > InFont)
Definition STextBlock.cpp:354
SLATE_API void Construct(const FArguments &InArgs)
Definition STextBlock.cpp:122
SLATE_API FMargin GetMargin() const
Definition STextBlock.cpp:220
SLATE_API void SetApplyLineHeightToBottomLine(TAttribute< bool > InApplyLineHeightToBottomLine)
Definition STextBlock.cpp:466
SLATE_API float GetMinDesiredWidth() const
Definition STextBlock.cpp:225
SLATE_API void SetTextShapingMethod(const TOptional< ETextShapingMethod > &InTextShapingMethod)
Definition STextBlock.cpp:387
SLATE_API FLinearColor GetShadowColorAndOpacity() const
Definition STextBlock.cpp:195
uint16 bIsAttributeHighlightColorSet
Definition STextBlock.h:392
SLATE_API void SetMinDesiredWidth(TAttribute< float > InMinDesiredWidth)
Definition STextBlock.cpp:456
uint16 bTextLayoutUpdateDesiredSize
Definition STextBlock.h:398
SLATE_API ETextTransformPolicy GetTransformPolicyImpl() const
Definition STextBlock.cpp:215
SLATE_API void SetHighlightText(TAttribute< FText > InText)
Definition STextBlock.cpp:248
uint16 bTextLayoutUpdateTextStyle
Definition STextBlock.h:397
virtual SLATE_API int32 OnPaint(const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
Definition STextBlock.cpp:253
SLATE_API void SetText(TAttribute< FText > InText)
Definition STextBlock.cpp:240
SLATE_API const FLinearColor & GetShadowColorAndOpacityRef() const
Definition STextBlock.cpp:200
SLATE_API void SetTextStyle(const FTextBlockStyle *InTextStyle)
Definition STextBlock.cpp:372
uint16 bIsAttributeColorAndOpacitySet
Definition STextBlock.h:389
uint16 Union_Flags
Definition STextBlock.h:400
virtual SLATE_API FVector2D ComputeDesiredSize(float) const override
Definition STextBlock.cpp:327
SLATE_API void SetTextFlowDirection(const TOptional< ETextFlowDirection > &InTextFlowDirection)
Definition STextBlock.cpp:396
SLATE_API const FSlateFontInfo & GetFontRef() const
Definition STextBlock.cpp:170
uint16 bIsAttributeWrapTextAtSet
Definition STextBlock.h:394
uint16 bIsAttributeFontSet
Definition STextBlock.h:387
SLATE_API FVector2f GetShadowOffset() const
Definition STextBlock.cpp:190
SLATE_API const FSlateBrush * GetHighlightShape() const
Definition STextBlock.cpp:210
SLATE_API void SetTransformPolicy(TAttribute< ETextTransformPolicy > InTransformPolicy)
Definition STextBlock.cpp:420
SLATE_API FSlateColor GetColorAndOpacity() const
Definition STextBlock.cpp:180
uint16 bIsAttributeStrikeBrushSet
Definition STextBlock.h:388
SLATE_API void SetHighlightShape(TAttribute< const FSlateBrush * > InHighlightShape)
Definition STextBlock.cpp:450
uint16 bIsAttributeShadowOffsetSet
Definition STextBlock.h:390
SLATE_API const FSlateBrush * GetStrikeBrush() const
Definition STextBlock.cpp:175
uint16 bIsAttributeShadowColorAndOpacitySet
Definition STextBlock.h:391
SLATE_API void SetHighlightColor(TAttribute< FLinearColor > InHighlightColor)
Definition STextBlock.cpp:444
SLATE_API void SetWrapTextAt(TAttribute< float > InWrapTextAt)
Definition STextBlock.cpp:405
SLATE_API void SetMargin(TAttribute< FMargin > InMargin)
Definition STextBlock.cpp:471
SLATE_API const FSlateColor & GetColorAndOpacityRef() const
Definition STextBlock.cpp:185
SLATE_API void SetStrikeBrush(TAttribute< const FSlateBrush * > InStrikeBrush)
Definition STextBlock.cpp:360
const FText & GetText() const
Definition STextBlock.h:180
SLATE_API void SetWrappingPolicy(TAttribute< ETextWrappingPolicy > InWrappingPolicy)
Definition STextBlock.cpp:415
uint16 bIsAttributeHighlightShapeSet
Definition STextBlock.h:393
SLATE_API FSlateColor GetHighlightColor() const
Definition STextBlock.cpp:205
SLATE_API void SetOverflowPolicy(TOptional< ETextOverflowPolicy > InOverflowPolicy)
Definition STextBlock.cpp:426
SLATE_API void SetColorAndOpacity(TAttribute< FSlateColor > InColorAndOpacity)
Definition STextBlock.cpp:366
SLATE_API void SetAutoWrapText(TAttribute< bool > InAutoWrapText)
Definition STextBlock.cpp:410
SLATE_API void SetLineHeightPercentage(TAttribute< float > InLineHeightPercentage)
Definition STextBlock.cpp:461
SLATE_API void SetShadowColorAndOpacity(TAttribute< FLinearColor > InShadowColorAndOpacity)
Definition STextBlock.cpp:438
Definition Attribute.h:17
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition TextLayout.h:26
Type
Definition TextLayout.h:28
Definition STextBlock.h:26
Type
Definition STextBlock.h:28
@ ButtonText
Definition STextBlock.h:30
@ ComboText
Definition STextBlock.h:31
@ Custom
Definition STextBlock.h:29
@ false
Definition radaudio_common.h:23
Definition Geometry.h:40
Definition Color.h:48
Definition Margin.h:17
Definition SlateBrush.h:239
Definition SlateColor.h:42
Definition SlateFontInfo.h:147
Definition SlateTypes.h:326
const ObjectType & Get() const
Definition SlateAttributeBase.inl:240
void UpdateNow(ContainerType &Widget)
Definition SlateAttributeBase.inl:246
Definition Optional.h:131
static constexpr bool SupportsInvalidation()
Definition STextBlock.h:38
Definition SWidget.h:69