Stream Chat Unreal SDK
Loading...
Searching...
No Matches
MessageHoverMenuWidget.h
1// Copyright 2022 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Channel/Message.h"
6#include "Components/Button.h"
7#include "Components/GridPanel.h"
8#include "Components/MenuAnchor.h"
9#include "ContextMenu/ContextMenuWidget.h"
10#include "CoreMinimal.h"
11#include "Reaction/ReactionPickerWidget.h"
12#include "StreamWidget.h"
13
14#include "MessageHoverMenuWidget.generated.h"
15
21UCLASS()
22class STREAMCHATUI_API UMessageHoverMenuWidget final : public UStreamWidget
23{
24 GENERATED_BODY()
25
26public:
27 UFUNCTION(BlueprintCallable, Category = "Stream Chat")
28 void Setup(const FMessage& InMessage, EMessageSide InSide);
29
30protected:
31 UPROPERTY(meta = (BindWidget))
32 UButton* ReactionButton;
33
34 UPROPERTY(meta = (BindWidget))
35 UButton* OptionsButton;
36
37 UPROPERTY(meta = (BindWidget))
38 UMenuAnchor* ReactionMenuAnchor;
39
40 UPROPERTY(meta = (BindWidget))
41 UMenuAnchor* OptionsMenuAnchor;
42
43 UPROPERTY(EditDefaultsOnly, NoClear, Category = Defaults)
44 TSubclassOf<UReactionPickerWidget> ReactionPickerWidgetClass = UReactionPickerWidget::StaticClass();
45
46 UPROPERTY(EditDefaultsOnly, NoClear, Category = Defaults)
47 TSubclassOf<UContextMenuWidget> ContextMenuWidgetClass = UContextMenuWidget::StaticClass();
48
49 // TODO Just ID?
50 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
51 FMessage Message;
52
53 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
54 EMessageSide Side;
55
56private:
57 virtual void OnSetup() override;
58 virtual void NativeConstruct() override;
59 virtual void NativeDestruct() override;
60
61 UFUNCTION()
62 void OnOptionsButtonClicked();
63 UFUNCTION()
64 void OnReactionButtonClicked();
65 UFUNCTION()
66 UUserWidget* CreateOptionsMenu();
67 UFUNCTION()
68 UUserWidget* CreateReactionsMenu();
69
70#if WITH_EDITOR
71 static void ValidateChild(const FName& Parent, const FName& Child, const UWidgetTree& BlueprintWidgetTree, IWidgetCompilerLog& CompileLog);
72 virtual void ValidateCompiledWidgetTree(const UWidgetTree& BlueprintWidgetTree, IWidgetCompilerLog& CompileLog) const override;
73#endif
74};
Shown when mouse hovers over message.
Definition: MessageHoverMenuWidget.h:23
Represents a Stream Chat message.
Definition: Message.h:66