13#include "TextLayout.generated.h"
15#define TEXT_LAYOUT_DEBUG 0
119 LineIndex ==
Other.LineIndex &&
120 Offset ==
Other.Offset;
126 LineIndex !=
Other.LineIndex ||
127 Offset !=
Other.Offset;
132 return this->LineIndex <
Other.LineIndex || (this->LineIndex ==
Other.LineIndex && this->Offset <
Other.Offset);
361 int32 FlatStringIndex;
364 int32 DocumentLineLength;
653 SLATE_API float GetWrappingDrawWidth()
const;
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
@ AllowPerCharacterWrapping
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
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 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 UnrealMathUtility.h:270
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 TextRunRenderer.h:9
Definition Optional.h:131