]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/intl.h
fixing text matrix (dataview custom renderer showed problems) and reordering SaveGState
[wxWidgets.git] / interface / wx / intl.h
index 390970029cab81ab937c5bd0d3af21384e34dd6b..947d47ad7eecd700a256033b1e8215d1381d40ec 100644 (file)
@@ -48,6 +48,7 @@ enum wxLanguage
     wxLANGUAGE_ARABIC_YEMEN,
     wxLANGUAGE_ARMENIAN,
     wxLANGUAGE_ASSAMESE,
+    wxLANGUAGE_ASTURIAN,
     wxLANGUAGE_AYMARA,
     wxLANGUAGE_AZERI,
     wxLANGUAGE_AZERI_CYRILLIC,
@@ -264,7 +265,8 @@ enum wxLanguage
 
 /**
     This is the layout direction stored in wxLanguageInfo and returned by
-    wxApp::GetLayoutDirection() for RTL (right-to-left) languages support.
+    wxApp::GetLayoutDirection(), wxWindow::GetLayoutDirection(),
+    wxDC::GetLayoutDirection() for RTL (right-to-left) languages support.
 */
 enum wxLayoutDirection
 {
@@ -274,32 +276,138 @@ enum wxLayoutDirection
 };
 
 /**
-    wxLanguageInfo: encapsulates ::wxLanguage to OS native lang.desc.
-                    translation information
+    Encapsulates a ::wxLanguage indentifier together with OS-specific information
+    related to that language.
 */
 struct WXDLLIMPEXP_BASE wxLanguageInfo
 {
-    /// ::wxLanguage id. It should be greater than wxLANGUAGE_USER_DEFINED.
+    /// ::wxLanguage id.
+    /// It should be greater than @c wxLANGUAGE_USER_DEFINED when defining your own
+    /// language info structure.
     int Language;
-    wxString CanonicalName;         //!< Canonical name, e.g. fr_FR.
-#ifdef __WXMSW__
-    wxUint32 WinLang,               //!< Win32 language identifiers (LANG_xxxx, SUBLANG_xxxx).
-             WinSublang;
-#endif // __WXMSW__
-    wxString Description;           //!< Human-readable name of the language.
+
+    /// Canonical name of the language, e.g. @c fr_FR.
+    wxString CanonicalName;
+
+    //@{
+    /**
+        Win32 language identifiers (LANG_xxxx, SUBLANG_xxxx).
+
+        @onlyfor{wxmsw}
+    */
+    wxUint32 WinLang, WinSublang;
+    //@}
+
+    /// Human-readable name of the language.
+    wxString Description;
+
+    /// The layout direction used for this language.
     wxLayoutDirection LayoutDirection;
 
-#ifdef __WXMSW__
     /// Return the LCID corresponding to this language.
+    /// @onlyfor{wxmsw}
     wxUint32 GetLCID() const;
-#endif // __WXMSW__
 
     /// Return the locale name corresponding to this language usable with
-    /// setlocale() on the current system
+    /// @c setlocale() on the current system.
     wxString GetLocaleName() const;
 };
 
 
