]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/font.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / font.h
index 0d70d3f41a02e0bd85547d9571156e9aacb6f918..b14281221e0ffcb638a3a0dddb658715a3bde063 100644 (file)
@@ -227,6 +227,7 @@ public:
     virtual wxFontStyle GetStyle() const = 0;
     virtual wxFontWeight GetWeight() const = 0;
     virtual bool GetUnderlined() const = 0;
     virtual wxFontStyle GetStyle() const = 0;
     virtual wxFontWeight GetWeight() const = 0;
     virtual bool GetUnderlined() const = 0;
+    virtual bool GetStrikethrough() const { return false; }
     virtual wxString GetFaceName() const = 0;
     virtual wxFontEncoding GetEncoding() const = 0;
     virtual const wxNativeFontInfo *GetNativeFontInfo() const = 0;
     virtual wxString GetFaceName() const = 0;
     virtual wxFontEncoding GetEncoding() const = 0;
     virtual const wxNativeFontInfo *GetNativeFontInfo() const = 0;
@@ -244,6 +245,7 @@ public:
     virtual void SetWeight( wxFontWeight weight ) = 0;
 
     virtual void SetUnderlined( bool underlined ) = 0;
     virtual void SetWeight( wxFontWeight weight ) = 0;
 
     virtual void SetUnderlined( bool underlined ) = 0;
+    virtual void SetStrikethrough( bool WXUNUSED(strikethrough) ) {}
     virtual void SetEncoding(wxFontEncoding encoding) = 0;
     virtual bool SetFaceName( const wxString& faceName );
     void SetNativeFontInfo(const wxNativeFontInfo& info)
     virtual void SetEncoding(wxFontEncoding encoding) = 0;
     virtual bool SetFaceName( const wxString& faceName );
     void SetNativeFontInfo(const wxNativeFontInfo& info)
@@ -290,6 +292,37 @@ protected:
     // wxFONTFAMILY_UNKNOWN unlike the public method (see comment there).
     virtual wxFontFamily DoGetFamily() const = 0;
 
     // wxFONTFAMILY_UNKNOWN unlike the public method (see comment there).
     virtual wxFontFamily DoGetFamily() const = 0;
 
+
+    // Helper functions to recover wxFONTSTYLE/wxFONTWEIGHT and underlined flg
+    // values from flags containing a combination of wxFONTFLAG_XXX.
+    static wxFontStyle GetStyleFromFlags(int flags)
+    {
+        return flags & wxFONTFLAG_ITALIC
+                        ? wxFONTSTYLE_ITALIC
+                        : flags & wxFONTFLAG_SLANT
+                            ? wxFONTSTYLE_SLANT
+                            : wxFONTSTYLE_NORMAL;
+    }
+
+    static wxFontWeight GetWeightFromFlags(int flags)
+    {
+        return flags & wxFONTFLAG_LIGHT
+                        ? wxFONTWEIGHT_LIGHT
+                        : flags & wxFONTFLAG_BOLD
+                            ? wxFONTWEIGHT_BOLD
+                            : wxFONTWEIGHT_NORMAL;
+    }
+
+    static bool GetUnderlinedFromFlags(int flags)
+    {
+        return (flags & wxFONTFLAG_UNDERLINED) != 0;
+    }
+
+    static bool GetStrikethroughFromFlags(int flags)
+    {
+        return (flags & wxFONTFLAG_STRIKETHROUGH) != 0;
+    }
+
 private:
     // the currently default encoding: by default, it's the default system
     // encoding, but may be changed by the application using
 private:
     // the currently default encoding: by default, it's the default system
     // encoding, but may be changed by the application using
@@ -329,6 +362,7 @@ WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font);
     wxFont& MakeBold(); \
     wxFont& MakeItalic(); \
     wxFont& MakeUnderlined(); \
     wxFont& MakeBold(); \
     wxFont& MakeItalic(); \
     wxFont& MakeUnderlined(); \
+    wxFont& MakeStrikethrough(); \
     wxFont& MakeLarger() { return Scale(1.2f); } \
     wxFont& MakeSmaller() { return Scale(1/1.2f); } \
     wxFont& Scale(float x); \
     wxFont& MakeLarger() { return Scale(1.2f); } \
     wxFont& MakeSmaller() { return Scale(1/1.2f); } \
     wxFont& Scale(float x); \
@@ -336,6 +370,7 @@ WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font);
     wxFont Bold() const; \
     wxFont Italic() const; \
     wxFont Underlined() const; \
     wxFont Bold() const; \
     wxFont Italic() const; \
     wxFont Underlined() const; \
+    wxFont Strikethrough() const; \
     wxFont Larger() const { return Scaled(1.2f); } \
     wxFont Smaller() const { return Scaled(1/1.2f); } \
     wxFont Scaled(float x) const
     wxFont Larger() const { return Scaled(1.2f); } \
     wxFont Smaller() const { return Scaled(1/1.2f); } \
     wxFont Scaled(float x) const