Skip to content

Commit c7f549b

Browse files
xTiborawesomekling
authored andcommitted
LibGUI: Add mouse wheel event and step property to Slider
1 parent 69bb0c0 commit c7f549b

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

Libraries/LibGUI/Slider.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,19 @@ void Slider::mouseup_event(MouseEvent& event)
167167
return Widget::mouseup_event(event);
168168
}
169169

170+
void Slider::mousewheel_event(MouseEvent& event)
171+
{
172+
if (!is_enabled())
173+
return;
174+
175+
if (orientation() == Orientation::Horizontal)
176+
set_value(value() - event.wheel_delta() * m_step);
177+
else
178+
set_value(value() + event.wheel_delta() * m_step);
179+
180+
Widget::mousewheel_event(event);
181+
}
182+
170183
void Slider::leave_event(Core::Event& event)
171184
{
172185
if (!is_enabled())

Libraries/LibGUI/Slider.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,14 @@ class Slider : public Widget {
4545
int value() const { return m_value; }
4646
int min() const { return m_min; }
4747
int max() const { return m_max; }
48+
int step() const { return m_step; }
4849

4950
void set_range(int min, int max);
5051
void set_value(int);
5152

5253
void set_min(int min) { set_range(min, max()); }
5354
void set_max(int max) { set_range(min(), max); }
55+
void set_step(int step) { m_step = step; }
5456

5557
void set_knob_size_mode(KnobSizeMode mode) { m_knob_size_mode = mode; }
5658
KnobSizeMode knob_size_mode() const { return m_knob_size_mode; }
@@ -79,6 +81,7 @@ class Slider : public Widget {
7981
virtual void mousedown_event(MouseEvent&) override;
8082
virtual void mousemove_event(MouseEvent&) override;
8183
virtual void mouseup_event(MouseEvent&) override;
84+
virtual void mousewheel_event(MouseEvent&) override;
8285
virtual void leave_event(Core::Event&) override;
8386
virtual void change_event(Event&) override;
8487

@@ -88,6 +91,7 @@ class Slider : public Widget {
8891
int m_value { 0 };
8992
int m_min { 0 };
9093
int m_max { 100 };
94+
int m_step { 1 };
9195
bool m_knob_hovered { false };
9296
bool m_dragging { false };
9397
int m_drag_origin_value { 0 };

0 commit comments

Comments
 (0)