X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..4f2511d706e5274a34e1521e11c1b95fed735b42:/include/wx/font.h diff --git a/include/wx/font.h b/include/wx/font.h index 0e6098ea3b..e1bb654093 100644 --- a/include/wx/font.h +++ b/include/wx/font.h @@ -5,17 +5,13 @@ // Modified by: // Created: 20.09.99 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license +// Copyright: (c) wxWidgets team +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FONT_H_BASE_ #define _WX_FONT_H_BASE_ -#if defined(__GNUG__) && !defined(__APPLE__) - #pragma interface "fontbase.h" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -23,14 +19,16 @@ #include "wx/defs.h" // for wxDEFAULT &c #include "wx/fontenc.h" // the font encoding constants #include "wx/gdiobj.h" // the base class +#include "wx/gdicmn.h" // for wxGDIObjListBase // ---------------------------------------------------------------------------- // forward declarations // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFontData; -class WXDLLEXPORT wxFontBase; -class WXDLLEXPORT wxFont; +class WXDLLIMPEXP_FWD_CORE wxFontData; +class WXDLLIMPEXP_FWD_CORE wxFontBase; +class WXDLLIMPEXP_FWD_CORE wxFont; +class WXDLLIMPEXP_FWD_CORE wxSize; // ---------------------------------------------------------------------------- // font constants @@ -108,10 +106,9 @@ enum // wxFontBase represents a font object // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFontRefData; -struct WXDLLEXPORT wxNativeFontInfo; +class WXDLLIMPEXP_FWD_CORE wxNativeFontInfo; -class WXDLLEXPORT wxFontBase : public wxGDIObject +class WXDLLIMPEXP_CORE wxFontBase : public wxGDIObject { public: // creator function @@ -123,7 +120,7 @@ public: int family, // see wxFontFamily enum int style, // see wxFontStyle enum int weight, // see wxFontWeight enum - bool underlined = FALSE, // not underlined by default + bool underlined = false, // not underlined by default const wxString& face = wxEmptyString, // facename wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... @@ -135,28 +132,45 @@ public: const wxString& face = wxEmptyString, wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + // from the font components + static wxFont *New( + const wxSize& pixelSize, // size of the font in pixels + int family, // see wxFontFamily enum + int style, // see wxFontStyle enum + 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(const wxSize& pixelSize, + wxFontFamily family, + int flags = wxFONTFLAG_DEFAULT, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + // from the (opaque) native font description object static wxFont *New(const wxNativeFontInfo& nativeFontDesc); // from the string representation of wxNativeFontInfo static wxFont *New(const wxString& strNativeFontDesc); - // was the font successfully created? - bool Ok() const { return m_refData != NULL; } - // comparison - bool operator == (const wxFont& font) const; - bool operator != (const wxFont& font) const; + bool operator==(const wxFont& font) const; + bool operator!=(const wxFont& font) const { return !(*this == font); } // accessors: get the font characteristics 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 bool GetUnderlined() const = 0; virtual wxString GetFaceName() const = 0; virtual wxFontEncoding GetEncoding() const = 0; - virtual wxNativeFontInfo *GetNativeFontInfo() const; + virtual const wxNativeFontInfo *GetNativeFontInfo() const = 0; virtual bool IsFixedWidth() const; @@ -165,16 +179,18 @@ 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 SetFaceName( const wxString& faceName ) = 0; virtual void SetUnderlined( bool underlined ) = 0; virtual void SetEncoding(wxFontEncoding encoding) = 0; - virtual void SetNativeFontInfo(const wxNativeFontInfo& info); + virtual bool SetFaceName( const wxString& faceName ); + void SetNativeFontInfo(const wxNativeFontInfo& info) + { DoSetNativeFontInfo(info); } - void SetNativeFontInfo(const wxString& info); - void SetNativeFontInfoUserDesc(const wxString& info); + bool SetNativeFontInfo(const wxString& info); + bool SetNativeFontInfoUserDesc(const wxString& info); // translate the fonts into human-readable string (i.e. GetStyleString() // will return "wxITALIC" for an italic font, ...) @@ -183,8 +199,8 @@ public: wxString GetWeightString() const; // Unofficial API, don't use - virtual void SetNoAntiAliasing( bool no = TRUE ) { } - virtual bool GetNoAntiAliasing() { return FALSE; } + virtual void SetNoAntiAliasing( bool WXUNUSED(no) = true ) { } + virtual bool GetNoAntiAliasing() const { return false; } // the default encoding is used for creating all fonts with default // encoding parameter @@ -192,42 +208,75 @@ public: static void SetDefaultEncoding(wxFontEncoding encoding); protected: - // get the internal data - wxFontRefData *GetFontData() const - { return (wxFontRefData *)m_refData; } - + // the function called by both overloads of SetNativeFontInfo() + virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); + private: // the currently default encoding: by default, it's the default system // encoding, but may be changed by the application using // SetDefaultEncoding() to make all subsequent fonts created without - // specifing encoding parameter using this encoding + // specifying encoding parameter using this encoding static wxFontEncoding ms_encodingDefault; }; +// wxFontBase <-> wxString utilities, used by wxConfig +WXDLLIMPEXP_CORE wxString wxToString(const wxFontBase& font); +WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font); + + + // include the real class declaration -#if defined(__WXMSW__) +#if defined(__WXPALMOS__) + #include "wx/palmos/font.h" +#elif defined(__WXMSW__) #include "wx/msw/font.h" #elif defined(__WXMOTIF__) #include "wx/motif/font.h" -#elif defined(__WXGTK__) +#elif defined(__WXGTK20__) #include "wx/gtk/font.h" +#elif defined(__WXGTK__) + #include "wx/gtk1/font.h" #elif defined(__WXX11__) #include "wx/x11/font.h" #elif defined(__WXMGL__) #include "wx/mgl/font.h" +#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__) #include "wx/os2/font.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/font.h" #endif -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- +class WXDLLIMPEXP_CORE wxFontList: public wxGDIObjListBase +{ +public: + wxFont *FindOrCreateFont(int pointSize, + wxFontFamily family, + wxFontStyle style, + wxFontWeight weight, + 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 +}; -#define M_FONTDATA GetFontData() +extern WXDLLIMPEXP_DATA_CORE(wxFontList*) wxTheFontList; #endif // _WX_FONT_H_BASE_