UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SMultiLineEditableTextBox.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"
7#include "SlateGlobals.h"
8#include "Layout/Margin.h"
10#include "Fonts/SlateFontInfo.h"
11#include "Input/Reply.h"
13#include "Styling/SlateTypes.h"
14#include "Styling/CoreStyle.h"
15#include "Framework/Text/IRun.h"
20
23class SBox;
24class SHorizontalBox;
25enum class ETextShapingMethod : uint8;
26
27#if WITH_FANCY_TEXT
28
33{
34
35public:
36
38 : _Style(&FCoreStyle::Get().GetWidgetStyle<FEditableTextBoxStyle>("NormalEditableTextBox"))
39 , _Marshaller()
40 , _Text()
41 , _HintText()
42 , _SearchText()
43 , _Font()
48 , _MaximumLength(-1)
59 , _HScrollBar()
60 , _VScrollBar()
61 , _WrapTextAt(0.0f)
67 , _Padding()
68 , _Margin()
77 {}
78
81
82
83 SLATE_STYLE_ARGUMENT_DEPRECATED(FTextBlockStyle, TextStyle, 5.2, "TextStyle is deprecated and will be ignored. Please use the TextStyle embedded in FEditableTextBoxStyle Style.")
84
85
87
90
92 SLATE_ATTRIBUTE( FText, HintText )
93
95 SLATE_ATTRIBUTE( FText, SearchText )
96
99
101 SLATE_ATTRIBUTE( FSlateColor, ForegroundColor )
102
104 SLATE_ATTRIBUTE( FSlateColor, ReadOnlyForegroundColor )
105
107 SLATE_ATTRIBUTE(FSlateColor, FocusedForegroundColor)
108
110 SLATE_ATTRIBUTE(ETextJustify::Type, Justification)
111
113 SLATE_ATTRIBUTE(int32, MaximumLength)
114
116 SLATE_ATTRIBUTE(float, LineHeightPercentage)
117
119 SLATE_ATTRIBUTE( bool, IsReadOnly )
120
122 SLATE_ATTRIBUTE(bool, AllowMultiLine)
123
125 SLATE_ATTRIBUTE( bool, IsCaretMovedWhenGainFocus )
126
128 SLATE_ATTRIBUTE( bool, SelectAllTextWhenFocused )
129
132
134 SLATE_ATTRIBUTE( bool, RevertTextOnEscape )
135
137 SLATE_ATTRIBUTE( bool, ClearKeyboardFocusOnCommit )
138
140 SLATE_ATTRIBUTE(bool, AllowContextMenu)
141
144
147
150
152 SLATE_ATTRIBUTE( FMargin, HScrollBarPadding )
153
155 SLATE_ATTRIBUTE( FMargin, VScrollBarPadding )
156
158 SLATE_EVENT(FOnContextMenuOpening, OnContextMenuOpening)
159
166 SLATE_EVENT( FOnIsTypedCharValid, OnIsTypedCharValid )
167
169 SLATE_EVENT( FOnBeginTextEdit, OnBeginTextEdit )
170
172 SLATE_EVENT( FOnTextChanged, OnTextChanged )
173
175 SLATE_EVENT( FOnTextCommitted, OnTextCommitted )
176
178 SLATE_EVENT( FOnVerifyTextChanged, OnVerifyTextChanged )
179
182
185
188
190 SLATE_EVENT(FOnKeyChar, OnKeyCharHandler)
191
193 SLATE_EVENT(FOnKeyDown, OnKeyDownHandler)
194
197
199 SLATE_EVENT( FCreateSlateTextLayout, CreateSlateTextLayout )
200
202 SLATE_ATTRIBUTE( float, WrapTextAt )
203
207 SLATE_ATTRIBUTE( bool, AutoWrapText )
208
210 SLATE_ATTRIBUTE( ETextWrappingPolicy, WrappingPolicy )
211
213 SLATE_ATTRIBUTE( bool, SelectAllTextOnCommit )
214
217
219 SLATE_ATTRIBUTE( FSlateColor, BackgroundColor )
220
223
226 SLATE_ATTRIBUTE( FMargin, Margin )
227
229 SLATE_ARGUMENT( TSharedPtr<class IErrorReportingWidget>, ErrorReporting )
230
233
235 SLATE_ARGUMENT( FVirtualKeyboardOptions, VirtualKeyboardOptions )
236
238 SLATE_ATTRIBUTE( EVirtualKeyboardTrigger, VirtualKeyboardTrigger )
239
241 SLATE_ATTRIBUTE( EVirtualKeyboardDismissAction, VirtualKeyboardDismissAction )
242
244 SLATE_ARGUMENT( TOptional<ETextShapingMethod>, TextShapingMethod )
245
247 SLATE_ARGUMENT( TOptional<ETextFlowDirection>, TextFlowDirection )
248
252
258 SLATE_API void Construct( const FArguments& InArgs );
259
265 FText GetText() const
266 {
267 return EditableText->GetText();
268 }
269
275 FText GetPlainText() const
276 {
277 return EditableText->GetPlainText();
278 }
279
285 SLATE_API void GetCurrentTextLine(FString& OutTextLine) const;
286
288 SLATE_API void SetStyle(const FEditableTextBoxStyle* InStyle);
289
291 SLATE_API void SetTextStyle(const FTextBlockStyle* InTextStyle);
292
298 SLATE_API void SetText( const TAttribute< FText >& InNewText );
299
305 FText GetHintText() const
306 {
307 return EditableText->GetHintText();
308 }
309
315 SLATE_API void SetHintText( const TAttribute< FText >& InHintText );
316
318 SLATE_API void SetSearchText(const TAttribute<FText>& InSearchText);
319
321 SLATE_API FText GetSearchText() const;
322
328 SLATE_API void SetTextBoxForegroundColor(const TAttribute<FSlateColor>& InForegroundColor);
329
335 SLATE_API void SetTextBoxBackgroundColor(const TAttribute<FSlateColor>& InBackgroundColor);
336
342 SLATE_API void SetReadOnlyForegroundColor(const TAttribute<FSlateColor>& InReadOnlyForegroundColor);
343
349 SLATE_API void SetMaximumLength(const TAttribute<int32>& InMaximumLength);
350
356 SLATE_API void SetSelectWordOnMouseDoubleClick(const TAttribute<bool>& InSelectWordOnMouseDoubleClick);
357
359 SLATE_API void SetTextShapingMethod(const TOptional<ETextShapingMethod>& InTextShapingMethod);
360
362 SLATE_API void SetTextFlowDirection(const TOptional<ETextFlowDirection>& InTextFlowDirection);
363
365 SLATE_API void SetWrapTextAt(const TAttribute<float>& InWrapTextAt);
366
368 SLATE_API void SetAutoWrapText(const TAttribute<bool>& InAutoWrapText);
369
371 SLATE_API void SetWrappingPolicy(const TAttribute<ETextWrappingPolicy>& InWrappingPolicy);
372
374 SLATE_API void SetLineHeightPercentage(const TAttribute<float>& InLineHeightPercentage);
375
377 SLATE_API void SetApplyLineHeightToBottomLine(const TAttribute<bool>& InApplyLineHeightToBottomLine);
378
380 SLATE_API void SetMargin(const TAttribute<FMargin>& InMargin);
381
383 SLATE_API void SetJustification(const TAttribute<ETextJustify::Type>& InJustification);
384
387
389 SLATE_API void SetAllowContextMenu(const TAttribute< bool >& InAllowContextMenu);
390
393
395 SLATE_API void SetIsReadOnly(const TAttribute< bool >& InIsReadOnly);
396
401 SLATE_API void SetError( const FText& InError );
402 SLATE_API void SetError( const FString& InError );
403
404 // SWidget overrides
405 SLATE_API virtual bool SupportsKeyboardFocus() const override;
406 SLATE_API virtual bool HasKeyboardFocus() const override;
408 SLATE_API virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override;
409
410
412 SLATE_API bool AnyTextSelected() const;
413
415 SLATE_API void SelectAllText();
416
418 SLATE_API void ClearSelection();
419
421 SLATE_API FText GetSelectedText() const;
422
424 SLATE_API void InsertTextAtCursor(const FText& InText);
425 SLATE_API void InsertTextAtCursor(const FString& InString);
426
428 SLATE_API void InsertRunAtCursor(TSharedRef<IRun> InRun);
429
431 SLATE_API void GoTo(const FTextLocation& NewLocation);
432
434 void GoTo(const ETextLocation NewLocation)
435 {
437 }
438
440 SLATE_API void ScrollTo(const FTextLocation& NewLocation);
441
443 void ScrollTo(const ETextLocation NewLocation)
444 {
445 EditableText->ScrollTo(NewLocation);
446 }
447
449 SLATE_API void ApplyToSelection(const FRunInfo& InRunInfo, const FTextBlockStyle& InStyle);
450
452 SLATE_API void BeginSearch(const FText& InSearchText, const ESearchCase::Type InSearchCase = ESearchCase::IgnoreCase, const bool InReverse = false);
453
455 SLATE_API void AdvanceSearch(const bool InReverse = false);
456
458 SLATE_API TSharedPtr<const IRun> GetRunUnderCursor() const;
459
461 SLATE_API TArray<TSharedRef<const IRun>> GetSelectedRuns() const;
462
464 SLATE_API FTextLocation GetCursorLocation() const;
465
468
471
473 SLATE_API void Refresh();
474
480 SLATE_API void SetOnKeyCharHandler(FOnKeyChar InOnKeyCharHandler);
481
487 SLATE_API void SetOnKeyDownHandler(FOnKeyDown InOnKeyDownHandler);
488
489
493 SLATE_API void ForceScroll(int32 UserIndex, float ScrollAxisMagnitude);
494
495protected:
497 SLATE_API void OnEditableTextChanged(const FText& InText);
498
500 SLATE_API void OnEditableTextCommitted(const FText& InText, ETextCommit::Type InCommitType);
501
502protected:
503
506
508 TAttribute<FMargin> PaddingOverride;
509
512
515
517 TAttribute<FSlateFontInfo> FontOverride;
518
520 TAttribute<FSlateColor> ForegroundColorOverride;
521
523 TAttribute<FSlateColor> BackgroundColorOverride;
524
526 TAttribute<FSlateColor> ReadOnlyForegroundColorOverride;
527
529 TAttribute<FSlateColor> FocusedForegroundColorOverride;
530
532 TAttribute<int32> MaximumLength;
533
535 TAttribute< bool > AllowContextMenu;
536
538 TAttribute<bool> bSelectWordOnMouseDoubleClick;
539
542
545
548
551
554
557
560
563
565 FOnTextChanged OnTextChanged;
566
568 FOnTextCommitted OnTextCommitted;
569
571 FOnVerifyTextChanged OnVerifyTextChanged;
572
573 const FEditableTextBoxStyle* Style;
574
575private:
576
577 SLATE_API FMargin DeterminePadding() const;
580 SLATE_API FSlateFontInfo DetermineFont() const;
581 SLATE_API FSlateColor DetermineBackgroundColor() const;
582 SLATE_API FSlateColor DetermineForegroundColor() const;
583
585 const FSlateBrush* BorderImageNormal;
587 const FSlateBrush* BorderImageHovered;
589 const FSlateBrush* BorderImageFocused;
591 const FSlateBrush* BorderImageReadOnly;
592
594 SLATE_API const FSlateBrush* GetBorderImage() const;
595
596};
597
598
599#endif //WITH_FANCY_TEXT
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_BEGIN_ARGS(InWidgetType)
Definition DeclarativeSyntaxSupport.h:63
#define SLATE_EVENT(DelegateName, EventName)
Definition DeclarativeSyntaxSupport.h:458
#define SLATE_STYLE_ARGUMENT_DEPRECATED(ArgType, ArgName, DeprecationVersion, DeprecationMessage)
Definition DeclarativeSyntaxSupport.h:293
#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
EVirtualKeyboardDismissAction
Definition ISlateEditableTextWidget.h:66
EVirtualKeyboardTrigger
Definition ISlateEditableTextWidget.h:57
ETextLocation
Definition ISlateEditableTextWidget.h:40
void Construct(const FArguments &InArgs)
ETextOverflowPolicy
Definition SlateTypes.h:79
ETextFlowDirection
Definition TextLayout.h:81
ETextWrappingPolicy
Definition TextLayout.h:67
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition CoreStyle.h:15
Definition Reply.h:24
Definition Text.h:385
Definition SErrorText.h:21
Definition ITextLayoutMarshaller.h:12
Definition SBorder.h:31
const FSlateBrush * GetBorderImage() const
Definition SBorder.h:159
Definition SBox.h:29
Definition SBoxPanel.h:171
Definition SScrollBar.h:29
virtual SLATECORE_API bool HasKeyboardFocus() const
Definition SWidget.cpp:959
virtual SLATECORE_API FReply OnKeyDown(const FGeometry &MyGeometry, const FKeyEvent &InKeyEvent)
Definition SWidget.cpp:412
virtual SLATECORE_API bool SupportsKeyboardFocus() const
Definition SWidget.cpp:954
virtual SLATECORE_API FReply OnFocusReceived(const FGeometry &MyGeometry, const FFocusEvent &InFocusEvent)
Definition SWidget.cpp:389
Definition Array.h:670
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition GenericApplication.h:30
Type
Definition CString.h:21
@ IgnoreCase
Definition CString.h:26
Type
Definition SlateEnums.h:291
Definition TextLayout.h:26
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
@ false
Definition radaudio_common.h:23
Definition SlateTypes.h:1019
Definition Events.h:51
Definition Geometry.h:40
Definition Events.h:431
Definition Margin.h:17
Definition IRun.h:14
Definition SlateBrush.h:239
Definition SlateColor.h:42
Definition SlateFontInfo.h:147
Definition SlateTypes.h:326
Definition TextLayout.h:100
Definition IVirtualKeyboardEntry.h:33
Definition Optional.h:131