]> git.saurik.com Git - wxWidgets.git/commitdiff
added convenient wxFont::Make{Bold,Italic,Smaller,Larger} and Scale() methods
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Jun 2009 20:11:21 +0000 (20:11 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Jun 2009 20:11:21 +0000 (20:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

15 files changed:
docs/changes.txt
include/wx/cocoa/font.h
include/wx/dfb/font.h
include/wx/font.h
include/wx/gtk/font.h
include/wx/gtk1/font.h
include/wx/mgl/font.h
include/wx/motif/font.h
include/wx/msw/font.h
include/wx/os2/font.h
include/wx/osx/font.h
include/wx/palmos/font.h
include/wx/x11/font.h
interface/wx/font.h
src/common/fontcmn.cpp

index 5fccff31e70560a035279d14f771ffb702ea1b24..239b8ebde675bdf2217877135c307105cba73320 100644 (file)
@@ -346,6 +346,7 @@ All (GUI):
 - Added wxMouseEventsManager.
 - Building OpenGL library is now enabled by default.
 - Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel).
 - Added wxMouseEventsManager.
 - Building OpenGL library is now enabled by default.
 - Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel).
+- Added wxFont::Make{Bold,Italic,Smaller,Larger} and Scale() methods.
 - Added wxDC::CopyAttributes() and use it in wxBufferedDC.
 - Added wxTextWrapper helper class useful for wrapping lines of text.
 
 - Added wxDC::CopyAttributes() and use it in wxBufferedDC.
 - Added wxTextWrapper helper class useful for wrapping lines of text.
 
index acda832c6978d69767adb399039815acd3128a0e..ae5686f98d46cc8cd6dbcb98d5db8e7d8d6a07d5 100644 (file)
@@ -119,7 +119,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     // implementation only from now on
     // -------------------------------
 
     // implementation only from now on
     // -------------------------------
index 941f513deec8e17a250a56643994d4730009417e..def7085e070efb3576b9634401a8e5732557e981 100644 (file)
@@ -88,7 +88,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     // Unofficial API, don't use
     virtual void SetNoAntiAliasing(bool no = true);
 
     // Unofficial API, don't use
     virtual void SetNoAntiAliasing(bool no = true);
index ec8ed80d6caec2ee2943f0abc4b795bfe1e0f99c..873ba84a4a77dce291d00be0a1003e194767e130 100644 (file)
@@ -276,7 +276,7 @@ WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font);
 
 
 #if FUTURE_WXWIN_COMPATIBILITY_3_0
 
 
 #if FUTURE_WXWIN_COMPATIBILITY_3_0
-#define WXDECLARE_COMPAT_SETTERS   \
+#define wxDECLARE_FONT_COMPAT_SETTER   \
     wxDEPRECATED_FUTURE( void SetFamily(int family) ) \
         { SetFamily((wxFontFamily)family); } \
     wxDEPRECATED_FUTURE( void SetStyle(int style) ) \
     wxDEPRECATED_FUTURE( void SetFamily(int family) ) \
         { SetFamily((wxFontFamily)family); } \
     wxDEPRECATED_FUTURE( void SetStyle(int style) ) \
@@ -290,9 +290,20 @@ WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font);
     wxDEPRECATED_FUTURE( void SetWeight(wxDeprecatedGUIConstants weight) ) \
         { SetWeight((wxFontWeight)weight); }
 #else
     wxDEPRECATED_FUTURE( void SetWeight(wxDeprecatedGUIConstants weight) ) \
         { SetWeight((wxFontWeight)weight); }
 #else
-#define WXDECLARE_COMPAT_SETTERS  /*empty*/
+#define wxDECLARE_FONT_COMPAT_SETTER  /*empty*/
 #endif
 
 #endif
 
+// this macro must be used in all derived wxFont classes declarations
+#define wxDECLARE_COMMON_FONT_METHODS() \
+    wxDECLARE_FONT_COMPAT_SETTER \
+ \
+    /* functions for creating fonts based on this one */ \
+    wxFont MakeBold() const; \
+    wxFont MakeItalic() const; \
+    wxFont MakeLarger() const { return Scale(1.2f); } \
+    wxFont MakeSmaller() const { return Scale(1/1.2f); } \
+    wxFont Scale(float x) const
+
 // include the real class declaration
 #if defined(__WXPALMOS__)
     #include "wx/palmos/font.h"
 // include the real class declaration
 #if defined(__WXPALMOS__)
     #include "wx/palmos/font.h"
