1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/cocoa/font.cpp
3 // Purpose: wxFont class
8 // Copyright: (c) AUTHOR
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #include "wx/wxprec.h"
17 #include "wx/string.h"
18 #include "wx/gdicmn.h"
21 #include "wx/encinfo.h"
23 class WXDLLEXPORT wxFontRefData: public wxGDIRefData
25 friend class WXDLLIMPEXP_FWD_CORE wxFont;
34 , m_faceName(wxT("Geneva"))
35 , m_encoding(wxFONTENCODING_DEFAULT)
37 Init(10, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE,
38 wxT("Geneva"), wxFONTENCODING_DEFAULT);
41 wxFontRefData(const wxFontRefData& data)
43 , m_fontId(data.m_fontId)
44 , m_pointSize(data.m_pointSize)
45 , m_family(data.m_family)
46 , m_style(data.m_style)
47 , m_weight(data.m_weight)
48 , m_underlined(data.m_underlined)
49 , m_faceName(data.m_faceName)
50 , m_encoding(data.m_encoding)
52 Init(data.m_pointSize, data.m_family, data.m_style, data.m_weight,
53 data.m_underlined, data.m_faceName, data.m_encoding);
56 wxFontRefData(int size,
61 const wxString& faceName,
62 wxFontEncoding encoding)
68 , m_underlined(underlined)
69 , m_faceName(faceName)
70 , m_encoding(encoding)
72 Init(size, family, style, weight, underlined, faceName, encoding);
75 virtual ~wxFontRefData();
77 // common part of all ctors
83 const wxString& faceName,
84 wxFontEncoding encoding);
86 // font characterstics
94 wxFontEncoding m_encoding;
98 IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
100 void wxFontRefData::Init(int size, int family, int style, int weight, bool underlined, const wxString& faceName, wxFontEncoding encoding)
105 m_underlined = underlined;
106 m_faceName = faceName;
107 m_encoding = encoding;
110 wxFontRefData::~wxFontRefData()
112 // TODO: delete font data
115 #define M_FONTDATA ((wxFontRefData*)m_refData)
117 bool wxFont::Create(const wxNativeFontInfo&)
122 void wxFont::SetEncoding(wxFontEncoding)
126 wxFontEncoding wxFont::GetEncoding() const
128 return wxFontEncoding();
131 int wxFont::GetPointSize() const
136 bool wxFont::GetUnderlined() const
139 return M_FONTDATA->m_underlined;
144 int wxFont::GetStyle() const
149 int wxFont::GetFamily() const
154 int wxFont::GetWeight() const
159 const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
164 void wxGetNativeFontEncoding(wxFontEncoding, wxNativeEncodingInfo*);
166 bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName, wxFontEncoding encoding)
169 m_refData = new wxFontRefData;
171 M_FONTDATA->m_family = family;
172 M_FONTDATA->m_style = style;
173 M_FONTDATA->m_weight = weight;
174 M_FONTDATA->m_pointSize = pointSize;
175 M_FONTDATA->m_underlined = underlined;
176 M_FONTDATA->m_faceName = faceName;
187 bool wxFont::RealizeResource()
189 // TODO: create the font (if there is a native font object)
193 void wxFont::Unshare()
195 // Don't change shared data
198 m_refData = new wxFontRefData();
202 wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData);
208 void wxFont::SetPointSize(int pointSize)
212 M_FONTDATA->m_pointSize = pointSize;
217 void wxFont::SetFamily(int family)
221 M_FONTDATA->m_family = family;
226 void wxFont::SetStyle(int style)
230 M_FONTDATA->m_style = style;
235 void wxFont::SetWeight(int weight)
239 M_FONTDATA->m_weight = weight;
244 bool wxFont::SetFaceName(const wxString& faceName)
248 M_FONTDATA->m_faceName = faceName;
252 return wxFontBase::SetFaceName(faceName);
255 void wxFont::SetUnderlined(bool underlined)
259 M_FONTDATA->m_underlined = underlined;
264 /* New font system */
265 wxString wxFont::GetFaceName() const
269 str = M_FONTDATA->m_faceName ;