Stream Chat Unreal SDK
Loading...
Searching...
No Matches
AvatarWidget.h
1// Copyright 2022 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Components/GridPanel.h"
6#include "Components/Image.h"
7#include "Components/RetainerBox.h"
8#include "Components/SizeBox.h"
9#include "CoreMinimal.h"
10#include "ProfilePicWidget.h"
11#include "StreamWidget.h"
12#include "User/UserRef.h"
13
14#include "AvatarWidget.generated.h"
15
19UCLASS()
20class STREAMCHATUI_API UAvatarWidget : public UStreamWidget
21{
22 GENERATED_BODY()
23
24public:
25 UFUNCTION(BlueprintCallable, Category = "Stream Chat")
26 void Setup(const TArray<FUserRef>& InUsers, int32 InSize = -1);
27 UFUNCTION(BlueprintCallable, Category = "Stream Chat")
28 void SetupWithUrl(const FString& InImageUrl, int32 InSize = -1);
29
30protected:
31 UPROPERTY(meta = (BindWidget))
32 UGridPanel* Grid;
33
34 UPROPERTY(meta = (BindWidget))
35 USizeBox* SizeBox;
36
37 UPROPERTY(meta = (BindWidget))
38 URetainerBox* RetainerBox;
39
40 UPROPERTY(EditDefaultsOnly, NoClear, Category = Defaults)
41 TSubclassOf<UProfilePicWidget> ProfilePicWidgetClass = UProfilePicWidget::StaticClass();
42
43 UPROPERTY(EditDefaultsOnly, Category = Defaults)
44 UMaterialInterface* EffectMaterial;
45
46 UPROPERTY(EditDefaultsOnly, Category = Defaults)
47 FName OnlineStatusMaterialParameterName = TEXT("bOnline");
48
49 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
50 TArray<FUserRef> Users;
51 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
52 FString ImageUrl;
53
54 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
55 int32 Size = 40;
56
57private:
58 virtual void OnSetup() override;
59 virtual void NativeConstruct() override;
60 virtual void NativeDestruct() override;
61 void UpdateOnlineStatus(bool bOnline);
62 void CreateProfilePics();
63 UProfilePicWidget* CreateProfilePic(const FUserRef&);
64
65 UFUNCTION()
66 void OnUserUpdated();
67
68 UPROPERTY(Transient)
69 UMaterialInstanceDynamic* EffectMaterialDynamic;
70};
A reference to a unique User.
Definition: UserRef.h:23