index 4fb065741cbb84eda8771e4070aedd7d3b70f9c5..8e03364bcaffb468964acfe30383c2c4fb82f6dc 100644 (file)
@@ -95,7 +95,7 @@ public:
     virtual void SetUnderlined( bool underlined );
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined( bool underlined );
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     virtual void SetNoAntiAliasing( bool no = true );
     virtual bool GetNoAntiAliasing() const ;
 
     virtual void SetNoAntiAliasing( bool no = true );
     virtual bool GetNoAntiAliasing() const ;
index de10438926b4f867f69afc69a25b1fa49fcb6bcc..0686c3934f2cd0992c902a55cbbd8c0bc7968ecd 100644 (file)
@@ -109,7 +109,7 @@ public:
     virtual void SetUnderlined( bool underlined );
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined( bool underlined );
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     virtual void SetNoAntiAliasing( bool no = true );
     virtual bool GetNoAntiAliasing() const ;
 
     virtual void SetNoAntiAliasing( bool no = true );
     virtual bool GetNoAntiAliasing() const ;
index 8625ccdd59c153e9622c913ad0731c8217b0b64a..a94a28c3eaa026f1a1a0acbfab0f59ba96c82846 100644 (file)
@@ -104,7 +104,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     // Unofficial API, don't use
     virtual void SetNoAntiAliasing(bool no = true);
 
     // Unofficial API, don't use
     virtual void SetNoAntiAliasing(bool no = true);
index 6c59225a13e821a72c3d9efa3f966061cf65c4a8..80f86980ae7c6fe0d7d9996534d11ac356c2ba82 100644 (file)
@@ -99,7 +99,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     // Implementation
 
 
     // Implementation
 
index 4756c68eab3b0ed3dd4c618ccd2b528ee040ad37..afadf95e08412b5cac5048010a7e90b088ecda59 100644 (file)
@@ -135,7 +135,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     virtual bool IsFixedWidth() const;
 
 
     virtual bool IsFixedWidth() const;
 
