UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TokenizedMessage.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreTypes.h"
10#include "Misc/Attribute.h"
11#include "Misc/Guid.h"
13#include "UObject/NameTypes.h"
14#include "UObject/UnrealNames.h"
15
18{
20 enum Type : int
21 {
22 CriticalError UE_DEPRECATED(5.1, "CriticalError was removed because it can't trigger an assert at the callsite. Use 'checkf' instead.") = 0,
23 Error = 1,
26 Info = 4, // Should be last
27 };
28}
29
32
53
55class IMessageToken : public TSharedFromThis<IMessageToken>
56{
57public:
58
62 virtual ~IMessageToken() {}
63
69 virtual EMessageToken::Type GetType() const = 0;
70
76 virtual const FText& ToText() const
77 {
78 return CachedText;
79 }
80
90
101
102protected:
105
108};
109
111class FTokenizedMessage : public TSharedFromThis<FTokenizedMessage>
112{
113 // The private token allows only members or friends to call MakeShared.
114 struct FPrivateToken { explicit FPrivateToken() = default; };
115
116public:
117
126
132
138 CORE_API FText ToText() const;
139
147
155
162 template<typename... TArguments>
167
175
182
189
197
205
213
221
224
227
229 explicit FTokenizedMessage(FPrivateToken)
230 : Severity( EMessageSeverity::Info )
231 , Identifier(NAME_None)
232 {
233 }
234
235protected:
236
239
242
243private:
244
246 EMessageSeverity::Type Severity;
247
249 FName Identifier;
250};
251
254{
255 // The private token allows only members or friends to call MakeShared.
256 struct FPrivateToken { explicit FPrivateToken() = default; };
257
258public:
261
263 virtual EMessageToken::Type GetType() const override
264 {
265 return EMessageToken::Text;
266 }
270 FTextToken(FPrivateToken, const FText& InMessage, bool InIsSourceLinkOnLeft)
271 {
273 bIsSourceLinkOnLeft = InIsSourceLinkOnLeft;
274 }
275
277 {
278 return bIsSourceLinkOnLeft;
279 }
280
281private:
283 bool bIsSourceLinkOnLeft;
284};
285
288{
289 // The private token allows only members or friends to call MakeShared.
290 struct FPrivateToken { explicit FPrivateToken() = default; };
291
292public:
295
297 virtual EMessageToken::Type GetType() const override
298 {
300 }
301
302 virtual const FText& ToText() const
303 {
304 return Message.Get();
305 }
309 {
310 return Message;
311 }
312
315 : Message(InMessage)
316 {
317 CachedText = InMessage.Get();
318 }
319
320private:
322 TAttribute<FText> Message;
323};
324
327{
328 // The private token allows only members or friends to call MakeShared.
329 struct FPrivateToken { explicit FPrivateToken() = default; };
330
331public:
334
336 virtual EMessageToken::Type GetType() const override
337 {
339 }
343 const FName& GetImageName() const
344 {
345 return ImageName;
346 }
347
349 FImageToken(FPrivateToken, const FName& InImageName)
350 : ImageName(InImageName)
351 {
353 }
354
355private:
357 FName ImageName;
358};
359
362{
363 // The private token allows only members or friends to call MakeShared.
364 struct FPrivateToken { explicit FPrivateToken() = default; };
365
366public:
369
371 virtual EMessageToken::Type GetType() const override
372 {
374 }
379 {
380 return Severity;
381 }
382
389
390private:
392 EMessageSeverity::Type Severity;
393};
394
397{
398 // The private token allows only members or friends to call MakeShared.
399 struct FPrivateToken { explicit FPrivateToken() = default; };
400
401public:
403 CORE_API static TSharedRef<FURLToken> Create(const FString& InURL, const FText& InMessage = FText());
404
406 virtual EMessageToken::Type GetType() const override
407 {
408 return EMessageToken::URL;
409 }
413 const FString& GetURL() const
414 {
415 return URL;
416 }
417
419 inline FURLToken(FPrivateToken, const FString& InURL, const FText& InMessage)
421 {
422 }
423
424private:
426 FURLToken(const FString& InURL, const FText& InMessage);
427
433 static void VisitURL(const TSharedRef<IMessageToken>& Token, FString InURL);
434
436 FString URL;
437};
438
444{
445 // The private token allows only members or friends to call MakeShared.
446 struct FPrivateToken { explicit FPrivateToken() = default; };
447
448public:
451
453 virtual EMessageToken::Type GetType() const override
454 {
456 }
460 const FString& GetAssetName() const
461 {
462 return AssetName;
463 }
464
467 {
468 return GotoAsset;
469 }
470
472 inline FAssetNameToken(FPrivateToken, const FString& InAssetName, const FText& InMessage)
474 {
475 }
476
477private:
479 FAssetNameToken(const FString& InAssetName, const FText& InMessage);
480
486 static void FindAsset(const TSharedRef<IMessageToken>& Token, FString InAssetName);
487
489 FString AssetName;
490
492 CORE_API static FOnGotoAsset GotoAsset;
493};
494
499{
500 // The private token allows only members or friends to call MakeShared.
501 struct FPrivateToken { explicit FPrivateToken() = default; };
502
503public:
505 CORE_API static TSharedRef<FDocumentationToken> Create(const FString& InDocumentationLink, const FString& InPreviewExcerptLink = FString(), const FString& InPreviewExcerptName = FString());
506
508 virtual EMessageToken::Type GetType() const override
509 {
511 }
515 const FString& GetDocumentationLink() const
516 {
517 return DocumentationLink;
518 }
519
521 const FString& GetPreviewExcerptLink() const
522 {
523 return PreviewExcerptLink;
524 }
525
527 const FString& GetPreviewExcerptName() const
528 {
529 return PreviewExcerptName;
530 }
531
536
537protected:
539 FDocumentationToken(const FString& InDocumentationLink, const FString& InPreviewExcerptLink, const FString& InPreviewExcerptName);
540
541private:
543 FString DocumentationLink;
544
546 FString PreviewExcerptLink;
547
549 FString PreviewExcerptName;
550};
551
552
555
560 : public IMessageToken
561{
562 // The private token allows only members or friends to call MakeShared.
563 struct FPrivateToken { explicit FPrivateToken() = default; };
564
565public:
566
570
573 {
574 ActionDelegate.ExecuteIfBound();
575 bActionExecuted = true;
576 }
577
580 {
581 return ActionDescription;
582 }
583
585 bool CanExecuteAction() const
586 {
587 return ActionDelegate.IsBound() && (!bSingleUse || !bActionExecuted) && (!CanExecuteActionDelegate.IsBound() || CanExecuteActionDelegate.Execute());
588 }
589
591 bool IsValidAction() const
592 {
593 return ActionDelegate.IsBound();
594 }
595
596 // IMessageToken interface
597 virtual EMessageToken::Type GetType() const override
598 {
600 }
601
606
611
612protected:
613
616 : ActionDelegate(InAction)
617 , ActionDescription(InActionDescription)
618 , bSingleUse(bInSingleUse)
619 , bActionExecuted(false)
620 {
622 }
623
625 : ActionDelegate(InAction)
626 , CanExecuteActionDelegate(InCanExecuteAction)
627 , ActionDescription(InActionDescription)
628 , bSingleUse(bInSingleUse)
629 , bActionExecuted(false)
630 {
632 }
633
634private:
635
637 FOnActionTokenExecuted ActionDelegate;
638
640 FCanExecuteActionToken CanExecuteActionDelegate;
641
643 const FText ActionDescription;
644
646 bool bSingleUse;
647
649 bool bActionExecuted;
650};
651
652
654 : public IMessageToken
655{
656 // The private token allows only members or friends to call MakeShared.
657 struct FPrivateToken { explicit FPrivateToken() = default; };
658
659public:
660
662 CORE_API static TSharedRef<FTutorialToken> Create(const FString& TutorialAssetName);
663
664public:
665
666 // IMessageToken interface
667
668 virtual EMessageToken::Type GetType() const override
669 {
671 }
672
674 const FString& GetTutorialAssetName() const
675 {
676 return TutorialAssetName;
677 }
678
679 FTutorialToken(FPrivateToken, const FString& InTutorialAssetName)
681 {
682 }
683
684protected:
687 : TutorialAssetName(InTutorialAssetName)
688 { }
689
690private:
691
693 FString TutorialAssetName;
694};
695
700{
701 // The private token allows only members or friends to call MakeShared.
702 struct FPrivateToken { explicit FPrivateToken() = default; };
703
704public:
706 CORE_API static TSharedRef<FActorToken> Create(const FString& InActorPath, const FGuid& InActorGuid, const FText& InMessage = FText());
707
709 virtual EMessageToken::Type GetType() const override
710 {
712 }
713
714 virtual const FOnMessageTokenActivated& GetOnMessageTokenActivated() const override;
718 const FString& GetActorPath() const
719 {
720 return ActorPath;
721 }
722
724 const FGuid& GetActorGuid() const
725 {
726 return ActorGuid;
727 }
728
731 {
732 return DefaultMessageTokenActivated;
733 }
734
736 inline FActorToken(FPrivateToken, const FString& InActorPath, const FGuid& InActorGuid, const FText& InMessage)
738 {
739 }
740
741private:
743 FActorToken(const FString& InActorPath, const FGuid& InActorGuid, const FText& InMessage);
744
746 FString ActorPath;
747
749 FGuid ActorGuid;
750
752 CORE_API static FOnMessageTokenActivated DefaultMessageTokenActivated;
753};
754
756{
757struct IFixer;
758}
759
761{
762 bool bIsSuccess = true;
764
766 {
767 return {true, Message};
768 }
769
771 {
772 return {true, FText::GetEmpty()};
773 }
774
776 {
777 return {false, Message};
778 }
779
780 // NOTE: No overload for Failure that accepts no message, because in case of an error you
781 // should *always* let the user know what went wrong.
782};
783
785{
789 Applied,
792};
793
796{
797 // The private token allows only members or friends to call MakeShared.
798 struct FPrivateToken { explicit FPrivateToken() = default; };
799
800public:
803
804 virtual EMessageToken::Type GetType() const override
805 {
806 return EMessageToken::Fix;
807 }
808
810 int32 GetFixIndex() const { return FixIndex; }
816
817 FFixToken(FPrivateToken, const FText& InName, TSharedPtr<UE::DataValidation::IFixer> Fixer, int32 FixIndex)
818 : FFixToken(InName, MoveTemp(Fixer), FixIndex)
819 {}
820
821private:
823
825 int32 FixIndex = INDEX_NONE;
826};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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 DECLARE_DELEGATE_RetVal(ReturnValueType, DelegateName)
Definition DelegateCombinations.h:41
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
EFixApplicability
Definition TokenizedMessage.h:785
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
Definition TokenizedMessage.h:561
const FText & GetActionDescription()
Definition TokenizedMessage.h:579
FActionToken(FPrivateToken, const FText &InActionName, const FText &InActionDescription, const FOnActionTokenExecuted &InAction, bool bInSingleUse)
Definition TokenizedMessage.h:602
FActionToken(FPrivateToken, const FText &InActionName, const FText &InActionDescription, const FOnActionTokenExecuted &InAction, const FCanExecuteActionToken &InCanExecuteAction, bool bInSingleUse)
Definition TokenizedMessage.h:607
bool CanExecuteAction() const
Definition TokenizedMessage.h:585
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:597
bool IsValidAction() const
Definition TokenizedMessage.h:591
FActionToken(const FText &InActionName, const FText &InActionDescription, const FOnActionTokenExecuted &InAction, bool bInSingleUse)
Definition TokenizedMessage.h:615
void ExecuteAction()
Definition TokenizedMessage.h:572
FActionToken(const FText &InActionName, const FText &InActionDescription, const FOnActionTokenExecuted &InAction, const FCanExecuteActionToken &InCanExecuteAction, bool bInSingleUse)
Definition TokenizedMessage.h:624
Definition TokenizedMessage.h:700
const FGuid & GetActorGuid() const
Definition TokenizedMessage.h:724
static FOnMessageTokenActivated & DefaultOnMessageTokenActivated()
Definition TokenizedMessage.h:730
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:709
virtual const FOnMessageTokenActivated & GetOnMessageTokenActivated() const override
Definition TokenizedMessage.cpp:297
FActorToken(FPrivateToken, const FString &InActorPath, const FGuid &InActorGuid, const FText &InMessage)
Definition TokenizedMessage.h:736
const FString & GetActorPath() const
Definition TokenizedMessage.h:718
Definition TokenizedMessage.h:444
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:453
const FString & GetAssetName() const
Definition TokenizedMessage.h:460
static FOnGotoAsset & OnGotoAsset()
Definition TokenizedMessage.h:466
FAssetNameToken(FPrivateToken, const FString &InAssetName, const FText &InMessage)
Definition TokenizedMessage.h:472
DECLARE_DELEGATE_OneParam(FOnGotoAsset, const FString &)
Definition TokenizedMessage.h:499
FDocumentationToken(FPrivateToken, const FString &InDocumentationLink, const FString &InPreviewExcerptLink, const FString &InPreviewExcerptName)
Definition TokenizedMessage.h:532
const FString & GetPreviewExcerptLink() const
Definition TokenizedMessage.h:521
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:508
const FString & GetPreviewExcerptName() const
Definition TokenizedMessage.h:527
const FString & GetDocumentationLink() const
Definition TokenizedMessage.h:515
Definition TokenizedMessage.h:288
const TAttribute< FText > & GetTextAttribute() const
Definition TokenizedMessage.h:308
virtual const FText & ToText() const
Definition TokenizedMessage.h:302
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:297
FDynamicTextToken(FPrivateToken, const TAttribute< FText > &InMessage)
Definition TokenizedMessage.h:314
Definition TokenizedMessage.h:796
FFixToken(FPrivateToken, const FText &InName, TSharedPtr< UE::DataValidation::IFixer > Fixer, int32 FixIndex)
Definition TokenizedMessage.h:817
int32 GetFixIndex() const
Definition TokenizedMessage.h:810
void SetFix(TSharedRef< UE::DataValidation::IFixer > InFixer, int32 InFixIndex)
Definition TokenizedMessage.h:811
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:804
TSharedRef< UE::DataValidation::IFixer > GetFixer() const
Definition TokenizedMessage.h:809
Definition TokenizedMessage.h:327
const FName & GetImageName() const
Definition TokenizedMessage.h:343
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:336
FImageToken(FPrivateToken, const FName &InImageName)
Definition TokenizedMessage.h:349
Definition NameTypes.h:617
Definition TokenizedMessage.h:362
EMessageSeverity::Type GetSeverity() const
Definition TokenizedMessage.h:378
FSeverityToken(FPrivateToken, EMessageSeverity::Type InSeverity)
Definition TokenizedMessage.h:384
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:371
Definition Text.h:278
Definition TokenizedMessage.h:254
bool IsSourceLinkOnLeft() const
Definition TokenizedMessage.h:276
FTextToken(FPrivateToken, const FText &InMessage, bool InIsSourceLinkOnLeft)
Definition TokenizedMessage.h:270
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:263
Definition Text.h:385
static FText FormatOrdered(FTextFormat Fmt, TArguments &&... Args)
Definition Text.h:1135
static CORE_API FText FromName(const FName &Val)
Definition Text.cpp:1076
static CORE_API const FText & GetEmpty()
Definition Text.cpp:252
Definition TokenizedMessage.h:112
TArray< TSharedRef< IMessageToken > > MessageTokens
Definition TokenizedMessage.h:238
CORE_API void SetMessageLink(const TSharedRef< IMessageToken > &InToken)
Definition TokenizedMessage.cpp:134
CORE_API TSharedRef< FTokenizedMessage > Clone() const
Definition TokenizedMessage.cpp:25
FTokenizedMessage(FPrivateToken)
Definition TokenizedMessage.h:229
TSharedRef< FTokenizedMessage > AddText(FTextFormat InTextFormat, TArguments &&... InArgs)
Definition TokenizedMessage.h:163
CORE_API const TArray< TSharedRef< IMessageToken > > & GetMessageTokens() const
Definition TokenizedMessage.cpp:160
CORE_API void SetSeverity(const EMessageSeverity::Type InSeverity)
Definition TokenizedMessage.cpp:139
CORE_API EMessageSeverity::Type GetSeverity() const
Definition TokenizedMessage.cpp:155
CORE_API FName GetIdentifier() const
Definition TokenizedMessage.cpp:111
CORE_API TSharedRef< FTokenizedMessage > AddText(const FText &InText)
Definition TokenizedMessage.cpp:127
TSharedPtr< IMessageToken > MessageLink
Definition TokenizedMessage.h:241
static CORE_API FName GetSeverityIconName(EMessageSeverity::Type InSeverity)
Definition TokenizedMessage.cpp:87
CORE_API void SetIdentifier(FName InIdentifier)
Definition TokenizedMessage.cpp:116
CORE_API TSharedRef< FTokenizedMessage > AddToken(const TSharedRef< IMessageToken > &InToken)
Definition TokenizedMessage.cpp:121
CORE_API TSharedPtr< IMessageToken > GetMessageLink() const
Definition TokenizedMessage.cpp:165
static CORE_API FText GetSeverityText(EMessageSeverity::Type InSeverity)
Definition TokenizedMessage.cpp:70
CORE_API FText ToText() const
Definition TokenizedMessage.cpp:32
Definition TokenizedMessage.h:655
FTutorialToken(FPrivateToken, const FString &InTutorialAssetName)
Definition TokenizedMessage.h:679
const FString & GetTutorialAssetName() const
Definition TokenizedMessage.h:674
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:668
FTutorialToken(const FString &InTutorialAssetName)
Definition TokenizedMessage.h:686
Definition TokenizedMessage.h:397
FURLToken(FPrivateToken, const FString &InURL, const FText &InMessage)
Definition TokenizedMessage.h:419
const FString & GetURL() const
Definition TokenizedMessage.h:413
virtual EMessageToken::Type GetType() const override
Definition TokenizedMessage.h:406
Definition TokenizedMessage.h:56
virtual EMessageToken::Type GetType() const =0
virtual ~IMessageToken()
Definition TokenizedMessage.h:62
virtual const FText & ToText() const
Definition TokenizedMessage.h:76
virtual const FOnMessageTokenActivated & GetOnMessageTokenActivated() const
Definition TokenizedMessage.h:86
FText CachedText
Definition TokenizedMessage.h:107
virtual TSharedRef< IMessageToken > OnMessageTokenActivated(FOnMessageTokenActivated InMessageTokenActivated)
Definition TokenizedMessage.h:96
FOnMessageTokenActivated MessageTokenActivated
Definition TokenizedMessage.h:104
Definition Array.h:670
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
Definition SharedPointer.h:1640
TSharedRef< IMessageToken, Mode > AsShared()
Definition SharedPointer.h:1650
Definition SharedPointer.h:692
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
Definition SharedPointer.h:153
Definition TokenizedMessage.h:18
Type
Definition TokenizedMessage.h:21
@ PerformanceWarning
Definition TokenizedMessage.h:24
@ Error
Definition TokenizedMessage.h:23
@ Warning
Definition TokenizedMessage.h:25
@ UE_DEPRECATED
Definition TokenizedMessage.h:22
@ Info
Definition TokenizedMessage.h:26
Definition TokenizedMessage.h:34
Type
Definition TokenizedMessage.h:36
@ Fix
Definition TokenizedMessage.h:50
@ DynamicText
Definition TokenizedMessage.h:49
@ URL
Definition TokenizedMessage.h:47
@ EdGraph
Definition TokenizedMessage.h:48
@ Action
Definition TokenizedMessage.h:37
@ AssetData
Definition TokenizedMessage.h:40
@ Severity
Definition TokenizedMessage.h:44
@ Object
Definition TokenizedMessage.h:43
@ Image
Definition TokenizedMessage.h:42
@ AssetName
Definition TokenizedMessage.h:39
@ Text
Definition TokenizedMessage.h:45
@ Actor
Definition TokenizedMessage.h:38
@ Tutorial
Definition TokenizedMessage.h:46
@ Documentation
Definition TokenizedMessage.h:41
Definition TokenizedMessage.h:756
@ false
Definition radaudio_common.h:23
Definition TokenizedMessage.h:761
static FFixResult Success()
Definition TokenizedMessage.h:770
static FFixResult Failure(const FText &Message)
Definition TokenizedMessage.h:775
bool bIsSuccess
Definition TokenizedMessage.h:762
FText Message
Definition TokenizedMessage.h:763
static FFixResult Success(const FText &Message)
Definition TokenizedMessage.h:765
Definition Guid.h:109
Definition Fixer.h:21