]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/dfb/font.cpp
Use shared pointers throughout when managing history with the ie backend, simplifying...
[wxWidgets.git] / src / dfb / font.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: src/dfb/font.cpp
3// Purpose: wxFont implementation
4// Author: Vaclav Slavik
5// Created: 2006-08-08
6// RCS-ID: $Id$
7// Copyright: (c) 2006 REA Elektronik GmbH
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11// ============================================================================
12// declarations
13// ============================================================================
14
15// ----------------------------------------------------------------------------
16// headers
17// ----------------------------------------------------------------------------
18
19// For compilers that support precompilation, includes "wx.h".
20#include "wx/wxprec.h"
21
22#ifdef __BORLANDC__
23 #pragma hdrstop
24#endif
25
26#include "wx/font.h"
27
28#ifndef WX_PRECOMP
29 #include "wx/app.h"
30#endif
31
32#include "wx/dfb/private.h"
33#include "wx/private/fontmgr.h"
34
35typedef wxFontMgrFontRefData wxFontRefData;
36#define M_FONTDATA ((wxFontRefData*)m_refData)
37
38// ----------------------------------------------------------------------------
39// wxFont
40// ----------------------------------------------------------------------------
41
42bool wxFont::Create(const wxNativeFontInfo& info)
43{
44 return Create(info.pointSize, info.family, info.style, info.weight,
45 info.underlined, info.faceName, info.encoding);
46}
47
48bool wxFont::Create(int pointSize,
49 wxFontFamily family,
50 wxFontStyle style,
51 wxFontWeight weight,
52 bool underlined,
53 const wxString& face,
54 wxFontEncoding encoding)
55{
56 m_refData = new wxFontRefData(pointSize, family, style, weight,
57 underlined, face, encoding);
58 return true;
59}
60
61wxGDIRefData *wxFont::CreateGDIRefData() const
62{
63 return new wxFontRefData;
64}
65
66wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const
67{
68 return new wxFontRefData(*(wxFontRefData *)data);
69}
70
71
72// ----------------------------------------------------------------------------
73// accessors
74// ----------------------------------------------------------------------------
75
76wxIDirectFBFontPtr wxFont::GetDirectFBFont(bool antialiased) const
77{
78 wxCHECK_MSG( Ok(), NULL, wxT("invalid font") );
79
80 // we don't support DC scaling yet, so use scale=1
81 wxFontInstance *i = M_FONTDATA->GetFontInstance(1.0, antialiased);
82 return i ? i->GetDirectFBFont() : wxIDirectFBFontPtr();
83}
84
85int wxFont::GetPointSize() const
86{
87 wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
88
89 return M_FONTDATA->GetPointSize();
90}
91
92wxString wxFont::GetFaceName() const
93{
94 wxCHECK_MSG( Ok(), wxEmptyString, wxT("invalid font") );
95
96 return M_FONTDATA->GetFaceName();
97}
98
99wxFontFamily wxFont::DoGetFamily() const
100{
101 return M_FONTDATA->GetFamily();
102}
103
104wxFontStyle wxFont::GetStyle() const
105{
106 wxCHECK_MSG( Ok(), wxFONTSTYLE_MAX, wxT("invalid font") );
107
108 return M_FONTDATA->GetStyle();
109}
110
111wxFontWeight wxFont::GetWeight() const
112{
113 wxCHECK_MSG( Ok(), wxFONTWEIGHT_MAX, wxT("invalid font") );
114
115 return M_FONTDATA->GetWeight();
116}
117
118bool wxFont::GetUnderlined() const
119{
120 wxCHECK_MSG( Ok(), false, wxT("invalid font") );
121
122 return M_FONTDATA->GetUnderlined();
123}
124
125
126wxFontEncoding wxFont::GetEncoding() const
127{
128 wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
129
130 return M_FONTDATA->GetEncoding();
131}
132
133bool wxFont::IsFixedWidth() const
134{
135 wxCHECK_MSG( Ok(), false, wxT("invalid font") );
136
137 return M_FONTDATA->IsFixedWidth();
138}
139
140const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
141{
142 wxCHECK_MSG( Ok(), NULL, wxT("invalid font") );
143
144 return M_FONTDATA->GetNativeFontInfo();
145}
146
147// ----------------------------------------------------------------------------
148// change font attributes
149// ----------------------------------------------------------------------------
150
151void wxFont::SetPointSize(int pointSize)
152{
153 AllocExclusive();
154 M_FONTDATA->SetPointSize(pointSize);
155}
156
157void wxFont::SetFamily(wxFontFamily family)
158{
159 AllocExclusive();
160 M_FONTDATA->SetFamily(family);
161}
162
163void wxFont::SetStyle(wxFontStyle style)
164{
165 AllocExclusive();
166 M_FONTDATA->SetStyle(style);
167}
168
169void wxFont::SetWeight(wxFontWeight weight)
170{
171 AllocExclusive();
172 M_FONTDATA->SetWeight(weight);
173}
174
175bool wxFont::SetFaceName(const wxString& faceName)
176{
177 AllocExclusive();
178 M_FONTDATA->SetFaceName(faceName);
179 return wxFontBase::SetFaceName(faceName);
180}
181
182void wxFont::SetUnderlined(bool underlined)
183{
184 AllocExclusive();
185 M_FONTDATA->SetUnderlined(underlined);
186}
187
188void wxFont::SetEncoding(wxFontEncoding encoding)
189{
190 AllocExclusive();
191 M_FONTDATA->SetEncoding(encoding);
192}
193