]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/font.h
use wxALIGN_LEFT/CENTRE/RIGHT instead of wxTE_XXX to avoid problems with the latter...
[wxWidgets.git] / interface / wx / font.h
index a008843ba706a51fb5f88f1ff0e4eed458172e4f..6b600a95f7e864ac6ab390b6c2fe356d7195552a 100644 (file)
@@ -97,63 +97,63 @@ enum wxFontEncoding
     wxFONTENCODING_DEFAULT,         // current default encoding
 
     // ISO8859 standard defines a number of single-byte charsets
-    wxFONTENCODING_ISO8859_1,       // West European (Latin1)
-    wxFONTENCODING_ISO8859_2,       // Central and East European (Latin2)
-    wxFONTENCODING_ISO8859_3,       // Esperanto (Latin3)
-    wxFONTENCODING_ISO8859_4,       // Baltic (old) (Latin4)
-    wxFONTENCODING_ISO8859_5,       // Cyrillic
-    wxFONTENCODING_ISO8859_6,       // Arabic
-    wxFONTENCODING_ISO8859_7,       // Greek
-    wxFONTENCODING_ISO8859_8,       // Hebrew
-    wxFONTENCODING_ISO8859_9,       // Turkish (Latin5)
-    wxFONTENCODING_ISO8859_10,      // Variation of Latin4 (Latin6)
-    wxFONTENCODING_ISO8859_11,      // Thai
-    wxFONTENCODING_ISO8859_12,      // doesn't exist currently, but put it
-                                    // here anyhow to make all ISO8859
-                                    // consecutive numbers
-    wxFONTENCODING_ISO8859_13,      // Baltic (Latin7)
-    wxFONTENCODING_ISO8859_14,      // Latin8
-    wxFONTENCODING_ISO8859_15,      // Latin9 (a.k.a. Latin0, includes euro)
+    wxFONTENCODING_ISO8859_1,       //!< West European (Latin1)
+    wxFONTENCODING_ISO8859_2,       //!< Central and East European (Latin2)
+    wxFONTENCODING_ISO8859_3,       //!< Esperanto (Latin3)
+    wxFONTENCODING_ISO8859_4,       //!< Baltic (old) (Latin4)
+    wxFONTENCODING_ISO8859_5,       //!< Cyrillic
+    wxFONTENCODING_ISO8859_6,       //!< Arabic
+    wxFONTENCODING_ISO8859_7,       //!< Greek
+    wxFONTENCODING_ISO8859_8,       //!< Hebrew
+    wxFONTENCODING_ISO8859_9,       //!< Turkish (Latin5)
+    wxFONTENCODING_ISO8859_10,      //!< Variation of Latin4 (Latin6)
+    wxFONTENCODING_ISO8859_11,      //!< Thai
+    wxFONTENCODING_ISO8859_12,      //!< doesn't exist currently, but put it
+                                    //!< here anyhow to make all ISO8859
+                                    //!< consecutive numbers
+    wxFONTENCODING_ISO8859_13,      //!< Baltic (Latin7)
+    wxFONTENCODING_ISO8859_14,      //!< Latin8
+    wxFONTENCODING_ISO8859_15,      //!< Latin9 (a.k.a. Latin0, includes euro)
     wxFONTENCODING_ISO8859_MAX,
 
     // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
-    wxFONTENCODING_KOI8,            // KOI8 Russian
-    wxFONTENCODING_KOI8_U,          // KOI8 Ukrainian
-    wxFONTENCODING_ALTERNATIVE,     // same as MS-DOS CP866
-    wxFONTENCODING_BULGARIAN,       // used under Linux in Bulgaria
+    wxFONTENCODING_KOI8,            //!< KOI8 Russian
+    wxFONTENCODING_KOI8_U,          //!< KOI8 Ukrainian
+    wxFONTENCODING_ALTERNATIVE,     //!< same as MS-DOS CP866
+    wxFONTENCODING_BULGARIAN,       //!< used under Linux in Bulgaria
 
     // what would we do without Microsoft? They have their own encodings
         // for DOS
-    wxFONTENCODING_CP437,           // original MS-DOS codepage
-    wxFONTENCODING_CP850,           // CP437 merged with Latin1
-    wxFONTENCODING_CP852,           // CP437 merged with Latin2
-    wxFONTENCODING_CP855,           // another cyrillic encoding
-    wxFONTENCODING_CP866,           // and another one
+    wxFONTENCODING_CP437,           //!< original MS-DOS codepage
+    wxFONTENCODING_CP850,           //!< CP437 merged with Latin1
+    wxFONTENCODING_CP852,           //!< CP437 merged with Latin2
+    wxFONTENCODING_CP855,           //!< another cyrillic encoding
+    wxFONTENCODING_CP866,           //!< and another one
         // and for Windows
