]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/font.h
Fix missing or broken interface items for Phoenix
[wxWidgets.git] / interface / wx / font.h
index f702fdb665169210f91658fc76af6514e277fd43..c8de700f481b2e942089dd7b3aa82ace294c2bbc 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxFont
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -36,11 +36,10 @@ 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
+    wxFONTFAMILY_MAX,
+    /// Invalid font family value, returned by wxFont::GetFamily() when the
+    /// font is invalid for example.
+    wxFONTFAMILY_UNKNOWN = wxFONTFAMILY_MAX
 };
 
 /**
@@ -72,6 +71,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,17 +257,13 @@ 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
 };
 
 
-
 /**
     @class wxFont
 
@@ -385,7 +401,12 @@ public:
         If @a fontdesc is invalid the font remains uninitialized, i.e. its IsOk() method
         will return @false.
      */
-    wxFont(const wxString& fontdesc);
+    wxFont(const wxString& nativeInfoString);
+
+    /**
+       Construct font from a native font info structure.
+    */
+    wxFont(const wxNativeFontInfo& nativeInfo);
 
     /**
         Destructor.
@@ -425,16 +446,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 +464,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 +477,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.
@@ -465,6 +491,8 @@ public:
     */
     wxString GetNativeFontInfoUserDesc() const;
 
+    const wxNativeFontInfo *GetNativeFontInfo() const;
+
     /**
         Gets the point size.
 
@@ -533,7 +561,7 @@ public:
     //@{
 
     /**
-        Return a bold version of this font.
+        Returns a bold version of this font.
 
         @see MakeBold()
 
@@ -542,7 +570,7 @@ public:
     wxFont Bold() const;
 
     /**
-        Return an italic version of this font.
+        Returns an italic version of this font.
 
         @see MakeItalic()
 
@@ -551,17 +579,38 @@ public:
     wxFont Italic() const;
 
     /**
-        Return a larger version of this font.
+        Returns a larger version of this font.
 
-        The font size is multiplied by CSS specification inspired factor of @c
-        1.2.
+        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()
+        @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 Smaller() const;
+
+    /**
+        Returns underlined version of this font.
+
+        @see MakeUnderlined()
+
+        @since 2.9.2
+     */
+    wxFont Underlined() const;
+
     /**
         Changes this font to be bold.
 
@@ -583,8 +632,8 @@ public:
     /**
         Changes this font to be larger.
 
-        The font size is multiplied by CSS specification inspired factor of @c
-        1.2.
+        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()
 
@@ -593,17 +642,26 @@ public:
     wxFont& MakeLarger();
 
     /**
-        Return a smaller version of this font.
+        Changes this font to be smaller.
 
-        The font size is divided by CSS specification inspired factor of @c
-        1.2.
+        The font size is divided by @c 1.2, the factor of @c 1.2 being
+        inspired by the W3C CSS specification.
 
-        @see MakeLarger(), Scale(), Smaller()
+        @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.
 
@@ -617,7 +675,7 @@ public:
     wxFont& Scale(float x);
 
     /**
-        Return a scaled version of this font.
+        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).
@@ -628,18 +686,6 @@ public:
      */
     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;
-
     //@}
 
     /**
@@ -735,6 +781,8 @@ public:
     */
     bool SetNativeFontInfoUserDesc(const wxString& info);
 
+    void SetNativeFontInfo(const wxNativeFontInfo& info);
+        
     /**
         Sets the point size.
 
@@ -773,6 +821,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.
 
@@ -861,6 +931,11 @@ public:
                        int flags = wxFONTFLAG_DEFAULT,
                        const wxString& faceName = wxEmptyString,
                        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
+
+    
+    static wxFont *New(const wxNativeFontInfo& nativeInfo);
+    static wxFont *New(const wxString& nativeInfoString);
+
     //@}
 };