X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/969daeea660b2b85391309d927d496e0926d4246..36a0190ebd5bd9a7302f60f6dcd608b80574e21c:/interface/wx/xlocale.h diff --git a/interface/wx/xlocale.h b/interface/wx/xlocale.h index bf26cb8712..d498f5a30f 100644 --- a/interface/wx/xlocale.h +++ b/interface/wx/xlocale.h @@ -2,8 +2,7 @@ // Name: xlocale.h // Purpose: interface of wxXLocale // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -11,6 +10,7 @@ @class wxXLocale This class represents a locale object used by so-called xlocale API. + Unlike wxLocale it doesn't provide any non-trivial operations but simply provides a portable wrapper for POSIX @c locale_t type. @@ -20,12 +20,7 @@ standard @c foo() except that instead of using the global program locale they use the provided wxXLocale object. - For example, if the user runs the program in French locale, the standard - @c printf() function will output floating point numbers using decimal comma - instead of decimal period. If the program needs to format a floating-point - number in a standard format it can use: - @code wxPrintf_l(wxXLocale::GetCLocale(), "%g", number) @endcode - to do it. + See @ref group_funcmacro_locale for a list of wxXLocale-enabled functions. Conversely, if a program wanted to output the number in French locale, even if the current locale is different, it could use wxXLocale(wxLANGUAGE_FRENCH). @@ -49,95 +44,85 @@ @c wxUSE_XLOCALE was set to 0 during the library compilation. - @section xlocale_func Locale-dependent functions - - Currently the following @c _l-functions are available: - - Character classification functions: @c wxIsxxx_l(), e.g. - @c wxIsalpha_l(), @c wxIslower_l() and all the others. - Character transformation functions: @c wxTolower_l() and - @c wxToupper_l() - - We hope to provide many more functions (covering numbers, time and formatted - IO) in the near future. - @library{wxbase} - @category{misc} + @category{cfg} + @stdobjects + @li ::wxNullXLocale + @see wxLocale */ class wxXLocale { public: - //@{ /** - Creates the locale object corresponding to the specified locale string. The - locale string is system-dependent, use constructor taking wxLanguage for better - portability. + Creates an uninitialized locale object, IsOk() method will return @false. */ - wxLocale(); - wxLocale(wxLanguage lang); - wxLocale(const char* loc); - //@} + wxXLocale(); /** - This class is fully implemented only under the platforms where xlocale POSIX - API or equivalent is available. Currently the xlocale API is available under - most of the recent Unix systems (including Linux, various BSD and Mac OS X) and - Microsoft Visual C++ standard library provides a similar API starting from - version 8 (Visual Studio 2005). - If neither POSIX API nor Microsoft proprietary equivalent are available, this - class is still available but works in degraded mode: the only supported locale - is the C one and attempts to create wxXLocale object for any other locale will - fail. You can use the preprocessor macro @c wxHAS_XLOCALE_SUPPORT to - test if full xlocale API is available or only skeleton C locale support is - present. - Notice that wxXLocale is new in wxWidgets 2.9.0 and is not compiled in if - @c wxUSE_XLOCALE was set to 0 during the library compilation. + Creates the locale object corresponding to the specified language. */ - + wxXLocale(wxLanguage lang); /** - Returns the global object representing the "C" locale. For an even shorter - access to this object a global @c wxCLocale variable (implemented as a - macro) is provided and can be used instead of calling this method. + Creates the locale object corresponding to the specified locale string. + The locale string is system-dependent, use constructor taking wxLanguage + for better portability. */ - static wxXLocale GetCLocale(); + wxXLocale(const char* loc); /** - This class represents a locale object used by so-called xlocale API. Unlike - wxLocale it doesn't provide any non-trivial operations but - simply provides a portable wrapper for POSIX @c locale_t type. It exists - solely to be provided as an argument to various @c wxFoo_l() functions - which are the extensions of the standard locale-dependent functions (hence the - name xlocale). These functions do exactly the same thing as the corresponding - standard @c foo() except that instead of using the global program locale - they use the provided wxXLocale object. For example, if the user runs the - program in French locale, the standard @c printf() function will output - floating point numbers using decimal comma instead of decimal period. If the - program needs to format a floating-point number in a standard format it can - use @c wxPrintf_l(wxXLocale::GetCLocale(), "%g", number) to do it. - Conversely, if a program wanted to output the number in French locale, even if - the current locale is different, it could use wxXLocale(wxLANGUAGE_FRENCH). + Returns the global object representing the "C" locale. + For an even shorter access to this object a global @c wxCLocale variable + (implemented as a macro) is provided and can be used instead of calling + this method. */ - + static wxXLocale& GetCLocale(); /** - Returns @true if this object is initialized, i.e. represents a valid locale - or - @false otherwise. + Returns @true if this object is initialized, i.e.\ represents a valid locale + or @false otherwise. */ bool IsOk() const; - + /** - Currently the following @c _l-functions are available: - Character classification functions: @c wxIsxxx_l(), e.g. - @c wxIsalpha_l(), @c wxIslower_l() and all the others. - Character transformation functions: @c wxTolower_l() and - @c wxToupper_l() - We hope to provide many more functions (covering numbers, time and formatted - IO) in the near future. - - @see wxLocale + Comparison operator. */ + bool operator==(const wxXLocale& loc) const; }; + +/** + An empty and invalid wxXLocale object. +*/ +wxXLocale wxNullXLocale; + + + +// ============================================================================ +// Global functions/macros +// ============================================================================ + +/** @addtogroup group_funcmacro_locale */ +//@{ + +int wxIsalnum_l(wchar_t c, const wxXLocale& loc); +int wxIsalpha_l(wchar_t c, const wxXLocale& loc); +int wxIscntrl_l(wchar_t c, const wxXLocale& loc); +int wxIsdigit_l(wchar_t c, const wxXLocale& loc); +int wxIsgraph_l(wchar_t c, const wxXLocale& loc); +int wxIslower_l(wchar_t c, const wxXLocale& loc); +int wxIsprint_l(wchar_t c, const wxXLocale& loc); +int wxIspunct_l(wchar_t c, const wxXLocale& loc); +int wxIsspace_l(wchar_t c, const wxXLocale& loc); +int wxIsupper_l(wchar_t c, const wxXLocale& loc); +int wxIsxdigit_l(wchar_t c, const wxXLocale& loc); +wchar_t wxTolower_l(wchar_t c, const wxXLocale& loc); +wchar_t wxToupper_l(wchar_t c, const wxXLocale& loc); + +double wxStrtod_l(const wchar_t *c, wchar_t **endptr, const wxXLocale& loc); +long wxStrtol_l(const wchar_t *c, wchar_t **endptr, int base, const wxXLocale& loc); +unsigned long wxStrtoul_l(const wchar_t *c, wchar_t **endptr, int base, const wxXLocale& loc); + +//@} +