-    wxFONTENCODING_CP874,           // WinThai
-    wxFONTENCODING_CP932,           // Japanese (shift-JIS)
-    wxFONTENCODING_CP936,           // Chinese simplified (GB)
-    wxFONTENCODING_CP949,           // Korean (Hangul charset)
-    wxFONTENCODING_CP950,           // Chinese (traditional - Big5)
-    wxFONTENCODING_CP1250,          // WinLatin2
-    wxFONTENCODING_CP1251,          // WinCyrillic
-    wxFONTENCODING_CP1252,          // WinLatin1
-    wxFONTENCODING_CP1253,          // WinGreek (8859-7)
-    wxFONTENCODING_CP1254,          // WinTurkish
-    wxFONTENCODING_CP1255,          // WinHebrew
-    wxFONTENCODING_CP1256,          // WinArabic
-    wxFONTENCODING_CP1257,          // WinBaltic (same as Latin 7)
+    wxFONTENCODING_CP874,           //!< WinThai
+    wxFONTENCODING_CP932,           //!< Japanese (shift-JIS)
+    wxFONTENCODING_CP936,           //!< Chinese simplified (GB)
+    wxFONTENCODING_CP949,           //!< Korean (Hangul charset)
+    wxFONTENCODING_CP950,           //!< Chinese (traditional - Big5)
+    wxFONTENCODING_CP1250,          //!< WinLatin2
+    wxFONTENCODING_CP1251,          //!< WinCyrillic
+    wxFONTENCODING_CP1252,          //!< WinLatin1
+    wxFONTENCODING_CP1253,          //!< WinGreek (8859-7)
+    wxFONTENCODING_CP1254,          //!< WinTurkish
+    wxFONTENCODING_CP1255,          //!< WinHebrew
+    wxFONTENCODING_CP1256,          //!< WinArabic
+    wxFONTENCODING_CP1257,          //!< WinBaltic (same as Latin 7)
     wxFONTENCODING_CP12_MAX,
 
-    wxFONTENCODING_UTF7,            // UTF-7 Unicode encoding
-    wxFONTENCODING_UTF8,            // UTF-8 Unicode encoding
-    wxFONTENCODING_EUC_JP,          // Extended Unix Codepage for Japanese
-    wxFONTENCODING_UTF16BE,         // UTF-16 Big Endian Unicode encoding
-    wxFONTENCODING_UTF16LE,         // UTF-16 Little Endian Unicode encoding
-    wxFONTENCODING_UTF32BE,         // UTF-32 Big Endian Unicode encoding
+    wxFONTENCODING_UTF7,            //!< UTF-7 Unicode encoding
+    wxFONTENCODING_UTF8,            //!< UTF-8 Unicode encoding
+    wxFONTENCODING_EUC_JP,          //!< Extended Unix Codepage for Japanese
+    wxFONTENCODING_UTF16BE,         //!< UTF-16 Big Endian Unicode encoding
+    wxFONTENCODING_UTF16LE,         //!< UTF-16 Little Endian Unicode encoding
+    wxFONTENCODING_UTF32BE,         //!< UTF-32 Big Endian Unicode encoding
     wxFONTENCODING_UTF32LE,         // UTF-32 Little Endian Unicode encoding
 
-    wxFONTENCODING_MACROMAN,        // the standard mac encodings
+    wxFONTENCODING_MACROMAN,        //!< the standard mac encodings
     wxFONTENCODING_MACJAPANESE,
     wxFONTENCODING_MACCHINESETRAD,
     wxFONTENCODING_MACKOREAN,
@@ -196,37 +196,28 @@ enum wxFontEncoding
 
     // more CJK encodings (for historical reasons some are already declared
     // above)
-    wxFONTENCODING_ISO2022_JP,      // ISO-2022-JP JIS encoding
+    wxFONTENCODING_ISO2022_JP,      //!< ISO-2022-JP JIS encoding
 
-    wxFONTENCODING_MAX,             // highest enumerated encoding value
+    wxFONTENCODING_MAX,             //!< highest enumerated encoding value
 
     wxFONTENCODING_MACMIN = wxFONTENCODING_MACROMAN ,
     wxFONTENCODING_MACMAX = wxFONTENCODING_MACKEYBOARD ,
 
     // aliases for endian-dependent UTF encodings
