|
ShishGL
1.0
A simple modular cross-platform graphics library
|
|
Go to the documentation of this file.
2 #ifndef SHISHGL_UI_SCROLLBAR_HPP
3 #define SHISHGL_UI_SCROLLBAR_HPP
45 EventSystem::sendEvent<MouseScrollEvent>(target<Window>(),
46 target<Window>()->getPos(), delta, type);
56 template <
typename Behavior>
60 template <
typename... Args>
62 double slider_size_ratio,
66 if (slider_size_ratio < 0.2) {
67 slider_size_ratio = 0.2;
68 }
else if (slider_size_ratio > 1.0) {
69 slider_size_ratio = 1.0;
74 up_button = attach<UIButton<ClickToScroll>>(
75 Frame{ {0, 0}, button_size },
80 Frame{ {0, frame.
size.
y - button_size.
y}, button_size },
84 double slide_len = frame.
size.
y - 2 * button_size.
y;
86 slider = attach<UIVerticalSlider<Behavior>>(
87 Frame{ {0, button_size.
y}, {frame.
size.
x, slide_len} },
88 slide_len * slider_size_ratio, std::forward<Args>(args)...
100 template <
typename Behavior>
104 template <
typename... Args>
106 double slider_size_ratio,
113 Frame{ {0, 0}, button_size },
118 Frame{ {frame.
size.
x - button_size.
x, 0}, button_size },
122 double slide_len = frame.
size.
x - 2 * button_size.
x;
124 slider = attach<UIHorizontalSlider<Behavior>>(
125 Frame{ {button_size.
x, 0}, {slide_len, frame.
size.
y} },
126 slide_len * slider_size_ratio, std::forward<Args>(args)...
140 #endif //SHISHGL_UI_SCROLLBAR_HPP
Definition: Slidable.hpp:11
T x
Definition: Vector2.hpp:10
ScrollType
Definition: Mouse.hpp:21
@ VERTICAL
Definition: Mouse.hpp:22
@ HORIZONTAL
Definition: Mouse.hpp:23
T y
Definition: Vector2.hpp:10
SomeWindow * target() const
Definition: Behavior.hpp:17
Definition: UIWindow.hpp:16
Definition: TimerEvent.hpp:11
Definition: CoreApplication.hpp:10
Definition: Clickable.hpp:26
uint8_t n_held
Definition: Clickable.hpp:45
Definition: UISlider.hpp:35
Definition: UISlider.hpp:13
Vector2< double > size
Definition: Frame.hpp:12
static void subscribe(Listener *receiver, Listener *sender, EventMask mask)
Definition: SubscriptionManager.cpp:18
void slide(const Vector2< double > &delta)
Definition: Slidable.hpp:77
Frame frame
Definition: Slidable.hpp:98