wxFont::MakeXXX() and Scale() methods now modify the font in place; XXX() and Scaled() create new font

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-06-17 21:27:37 +00:00
parent a188ac2988
commit 6e7d2550ce
4 changed files with 115 additions and 20 deletions

View File

@@ -356,7 +356,7 @@ All (GUI):
- Added wxMouseEventsManager. - Added wxMouseEventsManager.
- Building OpenGL library is now enabled by default. - Building OpenGL library is now enabled by default.
- Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel). - Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel).
- Added wxFont::Make{Bold,Italic,Smaller,Larger} and Scale() methods. - Added wxFont::[Make]{Bold,Italic,Smaller,Larger} and Scale[d]() methods.
- Added wxDC::CopyAttributes() and use it in wxBufferedDC. - Added wxDC::CopyAttributes() and use it in wxBufferedDC.
- Added wxTextWrapper helper class useful for wrapping lines of text. - Added wxTextWrapper helper class useful for wrapping lines of text.

View File

@@ -297,12 +297,18 @@ WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font);
#define wxDECLARE_COMMON_FONT_METHODS() \ #define wxDECLARE_COMMON_FONT_METHODS() \
wxDECLARE_FONT_COMPAT_SETTER \ wxDECLARE_FONT_COMPAT_SETTER \
\ \
/* functions for modifying font in place */ \
wxFont& MakeBold(); \
wxFont& MakeItalic(); \
wxFont& MakeLarger() { return Scale(1.2f); } \
wxFont& MakeSmaller() { return Scale(1/1.2f); } \
wxFont& Scale(float x); \
/* functions for creating fonts based on this one */ \ /* functions for creating fonts based on this one */ \
wxFont MakeBold() const; \ wxFont Bold() const; \
wxFont MakeItalic() const; \ wxFont Italic() const; \
wxFont MakeLarger() const { return Scale(1.2f); } \ wxFont Larger() const { return Scaled(1.2f); } \
wxFont MakeSmaller() const { return Scale(1/1.2f); } \ wxFont Smaller() const { return Scaled(1/1.2f); } \
wxFont Scale(float x) const wxFont Scaled(float x) const
// include the real class declaration // include the real class declaration
#if defined(__WXPALMOS__) #if defined(__WXPALMOS__)

View File

@@ -526,20 +526,29 @@ public:
/** /**
@name Similar fonts creation @name Similar fonts creation
The functions in this section create a font similar to the given one The functions in this section either modify the font in place or create
but with its weight, style or size changed. a new font similar to the given one but with its weight, style or size
changed.
*/ */
//@{ //@{
/** /**
Return a bold version of this font. Return a bold version of this font.
@see MakeBold()
@since 2.9.1
*/ */
wxFont MakeBold() const; wxFont Bold() const;
/** /**
Return an italic version of this font. Return an italic version of this font.
@see MakeItalic()
@since 2.9.1
*/ */
wxFont MakeItalic() const; wxFont Italic() const;
/** /**
Return a larger version of this font. Return a larger version of this font.
@@ -547,9 +556,41 @@ public:
The font size is multiplied by CSS specification inspired factor of @c The font size is multiplied by CSS specification inspired factor of @c
1.2. 1.2.
@see MakeSmaller(), Scale() @see Larger(), MakeSmaller(), Scale()
@since 2.9.1
*/ */
wxFont MakeLarger() const; wxFont Larger() const;
/**
Changes this font to be bold.
@see Bold()
@since 2.9.1
*/
wxFont& MakeBold();
/**
Changes this font to be italic.
@see Italic()
@since 2.9.1
*/
wxFont& MakeItalic();
/**
Changes this font to be larger.
The font size is multiplied by CSS specification inspired factor of @c
1.2.
@see Larger(), MakeSmaller(), Scale()
@since 2.9.1
*/
wxFont& MakeLarger();
/** /**
Return a smaller version of this font. Return a smaller version of this font.
@@ -557,17 +598,47 @@ public:
The font size is divided by CSS specification inspired factor of @c The font size is divided by CSS specification inspired factor of @c
1.2. 1.2.
@see MakeLarger(), Scale() @see MakeLarger(), Scale(), Smaller()
@since 2.9.1
*/ */
wxFont MakeSmaller() const; wxFont& MakeSmaller();
/**
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);
/** /**
Return a scaled version of this font. Return a scaled version of this font.
The font size is multiplied by the given factor (which may be less than The font size is multiplied by the given factor (which may be less than
1 to create a smaller version of the font). 1 to create a smaller version of the font).
@see Scale(), Larger(), Smaller()
@since 2.9.1
*/ */
wxFont Scale(float x) const; wxFont Scaled(float x) const;
/**
Return a smaller version of this font.
The font size is divided by CSS specification inspired factor of @c
1.2.
@see Larger(), MakeSmaller(), Scaled()
@since 2.9.1
*/
wxFont Smaller() const;
//@} //@}

View File

@@ -421,24 +421,42 @@ bool wxFontBase::SetFaceName(const wxString& facename)
return true; return true;
} }
wxFont wxFont::MakeBold() const wxFont& wxFont::MakeBold()
{
SetWeight(wxFONTWEIGHT_BOLD);
return *this;
}
wxFont wxFont::Bold() const
{ {
wxFont font(*this); wxFont font(*this);
font.SetWeight(wxFONTWEIGHT_BOLD); font.MakeBold();
return font; return font;
} }
wxFont wxFont::MakeItalic() const wxFont& wxFont::MakeItalic()
{
SetStyle(wxFONTSTYLE_ITALIC);
return *this;
}
wxFont wxFont::Italic() const
{ {
wxFont font(*this); wxFont font(*this);
font.SetStyle(wxFONTSTYLE_ITALIC); font.SetStyle(wxFONTSTYLE_ITALIC);
return font; return font;
} }
wxFont wxFont::Scale(float x) const wxFont& wxFont::Scale(float x)
{
SetPointSize(int(x*GetPointSize() + 0.5));
return *this;
}
wxFont wxFont::Scaled(float x) const
{ {
wxFont font(*this); wxFont font(*this);
font.SetPointSize(int(x*GetPointSize() + 0.5)); font.Scale(x);
return font; return font;
} }