5#include "Channel/Message.h"
6#include "Common/SPaginateListWidget.h"
7#include "Components/NativeWidgetHost.h"
8#include "CoreMinimal.h"
9#include "MessagePosition.h"
10#include "MessageSide.h"
11#include "MessageWidget.h"
12#include "StreamWidget.h"
14#include "MessageListWidget.generated.h"
22class STREAMCHATUI_API UMessageListWidget final : public UStreamWidget
29 DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FPaginatingMessagesDelegate, EPaginationDirection, Direction, EHttpRequestState, RequestState);
31 UPROPERTY(BlueprintAssignable)
32 FPaginatingMessagesDelegate OnPaginatingMessages;
35 UPROPERTY(meta = (BindWidget))
36 UNativeWidgetHost* ListView;
39 UPROPERTY(EditAnywhere, Category = Pagination)
42 UPROPERTY(EditDefaultsOnly, Category = Defaults)
45 DECLARE_DYNAMIC_DELEGATE_RetVal_ThreeParams(
UMessageWidget*, FGetMessageWidget, const
FMessage&, Message, EMessageSide, Side, EMessagePosition, Position);
46 UPROPERTY(EditAnywhere, Category = Events)
47 FGetMessageWidget OnGetMessageWidgetEvent;
50 virtual
void NativePreConstruct() override;
51 virtual
void NativeConstruct() override;
52 virtual
void NativeDestruct() override;
53 virtual
void ReleaseSlateResources(
bool bReleaseChildren) override;
55 UWidget* CreateMessageWidget(const FMessageRef&);
56 void Paginate(const EPaginationDirection PaginationDirection, const TFunction<
void()> Callback);
59 void OnMessagesUpdated();
61 void ScrollToBottom(const
FMessage& Message);
63 EMessagePosition GetPosition(const
FMessage& Message) const;
65 TSharedPtr<SPaginateListWidget<FMessageRef>> PaginateListWidget;
Provide a reference to a UChatChannel to child widgets.
Definition: ChannelContextWidget.h:21
Represents a Stream Chat message.
Definition: Message.h:66