]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/intl.h
Add wxProgressDialog::Was{Cancelled,Skipped}() convenience methods.
[wxWidgets.git] / interface / wx / intl.h
index 6940db777983a17cfc1669a68be6d1a6db9d91a2..31255ff1902f29f9b37fde50c4bb74a1a647900c 100644 (file)
@@ -17,7 +17,7 @@
 */
 enum wxLanguage
 {
-    /// User's default/preferred language as got from OS.
+    /// User's default/preffered language as got from OS.
     wxLANGUAGE_DEFAULT,
 
     /// Unknown language, returned if wxLocale::GetSystemLanguage fails.
@@ -48,6 +48,7 @@ enum wxLanguage
     wxLANGUAGE_ARABIC_YEMEN,
     wxLANGUAGE_ARMENIAN,
     wxLANGUAGE_ASSAMESE,
+    wxLANGUAGE_ASTURIAN,
     wxLANGUAGE_AYMARA,
     wxLANGUAGE_AZERI,
     wxLANGUAGE_AZERI_CYRILLIC,
@@ -275,12 +276,19 @@ enum wxLayoutDirection
 };
 
 /**
-    Encapsulates ::wxLanguage in a OS native lang.desc.
-                    translation information
+    Encapsulates a ::wxLanguage indentifier together with OS-specific information
+    related to that language.
+
+    @beginWxPerlOnly
+    In wxPerl @c Wx::LanguageInfo has only one method:
+    - Wx::LanguageInfo->new(language, canonicalName, WinLang, WinSubLang, Description)
+    @endWxPerlOnly
 */
 struct WXDLLIMPEXP_BASE wxLanguageInfo
 {
-    /// ::wxLanguage id. It should be greater than @c wxLANGUAGE_USER_DEFINED.
+    /// ::wxLanguage id.
+    /// It should be greater than @c wxLANGUAGE_USER_DEFINED when defining your own
+    /// language info structure.
     int Language;
 
     /// Canonical name of the language, e.g. @c fr_FR.
@@ -311,6 +319,100 @@ struct WXDLLIMPEXP_BASE wxLanguageInfo
 };
 
 
+/**
+    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
 
@@ -377,8 +479,7 @@ public:
     /**
         See Init() for parameters description.
     */
-    wxLocale(int language,
-             int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
+    wxLocale(int language, int flags = wxLOCALE_LOAD_DEFAULT);
 
     /**
         See Init() for parameters description.
@@ -393,8 +494,7 @@ public:
     wxLocale(const wxString& name,
              const wxString& short = wxEmptyString,
              const wxString& locale = wxEmptyString,
-             bool bLoadDefault = true,
-             bool bConvertEncoding = false);
+             bool bLoadDefault = true);
 
     /**
         The destructor, like the constructor, also has global side effects: the
@@ -617,11 +717,29 @@ public:
 
     /**
         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();
 
+    /**
+        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.
 
@@ -642,17 +760,12 @@ public:
             - wxLOCALE_LOAD_DEFAULT: Load the message catalog for the given locale
               containing the translations of standard wxWidgets messages
               automatically.
-            - wxLOCALE_CONV_ENCODING: Automatically convert message catalogs to
-              platform's default encoding. Note that it will do only basic
-              conversion between well-known pair like iso8859-1 and windows-1252 or
-              iso8859-2 and windows-1250. See @ref overview_nonenglish for
-              detailed description of this behaviour.
-              Note that this flag is meaningless in Unicode build.
+            - wxLOCALE_DONT_LOAD_DEFAULT: Negation of wxLOCALE_LOAD_DEFAULT.
 
         @return @true on success or @false if the given locale couldn't be set.
     */
     bool Init(int language = wxLANGUAGE_DEFAULT,
-              int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);
+              int flags = wxLOCALE_LOAD_DEFAULT);
 
     /**
         @deprecated
@@ -670,16 +783,9 @@ public:
             May be set to @false to prevent loading of the message catalog for the
             given locale containing the translations of standard wxWidgets messages.
             This parameter would be rarely used in normal circumstances.
-        @param bConvertEncoding
-            May be set to @true to do automatic conversion of message catalogs to
-            platform's native encoding. Note that it will do only basic conversion
-            between well-known pair like iso8859-1 and windows-1252 or iso8859-2
-            and windows-1250.
-            See @ref overview_nonenglish for detailed description of this behaviour.
     */
     bool Init(const wxString& name, const wxString& short = wxEmptyString,
-              const wxString& locale = wxEmptyString, bool bLoadDefault = true,
-              bool bConvertEncoding = false);
+              const wxString& locale = wxEmptyString, bool bLoadDefault = true);
 
     /**
         Check whether the operating system and/or C run time environment supports