37 UFUNCTION(BlueprintCallable, Category =
"Stream Chat")
38 void Setup(
const FAttachment& InAttachment, EMessageSide InSide);
42 UPROPERTY(meta = (BindWidgetOptional))
43 UPanelWidget* ContentPanel;
46 UPROPERTY(EditDefaultsOnly, Category = Defaults, meta = (ClampMin = "0.1", ClampMax = "1.0"))
47 float ImageWidthFraction = 0.66f;
50 UPROPERTY(EditDefaultsOnly, Category = Defaults)
51 float MaxImageWidth = 320.f;
54 UPROPERTY(EditDefaultsOnly, Category = Defaults, meta = (ClampMin = "1.0"))
55 float MaxImageAspect = 2.f;
63 UPROPERTY(EditDefaultsOnly, Category = Defaults)
64 bool bRequestResizedImages = true;
66 UPROPERTY(EditDefaultsOnly, Category = Defaults)
67 FMargin FileRowPadding = FMargin{12.f, 8.f};
71 UPROPERTY(EditDefaultsOnly, Category = Defaults)
72 int32 TitleFontSize = 14;
74 UPROPERTY(EditDefaultsOnly, Category = Defaults)
75 int32 SubtitleFontSize = 12;
77 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
80 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
81 EMessageSide Side = EMessageSide::You;
84 virtual void OnSetup()
override;
85 virtual void NativePreConstruct()
override;
88 bool ShouldRenderInline()
const;
89 void FetchRemoteImage();
90 void OnImageDownloaded(UTexture2DDynamic* Texture);
93 float GetAvailableWidth()
const;
95 float GetImageBudgetWidth()
const;
102 FVector2D GetImageDisplaySize(int32 SourceWidth, int32 SourceHeight)
const;
104 float GetDpiScale()
const;
105 void ApplyImageSize(
const FVector2D& Size);
108 FString GetTitle()
const;
110 FString GetSubtitle()
const;
112 UPanelWidget* GetOrCreateContentPanel();
121 USizeBox* ImageSizer;
125 UTextBlock* TitleTextBlock;
127 UTextBlock* SubtitleTextBlock;
129 bool bImageLoaded =
false;