-#ifdef WORDS_BIGENDIAN
-    wxFONTENCODING_UTF16 = wxFONTENCODING_UTF16BE,  // native UTF-16
-    wxFONTENCODING_UTF32 = wxFONTENCODING_UTF32BE,  // native UTF-32
-#else // WORDS_BIGENDIAN
-    wxFONTENCODING_UTF16 = wxFONTENCODING_UTF16LE,  // native UTF-16
-    wxFONTENCODING_UTF32 = wxFONTENCODING_UTF32LE,  // native UTF-32
-#endif // WORDS_BIGENDIAN
-
-    // alias for the native Unicode encoding on this platform
-    // (this is used by wxEncodingConverter and wxUTFFile only for now)
-#if SIZEOF_WCHAR_T == 2
-    wxFONTENCODING_UNICODE = wxFONTENCODING_UTF16,
-#else // SIZEOF_WCHAR_T == 4
-    wxFONTENCODING_UNICODE = wxFONTENCODING_UTF32,
-#endif
+    wxFONTENCODING_UTF16,  //!< native UTF-16
+    wxFONTENCODING_UTF32,  //!< native UTF-32
+
+    /// Alias for the native Unicode encoding on this platform
+    /// (this is used by wxEncodingConverter and wxUTFFile only for now)
+    wxFONTENCODING_UNICODE,
 
     // alternative names for Far Eastern encodings
     // Chinese
-    wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, // Simplified Chinese
-    wxFONTENCODING_BIG5 = wxFONTENCODING_CP950,   // Traditional Chinese
+    wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, //!< Simplified Chinese
+    wxFONTENCODING_BIG5 = wxFONTENCODING_CP950,   //!< Traditional Chinese
 
         // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html)
-    wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932 // Shift JIS
+    wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932 //!< Shift JIS
 };
 
 
