]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/mouse.cpp
Include the matching header first in .cpp files
[libs/gui.git] / source / input / mouse.cpp
index 6a3151adf812ba2a75631d87d6f884d0ad8f31a3..e379576363a3d29bff734fcf341036334e89c035 100644 (file)
@@ -1,38 +1,38 @@
-#include <msp/strings/formatter.h>
 #include "mouse.h"
+#include <msp/graphics/window.h>
+#include "keys.h"
 
 namespace Msp {
 namespace Input {
 
-Mouse::Mouse(Graphics::EventSource &s):
-       source(s)
+Mouse::Mouse(Graphics::Window &w):
+       Device(MOUSE),
+       window(w)
 {
-       name="Mouse";
+       name = "Mouse";
 
        buttons.resize(3);
        axes.resize(2);
 
-       source.signal_button_press.connect(sigc::mem_fun(this, &Mouse::button_press));
-       source.signal_button_release.connect(sigc::mem_fun(this, &Mouse::button_release));
-       source.signal_pointer_motion.connect(sigc::mem_fun(this, &Mouse::pointer_motion));
+       window.signal_input_event.connect(sigc::mem_fun(this, &Mouse::input_event));
 }
 
 std::string Mouse::get_button_name(unsigned btn) const
 {
        switch(btn)
        {
-       case 1:
+       case MOUSE_LEFT:
                return "Left";
-       case 2:
+       case MOUSE_MIDDLE:
                return "Middle";
-       case 3:
+       case MOUSE_RIGHT:
                return "Right";
-       case 4:
+       case MOUSE_WHEEL_UP:
                return "Wheel Up";
-       case 5:
+       case MOUSE_WHEEL_DOWN:
                return "Wheel Down";
        default:
-               return format("Button %d", btn);
+               return Device::get_button_name(btn);
        }
 }
 
@@ -40,30 +40,14 @@ std::string Mouse::get_axis_name(unsigned axis) const
 {
        switch(axis)
        {
-       case 0:
+       case MOUSE_X_AXIS:
                return "X axis";
-       case 1:
+       case MOUSE_Y_AXIS:
                return "Y axis";
        default:
-               return format("Axis %d", axis);
+               return Device::get_axis_name(axis);
        };
 }
 
-void Mouse::button_press(int, int, unsigned btn, unsigned)
-{
-       set_button_state(btn, true, true);
-}
-
-void Mouse::button_release(int, int, unsigned btn, unsigned)
-{
-       set_button_state(btn, false, true);
-}
-
-void Mouse::pointer_motion(int x, int y)
-{
-       set_axis_value(0, x*2.0f/source.get_width()-1.0f, true);
-       set_axis_value(1, 1.0f-y*2.0f/source.get_height(), true);
-}
-
 } // namespace Input
 } // namespace Msp