X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/83486d3b5a6e23ab8e41c3be38f0e3fec7e254e2..42f8298f6f42d5d63bb3caf65682b7d9d9f8b702:/wxPython/src/_intl.i diff --git a/wxPython/src/_intl.i b/wxPython/src/_intl.i index 0bdca6fa44..5901e839a5 100644 --- a/wxPython/src/_intl.i +++ b/wxPython/src/_intl.i @@ -16,6 +16,7 @@ //--------------------------------------------------------------------------- %{ +#include %} //--------------------------------------------------------------------------- @@ -308,20 +309,54 @@ class wxLocale public: // ctor & dtor // ----------- - wxLocale(int language = wxLANGUAGE_DEFAULT, - int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING); + %extend { + wxLocale(int language = -1, + int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING) { + wxLocale* loc; + if (language == -1) + loc = new wxLocale(); + else + 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):