5#include "Blueprint/UserWidget.h"
6#include "Channel/ChatChannel.h"
7#include "Common/IconButton.h"
8#include "Components/Border.h"
9#include "Components/Button.h"
10#include "Components/Image.h"
11#include "Components/TextBlock.h"
12#include "CoreMinimal.h"
13#include "MessageInputWidget.h"
14#include "Types/SlateEnums.h"
16#include "MessageComposerWidget.generated.h"
22class STREAMCHATUI_API UMessageComposerWidget final : public UUserWidget
27 virtual
void NativeOnInitialized() override;
28 virtual
void NativeConstruct() override;
29 virtual
void NativeDestruct() override;
32 DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSendMessage, const FString&, MessageText);
33 UPROPERTY(BlueprintAssignable)
34 FOnSendMessage OnSendMessage;
36 UFUNCTION(BlueprintCallable, Category = "Stream Chat")
37 void EditMessage(const
FMessage& Message);
40 UPROPERTY(meta = (BindWidget))
41 UMessageInputWidget* MessageInput;
43 UPROPERTY(meta = (BindWidget))
46 UPROPERTY(meta = (BindWidget))
47 UButton* CancelEditingButton;
49 UPROPERTY(meta = (BindWidget))
50 UPanelWidget* CancelEditingHeaderPanel;
52 UPROPERTY(meta = (BindWidget))
53 UTextBlock* EditMessageTextBlock;
55 UPROPERTY(meta = (BindWidget))
56 UBorder* BackgroundBorder;
58 UPROPERTY(meta = (BindWidget))
59 UImage* TopBorderImage;
61 UPROPERTY(EditAnywhere, Category = "Icon")
62 UTexture2D* IconTextureSend;
64 UPROPERTY(EditAnywhere, Category = "Icon")
65 UTexture2D* IconTextureConfirm;
67 UPROPERTY(EditAnywhere, Category = "Icon")
68 FMargin IconPaddingSend;
70 UPROPERTY(EditAnywhere, Category = "Icon")
71 FMargin IconPaddingConfirm;
75 void OnInputTextChanged(const FText&
Text);
77 void OnInputTextCommit(const FText&
Text, ETextCommit::
Type CommitMethod);
79 void OnCancelEditingButtonClicked();
81 void OnSendButtonClicked();
84 void StopEditMessage();
88 void UpdateSendButtonAppearance(
bool bEnabled);
90 enum class ESendButtonIconAppearance
95 void UpdateEditMessageAppearance(ESendButtonIconAppearance Appearance);
97 TOptional<FMessage> EditedMessage;
@ Text
Text of the message.
@ Type
Type of the message.
Represents a Stream Chat message.
Definition: Message.h:66