X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2693507fda7617b7cd16197f92e9abacf1ce75f9..db679b8c836e69c111cdc31e62cf92cebe4f938f:/wxPython/src/_intl.i?ds=sidebyside diff --git a/wxPython/src/_intl.i b/wxPython/src/_intl.i index 22f868cf08..5901e839a5 100644 --- a/wxPython/src/_intl.i +++ b/wxPython/src/_intl.i @@ -16,6 +16,7 @@ //--------------------------------------------------------------------------- %{ +#include %} //--------------------------------------------------------------------------- @@ -311,24 +312,51 @@ public: %extend { wxLocale(int language = -1, int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING) { + wxLocale* loc; if (language == -1) - return new wxLocale(); + loc = new wxLocale(); else - return new wxLocale(language, flags); + loc = new wxLocale(language, flags); + // Python before 2.4 needs to have LC_NUMERIC set to "C" in order + // for the floating point conversions and such to work right. +%#if PY_VERSION_HEX < 0x02040000 + setlocale(LC_NUMERIC, "C"); +%#endif + return loc; } } // restores old locale ~wxLocale(); - %name(Init1)bool Init(const wxString& szName, - const wxString& szShort = wxPyEmptyString, - const wxString& szLocale = wxPyEmptyString, - bool bLoadDefault = True, - bool bConvertEncoding = False); + %extend { + bool Init1(const wxString& szName, + const wxString& szShort = wxPyEmptyString, + const wxString& szLocale = wxPyEmptyString, + bool bLoadDefault = true, + bool bConvertEncoding = false) { + bool rc = self->Init(szName, szShort, szLocale, bLoadDefault, bConvertEncoding); + // Python before 2.4 needs to have LC_NUMERIC set to "C" in order + // for the floating point conversions and such to work right. +%#if PY_VERSION_HEX < 0x02040000 + setlocale(LC_NUMERIC, "C"); +%#endif + return rc; + } + + bool Init2(int language = wxLANGUAGE_DEFAULT, + int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING) { + bool rc = self->Init(language, flags); + // Python before 2.4 needs to have LC_NUMERIC set to "C" in order + // for the floating point conversions and such to work right. +%#if PY_VERSION_HEX < 0x02040000 + setlocale(LC_NUMERIC, "C"); +%#endif + return rc; + } + } - %name(Init2) bool Init(int language = wxLANGUAGE_DEFAULT, - int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING); + %pythoncode { def Init(self, *_args, **_kwargs):