WIP key&mouse support.

This commit is contained in:
bkaradzic 2013-01-17 23:22:38 -08:00
parent a2057d65aa
commit 91446e05a4
5 changed files with 178 additions and 146 deletions

View file

@ -12,6 +12,7 @@ namespace entry
{
enum Enum
{
None,
Left,
Middle,
Right,
@ -144,6 +145,7 @@ namespace entry
int32_t m_my;
MouseButton::Enum m_button;
bool m_down;
bool m_move;
};
struct SizeEvent : public Event

View file

@ -34,6 +34,18 @@ namespace entry
m_queue.push(ev);
}
void postMouseEvent(int32_t _mx, int32_t _my)
{
MouseEvent* ev = new MouseEvent;
ev->m_type = Event::Mouse;
ev->m_mx = _mx;
ev->m_my = _my;
ev->m_button = MouseButton::None;
ev->m_down = false;
ev->m_move = true;
m_queue.push(ev);
}
void postMouseEvent(int32_t _mx, int32_t _my, MouseButton::Enum _button, bool _down)
{
MouseEvent* ev = new MouseEvent;
@ -42,6 +54,7 @@ namespace entry
ev->m_my = _my;
ev->m_button = _button;
ev->m_down = _down;
ev->m_move = false;
m_queue.push(ev);
}

View file

@ -344,6 +344,14 @@ namespace entry
}
break;
case WM_MOUSEMOVE:
{
int32_t mx = GET_X_LPARAM(_lparam);
int32_t my = GET_Y_LPARAM(_lparam);
m_eventQueue.postMouseEvent(mx, my);
}
break;
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_LBUTTONDBLCLK:

View file

@ -23,6 +23,15 @@ inline bool processEvents(uint32_t& _width, uint32_t& _height, uint32_t& _debug)
case Event::Exit:
return true;
case Event::Mouse:
{
// const MouseEvent* mouse = static_cast<const MouseEvent*>(ev);
// if (mouse->m_move)
// {
// }
}
break;
case Event::Key:
{
const KeyEvent* key = static_cast<const KeyEvent*>(ev);