From 32e7c37fdf831de5b3c7f2acbbadd697989f0fab Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 10 May 2021 20:00:43 +0800 Subject: ... --- include/cru/ui/render/ScrollBar.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'include/cru') diff --git a/include/cru/ui/render/ScrollBar.hpp b/include/cru/ui/render/ScrollBar.hpp index 8f18c821..a271ae71 100644 --- a/include/cru/ui/render/ScrollBar.hpp +++ b/include/cru/ui/render/ScrollBar.hpp @@ -104,6 +104,9 @@ class ScrollBar : public Object { virtual float CalculateNewScrollPosition(const Rect& thumb_original_rect, const Point& mouse_offset) = 0; + virtual bool CanScrollUp() = 0; + virtual bool CanScrollDown() = 0; + private: void SetCursor(); void RestoreCursor(); @@ -113,6 +116,8 @@ class ScrollBar : public Object { void OnMouseLeave(); + ScrollBarBrushStateKind GetState(ScrollBarAreaKind area); + protected: gsl::not_null render_object_; @@ -135,6 +140,9 @@ class ScrollBar : public Object { Rect move_thumb_thumb_original_rect_; std::optional move_thumb_start_; + std::optional mouse_hover_; + std::optional mouse_press_; + EventRevokerListGuard event_guard_; Event scroll_attempt_event_; @@ -172,6 +180,9 @@ class HorizontalScrollBar : public ScrollBar { float CalculateNewScrollPosition(const Rect& thumb_original_rect, const Point& mouse_offset) override; + + bool CanScrollUp() override; + bool CanScrollDown() override; }; class VerticalScrollBar : public ScrollBar { @@ -201,6 +212,9 @@ class VerticalScrollBar : public ScrollBar { float CalculateNewScrollPosition(const Rect& thumb_original_rect, const Point& mouse_offset) override; + + bool CanScrollUp() override; + bool CanScrollDown() override; }; // A delegate to draw scrollbar and register related events. -- cgit v1.2.3