5#include "Components/RichTextBlock.h"
6#include "CoreMinimal.h"
7#include "Framework/Text/IRichTextMarkupParser.h"
8#include "HtmlElementStyle.h"
9#include "Launch/Resources/Version.h"
10#include "Styling/SlateStyle.h"
12#include "HtmlTextBlock.generated.h"
14class FHtmlSlateStyleSet final :
public FSlateStyleSet
17 explicit FHtmlSlateStyleSet(
const FName& InStyleSetName,
const FHtmlElementStyles& InStyles) : FSlateStyleSet{InStyleSetName}, Styles{InStyles}
21#if ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION <= 27
22 virtual const FSlateWidgetStyle* GetWidgetStyleInternal(
const FName DesiredTypeName,
const FName StyleName)
const override;
24 virtual const FSlateWidgetStyle* GetWidgetStyleInternal(
25 const FName DesiredTypeName,
26 const FName StyleName,
27 const FSlateWidgetStyle* DefaultStyle,
28 bool bWarnIfNotFound)
const override;
32 FHtmlElementStyles Styles;
33 mutable TMap<FName, FTextBlockStyle> CombinedStyleCache;
40class STREAMCHATUI_API UHtmlTextBlock final : public URichTextBlock
45 UFUNCTION(BlueprintCallable, Category = "Widget")
46 void SetHtmlStyles(const FHtmlElementStyles& InStyles);
49 UPROPERTY(EditAnywhere, Category = Appearance)
50 FHtmlElementStyles Styles;
53 virtual
void CreateDecorators(TArray<TSharedRef<ITextDecorator>>& OutDecorators) override;
54 virtual TSharedPtr<IRichTextMarkupParser> CreateMarkupParser() override;
55 virtual
void UpdateStyleData() override;