aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/render
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-02-28 15:57:47 +0800
committercrupest <crupest@outlook.com>2021-02-28 15:57:47 +0800
commite19d42f2f89ad6670e6b9a226bcf7abc12003bb5 (patch)
tree45a1221d6254233de127506f1b85a00f0bf7e989 /include/cru/ui/render
parenta64ace1b09cb3c8594f510075ceffee17d8b7cfb (diff)
downloadcru-e19d42f2f89ad6670e6b9a226bcf7abc12003bb5.tar.gz
cru-e19d42f2f89ad6670e6b9a226bcf7abc12003bb5.tar.bz2
cru-e19d42f2f89ad6670e6b9a226bcf7abc12003bb5.zip
...
Diffstat (limited to 'include/cru/ui/render')
-rw-r--r--include/cru/ui/render/ScrollBar.hpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/cru/ui/render/ScrollBar.hpp b/include/cru/ui/render/ScrollBar.hpp
index e3dabb57..fc2910c4 100644
--- a/include/cru/ui/render/ScrollBar.hpp
+++ b/include/cru/ui/render/ScrollBar.hpp
@@ -4,6 +4,7 @@
#include "cru/common/Event.hpp"
#include "cru/platform/graphics/Base.hpp"
#include "cru/platform/graphics/Painter.hpp"
+#include "cru/platform/gui/Cursor.hpp"
#include "cru/platform/gui/UiApplication.hpp"
#include "cru/ui/Base.hpp"
#include "cru/ui/controls/Control.hpp"
@@ -40,7 +41,7 @@ class ScrollBar : public Object {
CRU_DELETE_COPY(ScrollBar)
CRU_DELETE_MOVE(ScrollBar)
- ~ScrollBar() override = default;
+ ~ScrollBar() override;
public:
Direction GetDirection() const { return direction_; }
@@ -89,6 +90,10 @@ class ScrollBar : public Object {
virtual float CalculateNewScrollPosition(const Rect& thumb_original_rect,
const Point& mouse_offset) = 0;
+ private:
+ void SetCursor();
+ void RestoreCursor();
+
protected:
gsl::not_null<ScrollRenderObject*> render_object_;
@@ -111,6 +116,8 @@ class ScrollBar : public Object {
EventRevokerListGuard event_guard_;
Event<Scroll> scroll_attempt_event_;
+
+ std::optional<std::shared_ptr<platform::gui::ICursor>> old_cursor_;
};
class HorizontalScrollBar : public ScrollBar {