X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/30764ab5246a5a9876d6313607da56cf1f1909d2..62a0bb2788a46241f32592ec4931afb27a664edf:/include/wx/font.h?ds=sidebyside diff --git a/include/wx/font.h b/include/wx/font.h index 3010028809..68799b2c5b 100644 --- a/include/wx/font.h +++ b/include/wx/font.h @@ -12,7 +12,7 @@ #ifndef _WX_FONT_H_BASE_ #define _WX_FONT_H_BASE_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "fontbase.h" #endif @@ -36,7 +36,10 @@ class WXDLLEXPORT wxFont; // font constants // ---------------------------------------------------------------------------- -// standard font families +// standard font families: these may be used only for the font creation, it +// doesn't make sense to query an existing font for its font family as, +// especially if the font had been created from a native font description, it +// may be unknown enum wxFontFamily { wxFONTFAMILY_DEFAULT = wxDEFAULT, @@ -46,7 +49,8 @@ enum wxFontFamily wxFONTFAMILY_SWISS = wxSWISS, wxFONTFAMILY_MODERN = wxMODERN, wxFONTFAMILY_TELETYPE = wxTELETYPE, - wxFONTFAMILY_MAX + wxFONTFAMILY_MAX, + wxFONTFAMILY_UNKNOWN = wxFONTFAMILY_MAX }; // font styles @@ -67,50 +71,53 @@ enum wxFontWeight wxFONTWEIGHT_MAX }; -// ---------------------------------------------------------------------------- -// wxNativeFontInfo is platform-specific font representation -// ---------------------------------------------------------------------------- - -// this struct should be considered as opaque font description only used by -// the native functions, the user code can only get the objects of this type -// from somewhere and pass it somewhere else (possibly save them somewhere -// using ToString() and restore them using FromString()) -struct WXDLLEXPORT wxNativeFontInfo +// the font flag bits for the new font ctor accepting one combined flags word +enum { -#if defined(__WXGTK__) - wxString xFontName; -#else // other platforms - // - // This is a generic implementation that should work on all ports - // without specific support by the port. - // - int pointSize; - int family; - int style; - int weight; - bool underlined; - wxString faceName; - wxFontEncoding encoding; -#endif // platforms - - // it is important to be able to serialize wxNativeFontInfo objects to be - // able to store them (in config file, for example) - bool FromString(const wxString& s); - wxString ToString() const; + // no special flags: font with default weight/slant/anti-aliasing + wxFONTFLAG_DEFAULT = 0, + + // slant flags (default: no slant) + wxFONTFLAG_ITALIC = 1 << 0, + wxFONTFLAG_SLANT = 1 << 1, + + // weight flags (default: medium) + wxFONTFLAG_LIGHT = 1 << 2, + wxFONTFLAG_BOLD = 1 << 3, + + // anti-aliasing flag: force on or off (default: the current system default) + wxFONTFLAG_ANTIALIASED = 1 << 4, + wxFONTFLAG_NOT_ANTIALIASED = 1 << 5, + + // underlined/strikethrough flags (default: no lines) + wxFONTFLAG_UNDERLINED = 1 << 6, + wxFONTFLAG_STRIKETHROUGH = 1 << 7, + + // the mask of all currently used flags + wxFONTFLAG_MASK = wxFONTFLAG_ITALIC | + wxFONTFLAG_SLANT | + wxFONTFLAG_LIGHT | + wxFONTFLAG_BOLD | + wxFONTFLAG_ANTIALIASED | + wxFONTFLAG_NOT_ANTIALIASED | + wxFONTFLAG_UNDERLINED | + wxFONTFLAG_STRIKETHROUGH }; -WXDLLEXPORT_DATA(extern wxNativeFontInfo) wxNullNativeFontInfo; - // ---------------------------------------------------------------------------- // wxFontBase represents a font object // ---------------------------------------------------------------------------- class WXDLLEXPORT wxFontRefData; +struct WXDLLEXPORT wxNativeFontInfo; class WXDLLEXPORT wxFontBase : public wxGDIObject { public: // creator function + virtual ~wxFontBase(); + + // from the font components static wxFont *New( int pointSize, // size of the font in points int family, // see wxFontFamily enum @@ -119,7 +126,20 @@ public: bool underlined = FALSE, // not underlined by default const wxString& face = wxEmptyString, // facename wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... - static wxFont *New(const wxNativeFontInfo& info); + + // 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 (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; } @@ -136,7 +156,12 @@ public: virtual bool GetUnderlined() const = 0; virtual wxString GetFaceName() const = 0; virtual wxFontEncoding GetEncoding() const = 0; - virtual wxNativeFontInfo GetNativeFontInfo() const; + virtual wxNativeFontInfo *GetNativeFontInfo() const; + + virtual bool IsFixedWidth() const; + + wxString GetNativeFontInfoDesc() const; + wxString GetNativeFontInfoUserDesc() const; // change the font characteristics virtual void SetPointSize( int pointSize ) = 0; @@ -148,24 +173,29 @@ public: virtual void SetEncoding(wxFontEncoding encoding) = 0; virtual void SetNativeFontInfo(const wxNativeFontInfo& info); + void SetNativeFontInfo(const wxString& info); + void SetNativeFontInfoUserDesc(const wxString& info); + // translate the fonts into human-readable string (i.e. GetStyleString() // will return "wxITALIC" for an italic font, ...) wxString GetFamilyString() const; wxString GetStyleString() const; wxString GetWeightString() const; + // Unofficial API, don't use + virtual void SetNoAntiAliasing( bool WXUNUSED(no) = TRUE ) { } + virtual bool GetNoAntiAliasing() { return FALSE; } + // the default encoding is used for creating all fonts with default // encoding parameter - static wxFontEncoding GetDefaultEncoding() - { return ms_encodingDefault; } - static void SetDefaultEncoding(wxFontEncoding encoding) - { ms_encodingDefault = encoding; } + static wxFontEncoding GetDefaultEncoding() { return ms_encodingDefault; } + static void SetDefaultEncoding(wxFontEncoding encoding); protected: // get the internal data wxFontRefData *GetFontData() const { return (wxFontRefData *)m_refData; } - + private: // the currently default encoding: by default, it's the default system // encoding, but may be changed by the application using @@ -181,14 +211,14 @@ private: #include "wx/motif/font.h" #elif defined(__WXGTK__) #include "wx/gtk/font.h" -#elif defined(__WXQT__) - #include "wx/qt/font.h" +#elif defined(__WXX11__) + #include "wx/x11/font.h" +#elif defined(__WXMGL__) + #include "wx/mgl/font.h" #elif defined(__WXMAC__) #include "wx/mac/font.h" #elif defined(__WXPM__) #include "wx/os2/font.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/font.h" #endif // ----------------------------------------------------------------------------