include/Spectre/Input/InputEvent.h: Move MouseButton::Type to Mouse class.
This commit is contained in:
parent
b2ca926a00
commit
762d26f368
5 changed files with 35 additions and 37 deletions
|
|
@ -4,22 +4,10 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <Spectre/Input/Mouse.h>
|
||||
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,23 @@
|
|||
|
||||
#include <string>
|
||||
#include <Spectre/Math/Vector2.h>
|
||||
#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 */
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue