diff --git a/include/Spectre/Input/InputEvent.h b/include/Spectre/Input/InputEvent.h index aef33bd..5bf5e6e 100644 --- a/include/Spectre/Input/InputEvent.h +++ b/include/Spectre/Input/InputEvent.h @@ -4,22 +4,10 @@ #include #include +#include namespace sp { -namespace MouseButton { - - enum Type { - Unknown, - Left, - Right, - Middle, - Button1, - Button2, - NUM_MBUTTONS, - }; -}; - namespace Key { enum Type { @@ -130,7 +118,7 @@ typedef struct InputEvent }; struct MouseButtonEvent { - MouseButton::Type button; + Mouse::Button button; bool pressed; /* true if pressed, false if released. */ std::string getName() const; diff --git a/include/Spectre/Input/Mouse.h b/include/Spectre/Input/Mouse.h index 4268536..a560426 100644 --- a/include/Spectre/Input/Mouse.h +++ b/include/Spectre/Input/Mouse.h @@ -4,13 +4,23 @@ #include #include -#include "InputEvent.h" #include "InputDevice.h" namespace sp { class Mouse : public InputDevice { +public : + enum Button { + Unknown, + Left, + Right, + Middle, + Button1, + Button2, + NUM_MBUTTONS + }; + public : virtual ~Mouse(); @@ -19,11 +29,11 @@ public : //virtual Vector2i getPositionAbs() const = 0; - virtual bool isButtonDown(MouseButton::Type button) const = 0; + virtual bool isButtonDown(Button button) const = 0; - static std::string getButtonName(MouseButton::Type button); + static std::string getButtonName(Button button); }; -} // namespace sp +}; // namespace sp #endif /* SPECTRE_INPUT_MOUSE_H */ diff --git a/source/Input/Mouse.cpp b/source/Input/Mouse.cpp index 45edde6..3b58f0e 100644 --- a/source/Input/Mouse.cpp +++ b/source/Input/Mouse.cpp @@ -7,15 +7,15 @@ Mouse::~Mouse() { } -std::string Mouse::getButtonName(MouseButton::Type button) +std::string Mouse::getButtonName(Button button) { switch(button) { - case MouseButton::Button1 : return "Button1"; - case MouseButton::Button2 : return "Button2"; - case MouseButton::Left : return "Left"; - case MouseButton::Right : return "Right"; - case MouseButton::Middle : return "Middle"; - case MouseButton::Unknown : + case Button::Button1 : return "Button1"; + case Button::Button2 : return "Button2"; + case Button::Left : return "Left"; + case Button::Right : return "Right"; + case Button::Middle : return "Middle"; + case Button::Unknown : default: return "Unknown"; } diff --git a/source/Platform/Win32/Win32Mouse.cpp b/source/Platform/Win32/Win32Mouse.cpp index 3675486..d1aba97 100644 --- a/source/Platform/Win32/Win32Mouse.cpp +++ b/source/Platform/Win32/Win32Mouse.cpp @@ -29,7 +29,7 @@ static RECT GetClientArea(HWND hwnd) { void Win32Mouse::init() { - memset(m_state, 0, MouseButton::NUM_MBUTTONS); + memset(m_state, 0, Mouse::Button::NUM_MBUTTONS); m_tracked = false; } @@ -38,7 +38,7 @@ Vector2f Win32Mouse::getPosition() const return m_position; } -bool Win32Mouse::isButtonDown(MouseButton::Type button) const +bool Win32Mouse::isButtonDown(Mouse::Button button) const { return m_state[button]; } @@ -53,26 +53,26 @@ void Win32Mouse::update(InputModule *input) if (msg.message == WM_LBUTTONDOWN || msg.message == WM_LBUTTONUP) { InputEvent event(InputEvent::MouseButton); - event.mouseButton.button = MouseButton::Left; + event.mouseButton.button = Mouse::Button::Left; event.mouseButton.pressed = msg.message == WM_LBUTTONDOWN; - m_state[MouseButton::Left] = event.mouseButton.pressed; + m_state[Mouse::Button::Left] = event.mouseButton.pressed; input->postInputEvent(event); } else if (msg.message == WM_RBUTTONDOWN || msg.message == WM_RBUTTONUP) { InputEvent event(InputEvent::MouseButton); - event.mouseButton.button = MouseButton::Right; + event.mouseButton.button = Mouse::Button::Right; event.mouseButton.pressed = msg.message == WM_RBUTTONDOWN; - m_state[MouseButton::Right] = event.mouseButton.pressed; + m_state[Mouse::Button::Right] = event.mouseButton.pressed; input->postInputEvent(event); } else if (msg.message == WM_MBUTTONDOWN || msg.message == WM_MBUTTONUP) { InputEvent event(InputEvent::MouseButton); - event.mouseButton.button = MouseButton::Middle; + event.mouseButton.button = Mouse::Button::Middle; event.mouseButton.pressed = msg.message == WM_MBUTTONDOWN; - m_state[MouseButton::Middle] = event.mouseButton.pressed; + m_state[Mouse::Button::Middle] = event.mouseButton.pressed; input->postInputEvent(event); } else if (msg.message == WM_XBUTTONDOWN || msg.message == WM_XBUTTONUP) { @@ -80,10 +80,10 @@ void Win32Mouse::update(InputModule *input) int btn = GET_XBUTTON_WPARAM(msg.wParam); InputEvent event(InputEvent::MouseButton); - event.mouseButton.button = btn == XBUTTON1 ? MouseButton::Button1 : MouseButton::Button2; + event.mouseButton.button = btn == XBUTTON1 ? Mouse::Button::Button1 : Mouse::Button::Button2; event.mouseButton.pressed = msg.message == WM_XBUTTONDOWN; - m_state[MouseButton::Button1] = event.mouseButton.pressed; + m_state[Mouse::Button::Button1] = event.mouseButton.pressed; input->postInputEvent(event); } else if (msg.message == WM_MOUSEMOVE) { diff --git a/source/Platform/Win32/Win32Mouse.h b/source/Platform/Win32/Win32Mouse.h index 290103a..dfccf59 100644 --- a/source/Platform/Win32/Win32Mouse.h +++ b/source/Platform/Win32/Win32Mouse.h @@ -17,7 +17,7 @@ public : // Get mouse position virtual Vector2f getPosition() const; - virtual bool isButtonDown(MouseButton::Type button) const; + virtual bool isButtonDown(Mouse::Button button) const; static bool handleMessage(MSG message); @@ -28,7 +28,7 @@ protected : protected : Vector2f m_position; - bool m_state[MouseButton::NUM_MBUTTONS]; + bool m_state[Mouse::Button::NUM_MBUTTONS]; bool m_tracked; };