added convenient wxFont::Make{Bold,Italic,Smaller,Larger} and Scale() methods

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-06-12 20:11:21 +00:00
parent 6541fd4b27
commit f76c075805
15 changed files with 141 additions and 62 deletions

View File

@@ -19,23 +19,23 @@
enum wxFontFamily
{
wxFONTFAMILY_DEFAULT = wxDEFAULT, //!< Chooses a default font.
wxFONTFAMILY_DECORATIVE = wxDECORATIVE, //!< A decorative font.
wxFONTFAMILY_ROMAN = wxROMAN, //!< A formal, serif font.
wxFONTFAMILY_SCRIPT = wxSCRIPT, //!< A handwriting font.
wxFONTFAMILY_SWISS = wxSWISS, //!< A sans-serif font.
/// A fixed pitch font. Note that wxFont currently does not make distinctions
/// between @c wxFONTFAMILY_MODERN and @c wxFONTFAMILY_TELETYPE.
wxFONTFAMILY_MODERN = wxMODERN,
/// A teletype (i.e. monospaced) font.
/// Monospace fonts have a fixed width like typewriters and often have strong angular
/// or block serifs. Monospace font faces are often used code samples and have a simple,
/// Monospace fonts have a fixed width like typewriters and often have strong angular
/// or block serifs. Monospace font faces are often used code samples and have a simple,
/// functional font style.
/// 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,
@@ -53,8 +53,8 @@ enum wxFontStyle
/// The font is slanted in an italic style.
wxFONTSTYLE_ITALIC = wxITALIC,
/// The font is slanted, but in a roman style.
/// The font is slanted, but in a roman style.
/// Note that under wxMSW this style is the same as @c wxFONTSTYLE_ITALIC.
wxFONTSTYLE_SLANT = wxSLANT,
@@ -111,7 +111,7 @@ enum wxFontFlag
/**
Font encodings.
See wxFont::SetEncoding().
*/
enum wxFontEncoding
@@ -298,7 +298,7 @@ public:
@param style
One of @c wxFONTSTYLE_NORMAL, @c wxFONTSTYLE_SLANT and @c wxFONTSTYLE_ITALIC.
@param weight
Font weight, sometimes also referred to as font boldness.
Font weight, sometimes also referred to as font boldness.
One of the ::wxFontWeight enumeration values.
@param underline
The value can be @true or @false.
@@ -313,8 +313,8 @@ public:
<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
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>
@@ -359,8 +359,8 @@ public:
<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
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>
@@ -401,21 +401,21 @@ public:
*/
virtual ~wxFont();
/**
@name Getters
*/
//@{
/**
Returns the encoding of this font.
Note that under wxGTK the returned value is always @c wxFONTENCODING_UTF8.
@see SetEncoding()
*/
virtual wxFontEncoding GetEncoding() const;
/**
Returns the face name associated with the font, or the empty string if
there is no face information.
@@ -428,12 +428,12 @@ public:
Gets the font family.
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.
Note that currently this function is rather unreliable (@c wxFONTFAMILY_UNKNOWN
is returned in too many cases) and not particularly useful.
is returned in too many cases) and not particularly useful.
Font families mostly make sense only for font creation; see SetFamily().
@see SetFamily()
@@ -454,7 +454,7 @@ public:
/**
Returns a user-friendly string for this font object.
Returned string is always non-empty.
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.
@@ -474,7 +474,7 @@ public:
/**
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.
@@ -482,7 +482,7 @@ public:
@see SetPixelSize()
*/
virtual wxSize GetPixelSize() const;
/**
Gets the font style. See ::wxFontStyle for a list of valid styles.
@@ -507,7 +507,7 @@ public:
/**
Returns @true if the font is a fixed width (or monospaced) font,
@false if it is a proportional one or font is invalid.
Note that this function under some platforms is different than just testing
for the font family being equal to @c wxFONTFAMILY_TELETYPE because native
platform-specific functions are used for the check (resulting in a more
@@ -519,14 +519,61 @@ public:
Returns @true if this object is a valid font, @false otherwise.
*/
virtual bool IsOk() const;
//@}
/**
@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.
*/
//@{
/**
Return a bold version of this font.
*/
wxFont MakeBold() const;
/**
Return an italic version of this font.
*/
wxFont MakeItalic() const;
/**
Return a larger version of this font.
The font size is multiplied by CSS specification inspired factor of @c
1.2.
@see MakeSmaller(), Scale()
*/
wxFont MakeLarger() const;
/**
Return a smaller version of this font.
The font size is divided by CSS specification inspired factor of @c
1.2.
@see MakeLarger(), Scale()
*/
wxFont MakeSmaller() const;
/**
Return 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).
*/
wxFont Scale(float x) const;
//@}
/**
@name Setters
These functions internally recreate the native font object with the new
specified property.
*/
@@ -534,10 +581,10 @@ public:
/**
Sets the encoding for this font.
Note that under wxGTK this function has no effect (because the underlying
Pango library always uses @c wxFONTENCODING_UTF8).
@see GetEncoding()
*/
virtual void SetEncoding(wxFontEncoding encoding);
@@ -552,7 +599,7 @@ public:
but specify the font family instead (see ::wxFontFamily and SetFamily()).
@return @true if the given face name exists; if the face name doesn't exist
in the user's system then the font is invalidated (so that IsOk() will
in the user's system then the font is invalidated (so that IsOk() will
return @false) and @false is returned.
@see GetFaceName(), SetFamily()
@@ -561,7 +608,7 @@ public:
/**
Sets the font family.
As described in ::wxFontFamily docs the given @a family value acts as a rough,
basic indication of the main font properties (look, spacing).
@@ -606,7 +653,7 @@ public:
For more detailed information about the allowed syntaxes you can look at the
documentation of the native API used for font-rendering
(e.g. @c pango_font_description_from_string on GTK).
Note that unlike SetNativeFontInfo(), this function doesn't always restore all
attributes of the wxFont object under all platforms; e.g. on wxMSW the font family
is not restored (because GetNativeFontInfoUserDesc doesn't return it on wxMSW).
@@ -619,9 +666,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.
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.
@@ -632,19 +679,19 @@ public:
/**
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
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.
@@ -674,7 +721,7 @@ public:
@see GetWeight()
*/
virtual void SetWeight(wxFontWeight weight);
//@}
@@ -698,8 +745,8 @@ public:
Assignment operator, using @ref overview_refcount "reference counting".
*/
wxFont& operator =(const wxFont& font);
// statics
/**
@@ -715,7 +762,7 @@ public:
@see @ref overview_fontencoding, GetDefaultEncoding()
*/
static void SetDefaultEncoding(wxFontEncoding encoding);
//@{
/**
This function takes the same parameters as the relative
@@ -754,7 +801,7 @@ wxFont wxNullFont;
/**
Equivalent to wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).
@see wxSystemSettings
*/
wxFont wxNORMAL_FONT;