Stream Chat Unreal SDK
Loading...
Searching...
No Matches
SelectedContactsWidget.h
1// Copyright 2022 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Common/IconButton.h"
6#include "Components/EditableText.h"
7#include "Components/WrapBox.h"
8#include "CoreMinimal.h"
9#include "SelectedContactWidget.h"
10#include "StreamWidget.h"
11
12#include "SelectedContactsWidget.generated.h"
13
17UCLASS()
18class STREAMCHATUI_API USelectedContactsWidget final : public UStreamWidget
19{
20 GENERATED_BODY()
21
22public:
23 UFUNCTION(BlueprintCallable, Category = "Stream|Selected Contacts")
24 void SetUsers(const TArray<FUserRef>& Users);
25
26 UFUNCTION(BlueprintCallable, Category = "Stream|Selected Contacts")
27 void AddUser(const FUserRef& User);
28 UFUNCTION(BlueprintCallable, Category = "Stream|Selected Contacts")
29 void RemoveUser(const FUserRef& User);
30 UFUNCTION(BlueprintPure, Category = "Stream|Selected Contacts")
31 const TArray<FUserRef>& GetUsers() const;
32 UFUNCTION(BlueprintCallable, Category = "Stream|Selected Contacts")
33 void SetGroupMode(bool bIsGroupMode);
34
35 DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSearchTextChanged, const FText&, Text);
36 UPROPERTY(BlueprintAssignable)
37 FSearchTextChanged OnSearchTextChanged;
38
39protected:
40 UPROPERTY(meta = (BindWidget))
41 UWrapBox* WrapBox;
42
43 UPROPERTY(meta = (BindWidget))
44 UBorder* Border;
45
46 UPROPERTY(meta = (BindWidget))
47 UTextBlock* TextBlock;
48
49 UPROPERTY(meta = (BindWidget))
50 UImage* Divider;
51
52 UPROPERTY(meta = (BindWidget))
53 UIconButton* AddUserButton;
54
55 UPROPERTY(meta = (BindWidget))
56 UEditableText* SearchText;
57
58 UPROPERTY(EditAnywhere, NoClear, Category = Defaults)
59 TSubclassOf<USelectedContactWidget> SelectedContactWidgetClass = USelectedContactWidget::StaticClass();
60
61 UPROPERTY(EditDefaultsOnly, Category = Defaults)
62 TArray<FUserRef> Contacts;
63
64private:
65 virtual void OnSetup() override;
66 virtual void NativePreConstruct() override;
67 virtual void NativeConstruct() override;
68 virtual void NativeDestruct() override;
69
70 UFUNCTION()
71 void OnAddUserClicked();
72 UFUNCTION()
73 void OnSearchTextCommit(const FText& Text, ETextCommit::Type Commit);
74
75 void PopulateWrapBox();
76 void SetTypingMode(bool bNewTypingMode);
77
78 bool bTypingMode = false;
79 FText LastSearchText;
80};
A button with an icon which can be disabled and themed.
Definition: IconButton.h:19
@ Text
Text of the message.
@ Type
Type of the message.
A reference to a unique User.
Definition: UserRef.h:23