-#if defined(__WXMSW__) || defined(__WXMAC__)
-// Get the state of a key (true if pressed, false if not)
-// This is generally most useful getting the state of
-// Caps Lock, Num Lock and Scroll Lock...
-bool wxGetKeyState(wxKeyCode key);
-#endif
+
+//---------------------------------------------------------------------------
+
+DocStr(wxMouseState,
+"`wx.MouseState` is used to hold information about mouse button and
+modifier key states and is what is returned from `wx.GetMouseState`.",
+"");
+
+class wxMouseState
+{
+public:
+ wxMouseState();
+ ~wxMouseState();
+
+ wxCoord GetX();
+ wxCoord GetY();
+
+ bool LeftDown();
+ bool MiddleDown();
+ bool RightDown();
+
+ bool ControlDown();
+ bool ShiftDown();
+ bool AltDown();
+ bool MetaDown();
+ bool CmdDown();
+
+ void SetX(wxCoord x);
+ void SetY(wxCoord y);
+
+ void SetLeftDown(bool down);
+ void SetMiddleDown(bool down);
+ void SetRightDown(bool down);
+
+ void SetControlDown(bool down);
+ void SetShiftDown(bool down);
+ void SetAltDown(bool down);
+ void SetMetaDown(bool down);
+
+ %pythoncode {
+ x = property(GetX, SetX)
+ y = property(GetY, SetY)
+ leftDown = property(LeftDown, SetLeftDown)
+ middleDown = property(MiddleDown, SetMiddleDown)
+ rightDown = property(RightDown, SetRightDown)
+ controlDown = property(ControlDown, SetControlDown)
+ shiftDown = property(ShiftDown, SetShiftDown)
+ altDown = property(AltDown, SetAltDown)
+ metaDown = property(MetaDown, SetMetaDown)
+ cmdDown = property(CmdDown)
+ }
+};
+
+
+DocDeclStr(
+ wxMouseState , wxGetMouseState(),
+ "Returns the current state of the mouse. Returns an instance of a
+`wx.MouseState` object that contains the current position of the mouse
+pointer in screen coordinants, as well as boolean values indicating
+the up/down status of the mouse buttons and the modifier keys.", "");