X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f76c075805027058f08ffba0e8c1b32372f5fd44..b22a1070b3f2de8ef85d34a841b5230aa08db967:/interface/wx/font.h diff --git a/interface/wx/font.h b/interface/wx/font.h index c814de2baa..3d4d3b1fdc 100644 --- a/interface/wx/font.h +++ b/interface/wx/font.h @@ -3,7 +3,7 @@ // Purpose: interface of wxFont // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -36,11 +36,9 @@ enum wxFontFamily /// See also wxFont::IsFixedWidth() for an easy way to test for monospace property. wxFONTFAMILY_TELETYPE = wxTELETYPE, - /// Returned by wxFont::GetFamily() when the face name of the font cannot - /// be classified into one of the previous wxFontFamily values. - wxFONTFAMILY_UNKNOWN = wxFONTFAMILY_MAX, - - wxFONTFAMILY_MAX + /// Invalid font family value, returned by wxFont::GetFamily() when the + /// font is invalid for example. + wxFONTFAMILY_UNKNOWN }; /** @@ -72,6 +70,27 @@ enum wxFontWeight wxFONTWEIGHT_MAX }; +/** + Symbolic font sizes. + + The elements of this enum correspond to CSS absolute size specifications, + see http://www.w3.org/TR/CSS21/fonts.html#font-size-props + + @see wxFont::SetSymbolicSize() + + @since 2.9.2 + */ +enum wxFontSymbolicSize +{ + wxFONTSIZE_XX_SMALL = -3, //!< Extra small. + wxFONTSIZE_X_SMALL, //!< Very small. + wxFONTSIZE_SMALL, //!< Small. + wxFONTSIZE_MEDIUM, //!< Normal. + wxFONTSIZE_LARGE, //!< Large. + wxFONTSIZE_X_LARGE, //!< Very large. + wxFONTSIZE_XX_LARGE //!< Extra large. +}; + /** The font flag bits for the new font ctor accepting one combined flags word. */ @@ -237,13 +256,10 @@ enum wxFontEncoding /// (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 - - // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html) - wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932 //!< Shift JIS + wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, //!< Shift JIS + wxFONTENCODING_EUC_KR = wxFONTENCODING_CP949 //!< Korean }; @@ -425,16 +441,17 @@ public: virtual wxString GetFaceName() const; /** - Gets the font family. + Gets the font family if possible. + As described in ::wxFontFamily docs the returned value acts as a rough, basic classification of the main font properties (look, spacing). If the current font face name is not recognized by wxFont or by the - underlying system, @c wxFONTFAMILY_UNKNOWN is returned. + underlying system, @c wxFONTFAMILY_DEFAULT is returned. - Note that currently this function is rather unreliable (@c wxFONTFAMILY_UNKNOWN - is returned in too many cases) and not particularly useful. - Font families mostly make sense only for font creation; see SetFamily(). + Note that currently this function is not very precise and so not + particularly useful. Font families mostly make sense only for font + creation, see SetFamily(). @see SetFamily() */ @@ -442,7 +459,9 @@ public: /** Returns the platform-dependent string completely describing this font. - Returned string is always non-empty. + + Returned string is always non-empty unless the font is invalid (in + which case an assert is triggered). Note that the returned string is not meant to be shown or edited by the user: a typical use of this function is for serializing in string-form a wxFont object. @@ -453,7 +472,9 @@ public: /** Returns a user-friendly string for this font object. - Returned string is always non-empty. + + Returned string is always non-empty unless the font is invalid (in + which case an assert is triggered). The string does not encode all wxFont infos under all platforms; e.g. under wxMSW the font family is not present in the returned string. @@ -526,48 +547,137 @@ public: /** @name Similar fonts creation - The functions in this section create a font similar to the given one - but with its weight, style or size changed. + The functions in this section either modify the font in place or create + a new font similar to the given one but with its weight, style or size + changed. */ //@{ /** - Return a bold version of this font. + Returns a bold version of this font. + + @see MakeBold() + + @since 2.9.1 + */ + wxFont Bold() const; + + /** + Returns an italic version of this font. + + @see MakeItalic() + + @since 2.9.1 + */ + wxFont Italic() const; + + /** + Returns a larger version of this font. + + The font size is multiplied by @c 1.2, the factor of @c 1.2 being + inspired by the W3C CSS specification. + + @see MakeLarger(), Smaller(), Scaled() + + @since 2.9.1 + */ + wxFont Larger() const; + + /** + Returns a smaller version of this font. + + The font size is divided by @c 1.2, the factor of @c 1.2 being + inspired by the W3C CSS specification. + + @see MakeSmaller(), Larger(), Scaled() + + @since 2.9.1 */ - wxFont MakeBold() const; + wxFont Smaller() const; /** - Return an italic version of this font. + Returns underlined version of this font. + + @see MakeUnderlined() + + @since 2.9.2 */ - wxFont MakeItalic() const; + wxFont Underlined() const; /** - Return a larger version of this font. + Changes this font to be bold. - The font size is multiplied by CSS specification inspired factor of @c - 1.2. + @see Bold() - @see MakeSmaller(), Scale() + @since 2.9.1 */ - wxFont MakeLarger() const; + wxFont& MakeBold(); /** - Return a smaller version of this font. + Changes this font to be italic. - The font size is divided by CSS specification inspired factor of @c - 1.2. + @see Italic() - @see MakeLarger(), Scale() + @since 2.9.1 */ - wxFont MakeSmaller() const; + wxFont& MakeItalic(); /** - Return a scaled version of this font. + Changes this font to be larger. + + The font size is multiplied by @c 1.2, the factor of @c 1.2 being + inspired by the W3C CSS specification. + + @see Larger(), MakeSmaller(), Scale() + + @since 2.9.1 + */ + wxFont& MakeLarger(); + + /** + Changes this font to be smaller. + + The font size is divided by @c 1.2, the factor of @c 1.2 being + inspired by the W3C CSS specification. + + @see Smaller(), MakeLarger(), Scale() + + @since 2.9.1 + */ + wxFont& MakeSmaller(); + + /** + Changes this font to be underlined. + + @see Underlined() + + @since 2.9.2 + */ + wxFont& MakeUnderlined(); + + /** + Changes the size of this font. The font size is multiplied by the given factor (which may be less than 1 to create a smaller version of the font). + + @see Scaled(), MakeLarger(), MakeSmaller() + + @since 2.9.1 */ - wxFont Scale(float x) const; + wxFont& Scale(float x); + + /** + Returns a scaled version of this font. + + The font size is multiplied by the given factor (which may be less than + 1 to create a smaller version of the font). + + @see Scale(), Larger(), Smaller() + + @since 2.9.1 + */ + wxFont Scaled(float x) const; //@} @@ -702,6 +812,28 @@ public: */ virtual void SetStyle(wxFontStyle style); + /** + Sets the font size using a predefined symbolic size name. + + This function allows to change font size to be (very) large or small + compared to the standard font size. + + @see SetSymbolicSizeRelativeTo(). + + @since 2.9.2 + */ + void SetSymbolicSize(wxFontSymbolicSize size); + + /** + Sets the font size compared to the base font size. + + This is the same as SetSymbolicSize() except that it uses the given + font size as the normal font size instead of the standard font size. + + @since 2.9.2 + */ + void SetSymbolicSizeRelativeTo(wxFontSymbolicSize size, int base); + /** Sets underlining.