X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/519cb848a8f4c91c73421bb75314754284e593a4..a29c6824c21bca8e66fdd0c7a64b65e8935bdbcd:/include/wx/mac/font.h diff --git a/include/wx/mac/font.h b/include/wx/mac/font.h index f7596f241b..a49236c636 100644 --- a/include/wx/mac/font.h +++ b/include/wx/mac/font.h @@ -12,19 +12,107 @@ #ifndef _WX_FONT_H_ #define _WX_FONT_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "font.h" #endif -// ---------------------------------------------------------------------------- -// public functions -// ---------------------------------------------------------------------------- +class WXDLLEXPORT wxFontRefData: public wxGDIRefData +{ + friend class WXDLLEXPORT wxFont; +public: + wxFontRefData() + : m_fontId(0) + , m_pointSize(10) + , m_family(wxDEFAULT) + , m_style(wxNORMAL) + , m_weight(wxNORMAL) + , m_underlined(FALSE) + , m_faceName(wxT("Geneva")) + , m_encoding(wxFONTENCODING_DEFAULT) + , m_macFontNum(0) + , m_macFontSize(0) + , m_macFontStyle(0) + , m_macATSUFontID() + { + Init(10, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE, + wxT("Geneva"), wxFONTENCODING_DEFAULT); + } -// convert wxFontEncoding into one of Windows XXX_CHARSET constants (fill exact -// parameter if it's not NULL with TRUE if encoding is realyl supported under -// Windows and FALSE if not and we just chose something close to it) -extern int wxCharsetFromEncoding(wxFontEncoding encoding, bool *exact = NULL); + wxFontRefData(const wxFontRefData& data) + : wxGDIRefData() + , m_fontId(data.m_fontId) + , m_pointSize(data.m_pointSize) + , m_family(data.m_family) + , m_style(data.m_style) + , m_weight(data.m_weight) + , m_underlined(data.m_underlined) + , m_faceName(data.m_faceName) + , m_encoding(data.m_encoding) + , m_macFontNum(data.m_macFontNum) + , m_macFontSize(data.m_macFontSize) + , m_macFontStyle(data.m_macFontStyle) + , m_macATSUFontID(data.m_macATSUFontID) + { + Init(data.m_pointSize, data.m_family, data.m_style, data.m_weight, + data.m_underlined, data.m_faceName, data.m_encoding); + } + + wxFontRefData(int size, + int family, + int style, + int weight, + bool underlined, + const wxString& faceName, + wxFontEncoding encoding) + : m_fontId(0) + , m_pointSize(size) + , m_family(family) + , m_style(style) + , m_weight(weight) + , m_underlined(underlined) + , m_faceName(faceName) + , m_encoding(encoding) + , m_macFontNum(0) + , m_macFontSize(0) + , m_macFontStyle(0) + , m_macATSUFontID(0) + { + Init(size, family, style, weight, underlined, faceName, encoding); + } + virtual ~wxFontRefData(); + void SetNoAntiAliasing( bool no = TRUE ) { m_noAA = no; } + bool GetNoAntiAliasing() { return m_noAA; } + +protected: + // common part of all ctors + void Init(int size, + int family, + int style, + int weight, + bool underlined, + const wxString& faceName, + wxFontEncoding encoding); + + // font characterstics + int m_fontId; + int m_pointSize; + int m_family; + int m_style; + int m_weight; + bool m_underlined; + wxString m_faceName; + wxFontEncoding m_encoding; + bool m_noAA; // No anti-aliasing + +public: + short m_macFontNum; + short m_macFontSize; + unsigned char m_macFontStyle; + wxUint32 m_macATSUFontID; +public: + void MacFindFont() ; +}; // ---------------------------------------------------------------------------- // wxFont // ---------------------------------------------------------------------------- @@ -34,7 +122,12 @@ class WXDLLEXPORT wxFont : public wxFontBase public: // ctors and such wxFont() { Init(); } - wxFont(const wxFont& font) { Init(); Ref(font); } + wxFont(const wxFont& font) + : wxFontBase() + { + Init(); + Ref(font); + } wxFont(int size, int family, @@ -49,6 +142,15 @@ public: (void)Create(size, family, style, weight, underlined, face, encoding); } + wxFont(const wxNativeFontInfo& info) + { + Init(); + + (void)Create(info); + } + + wxFont(const wxString& fontDesc); + bool Create(int size, int family, int style, @@ -57,6 +159,8 @@ public: const wxString& face = wxEmptyString, wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + bool Create(const wxNativeFontInfo& info); + virtual ~wxFont(); // assignment @@ -82,16 +186,11 @@ public: // implementation only from now on // ------------------------------- - int GetFontId() const; - virtual bool IsFree() const; virtual bool RealizeResource(); - virtual WXHANDLE GetResourceHandle(); - virtual bool FreeResource(bool force = FALSE); - /* - virtual bool UseResource(); - virtual bool ReleaseResource(); - */ + // Unofficial API, don't use + virtual void SetNoAntiAliasing( bool noAA = TRUE ) ; + virtual bool GetNoAntiAliasing() ; protected: // common part of all ctors void Init();