]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/joystick.cpp
Test using wxString::ToCDouble() in wxAny.
[wxWidgets.git] / src / msw / joystick.cpp
index 78e023fd737eb9d6d350ce796dcfd7e38a52fea7..158c0b64b845e70ecc6a8f66f47d8b210a59ea5e 100644 (file)
@@ -86,6 +86,26 @@ wxPoint wxJoystick::GetPosition() const
         return wxPoint(0,0);
 }
 
+int wxJoystick::GetPosition(unsigned axis) const
+{
+    switch (axis) {
+    case 0:
+        return GetPosition().x;
+    case 1:
+        return GetPosition().y;
+    case 2:
+        return GetZPosition();
+    case 3:
+        return GetRudderPosition();
+    case 4:
+        return GetUPosition();
+    case 5:
+        return GetVPosition();
+    default:
+        return 0;
+    }
+}
+
 int wxJoystick::GetZPosition() const
 {
     JOYINFO joyInfo;
@@ -127,6 +147,14 @@ int wxJoystick::GetButtonState() const
         return 0;
 }
 
+bool wxJoystick::GetButtonState(unsigned id) const
+{
+    if (id > sizeof(int) * 8)
+        return false;
+
+    return (GetButtonState() & (1 << id)) != 0;
+}
+
 /**
     JLI 2002-08-20:
     Returns -1 to signify error.
@@ -613,9 +641,15 @@ bool wxJoystick::HasPOVCTS() const
 
 bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq)
 {
+#ifdef __WXMSW__
     BOOL changed = (pollingFreq == 0);
     MMRESULT res = joySetCapture((HWND) win->GetHWND(), m_joystick, pollingFreq, changed);
     return (res == JOYERR_NOERROR);
+#else
+    wxUnusedVar(win);
+    wxUnusedVar(pollingFreq);
+    return false;
+#endif
 }
 
 bool wxJoystick::ReleaseCapture()