@@ -259,7 +250,6 @@ enum wxFontEncoding
 class wxFont : public wxGDIObject
 {
 public:
-    //@{
     /**
         Default ctor.
     */
@@ -274,15 +264,15 @@ public:
         Creates a font object with the specified attributes.
 
         @param pointSize
-            Size in points.
+            Size in points. See SetPointSize() for more info.
         @param family
             Font family, a generic way of referring to fonts without specifying actual
             facename. One of the ::wxFontFamily enumeration values.
         @param style
-            One of wxFONTSTYLE_NORMAL, wxFONTSTYLE_SLANT and wxFONTSTYLE_ITALIC.
+            One of @c wxFONTSTYLE_NORMAL, @c wxFONTSTYLE_SLANT and @c wxFONTSTYLE_ITALIC.
         @param weight
-            Font weight, sometimes also referred to as font boldness. One of
-            the ::wxFontWeight enumeration values.
+            Font weight, sometimes also referred to as font boldness. 
+            One of the ::wxFontWeight enumeration values.
         @param underline
             The value can be @true or @false.
             At present this has an effect on Windows and Motif 2.x only.
@@ -293,42 +283,38 @@ public:
             An encoding which may be one of the enumeration values of ::wxFontEncoding.
             Briefly these can be summed up as:
             <TABLE>
-                <TR><TD>wxFONTENCODING_SYSTEM</TD><TD>Default system encoding.</TD></TR>
-                <TR><TD>wxFONTENCODING_DEFAULT</TD><TD>
-                    Default application encoding: this
-                    is the encoding set by calls to
-                    SetDefaultEncoding and which may be set to,
-                    say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the
-                    default application encoding is the same as default system encoding.</TD></TR>
-                <TR><TD>wxFONTENCODING_ISO8859_1...15</TD><TD>ISO8859 encodings.</TD></TR>
-                <TR><TD>wxFONTENCODING_KOI8</TD><TD>The standard Russian encoding for Internet.</TD></TR>
-                <TR><TD>wxFONTENCODING_CP1250...1252</TD><TD>Windows encodings similar to ISO8859 (but not identical).</TD></TR>
+                <TR><TD>@c wxFONTENCODING_SYSTEM</TD><TD>Default system encoding.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_DEFAULT</TD><TD>
+                    Default application encoding: this is the encoding set by calls to
+                    SetDefaultEncoding() and which may be set to, say, KOI8 to create all 
+                    fonts by default with KOI8 encoding. Initially, the default application 
+                    encoding is the same as default system encoding.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_ISO8859_1...15</TD><TD>ISO8859 encodings.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_KOI8</TD><TD>The standard Russian encoding for Internet.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_CP1250...1252</TD><TD>Windows encodings similar to ISO8859 (but not identical).</TD></TR>
             </TABLE>
             If the specified encoding isn't available, no font is created
-            (see also font encoding overview).
+            (see also @ref overview_fontencoding).
 
         @remarks If the desired font does not exist, the closest match will be
                  chosen. Under Windows, only scalable TrueType fonts are used.
     */
-    wxFont(int pointSize, wxFontFamily family, int style,
+    wxFont(int pointSize, wxFontFamily family, wxFontStyle style,
            wxFontWeight weight,
-           const bool underline = false,
-           const wxString& faceName = "",
+           bool underline = false,
+           const wxString& faceName = wxEmptyString,
            wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
 
     /**
         Creates a font object with the specified attributes.
 
         @param pixelSize
-            Size in pixels: this is directly supported only under MSW currently
-            where this constructor can be used directly, under other platforms a
-            font with the closest size to the given one is found using binary search
-            and the static New method must be used.
+            Size in pixels. See SetPixelSize() for more info.
         @param family
             Font family, a generic way of referring to fonts without specifying actual
             facename. One of ::wxFontFamily enumeration values.
         @param style
-            One of wxFONTSTYLE_NORMAL, wxFONTSTYLE_SLANT and wxFONTSTYLE_ITALIC.
+            One of @c wxFONTSTYLE_NORMAL, @c wxFONTSTYLE_SLANT and @c wxFONTSTYLE_ITALIC.
         @param weight
             Font weight, sometimes also referred to as font boldness.
             One of the ::wxFontWeight enumeration values.
@@ -342,29 +328,27 @@ public:
             An encoding which may be one of the enumeration values of ::wxFontEncoding.
             Briefly these can be summed up as:
             <TABLE>
-                <TR><TD>wxFONTENCODING_SYSTEM</TD><TD>Default system encoding.</TD></TR>
-                <TR><TD>wxFONTENCODING_DEFAULT</TD><TD>
-                    Default application encoding: this
-                    is the encoding set by calls to
-                    SetDefaultEncoding and which may be set to,
-                    say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the
-                    default application encoding is the same as default system encoding.</TD></TR>
-                <TR><TD>wxFONTENCODING_ISO8859_1...15</TD><TD>ISO8859 encodings.</TD></TR>
-                <TR><TD>wxFONTENCODING_KOI8</TD><TD>The standard Russian encoding for Internet.</TD></TR>
-                <TR><TD>wxFONTENCODING_CP1250...1252</TD><TD>Windows encodings similar to ISO8859 (but not identical).</TD></TR>
+                <TR><TD>@c wxFONTENCODING_SYSTEM</TD><TD>Default system encoding.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_DEFAULT</TD><TD>
+                    Default application encoding: this is the encoding set by calls to
+                    SetDefaultEncoding() and which may be set to, say, KOI8 to create all 
+                    fonts by default with KOI8 encoding. Initially, the default application 
+                    encoding is the same as default system encoding.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_ISO8859_1...15</TD><TD>ISO8859 encodings.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_KOI8</TD><TD>The standard Russian encoding for Internet.</TD></TR>
+                <TR><TD>@c wxFONTENCODING_CP1250...1252</TD><TD>Windows encodings similar to ISO8859 (but not identical).</TD></TR>
             </TABLE>
             If the specified encoding isn't available, no font is created
-            (see also font encoding overview).
+            (see also @ref overview_fontencoding).
 
         @remarks If the desired font does not exist, the closest match will be
                  chosen. Under Windows, only scalable TrueType fonts are used.
     */
     wxFont(const wxSize& pixelSize, wxFontFamily family,
-           int style, wxFontWeight weight,
-           const bool underline = false,
-           const wxString& faceName = "",
+           wxFontStyle style, wxFontWeight weight,
+           bool underline = false,
+           const wxString& faceName = wxEmptyString,
            wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
-    //@}
 
     /**
         Destructor.
@@ -433,7 +417,18 @@ public:
     virtual int GetPointSize() const;
 
     /**
-        Gets the font style. See wxFontStyle for a list of valid styles.
+        Gets the pixel size.
+        
+        Note that under wxMSW if you passed to SetPixelSize() (or to the ctor)
+        a wxSize object with a null width value, you'll get a null width in
+        the returned object.
+
+        @see SetPixelSize()
+    */
+    virtual wxSize GetPixelSize() const;
+    
+    /**
+        Gets the font style. See ::wxFontStyle for a list of valid styles.
 
         @see SetStyle()
     */
@@ -447,7 +442,7 @@ public:
     virtual bool GetUnderlined() const;
 
     /**
-        Gets the font weight. See wxFontWeight for a list of valid weight identifiers.
+        Gets the font weight. See ::wxFontWeight for a list of valid weight identifiers.
 
         @see SetWeight()
     */
@@ -466,33 +461,30 @@ public:
 
     //@{
     /**
-        These functions take the same parameters as
-        @ref wxFont::wxFont "wxFont constructors" and return a new font
+        This function takes the same parameters as the relative
+        @ref wxFont::wxFont "wxFont constructor" and returns a new font
         object allocated on the heap.
-
-        Using @c New() is currently the only way to directly create a font with
-        the given size in pixels on platforms other than wxMSW.
     */
-    static wxFont* New(int pointSize, wxFontFamily family, int style,
+    static wxFont* New(int pointSize, wxFontFamily family, wxFontStyle style,
                        wxFontWeight weight,
-                       const bool underline = false,
-                       const wxString& faceName = "",
+                       bool underline = false,
+                       const wxString& faceName = wxEmptyString,
                        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
     static wxFont* New(int pointSize, wxFontFamily family,
                        int flags = wxFONTFLAG_DEFAULT,
-                       const wxString& faceName = "",
+                       const wxString& faceName = wxEmptyString,
                        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
     static wxFont* New(const wxSize& pixelSize,
                        wxFontFamily family,
-                       int style,
+                       wxFontStyle style,
                        wxFontWeight weight,
-                       const bool underline = false,
-                       const wxString& faceName = "",
+                       bool underline = false,
+                       const wxString& faceName = wxEmptyString,
                        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
     static wxFont* New(const wxSize& pixelSize,
                        wxFontFamily family,
                        int flags = wxFONTFLAG_DEFAULT,
-                       const wxString& faceName = "",
+                       const wxString& faceName = wxEmptyString,
                        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
     //@}
 
@@ -554,8 +546,8 @@ public:
 
         @beginTable
         @hdr3col{platform, generic syntax, example}
-        @row3col{wxGTK2, @c [FACE-NAME] [bold] [oblique|italic] [POINTSIZE], Monospace bold 10}
-        @row3col{wxMSW, @c [light|bold] [italic] [FACE-NAME] [POINTSIZE] [ENCODING], Tahoma 10 WINDOWS-1252}
+        @row3col{wxGTK2, <tt>[FACE-NAME] [bold] [oblique|italic] [POINTSIZE]</tt>, Monospace bold 10}
+        @row3col{wxMSW, <tt>[light|bold] [italic] [FACE-NAME] [POINTSIZE] [ENCODING]</tt>, Tahoma 10 WINDOWS-1252}
         @endTable
 
         @todo add an example for wxMac
@@ -570,6 +562,9 @@ public:
 
     /**
         Sets the point size.
+        
+        The <em>point size</em> is defined as 1/72 of the anglo-Saxon inch 
+        (25.4 mm): it is approximately 0.0139 inch or 352.8 um. 
 
         @param pointSize
             Size in points.
@@ -578,6 +573,21 @@ public:
     */
     virtual void SetPointSize(int pointSize);
 
+    /**
+        Sets the pixel size.
+        
+        The height parameter of @a pixelSize must be positive while the width
+        parameter may also be zero (to indicate that you're not interested in the
+        width of the characters: a suitable width will be chosen for best rendering).
+        
+        This feature (specifying the font pixel size) is directly supported only 
+        under wxMSW and wxGTK currently; under other platforms a font with the 
+        closest size to the given one is found using binary search (this maybe slower).
+
+        @see GetPixelSize()
+    */
+    virtual void SetPixelSize(const wxSize& pixelSize);
+    
     /**
         Sets the font style.
 
@@ -638,24 +648,26 @@ wxFont wxNullFont;
 
 /**
     Equivalent to wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).
+    
+    @see wxSystemSettings
 */
 wxFont wxNORMAL_FONT;
 
 /**
-    A font using the wxFONTFAMILY_SWISS family and 2 points smaller than
+    A font using the @c wxFONTFAMILY_SWISS family and 2 points smaller than
     ::wxNORMAL_FONT.
 */
 wxFont wxSMALL_FONT;
 
 /**
-    A font using the wxFONTFAMILY_ROMAN family and wxFONTSTYLE_ITALIC style and
+    A font using the @c wxFONTFAMILY_ROMAN family and @c wxFONTSTYLE_ITALIC style and
     of the same size of ::wxNORMAL_FONT.
 */
 wxFont wxITALIC_FONT;
 
 /**
     A font identic to ::wxNORMAL_FONT except for the family used which is
-    wxFONTFAMILY_SWISS.
+    @c wxFONTFAMILY_SWISS.
 */
 wxFont wxSWISS_FONT;
 
@@ -709,7 +721,7 @@ wxFontList* wxTheFontList;
 // Global functions/macros
 // ============================================================================
 
-/** @ingroup group_funcmacro_misc */
+/** @addtogroup group_funcmacro_misc */
 //@{
 
 /**