5#include "Components/RichTextBlock.h"
6#include "CoreMinimal.h"
7#include "Framework/Text/IRichTextMarkupParser.h"
8#include "HtmlElementStyle.h"
9#include "Styling/SlateStyle.h"
11#include "HtmlTextBlock.generated.h"
13class FHtmlSlateStyleSet final :
public FSlateStyleSet
16 explicit FHtmlSlateStyleSet(
const FName& InStyleSetName,
const FHtmlElementStyles& InStyles) : FSlateStyleSet{InStyleSetName}, Styles{InStyles}
20 virtual const FSlateWidgetStyle* GetWidgetStyleInternal(
21 const FName DesiredTypeName,
22 const FName StyleName,
23 const FSlateWidgetStyle* DefaultStyle,
24 bool bWarnIfNotFound)
const override;
27 FHtmlElementStyles Styles;
28 mutable TMap<FName, FTextBlockStyle> CombinedStyleCache;
35class STREAMCHATUI_API UHtmlTextBlock final : public URichTextBlock
40 UFUNCTION(BlueprintCallable, Category = "Widget")
41 void SetHtmlStyles(const FHtmlElementStyles& InStyles);
44 UPROPERTY(EditAnywhere, Category = Appearance)
45 FHtmlElementStyles Styles;
48 virtual
void CreateDecorators(TArray<TSharedRef<ITextDecorator>>& OutDecorators) override;
49 virtual TSharedPtr<IRichTextMarkupParser> CreateMarkupParser() override;
50 virtual
void UpdateStyleData() override;