]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/xlocale.h
Temporarily disable the email notifications as we're getting false ones from
[wxWidgets.git] / interface / wx / xlocale.h
CommitLineData
969daeea
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: xlocale.h
3// Purpose: interface of wxXLocale
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9
10/**
11 @class wxXLocale
12
13 This class represents a locale object used by so-called xlocale API.
320ab87c 14
969daeea
FM
15 Unlike wxLocale it doesn't provide any non-trivial operations but simply
16 provides a portable wrapper for POSIX @c locale_t type.
17
18 It exists solely to be provided as an argument to various @c wxFoo_l() functions
19 which are the extensions of the standard locale-dependent functions (hence the
20 name xlocale). These functions do exactly the same thing as the corresponding
21 standard @c foo() except that instead of using the global program locale
22 they use the provided wxXLocale object.
23
24 For example, if the user runs the program in French locale, the standard
25 @c printf() function will output floating point numbers using decimal comma
26 instead of decimal period. If the program needs to format a floating-point
27 number in a standard format it can use:
28 @code wxPrintf_l(wxXLocale::GetCLocale(), "%g", number) @endcode
29 to do it.
30
31 Conversely, if a program wanted to output the number in French locale, even if
32 the current locale is different, it could use wxXLocale(wxLANGUAGE_FRENCH).
33
34
35 @section xlocale_avail Availability
36
37 This class is fully implemented only under the platforms where xlocale POSIX
38 API or equivalent is available. Currently the xlocale API is available under
39 most of the recent Unix systems (including Linux, various BSD and Mac OS X) and
40 Microsoft Visual C++ standard library provides a similar API starting from
41 version 8 (Visual Studio 2005).
42
43 If neither POSIX API nor Microsoft proprietary equivalent are available, this
44 class is still available but works in degraded mode: the only supported locale
45 is the C one and attempts to create wxXLocale object for any other locale will
46 fail. You can use the preprocessor macro @c wxHAS_XLOCALE_SUPPORT to test if
47 full xlocale API is available or only skeleton C locale support is present.
48
49 Notice that wxXLocale is new in wxWidgets 2.9.0 and is not compiled in if
50 @c wxUSE_XLOCALE was set to 0 during the library compilation.
51
52
53 @section xlocale_func Locale-dependent functions
54
55 Currently the following @c _l-functions are available:
320ab87c
FM
56 - Character classification functions:
57 @c wxIsxxx_l(), e.g. @c wxIsalpha_l(), @c wxIslower_l() and all the others.
58 - Character transformation functions:
59 @c wxTolower_l() and @c wxToupper_l()
969daeea
FM
60 We hope to provide many more functions (covering numbers, time and formatted
61 IO) in the near future.
62
63 @library{wxbase}
64 @category{misc}
65
66 @see wxLocale
67*/
68class wxXLocale
69{
70public:
969daeea 71 /**
320ab87c 72 Creates an uninitialized locale object, IsOk() method will return @false.
969daeea 73 */
5e27edec 74 wxXLocale();
969daeea
FM
75
76 /**
320ab87c 77 Creates the locale object corresponding to the specified language.
969daeea 78 */
5e27edec 79 wxXLocale(wxLanguage lang);
969daeea
FM
80
81 /**
320ab87c
FM
82 Creates the locale object corresponding to the specified locale string.
83 The locale string is system-dependent, use constructor taking wxLanguage
84 for better portability.
969daeea 85 */
5e27edec 86 wxXLocale(const char* loc);
969daeea
FM
87
88 /**
320ab87c
FM
89 Returns the global object representing the "C" locale.
90 For an even shorter access to this object a global @c wxCLocale variable
91 (implemented as a macro) is provided and can be used instead of calling
92 this method.
969daeea 93 */
320ab87c 94 static wxXLocale& GetCLocale();
969daeea
FM
95
96 /**
97 Returns @true if this object is initialized, i.e. represents a valid locale
320ab87c 98 or @false otherwise.
969daeea
FM
99 */
100 bool IsOk() const;
969daeea 101};