5#include "Components/ScrollBox.h"
6#include "CoreMinimal.h"
7#include "StreamWidget.h"
9#include "PaginateScrollWidget.generated.h"
15class STREAMCHATUI_API UPaginateScrollWidget : public UStreamWidget
21 UPROPERTY(EditAnywhere, Category = Pagination)
24 DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FPaginatingMessagesDelegate, EPaginationDirection, Direction, EHttpRequestState, RequestState);
26 UPROPERTY(BlueprintAssignable)
27 FPaginatingMessagesDelegate OnPaginatingMessages;
30 virtual
void NativeConstruct() override;
31 virtual
void NativeDestruct() override;
34 virtual
void SetChildren(const TArray<UWidget*>&);
37 virtual
void Paginate(EPaginationDirection Directions, TFunction<
void()> Callback)
41 UPROPERTY(meta = (BindWidget))
42 UScrollBox* ScrollBox;
45 UPROPERTY(EditDefaultsOnly, Category = Defaults)
46 float PaginateScrollThreshold = 100.f;
49 UPROPERTY(EditDefaultsOnly, Category = Defaults)
50 EPaginationDirection PaginationDirection = EPaginationDirection::Bottom;
54 void OnUserScroll(
float CurrentOffset);
55 void SetPaginationRequestState(EHttpRequestState, EPaginationDirection);
56 EPaginationDirection GetDirections() const;
58 EPaginationDirection EndedPaginationDirections = EPaginationDirection::
None;
59 EHttpRequestState PaginationRequestState = EHttpRequestState::Ended;