X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9d7a8e4ab4592ca9fac2fc3e931eb7b5ef7fcf89..29de6f400ce48a9ce52c4aa900d8d1edb178d5ba:/include/wx/font.h diff --git a/include/wx/font.h b/include/wx/font.h index 744e4fefeb..6f39a459c4 100644 --- a/include/wx/font.h +++ b/include/wx/font.h @@ -70,7 +70,7 @@ enum wxFontWeight }; // the font flag bits for the new font ctor accepting one combined flags word -enum +enum wxFontFlag { // no special flags: font with default weight/slant/anti-aliasing wxFONTFLAG_DEFAULT = 0, @@ -108,12 +108,14 @@ enum class WXDLLIMPEXP_FWD_CORE wxNativeFontInfo; -class WXDLLEXPORT wxFontBase : public wxGDIObject +class WXDLLIMPEXP_CORE wxFontBase : public wxGDIObject { public: // creator function virtual ~wxFontBase(); + +#if FUTURE_WXWIN_COMPATIBILITY_3_0 // from the font components static wxFont *New( int pointSize, // size of the font in points @@ -122,15 +124,9 @@ public: int weight, // see wxFontWeight enum bool underlined = false, // not underlined by default const wxString& face = wxEmptyString, // facename - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... - - // from the font components but using the font flags instead of separate - // parameters for each flag - static wxFont *New(int pointSize, - wxFontFamily family, - int flags = wxFONTFLAG_DEFAULT, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + wxFontEncoding encoding = wxFONTENCODING_DEFAULT) // ISO8859-X, ... + { return New(pointSize, (wxFontFamily)family, (wxFontStyle)style, + (wxFontWeight)weight, underlined, face, encoding); } // from the font components static wxFont *New( @@ -140,8 +136,40 @@ public: int weight, // see wxFontWeight enum bool underlined = false, // not underlined by default const wxString& face = wxEmptyString, // facename + wxFontEncoding encoding = wxFONTENCODING_DEFAULT) // ISO8859-X, ... + { return New(pixelSize, (wxFontFamily)family, (wxFontStyle)style, + (wxFontWeight)weight, underlined, face, encoding); } +#endif + + // from the font components + static wxFont *New( + int pointSize, // size of the font in points + wxFontFamily family, // see wxFontFamily enum + wxFontStyle style, // see wxFontStyle enum + wxFontWeight weight, // see wxFontWeight enum + bool underlined = false, // not underlined by default + const wxString& face = wxEmptyString, // facename + wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... + + // from the font components + static wxFont *New( + const wxSize& pixelSize, // size of the font in pixels + wxFontFamily family, // see wxFontFamily enum + wxFontStyle style, // see wxFontStyle enum + wxFontWeight weight, // see wxFontWeight enum + bool underlined = false, // not underlined by default + const wxString& face = wxEmptyString, // facename wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... + // from the font components but using the font flags instead of separate + // parameters for each flag + static wxFont *New(int pointSize, + wxFontFamily family, + int flags = wxFONTFLAG_DEFAULT, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + + // from the font components but using the font flags instead of separate // parameters for each flag static wxFont *New(const wxSize& pixelSize, @@ -164,9 +192,9 @@ public: virtual int GetPointSize() const = 0; virtual wxSize GetPixelSize() const; virtual bool IsUsingSizeInPixels() const; - virtual int GetFamily() const = 0; - virtual int GetStyle() const = 0; - virtual int GetWeight() const = 0; + virtual wxFontFamily GetFamily() const = 0; + virtual wxFontStyle GetStyle() const = 0; + virtual wxFontWeight GetWeight() const = 0; virtual bool GetUnderlined() const = 0; virtual wxString GetFaceName() const = 0; virtual wxFontEncoding GetEncoding() const = 0; @@ -180,9 +208,10 @@ public: // change the font characteristics virtual void SetPointSize( int pointSize ) = 0; virtual void SetPixelSize( const wxSize& pixelSize ); - virtual void SetFamily( int family ) = 0; - virtual void SetStyle( int style ) = 0; - virtual void SetWeight( int weight ) = 0; + virtual void SetFamily( wxFontFamily family ) = 0; + virtual void SetStyle( wxFontStyle style ) = 0; + virtual void SetWeight( wxFontWeight weight ) = 0; + virtual void SetUnderlined( bool underlined ) = 0; virtual void SetEncoding(wxFontEncoding encoding) = 0; virtual bool SetFaceName( const wxString& faceName ); @@ -224,6 +253,23 @@ WXDLLIMPEXP_CORE wxString wxToString(const wxFontBase& font); WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font); +#if FUTURE_WXWIN_COMPATIBILITY_3_0 +#define WXDECLARE_COMPAT_SETTERS \ + wxDEPRECATED_FUTURE( void SetFamily(int family) ) \ + { SetFamily((wxFontFamily)family); } \ + wxDEPRECATED_FUTURE( void SetStyle(int style) ) \ + { SetStyle((wxFontStyle)style); } \ + wxDEPRECATED_FUTURE( void SetWeight(int weight) ) \ + { SetWeight((wxFontWeight)weight); } \ + wxDEPRECATED_FUTURE( void SetFamily(wxDeprecatedGUIConstants family) ) \ + { SetFamily((wxFontFamily)family); } \ + wxDEPRECATED_FUTURE( void SetStyle(wxDeprecatedGUIConstants style) ) \ + { SetStyle((wxFontStyle)style); } \ + wxDEPRECATED_FUTURE( void SetWeight(wxDeprecatedGUIConstants weight) ) \ + { SetWeight((wxFontWeight)weight); } +#else +#define WXDECLARE_COMPAT_SETTERS /*empty*/ +#endif // include the real class declaration #if defined(__WXPALMOS__) @@ -243,7 +289,7 @@ WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font); #elif defined(__WXDFB__) #include "wx/dfb/font.h" #elif defined(__WXMAC__) - #include "wx/mac/font.h" + #include "wx/osx/font.h" #elif defined(__WXCOCOA__) #include "wx/cocoa/font.h" #elif defined(__WXPM__) @@ -260,13 +306,47 @@ public: bool underline = false, const wxString& face = wxEmptyString, wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + +#if FUTURE_WXWIN_COMPATIBILITY_3_0 + wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight, + bool underline = false, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT) + { return FindOrCreateFont(pointSize, (wxFontFamily)family, (wxFontStyle)style, + (wxFontWeight)weight, underline, face, encoding); } +#endif + #if WXWIN_COMPATIBILITY_2_6 wxDEPRECATED( void AddFont(wxFont*) ); wxDEPRECATED( void RemoveFont(wxFont*) ); #endif }; -extern WXDLLEXPORT_DATA(wxFontList*) wxTheFontList; +extern WXDLLIMPEXP_DATA_CORE(wxFontList*) wxTheFontList; + + +// provide comparison operators to allow code such as +// +// if ( font.GetStyle() == wxFONTSTYLE_SLANT ) +// +// to compile without warnings which it would otherwise provoke from some +// compilers as it compares elements of different enums +#if FUTURE_WXWIN_COMPATIBILITY_3_0 + +inline bool operator==(wxFontFamily s, wxDeprecatedGUIConstants t) +{ return static_cast(s) == static_cast(t); } +inline bool operator!=(wxFontFamily s, wxDeprecatedGUIConstants t) +{ return !(s == t); } +inline bool operator==(wxFontStyle s, wxDeprecatedGUIConstants t) +{ return static_cast(s) == static_cast(t); } +inline bool operator!=(wxFontStyle s, wxDeprecatedGUIConstants t) +{ return !(s == t); } +inline bool operator==(wxFontWeight s, wxDeprecatedGUIConstants t) +{ return static_cast(s) == static_cast(t); } +inline bool operator!=(wxFontWeight s, wxDeprecatedGUIConstants t) +{ return !(s == t); } + +#endif // FUTURE_WXWIN_COMPATIBILITY_3_0 #endif // _WX_FONT_H_BASE_