X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0dbd6262a9ee7d735fb3930707346298f71b2cb7..61b50a43aaaf29fe9c2f848958adafc496439123:/include/wx/mac/font.h diff --git a/include/wx/mac/font.h b/include/wx/mac/font.h index aff8fb3a75..e65149037e 100644 --- a/include/wx/mac/font.h +++ b/include/wx/mac/font.h @@ -1,88 +1,159 @@ ///////////////////////////////////////////////////////////////////////////// // Name: font.h // Purpose: wxFont class -// Author: AUTHOR +// Author: Julian Smart // Modified by: -// Created: ??/??/98 +// Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FONT_H_ #define _WX_FONT_H_ #ifdef __GNUG__ -#pragma interface "font.h" + #pragma interface "font.h" #endif -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxFont; - class WXDLLEXPORT wxFontRefData: public wxGDIRefData { friend class WXDLLEXPORT wxFont; public: - wxFontRefData(); - wxFontRefData(const wxFontRefData& data); - ~wxFontRefData(); + wxFontRefData() + { + Init(10, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE, + "Geneva", wxFONTENCODING_DEFAULT); + } + + wxFontRefData(const wxFontRefData& data) + { + Init(data.m_pointSize, data.m_family, data.m_style, data.m_weight, + data.m_underlined, data.m_faceName, data.m_encoding); + + m_macFontNum = data.m_macFontNum ; + m_macFontSize = data.m_macFontSize; + m_macFontStyle = data.m_macFontStyle; + m_fontId = data.m_fontId; + } + + wxFontRefData(int size, + int family, + int style, + int weight, + bool underlined, + const wxString& faceName, + wxFontEncoding encoding) + { + Init(size, family, style, weight, underlined, faceName, encoding); + } + + virtual ~wxFontRefData(); protected: - int m_pointSize; - int m_family; - int m_style; - int m_weight; - bool m_underlined; - wxString m_faceName; -/* TODO: implementation - WXHFONT m_hFont; -*/ + // 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; + +public : + short m_macFontNum ; + short m_macFontSize ; + Style m_macFontStyle ; +public : + void MacFindFont() ; }; +// ---------------------------------------------------------------------------- +// wxFont +// ---------------------------------------------------------------------------- -#define M_FONTDATA ((wxFontRefData *)m_refData) - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Font -class WXDLLEXPORT wxFont: public wxGDIObject +class WXDLLEXPORT wxFont : public wxFontBase { - DECLARE_DYNAMIC_CLASS(wxFont) public: - wxFont(); - wxFont(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - inline wxFont(const wxFont& font) { Ref(font); } - - ~wxFont(); - - bool Create(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline int GetPointSize() const { return M_FONTDATA->m_pointSize; } - inline int GetFamily() const { return M_FONTDATA->m_family; } - inline int GetStyle() const { return M_FONTDATA->m_style; } - inline int GetWeight() const { return M_FONTDATA->m_weight; } - wxString GetFamilyString() const ; - wxString GetFaceName() const ; - wxString GetStyleString() const ; - wxString GetWeightString() const ; - inline bool GetUnderlined() const { return M_FONTDATA->m_underlined; } - - void SetPointSize(int pointSize); - void SetFamily(int family); - void SetStyle(int style); - void SetWeight(int weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - - inline wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; } - inline bool operator == (const wxFont& font) { return m_refData == font.m_refData; } - inline bool operator != (const wxFont& font) { return m_refData != font.m_refData; } - - // Implementation + // ctors and such + wxFont() { Init(); } + wxFont(const wxFont& font) { Init(); Ref(font); } + + wxFont(int size, + int family, + int style, + int weight, + bool underlined = FALSE, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT) + { + Init(); + + (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, + int weight, + bool underlined = FALSE, + const wxString& face = wxEmptyString, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + + bool Create(const wxNativeFontInfo& info); + + virtual ~wxFont(); + + // assignment + wxFont& operator=(const wxFont& font); + + // implement base class pure virtuals + virtual int GetPointSize() const; + virtual int GetFamily() const; + virtual int GetStyle() const; + virtual int GetWeight() const; + virtual bool GetUnderlined() const; + virtual wxString GetFaceName() const; + virtual wxFontEncoding GetEncoding() const; + + virtual void SetPointSize(int pointSize); + virtual void SetFamily(int family); + virtual void SetStyle(int style); + virtual void SetWeight(int weight); + virtual void SetFaceName(const wxString& faceName); + virtual void SetUnderlined(bool underlined); + virtual void SetEncoding(wxFontEncoding encoding); + + // implementation only from now on + // ------------------------------- + + virtual bool RealizeResource(); + protected: - bool RealizeResource(); - void Unshare(); + // common part of all ctors + void Init(); + + void Unshare(); + +private: + DECLARE_DYNAMIC_CLASS(wxFont) }; #endif