From: Vadim Zeitlin Date: Tue, 30 Aug 2005 23:39:56 +0000 (+0000) Subject: return a more useful value from wxJoystick::GetProductName() X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c9ee46c3a536bc4008aa93825b7d771d08d51af0 return a more useful value from wxJoystick::GetProductName() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 2734095f27..eb3764fd74 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -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: diff --git a/src/msw/joystick.cpp b/src/msw/joystick.cpp index d09e443a91..2a7c933f84 100644 --- a/src/msw/joystick.cpp +++ b/src/msw/joystick.cpp @@ -28,18 +28,17 @@ #include #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 + 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