]> git.saurik.com Git - wxWidgets.git/commitdiff
return a more useful value from wxJoystick::GetProductName()
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 30 Aug 2005 23:39:56 +0000 (23:39 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 30 Aug 2005 23:39:56 +0000 (23:39 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
src/msw/joystick.cpp

index 2734095f27f7e0fd00c436ac4e4df7de25755125..eb3764fd7487a50d014ff1024075441326e4d7ea 100644 (file)
@@ -47,6 +47,7 @@ wxMSW:
 - Fixed default size of wxStaticText controls with border being too small.
 - Fixed bugs with wxStatusBar positioning (with or withour sizers) (Jamie Gadd)
 - Mouse move events are now generated for all static controls (Jamie Gadd)
+- Made wxJoystick::GetProductName() more useful (John Ratliff)
 
 wxGTK:
 
index d09e443a91e228b5c81a4a0fa91a13abd284ab6d..2a7c933f840a3f894060dfe873bcd8f43966db87 100644 (file)
     #include <mmsystem.h>
 #endif
 
-#if !defined(__WIN32__) && !defined(_MMRESULT_)
-typedef UINT MMRESULT;
-#endif
-
 // Why doesn't BC++ have joyGetPosEx?
 #if !defined(__WIN32__) || defined(__BORLANDC__)
 #define NO_JOYGETPOSEX
 #endif
 
 #include "wx/window.h"
+#include "wx/msw/registry.h"
 #include "wx/msw/joystick.h"
 
+#include <regstr.h>
+
 IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject)
 
 // Attributes
@@ -299,10 +298,22 @@ int wxJoystick::GetProductId() const
 wxString wxJoystick::GetProductName() const
 {
     JOYCAPS joyCaps;
-    if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR)
+    if (joyGetDevCaps(m_joystick, &joyCaps, sizeof(joyCaps)) != JOYERR_NOERROR)
         return wxEmptyString;
-    else
-        return wxString(joyCaps.szPname);
+
+    wxRegKey key1(wxString::Format(wxT("HKEY_LOCAL_MACHINE\\%s\\%s\\%s"),
+                   REGSTR_PATH_JOYCONFIG, joyCaps.szRegKey, REGSTR_KEY_JOYCURR));
+
+    wxString str;
+    key1.QueryValue(wxString::Format(wxT("Joystick%d%s"),
+                                     m_joystick + 1, REGSTR_VAL_JOYOEMNAME),
+                    str);
+
+    wxRegKey key2(wxString::Format(wxT("HKEY_LOCAL_MACHINE\\%s\\%s"),
+                                        REGSTR_PATH_JOYOEM, str.c_str()));
+    key2.QueryValue(REGSTR_VAL_JOYOEMNAME, str);
+
+    return str;
 }
 
 int wxJoystick::GetXMin() const