wxMouseState wxGetMouseState()
{
wxMouseState ms;
- // TODO
+ int x, y;
+
+ wxGetMousePosition(&x, &y);
+
+ ms.SetX(x);
+ ms.SetY(y);
+
+ extern unsigned long g_buttonState;
+ ms.SetLeftDown(g_buttonState & EVT_LEFTBUT);
+ ms.SetMiddleDown(g_buttonState & EVT_MIDDLEBUT);
+ ms.SetRightDown(g_buttonState & EVT_RIGHTBUT);
+
+ ms.SetControlDown(EVT_isKeyDown(KB_leftCtrl) || EVT_isKeyDown(KB_rightCtrl));
+ ms.SetShiftDown(EVT_isKeyDown(KB_leftShift) || EVT_isKeyDown(KB_rightShift));
+ ms.SetAltDown(EVT_isKeyDown(KB_leftAlt));
+ ms.SetMetaDown(EVT_isKeyDown(KB_rightAlt));
+
return ms;
}
// the frame that is currently active (i.e. its child has focus). It is
// used to generate wxActivateEvents
static wxWindowMGL *gs_activeFrame = NULL;
+// track the mouse button state for wxGetMouseState()
+unsigned long g_buttonState = 0;
// ---------------------------------------------------------------------------
// constants
wxPoint orig(win->GetClientAreaOrigin());
wxPoint where;
+ g_buttonState = e->modifiers;
+
MGL_wmCoordGlobalToLocal(win->GetHandle(),
e->where_x, e->where_y, &where.x, &where.y);
{
dc->setColorRGB(255,0,255);
dc->fillRect(-1000,-1000,2000,2000);
- wxUsleep(50);
+ wxMilliSleep(50);
}
#endif