UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TextLayout.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
6#include "Misc/Attribute.h"
7#include "Layout/Margin.h"
10#include "Framework/Text/IRun.h"
11#include "Styling/SlateTypes.h"
12
13#include "TextLayout.generated.h"
14
15#define TEXT_LAYOUT_DEBUG 0
16
17class IBreakIterator;
18class ILayoutBlock;
20class IRunRenderer;
21enum class ETextHitPoint : uint8;
22enum class ETextShapingMethod : uint8;
23
24UENUM( BlueprintType )
25namespace ETextJustify
26{
27 enum Type : int
28 {
35
41
48
53
58 };
59}
60
61
65UENUM( BlueprintType )
74
79UENUM( BlueprintType )
81{
83 Auto = 0,
84
87
90
92 Culture,
93};
94
97
100{
101public:
102 FTextLocation( const int32 InLineIndex = 0, const int32 InOffset = 0 )
103 : LineIndex( InLineIndex )
104 , Offset( InOffset )
105 {
106
107 }
108
109 FTextLocation( const FTextLocation& InLocation, const int32 InOffset )
110 : LineIndex( InLocation.GetLineIndex() )
111 , Offset(FMath::Max(InLocation.GetOffset() + InOffset, 0))
112 {
113
114 }
115
116 bool operator==( const FTextLocation& Other ) const
117 {
118 return
119 LineIndex == Other.LineIndex &&
120 Offset == Other.Offset;
121 }
122
123 bool operator!=( const FTextLocation& Other ) const
124 {
125 return
126 LineIndex != Other.LineIndex ||
127 Offset != Other.Offset;
128 }
129
130 bool operator<( const FTextLocation& Other ) const
131 {
132 return this->LineIndex < Other.LineIndex || (this->LineIndex == Other.LineIndex && this->Offset < Other.Offset);
133 }
134
135 int32 GetLineIndex() const { return LineIndex; }
136 int32 GetOffset() const { return Offset; }
137 bool IsValid() const { return LineIndex != INDEX_NONE && Offset != INDEX_NONE; }
138
140 {
141 return HashCombine(InSubject.LineIndex, InSubject.Offset);
142 }
143
144private:
145 int32 LineIndex;
146 int32 Offset;
147};
148
150{
151
152public:
153
155
157
158public:
159
165
171
173 {
175 {
177 {
178 return LocationA;
179 }
180
181 return LocationB;
182 }
184 {
185 return LocationA;
186 }
187
188 return LocationB;
189 }
190
191 const FTextLocation& GetEnd() const
192 {
194 {
196 {
197 return LocationA;
198 }
199
200 return LocationB;
201 }
203 {
204 return LocationA;
205 }
206
207 return LocationB;
208 }
209};
210
212 : public TSharedFromThis<FTextLayout>
213{
214public:
215
223
246
248 {
249 public:
250
252
253 public:
254
256
257 SLATE_API void BeginLayout();
258 SLATE_API void EndLayout();
259
261 SLATE_API void SetTextRange( const FTextRange& Value );
262
263 SLATE_API int16 GetBaseLine( float Scale ) const;
264 SLATE_API int16 GetMaxHeight( float Scale ) const;
265
266 SLATE_API FVector2D Measure( int32 BeginIndex, int32 EndIndex, float Scale, const FRunTextContext& InTextContext );
267
268 SLATE_API int8 GetKerning( int32 CurrentIndex, float Scale, const FRunTextContext& InTextContext );
269
270 static SLATE_API int32 BinarySearchForBeginIndex( const TArray< FTextRange >& Ranges, int32 BeginIndex );
271
273
275
276 SLATE_API void ClearCache();
277
278 SLATE_API void AppendTextTo(FString& Text) const;
279 SLATE_API void AppendTextTo(FString& Text, const FTextRange& Range) const;
280
281 private:
282
284 TArray< FTextRange > MeasuredRanges;
285 TArray< FVector2D > MeasuredRangeSizes;
286 };
287
300
316
326
340
343 {
344 friend class FTextLayout;
345
346 public:
350
351 private:
352 struct FOffsetEntry
353 {
354 FOffsetEntry(const int32 InFlatStringIndex, const int32 InDocumentLineLength)
355 : FlatStringIndex(InFlatStringIndex)
356 , DocumentLineLength(InDocumentLineLength)
357 {
358 }
359
361 int32 FlatStringIndex;
362
364 int32 DocumentLineLength;
365 };
366
370 TArray<FOffsetEntry> OffsetData;
371 };
372
373public:
374
375 SLATE_API virtual ~FTextLayout();
376
379
385
390
396
402
408
409 inline float GetWrappingWidth() const { return WrappingWidth; }
410 SLATE_API void SetWrappingWidth( float Value );
411
414
415 inline float GetLineHeightPercentage() const { return LineHeightPercentage; }
417
420
423
426
430
431 inline float GetScale() const { return Scale; }
432 SLATE_API void SetScale( float Value );
433
436
439
441
442 inline FMargin GetMargin() const { return Margin; }
443 SLATE_API void SetMargin( const FMargin& InMargin );
444
446
449
452
453 SLATE_API void ClearLines();
454
466
467 SLATE_API void AddLine( const FNewLineData& NewLine );
468
470
475
480
485
490
495
500
505
510
514 SLATE_API virtual void UpdateIfNeeded();
515
516 SLATE_API virtual void UpdateLayout();
517
518 SLATE_API virtual void UpdateHighlights();
519
521
522 SLATE_API void DirtyLayout();
523
524 SLATE_API bool IsLayoutDirty() const;
525
527
532
534
536
537 SLATE_API bool SplitLineAt(const FTextLocation& Location);
538
539 SLATE_API bool JoinLineWithNextLine(int32 LineIndex);
540
541 SLATE_API bool InsertAt(const FTextLocation& Location, TCHAR Character);
542
543 SLATE_API bool InsertAt(const FTextLocation& Location, const FString& Text);
544
545 SLATE_API bool InsertAt(const FTextLocation& Location, TSharedRef<IRun> InRun, const bool bAlwaysKeepRightRun = false);
546
547 SLATE_API bool RemoveAt(const FTextLocation& Location, int32 Count = 1);
548
549 SLATE_API bool RemoveLine(int32 LineIndex);
550
551 SLATE_API bool IsEmpty() const;
552
554
555 SLATE_API void GetAsText(FString& DisplayText, FTextOffsetLocations* const OutTextOffsetLocations = nullptr) const;
556
557 SLATE_API void GetAsText(FText& DisplayText, FTextOffsetLocations* const OutTextOffsetLocations = nullptr) const;
558
561
562 SLATE_API void GetSelectionAsText(FString& DisplayText, const FTextSelection& Selection) const;
563
565
566 SLATE_API FTextSelection GetWordAt(const FTextLocation& Location) const;
567
568protected:
569
571
577
582
587
594
599
604
609
614
618 SLATE_API void ClearView();
619
625
629 SLATE_API virtual void BeginLayout();
630
635
639 SLATE_API virtual void EndLayout();
640
645
650
651private:
652
653 SLATE_API float GetWrappingDrawWidth() const;
654
655 SLATE_API void FlowLayout();
656 SLATE_API void MarginLayout();
657
659
660 SLATE_API void FlowHighlights();
661
662 SLATE_API void JustifyLayout();
663
665
667
668 SLATE_API void GetAsTextAndOffsets(FString* const OutDisplayText, FTextOffsetLocations* const OutTextOffsetLocations) const;
669
670protected:
671
673 {
674 typedef uint8 Flags;
675 enum Enum
676 {
677 None = 0,
678 Layout = 1<<0,
679 Highlights = 1<<1,
681 };
682 };
683
685 {
687 : DrawWidth(0.0f)
688 , WrappedWidth(0.0f)
689 , Height(0.0f)
690 {
691 }
692
694 {
695 return FVector2D(DrawWidth, Height);
696 }
697
699 {
701 }
702
705
708
710 float Height;
711 };
712
714
717
720
723
726
729
732
734 float Scale;
735
738
741
744
747
750
753
756
759
762
765
768
771
774
777
780
783
786
787};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
ETextShapingMethod
Definition FontCache.h:52
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
#define UENUM(...)
Definition ObjectMacros.h:749
ETextTransformPolicy
Definition SlateTypes.h:310
ETextHitPoint
Definition TextHitPoint.h:8
SLATE_API ETextFlowDirection GetDefaultTextFlowDirection()
Definition TextLayout.cpp:27
ETextFlowDirection
Definition TextLayout.h:81
ETextWrappingPolicy
Definition TextLayout.h:67
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition TextLayout.h:248
SLATE_API int16 GetBaseLine(float Scale) const
Definition TextLayout.cpp:2976
SLATE_API void EndLayout()
Definition TextLayout.cpp:2991
SLATE_API void BeginLayout()
Definition TextLayout.cpp:2996
SLATE_API int8 GetKerning(int32 CurrentIndex, float Scale, const FRunTextContext &InTextContext)
Definition TextLayout.cpp:2956
SLATE_API TSharedRef< IRun > GetRun() const
Definition TextLayout.cpp:3001
SLATE_API FVector2D Measure(int32 BeginIndex, int32 EndIndex, float Scale, const FRunTextContext &InTextContext)
Definition TextLayout.cpp:2961
SLATE_API void AppendTextTo(FString &Text) const
Definition TextLayout.cpp:2788
SLATE_API FTextRange GetTextRange() const
Definition TextLayout.cpp:2981
SLATE_API TSharedRef< ILayoutBlock > CreateBlock(const FBlockDefinition &BlockDefine, float InScale, const FLayoutBlockTextContext &InTextContext) const
Definition TextLayout.cpp:2798
SLATE_API int16 GetMaxHeight(float Scale) const
Definition TextLayout.cpp:2971
SLATE_API void ClearCache()
Definition TextLayout.cpp:2782
static SLATE_API int32 BinarySearchForBeginIndex(const TArray< FTextRange > &Ranges, int32 BeginIndex)
Definition TextLayout.cpp:2931
SLATE_API void SetTextRange(const FTextRange &Value)
Definition TextLayout.cpp:2986
static SLATE_API int32 BinarySearchForEndIndex(const TArray< FTextRange > &Ranges, int32 RangeBeginIndex, int32 EndIndex)
Definition TextLayout.cpp:2906
Definition TextLayout.h:213
FMargin Margin
Definition TextLayout.h:746
SLATE_API void FlushTextShapingCache()
Definition TextLayout.cpp:1177
SLATE_API void DirtyAllLineModels(const ELineModelDirtyState::Flags InDirtyFlags)
Definition TextLayout.cpp:1196
TSharedRef< IBreakIterator > GraphemeBreakIterator
Definition TextLayout.h:773
ETextFlowDirection TextFlowDirection
Definition TextLayout.h:731
virtual SLATE_API void UpdateIfNeeded()
Definition TextLayout.cpp:1231
ETextJustify::Type Justification
Definition TextLayout.h:749
SLATE_API void SetLineHighlights(const TArray< FTextLineHighlight > &Highlights)
Definition TextLayout.cpp:1403
TSharedPtr< IBreakIterator > LineBreakIterator
Definition TextLayout.h:770
SLATE_API void GetSelectionAsText(FString &DisplayText, const FTextSelection &Selection) const
Definition TextLayout.cpp:2421
SLATE_API void SetScale(float Value)
Definition TextLayout.cpp:2601
ETextTransformPolicy GetTransformPolicy() const
Definition TextLayout.h:428
SLATE_API void FlushLineTextShapingCache(FLineModel &LineModel)
Definition TextLayout.cpp:1185
SLATE_API void AddRunRenderer(const FTextRunRenderer &Renderer)
Definition TextLayout.cpp:1336
SLATE_API void SetDebugSourceInfo(const TAttribute< FString > &InDebugSourceInfo)
Definition TextLayout.cpp:2733
SLATE_API void GetAsText(FString &DisplayText, FTextOffsetLocations *const OutTextOffsetLocations=nullptr) const
Definition TextLayout.cpp:2338
SLATE_API void SetTransformPolicy(ETextTransformPolicy Value)
Definition TextLayout.cpp:2724
ETextShapingMethod TextShapingMethod
Definition TextLayout.h:728
SLATE_API FTextLocation GetTextLocationAt(const FVector2D &Relative, ETextHitPoint *const OutHitPoint=nullptr) const
Definition TextLayout.cpp:1569
float GetLineHeightPercentage() const
Definition TextLayout.h:415
SLATE_API void CalculateTextDirection()
Definition TextLayout.cpp:1072
SLATE_API void ClearRunRenderers()
Definition TextLayout.cpp:1314
SLATE_API int32 GetLineViewIndexForTextLocation(const TArray< FTextLayout::FLineView > &LineViews, const FTextLocation &Location, const bool bPerformInclusiveBoundsCheck) const
Definition TextLayout.cpp:1534
SLATE_API void SetTextOverflowPolicy(const TOptional< ETextOverflowPolicy > InTextOverflowPolicy)
Definition TextLayout.cpp:2651
TUniquePtr< TextBiDi::ITextBiDi > TextBiDiDetection
Definition TextLayout.h:779
SLATE_API bool SplitLineAt(const FTextLocation &Location)
Definition TextLayout.cpp:1931
virtual SLATE_API void EndLayout()
Definition TextLayout.cpp:1009
TArray< FLineModel > LineModels
Definition TextLayout.h:716
TSet< int32 > LineViewsToJustify
Definition TextLayout.h:722
SLATE_API void ClearLines()
Definition TextLayout.cpp:2321
FVector2D ScrollOffset
Definition TextLayout.h:767
SLATE_API int32 GetLineCount() const
Definition TextLayout.cpp:2333
SLATE_API bool JoinLineWithNextLine(int32 LineIndex)
Definition TextLayout.cpp:1884
ETextJustify::Type GetJustification() const
Definition TextLayout.h:421
TAttribute< FString > DebugSourceInfo
Definition TextLayout.h:782
SLATE_API void ClearLineHighlights()
Definition TextLayout.cpp:1391
float GetWrappingWidth() const
Definition TextLayout.h:409
ETextTransformPolicy TransformPolicy
Definition TextLayout.h:743
bool GetApplyLineHeightToBottomLine() const
Definition TextLayout.h:418
TSharedRef< IBreakIterator > WordBreakIterator
Definition TextLayout.h:776
ETextFlowDirection GetTextFlowDirection() const
Definition TextLayout.h:437
bool ApplyLineHeightToBottomLine
Definition TextLayout.h:755
SLATE_API void SetLineHeightPercentage(float Value)
Definition TextLayout.cpp:2678
ETextWrappingPolicy GetWrappingPolicy() const
Definition TextLayout.h:412
SLATE_API bool InsertAt(const FTextLocation &Location, TCHAR Character)
Definition TextLayout.cpp:1656
ETextShapingMethod GetTextShapingMethod() const
Definition TextLayout.h:434
SLATE_API void BeginLineLayout(FLineModel &LineModel)
Definition TextLayout.cpp:1033
SLATE_API bool RemoveLine(int32 LineIndex)
Definition TextLayout.cpp:2109
SLATE_API void RemoveLineHighlight(const FTextLineHighlight &Highlight)
Definition TextLayout.cpp:1439
FTextLayoutSize TextLayoutSize
Definition TextLayout.h:758
TArray< FLineView > LineViews
Definition TextLayout.h:719
SLATE_API ETextJustify::Type GetVisualJustification() const
Definition TextLayout.cpp:2673
SLATE_API void SetVisibleRegion(const FVector2D &InViewSize, const FVector2D &InScrollOffset)
Definition TextLayout.cpp:2547
SLATE_API FVector2D GetViewSize() const
Definition TextLayout.cpp:2746
SLATE_API FVector2D GetWrappedSize() const
Definition TextLayout.cpp:2756
SLATE_API void SetJustification(ETextJustify::Type Value)
Definition TextLayout.cpp:2662
SLATE_API void SetApplyLineHeightToBottomLine(bool Value)
Definition TextLayout.cpp:2687
SLATE_API void SetWrappingPolicy(ETextWrappingPolicy Value)
Definition TextLayout.cpp:2715
virtual SLATE_API void UpdateLayout()
Definition TextLayout.cpp:1256
float WrappingWidth
Definition TextLayout.h:737
SLATE_API FVector2D GetWrappedDrawSize() const
Definition TextLayout.cpp:2761
virtual TSharedRef< IRun > CreateDefaultTextRun(const TSharedRef< FString > &NewText, const FTextRange &NewRange) const =0
SLATE_API void DirtyRunLayout(const TSharedRef< const IRun > &Run)
Definition TextLayout.cpp:1279
SLATE_API bool IsEmpty() const
Definition TextLayout.cpp:2328
SLATE_API FVector2D GetLocationAt(const FTextLocation &Location, const bool bPerformInclusiveBoundsCheck) const
Definition TextLayout.cpp:1614
SLATE_API bool RemoveAt(const FTextLocation &Location, int32 Count=1)
Definition TextLayout.cpp:2022
SLATE_API bool IsLayoutDirty() const
Definition TextLayout.cpp:1309
const TArray< FTextLayout::FLineModel > & GetLineModels() const
Definition TextLayout.h:378
SLATE_API void RemoveRunRenderer(const FTextRunRenderer &Renderer)
Definition TextLayout.cpp:1368
FMargin GetMargin() const
Definition TextLayout.h:442
SLATE_API void CalculateLineTextDirection(FLineModel &LineModel) const
Definition TextLayout.cpp:1080
SLATE_API void SetTextFlowDirection(const ETextFlowDirection InTextFlowDirection)
Definition TextLayout.cpp:2635
FVector2D ViewSize
Definition TextLayout.h:764
virtual SLATE_API void UpdateHighlights()
Definition TextLayout.cpp:1272
SLATE_API void EndLineLayout(FLineModel &LineModel)
Definition TextLayout.cpp:1017
virtual SLATE_API void BeginLayout()
Definition TextLayout.cpp:1025
const TArray< FTextLayout::FLineView > & GetLineViews() const
Definition TextLayout.h:377
SLATE_API void TransformLineText(FLineModel &LineModel) const
Definition TextLayout.cpp:1049
SLATE_API FVector2D GetSize() const
Definition TextLayout.cpp:2741
int32 CachedLayoutGeneration
Definition TextLayout.h:713
ETextLayoutDirtyState::Flags DirtyFlags
Definition TextLayout.h:725
SLATE_API void DirtyLayout()
Definition TextLayout.cpp:1301
SLATE_API ETextJustify::Type CalculateLineViewVisualJustification(const FLineView &LineView) const
Definition TextLayout.cpp:1109
float GetScale() const
Definition TextLayout.h:431
SLATE_API void ClearView()
Definition TextLayout.cpp:1041
SLATE_API FTextLayout()
Definition TextLayout.cpp:1204
SLATE_API void SetTextShapingMethod(const ETextShapingMethod InTextShapingMethod)
Definition TextLayout.cpp:2619
SLATE_API void CreateWrappingCache()
Definition TextLayout.cpp:1127
SLATE_API void SetRunRenderers(const TArray< FTextRunRenderer > &Renderers)
Definition TextLayout.cpp:1326
SLATE_API void AddLine(const FNewLineData &NewLine)
Definition TextLayout.cpp:2178
SLATE_API void SetWrappingWidth(float Value)
Definition TextLayout.cpp:2696
SLATE_API FTextSelection GetWordAt(const FTextLocation &Location) const
Definition TextLayout.cpp:2500
SLATE_API void GetTextOffsetLocations(FTextOffsetLocations &OutTextOffsetLocations) const
Definition TextLayout.cpp:2350
SLATE_API void AddLines(const TArray< FNewLineData > &NewLines)
Definition TextLayout.cpp:2242
ETextWrappingPolicy WrappingPolicy
Definition TextLayout.h:740
float Scale
Definition TextLayout.h:734
SLATE_API void AddLineHighlight(const FTextLineHighlight &Highlight)
Definition TextLayout.cpp:1413
SLATE_API void SetLineBreakIterator(TSharedPtr< IBreakIterator > InLineBreakIterator)
Definition TextLayout.cpp:2580
float OverHeight
Definition TextLayout.h:761
TOptional< ETextOverflowPolicy > TextOverflowPolicyOverride
Definition TextLayout.h:785
SLATE_API FTextSelection GetGraphemeAt(const FTextLocation &Location) const
Definition TextLayout.cpp:2473
SLATE_API FVector2D GetDrawSize() const
Definition TextLayout.cpp:2751
SLATE_API void SetMargin(const FMargin &InMargin)
Definition TextLayout.cpp:2590
SLATE_API void CreateLineWrappingCache(FLineModel &LineModel)
Definition TextLayout.cpp:1135
virtual SLATE_API ~FTextLayout()
Definition TextLayout.cpp:2766
float LineHeightPercentage
Definition TextLayout.h:752
Definition TextLayout.h:150
FTextLocation LocationB
Definition TextLayout.h:156
const FTextLocation & GetEnd() const
Definition TextLayout.h:191
const FTextLocation & GetBeginning() const
Definition TextLayout.h:172
FTextLocation LocationA
Definition TextLayout.h:154
FTextSelection(const FTextLocation &InLocationA, const FTextLocation &InLocationB)
Definition TextLayout.h:166
FTextSelection()
Definition TextLayout.h:160
Definition Text.h:385
Definition IBreakIterator.h:9
Definition ILayoutBlock.h:9
Definition ILineHighlighter.h:7
Definition IRunRenderer.h:7
Definition Renderer.Build.cs:6
Definition Attribute.h:17
Definition SharedPointer.h:1640
Definition UniquePtr.h:107
Definition TextLayout.h:26
Type
Definition TextLayout.h:28
@ InvariantRight
Definition TextLayout.h:57
@ InvariantLeft
Definition TextLayout.h:52
ETextDirection
Definition Text.h:1413
Definition IRun.h:98
Definition Margin.h:17
Definition UnrealMathUtility.h:270
Definition IRun.h:85
Definition TextLayout.h:289
Enum
Definition TextLayout.h:292
@ None
Definition TextLayout.h:293
@ All
Definition TextLayout.h:297
@ WrappingInformation
Definition TextLayout.h:294
@ TextBaseDirection
Definition TextLayout.h:295
@ ShapingCache
Definition TextLayout.h:296
uint8 Flags
Definition TextLayout.h:290
Definition TextLayout.h:673
uint8 Flags
Definition TextLayout.h:674
Enum
Definition TextLayout.h:676
@ Layout
Definition TextLayout.h:678
@ All
Definition TextLayout.h:680
@ Highlights
Definition TextLayout.h:679
@ None
Definition TextLayout.h:677
Definition TextLayout.h:217
FTextRange ActualRange
Definition TextLayout.h:219
TSharedPtr< IRunRenderer > Renderer
Definition TextLayout.h:221
Definition TextLayout.h:225
FTextRange TrimmedRange
Definition TextLayout.h:229
float TrimmedWidth
Definition TextLayout.h:233
int16 MaxAboveBaseline
Definition TextLayout.h:237
FTextRange ActualRange
Definition TextLayout.h:227
float FirstTrailingWhitespaceCharWidth
Definition TextLayout.h:235
int16 MaxBelowBaseline
Definition TextLayout.h:238
FVector2D ActualSize
Definition TextLayout.h:231
int8 Kerning
Definition TextLayout.h:240
Definition TextLayout.h:302
TArray< FBreakCandidate > BreakCandidates
Definition TextLayout.h:311
TArray< FTextRunRenderer > RunRenderers
Definition TextLayout.h:312
TextBiDi::ETextDirection TextBaseDirection
Definition TextLayout.h:309
FShapedTextCacheRef ShapedTextCache
Definition TextLayout.h:308
TArray< FRunModel > Runs
Definition TextLayout.h:310
TArray< FTextLineHighlight > LineHighlights
Definition TextLayout.h:313
ELineModelDirtyState::Flags DirtyFlags
Definition TextLayout.h:314
TSharedRef< FString > Text
Definition TextLayout.h:307
Definition TextLayout.h:318
TSharedPtr< ILineHighlighter > Highlighter
Definition TextLayout.h:324
float Width
Definition TextLayout.h:322
FVector2D Offset
Definition TextLayout.h:320
Definition TextLayout.h:328
float JustificationWidth
Definition TextLayout.h:335
TArray< FLineViewHighlight > UnderlayHighlights
Definition TextLayout.h:330
TArray< TSharedRef< ILayoutBlock > > Blocks
Definition TextLayout.h:329
FVector2D Offset
Definition TextLayout.h:332
FTextRange Range
Definition TextLayout.h:336
TArray< FLineViewHighlight > OverlayHighlights
Definition TextLayout.h:331
TextBiDi::ETextDirection TextBaseDirection
Definition TextLayout.h:337
FVector2D Size
Definition TextLayout.h:333
int32 ModelIndex
Definition TextLayout.h:338
float TextHeight
Definition TextLayout.h:334
Definition TextLayout.h:456
TArray< TSharedRef< IRun > > Runs
Definition TextLayout.h:464
FNewLineData(TSharedRef< FString > InText, TArray< TSharedRef< IRun > > InRuns)
Definition TextLayout.h:457
TSharedRef< FString > Text
Definition TextLayout.h:463
Definition TextLayout.h:685
FVector2D GetDrawSize() const
Definition TextLayout.h:693
float WrappedWidth
Definition TextLayout.h:707
FTextLayoutSize()
Definition TextLayout.h:686
FVector2D GetWrappedSize() const
Definition TextLayout.h:698
float Height
Definition TextLayout.h:710
float DrawWidth
Definition TextLayout.h:704
Definition TextLayout.h:343
SLATE_API FTextLocation OffsetToTextLocation(const int32 InOffset) const
Definition TextLayout.cpp:3023
SLATE_API int32 GetTextLength() const
Definition TextLayout.cpp:3038
SLATE_API int32 TextLocationToOffset(const FTextLocation &InLocation) const
Definition TextLayout.cpp:3012
Definition TextLineHighlight.h:9
Definition TextLayout.h:100
FTextLocation(const FTextLocation &InLocation, const int32 InOffset)
Definition TextLayout.h:109
bool operator!=(const FTextLocation &Other) const
Definition TextLayout.h:123
int32 GetOffset() const
Definition TextLayout.h:136
bool operator==(const FTextLocation &Other) const
Definition TextLayout.h:116
int32 GetLineIndex() const
Definition TextLayout.h:135
FTextLocation(const int32 InLineIndex=0, const int32 InOffset=0)
Definition TextLayout.h:102
bool operator<(const FTextLocation &Other) const
Definition TextLayout.h:130
friend uint32 GetTypeHash(const FTextLocation &InSubject)
Definition TextLayout.h:139
bool IsValid() const
Definition TextLayout.h:137
Definition UnrealString.h:234
Definition TextRunRenderer.h:9
Definition Optional.h:131