Stream Chat Unreal SDK
Loading...
Searching...
No Matches
MessageHoverMenuWidget.h
1// Copyright 2026 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
37 TSubclassOf<UReactionPickerWidget> GetReactionPickerWidgetClass() const;
38 TSubclassOf<UContextMenuWidget> GetContextMenuWidgetClass() const;
40
41protected:
42 UPROPERTY(meta = (BindWidget))
43 UButton* ReactionButton;
44
45 UPROPERTY(meta = (BindWidget))
46 UButton* OptionsButton;
47
48 UPROPERTY(meta = (BindWidget))
49 UMenuAnchor* ReactionMenuAnchor;
50
51 UPROPERTY(meta = (BindWidget))
52 UMenuAnchor* OptionsMenuAnchor;
53
54 UPROPERTY(EditDefaultsOnly, NoClear, Category = Defaults)
55 TSubclassOf<UReactionPickerWidget> ReactionPickerWidgetClass = UReactionPickerWidget::StaticClass();
56
57 UPROPERTY(EditDefaultsOnly, NoClear, Category = Defaults)
58 TSubclassOf<UContextMenuWidget> ContextMenuWidgetClass = UContextMenuWidget::StaticClass();
59
60 // TODO Just ID?
61 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
62 FMessage Message;
63
64 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
65 EMessageSide Side;
66
67private:
68 virtual void OnSetup() override;
69 virtual void NativeConstruct() override;
70 virtual void NativeDestruct() override;
71
72 UFUNCTION()
73 void OnOptionsButtonClicked();
74 UFUNCTION()
75 void OnReactionButtonClicked();
76 UFUNCTION()
77 UUserWidget* CreateOptionsMenu();
78 UFUNCTION()
79 UUserWidget* CreateReactionsMenu();
80
81#if WITH_EDITOR
82 static void ValidateChild(const FName& Parent, const FName& Child, const UWidgetTree& BlueprintWidgetTree, IWidgetCompilerLog& CompileLog);
83 virtual void ValidateCompiledWidgetTree(const UWidgetTree& BlueprintWidgetTree, IWidgetCompilerLog& CompileLog) const override;
84#endif
85};
Shown when mouse hovers over message.
Definition MessageHoverMenuWidget.h:23
Represents a Stream Chat message.
Definition Message.h:70