+/**
+    The category of locale settings.
+
+    @see wxLocale::GetInfo()
+*/
+enum wxLocaleCategory
+{
+    /// Number formatting.
+    wxLOCALE_CAT_NUMBER,
+
+    /// Date/time formatting.
+    wxLOCALE_CAT_DATE,
+
+    /// Monetary values formatting.
+    wxLOCALE_CAT_MONEY,
+
+    /**
+        Default category for the wxLocaleInfo value.
+
+        This category can be used for values which only make sense for a single
+        category, e.g. wxLOCALE_SHORT_DATE_FMT which can only be used with
+        wxLOCALE_CAT_DATE. As this is the default value of the second parameter
+        of wxLocale::GetInfo(), wxLOCALE_CAT_DATE can be omitted when asking
+        for wxLOCALE_SHORT_DATE_FMT value.
+
+        @since 2.9.0
+     */
+    wxLOCALE_CAT_DEFAULT
+};
+
+/**
+    The values understood by wxLocale::GetInfo().
+    
+    Note that for the @c wxLOCALE_*_FMT constants (the date and time formats), 
+    the strings returned by wxLocale::GetInfo() use strftime() or,
+    equivalently, wxDateTime::Format() format. If the relevant format
+    couldn't be determined, an empty string is returned -- there is no
+    fallback value so that the application could determine the best course
+    of actions itself in such case.
+
+    All of these values are used with @c wxLOCALE_CAT_DATE in wxLocale::GetInfo() or, 
+    more typically, with @c wxLOCALE_CAT_DEFAULT as they only apply to a single category.
+*/
+enum wxLocaleInfo
+{
+    /**
+        The thousands separator.
+
+        This value can be used with either wxLOCALE_CAT_NUMBER or
+        wxLOCALE_CAT_MONEY categories.
+     */
+    wxLOCALE_THOUSANDS_SEP,
+
+    /**
+        The character used as decimal point.
+
+        This value can be used with either wxLOCALE_CAT_NUMBER or
+        wxLOCALE_CAT_MONEY categories.
+     */
+    wxLOCALE_DECIMAL_POINT,
+
+    /**
+        Short date format.
+
+        Notice that short and long date formats may be the same under POSIX
+        systems currently but may, and typically are, different under MSW or OS X.
+
+        @since 2.9.0
+     */
+    wxLOCALE_SHORT_DATE_FMT,
+
+    /**
+        Long date format.
+
+        @since 2.9.0
+     */
+    wxLOCALE_LONG_DATE_FMT,
+
+    /**
+        Date and time format.
+
+        @since 2.9.0
+     */
+    wxLOCALE_DATE_TIME_FMT,
+
+    /**
+        Time format.
+
+        @since 2.9.0
+     */
+    wxLOCALE_TIME_FMT
+};
+
+
 /**
     @class wxLocale
 
@@ -350,7 +458,7 @@ struct WXDLLIMPEXP_BASE wxLanguageInfo
     @endWxPerlOnly
 
     @library{wxbase}
-    @category{misc}
+    @category{cfg}
 
     @see @ref overview_i18n, @ref page_samples_internat, wxXLocale
 */
@@ -472,7 +580,7 @@ public:
 
         @see GetLanguageInfo()
     */
-    static wxLanguageInfo* FindLanguageInfo(const wxString& locale);
+    static const wxLanguageInfo* FindLanguageInfo(const wxString& locale);
 
     /**
         Returns the canonical form of current locale name. Canonical form is the
@@ -513,7 +621,7 @@ public:
         as an argument to this function and in this case the result of
         GetSystemLanguage() is used.
     */
-    static wxLanguageInfo* GetLanguageInfo(int lang) const;
+    static const wxLanguageInfo* GetLanguageInfo(int lang);
 
     /**
         Returns English name of the given language or empty string if this
@@ -521,7 +629,7 @@ public:
 
         See GetLanguageInfo() for a remark about special meaning of @c wxLANGUAGE_DEFAULT.
     */
-    static wxString GetLanguageName(int lang) const;
+    static wxString GetLanguageName(int lang);
 
     /**
         Returns the locale name as passed to the constructor or Init().
@@ -592,7 +700,7 @@ public:
         Returns wxFontEncoding() value or @c wxFONTENCODING_SYSTEM if it
         couldn't be determined.
     */
-    static wxFontEncoding GetSystemEncoding() const;
+    static wxFontEncoding GetSystemEncoding();
 
     /**
         Tries to detect the name of the user's default font encoding.
@@ -602,14 +710,32 @@ public:
         Returns a user-readable string value or an empty string if it couldn't be
         determined.
     */
-    static wxString GetSystemEncodingName() const;
+    static wxString GetSystemEncodingName();
 
     /**
         Tries to detect the user's default language setting.
-        Returns the ::wxLanguage value or @b wxLANGUAGE_UNKNOWN if the language-guessing
+
+        Returns the ::wxLanguage value or @c wxLANGUAGE_UNKNOWN if the language-guessing
         algorithm failed.
     */
-    static int GetSystemLanguage() const;
+    static int GetSystemLanguage();
+
+    /**
+        Get the values of the given locale-dependent datum.
+
+        This function returns the value of the locale-specific option specified
+        by the given @a index.
+
+        @param index
+            One of the elements of wxLocaleInfo enum.
+        @param cat
+            The category to use with the given index or wxLOCALE_CAT_DEFAULT if
+            the index can only apply to a single category.
+        @return
+            The option value or empty string if the function failed.
+    */
+    static wxString GetInfo(wxLocaleInfo index,
+                            wxLocaleCategory cat = wxLOCALE_CAT_DEFAULT);
 
     /**
         Initializes the wxLocale instance.