X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a44f3b5a890fbb2a88ef9adafd94f662e1664889..f1ddb476b1d90a1e24f904eb74462f5dc5165442:/interface/wx/font.h diff --git a/interface/wx/font.h b/interface/wx/font.h index a008843ba7..6b600a95f7 100644 --- a/interface/wx/font.h +++ b/interface/wx/font.h @@ -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: - - - - - + + + + +
wxFONTENCODING_SYSTEMDefault system encoding.
wxFONTENCODING_DEFAULT - 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.
wxFONTENCODING_ISO8859_1...15ISO8859 encodings.
wxFONTENCODING_KOI8The standard Russian encoding for Internet.
wxFONTENCODING_CP1250...1252Windows encodings similar to ISO8859 (but not identical).
@c wxFONTENCODING_SYSTEMDefault system encoding.
@c wxFONTENCODING_DEFAULT + 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.
@c wxFONTENCODING_ISO8859_1...15ISO8859 encodings.
@c wxFONTENCODING_KOI8The standard Russian encoding for Internet.
@c wxFONTENCODING_CP1250...1252Windows encodings similar to ISO8859 (but not identical).
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: - - - - - + + + + +
wxFONTENCODING_SYSTEMDefault system encoding.
wxFONTENCODING_DEFAULT - 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.
wxFONTENCODING_ISO8859_1...15ISO8859 encodings.
wxFONTENCODING_KOI8The standard Russian encoding for Internet.
wxFONTENCODING_CP1250...1252Windows encodings similar to ISO8859 (but not identical).
@c wxFONTENCODING_SYSTEMDefault system encoding.
@c wxFONTENCODING_DEFAULT + 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.
@c wxFONTENCODING_ISO8859_1...15ISO8859 encodings.
@c wxFONTENCODING_KOI8The standard Russian encoding for Internet.
@c wxFONTENCODING_CP1250...1252Windows encodings similar to ISO8859 (but not identical).
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, [FACE-NAME] [bold] [oblique|italic] [POINTSIZE], Monospace bold 10} + @row3col{wxMSW, [light|bold] [italic] [FACE-NAME] [POINTSIZE] [ENCODING], Tahoma 10 WINDOWS-1252} @endTable @todo add an example for wxMac @@ -570,6 +562,9 @@ public: /** Sets the point size. + + The point size 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 */ //@{ /**