Stream Chat Unreal SDK
Loading...
Searching...
No Matches
HtmlDecorators.h
1// Copyright 2022 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Framework/Text/ITextDecorator.h"
7
8class FHtmlDecorator : public ITextDecorator
9{
10public:
11 virtual bool Supports(const FTextRunParseResults& RunInfo, const FString& Text) const override;
12 virtual TSharedRef<ISlateRun> Create(
13 const TSharedRef<FTextLayout>& TextLayout,
14 const FTextRunParseResults& ParseResults,
15 const FString& ProcessedText,
16 const TSharedRef<FString>& InOutModelText,
17 const ISlateStyle* Style) override;
18
19protected:
20 virtual FName GetSupportedTag() const = 0;
21 virtual TSharedRef<ISlateRun> Create(
22 const FTextRunParseResults& ParseResults,
23 const FRunInfo& RunInfo,
24 const FTextRange& ModelRange,
25 const TSharedRef<FString>& InOutModelText,
26 const ISlateStyle* Style) = 0;
27
28 const TArray<FName>& GetTags(const FString& RunName) const;
29 mutable TMap<FString, TArray<FName>> ParsedTagsCache;
30};
31
32class FHyperlinkHtmlDecorator final : public FHtmlDecorator
33{
34protected:
35 virtual FName GetSupportedTag() const override;
36 virtual TSharedRef<ISlateRun> Create(
37 const FTextRunParseResults& ParseResults,
38 const FRunInfo& RunInfo,
39 const FTextRange& ModelRange,
40 const TSharedRef<FString>& InOutModelText,
41 const ISlateStyle* Style) override;
42};
43
44class FListItemHtmlDecorator final : public FHtmlDecorator
45{
46protected:
47 virtual FName GetSupportedTag() const override;
48 virtual TSharedRef<ISlateRun> Create(
49 const FTextRunParseResults& ParseResults,
50 const FRunInfo& RunInfo,
51 const FTextRange& ModelRange,
52 const TSharedRef<FString>& InOutModelText,
53 const ISlateStyle* Style) override;
54
55 int32 LastChar = INDEX_NONE;
56 uint32 Order = 0;
57};
58class FHorizontalRuleHtmlDecorator final : public FHtmlDecorator
59{
60protected:
61 virtual FName GetSupportedTag() const override;
62 virtual TSharedRef<ISlateRun> Create(
63 const FTextRunParseResults& ParseResults,
64 const FRunInfo& RunInfo,
65 const FTextRange& ModelRange,
66 const TSharedRef<FString>& InOutModelText,
67 const ISlateStyle* Style) override;
68};
@ Text
Text of the message.