index e4a2f1d608fedf9df06a300da504f28771b527ae..ef692625d2a3f6f5e0ce0d01b50c0ceb29a70c17 100644 (file)
@@ -109,7 +109,7 @@ public:
     virtual void SetUnderlined(bool bUnderlined);
     virtual void SetEncoding(wxFontEncoding vEncoding);
 
     virtual void SetUnderlined(bool bUnderlined);
     virtual void SetEncoding(wxFontEncoding vEncoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     //
     // For internal use only!
 
     //
     // For internal use only!
index c005e55be33505f229c72783e4c2997d3ebe99ad..79fb78b7c49402a18e279e66f612d7b09fd501ba 100644 (file)
@@ -113,7 +113,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     // implementation only from now on
     // -------------------------------
 
     // implementation only from now on
     // -------------------------------
index a800719d7c5f28c43c06abec4327edc8335ae524..716fd9a247b79a7c5d019be3a2a580bab9a7af52 100644 (file)
@@ -116,7 +116,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     virtual bool IsFixedWidth() const;
 
 
     virtual bool IsFixedWidth() const;
 
index 1093602daf0606b1f61a0faf3b2249a7add80974..bfe33ee3e0d75f8f71ddcbfbe9d84a1cf9b0798b 100644 (file)
@@ -98,7 +98,7 @@ public:
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
     virtual void SetUnderlined(bool underlined);
     virtual void SetEncoding(wxFontEncoding encoding);
 
-    WXDECLARE_COMPAT_SETTERS
+    wxDECLARE_COMMON_FONT_METHODS();
 
     virtual void SetNoAntiAliasing( bool no = TRUE );
     virtual bool GetNoAntiAliasing() const ;
 
     virtual void SetNoAntiAliasing( bool no = TRUE );
     virtual bool GetNoAntiAliasing() const ;
index b880ee1cecbf0aa8236ff873d89d1b54b1036373..c814de2baae65577c1bb68e7b3a35c47108e9fee 100644 (file)
 enum wxFontFamily
 {
     wxFONTFAMILY_DEFAULT = wxDEFAULT,           //!< Chooses a default font.
 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.
     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 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.
     /// 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,
     /// 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,
     /// 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 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,
 
     /// Note that under wxMSW this style is the same as @c wxFONTSTYLE_ITALIC.
     wxFONTSTYLE_SLANT = wxSLANT,
 
@@ -111,7 +111,7 @@ enum wxFontFlag
 
 /**
     Font encodings.
 
 /**
     Font encodings.
-    
+
     See wxFont::SetEncoding().
 */
 enum wxFontEncoding
     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
         @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.
             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
                 <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>
                     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
                 <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>
                     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();
 
     */
     virtual ~wxFont();
 
-    
+
     /**
         @name Getters
     */
     //@{
     /**
         @name Getters
     */
     //@{
-    
+
     /**
         Returns the encoding of this font.
     /**
         Returns the encoding of this font.
-        
+
         Note that under wxGTK the returned value is always @c wxFONTENCODING_UTF8.
         Note that under wxGTK the returned value is always @c wxFONTENCODING_UTF8.
-        
+
         @see SetEncoding()
     */
     virtual wxFontEncoding GetEncoding() const;
         @see SetEncoding()
     */
     virtual wxFontEncoding GetEncoding() const;
-    
+
     /**
         Returns the face name associated with the font, or the empty string if
         there is no face information.
     /**
         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).
         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.
         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
         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()
         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.
     /**
         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.
 
         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.
 
     /**
         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.
         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;
         @see SetPixelSize()
     */
     virtual wxSize GetPixelSize() const;
-    
+
     /**
         Gets the font style. See ::wxFontStyle for a list of valid styles.
 
     /**
         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.
     /**
         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
         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;
         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
     /**
         @name Setters
-        
+
         These functions internally recreate the native font object with the new
         specified property.
     */
         These functions internally recreate the native font object with the new
         specified property.
     */
@@ -534,10 +581,10 @@ public:
 
     /**
         Sets the encoding for this font.
 
     /**
         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).
         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);
         @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
                  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()
                 return @false) and @false is returned.
 
         @see GetFaceName(), SetFamily()
@@ -561,7 +608,7 @@ public:
 
     /**
         Sets the font family.
 
     /**
         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).
 
         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).
         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).
         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.
 
     /**
         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.
 
         @param pointSize
             Size in points.
@@ -632,19 +679,19 @@ public:
 
     /**
         Sets the pixel size.
 
     /**
         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).
         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);
         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.
 
     /**
         Sets the font style.
 
@@ -674,7 +721,7 @@ public:
         @see GetWeight()
     */
     virtual void SetWeight(wxFontWeight weight);
         @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);
         Assignment operator, using @ref overview_refcount "reference counting".
     */
     wxFont& operator =(const wxFont& font);
-    
-    
+
+
     // statics
 
     /**
     // statics
 
     /**
@@ -715,7 +762,7 @@ public:
         @see @ref overview_fontencoding, GetDefaultEncoding()
     */
     static void SetDefaultEncoding(wxFontEncoding encoding);
         @see @ref overview_fontencoding, GetDefaultEncoding()
     */
     static void SetDefaultEncoding(wxFontEncoding encoding);
-    
+
     //@{
     /**
         This function takes the same parameters as the relative
     //@{
     /**
         This function takes the same parameters as the relative
@@ -754,7 +801,7 @@ wxFont wxNullFont;
 
 /**
     Equivalent to wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).
 
 /**
     Equivalent to wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).
-    
+
     @see wxSystemSettings
 */
 wxFont wxNORMAL_FONT;
     @see wxSystemSettings
 */
 wxFont wxNORMAL_FONT;
index ef779b3fb4f1d66f015ab236eaf4e35558e5907e..887145f0e097226515249beea9db3b757dbc5709 100644 (file)
@@ -421,6 +421,26 @@ bool wxFontBase::SetFaceName(const wxString& facename)
     return true;
 }
 
     return true;
 }
 
+wxFont wxFont::MakeBold() const
+{
+    wxFont font(*this);
+    font.SetWeight(wxFONTWEIGHT_BOLD);
+    return font;
+}
+
+wxFont wxFont::MakeItalic() const
+{
+    wxFont font(*this);
+    font.SetStyle(wxFONTSTYLE_ITALIC);
+    return font;
+}
+
+wxFont wxFont::Scale(float x) const
+{
+    wxFont font(*this);
+    font.SetPointSize(int(x*GetPointSize() + 0.5));
+    return font;
+}
 
 // ----------------------------------------------------------------------------
 // wxNativeFontInfo
 
 // ----------------------------------------------------------------------------
 // wxNativeFontInfo