Stream Chat Unreal SDK
Loading...
Searching...
No Matches
ContextMenuWidget.h
1// Copyright 2026 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Channel/Message.h"
6#include "Components/VerticalBox.h"
7#include "ContextMenuAction.h"
8#include "ContextMenuButtonWidget.h"
9#include "CoreMinimal.h"
10#include "Message/MessageSide.h"
11#include "StreamWidget.h"
12
13#include "ContextMenuWidget.generated.h"
14
18UCLASS()
19class STREAMCHATUI_API UContextMenuWidget final : public UStreamWidget
20{
21 GENERATED_BODY()
22
23public:
24 UFUNCTION(BlueprintCallable, Category = "Stream Chat")
25 void Setup(const FMessage& InMessage, EMessageSide InSide);
26
34 UFUNCTION(BlueprintCallable, Category = "Stream Chat")
35 void SetHeaderContent(UWidget* Content);
36
37protected:
38 UPROPERTY(meta = (BindWidget))
39 UVerticalBox* ButtonsPanel;
40
41 UPROPERTY(EditAnywhere, Instanced, Category = Defaults, meta = (TitleProperty = Label))
42 TArray<UContextMenuAction*> Actions;
43
44 UPROPERTY(EditDefaultsOnly, NoClear, Category = Defaults)
45 TSubclassOf<UContextMenuButtonWidget> ContextMenuButtonWidgetClass = UContextMenuButtonWidget::StaticClass();
46
47 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
48 FMessage Message;
49
50 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Setup)
51 EMessageSide Side;
52
53private:
54 virtual void NativePreConstruct() override;
55 void AddButton(UContextMenuAction* Action, EContextMenuButtonPosition Position);
56
64 template <class TAction>
65 void AddMissingAction();
66
68 UPROPERTY(Transient)
69 UWidget* HeaderContent;
70};
Represents a Stream Chat message.
Definition Message.h:70