Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/slider.cc')
-rw-r--r--src/ui/slider.cc66
1 files changed, 35 insertions, 31 deletions
diff --git a/src/ui/slider.cc b/src/ui/slider.cc
index 9166656..ee29f05 100644
--- a/src/ui/slider.cc
+++ b/src/ui/slider.cc
@@ -108,44 +108,48 @@ bool Slider::on_emit(Widget *sender, const Event event, void *data)
return false;
}
-bool Slider::on_keypress(const int key, const unsigned int modifier)
+bool Slider::on_mousewheel(const math::Vector2f & direction)
{
- switch (key) {
-
- case 512 + SDL_BUTTON_WHEELUP:
- if (slider_value < slider_maximum) {
- slider_value++;
- emit(EventSliderChanged, this);
- }
- return true;
- break;
-
- case 512 + SDL_BUTTON_WHEELDOWN:
- if (slider_value > slider_minimum) {
- slider_value--;
- emit(EventSliderChanged, this);
- }
- return true;
- break;
-
- case 512 + SDL_BUTTON_LEFT:
- if (slider_maximum > slider_minimum) {
- // TODO position hit test
- slider_dragging = true;
- }
- return true;
- break;
-
- default:
- break;
+ if (direction.y() > 0 )
+ {
+ if (slider_value < slider_maximum)
+ {
+ slider_value++;
+ emit(EventSliderChanged, this);
+ }
+ return true;
+ } else if (direction.y() < 0 )
+ {
+ if (slider_value > slider_minimum)
+ {
+ slider_value--;
+ emit(EventSliderChanged, this);
+ }
+ return true;
+ }
+
+ return false;
+}
+
+bool Slider::on_mousepress(const unsigned int button)
+{
+ if (button == SDL_BUTTON_LEFT)
+ {
+ if (slider_maximum > slider_minimum)
+ {
+ // TODO position hit test
+ slider_dragging = true;
+ }
+ return true;
}
return false;
}
-bool Slider::on_keyrelease(const int key, const unsigned int modifier)
+bool Slider::on_mouserelease(const unsigned int button)
{
- if (key == 512 + SDL_BUTTON_LEFT) {
+ if (button == SDL_BUTTON_LEFT)
+ {
slider_dragging = false;
return true;
}