mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibGUI: Allow setting smooth/coarse scrolling animation on ScrollBar
This commit is contained in:
parent
9ab3ab86cb
commit
91fff3f1ae
Notes:
sideshowbarker
2024-07-17 17:30:20 +09:00
Author: https://github.com/MacDue Commit: https://github.com/SerenityOS/serenity/commit/91fff3f1ae Pull-request: https://github.com/SerenityOS/serenity/pull/12953
@ -114,6 +114,11 @@ bool Scrollbar::has_scrubber() const
|
||||
return max() != min();
|
||||
}
|
||||
|
||||
void Scrollbar::set_scroll_animation(Animation scroll_animation)
|
||||
{
|
||||
m_scroll_animation = scroll_animation;
|
||||
}
|
||||
|
||||
void Scrollbar::set_value(int value, AllowCallback allow_callback)
|
||||
{
|
||||
m_target_value = value;
|
||||
@ -125,6 +130,9 @@ void Scrollbar::set_value(int value, AllowCallback allow_callback)
|
||||
|
||||
void Scrollbar::set_target_value(int new_target_value)
|
||||
{
|
||||
if (m_scroll_animation == Animation::CoarseScroll)
|
||||
return set_value(new_target_value);
|
||||
|
||||
new_target_value = clamp(new_target_value, min(), max());
|
||||
|
||||
// If we are already at or scrolling to the new target then don't touch anything
|
||||
|
@ -23,6 +23,13 @@ public:
|
||||
|
||||
bool has_scrubber() const;
|
||||
|
||||
enum class Animation {
|
||||
SmoothScroll,
|
||||
CoarseScroll
|
||||
};
|
||||
|
||||
void set_scroll_animation(Animation scroll_animation);
|
||||
|
||||
virtual void set_value(int, AllowCallback = AllowCallback::Yes) override;
|
||||
void set_target_value(int);
|
||||
|
||||
@ -79,6 +86,8 @@ private:
|
||||
|
||||
void update_animated_scroll();
|
||||
|
||||
Animation m_scroll_animation { Animation::SmoothScroll };
|
||||
|
||||
int m_target_value { 0 };
|
||||
int m_start_value { 0 };
|
||||
double m_animation_time_elapsed { 0 };
|
||||
|
Loading…
Reference in New Issue
Block a user