]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/joystick.cpp
don't keep dangling m_prevRadio pointer (2nd part of patch 1836644)
[wxWidgets.git] / src / msw / joystick.cpp
index 294447cb0a73b4f844bc8c75c385fdce588f2206..1b9f8b04cede331fa8819b936854cf4745c2daef 100644 (file)
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #if wxUSE_JOYSTICK
 
 #include "wx/joystick.h"
-#include "wx/string.h"
-#include "wx/window.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/string.h"
+    #include "wx/window.h"
+#endif
+
 #include "wx/msw/private.h"
 
 #if !defined(__GNUWIN32_OLD__) || defined(__CYGWIN10__)
@@ -32,7 +36,6 @@
 #define NO_JOYGETPOSEX
 #endif
 
-#include "wx/window.h"
 #include "wx/msw/registry.h"
 
 #include <regstr.h>
@@ -83,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;
@@ -124,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.