]> git.saurik.com Git - wxWidgets.git/blame - src/dfb/font.cpp
Add wxDataViewRendererBase::PrepareForItem() helper.
[wxWidgets.git] / src / dfb / font.cpp
CommitLineData
b3c86150
VS
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
b3c86150 32#include "wx/dfb/private.h"
d04f9b8e 33#include "wx/private/fontmgr.h"
b3c86150 34
d04f9b8e 35typedef wxFontMgrFontRefData wxFontRefData;
68c95704 36#define M_FONTDATA ((wxFontRefData*)m_refData)
873fd4af 37
b3c86150
VS
38// ----------------------------------------------------------------------------
39// wxFont
40// ----------------------------------------------------------------------------
41
42IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
43
44bool wxFont::Create(const wxNativeFontInfo& info)
45{
46 return Create(info.pointSize, info.family, info.style, info.weight,
47 info.underlined, info.faceName, info.encoding);
48}
49
50bool wxFont::Create(int pointSize,
0c14b6c3
FM
51 wxFontFamily family,
52 wxFontStyle style,
53 wxFontWeight weight,
b3c86150
VS
54 bool underlined,
55 const wxString& face,
56 wxFontEncoding encoding)
57{
58 m_refData = new wxFontRefData(pointSize, family, style, weight,
59 underlined, face, encoding);
60 return true;
61}
62
8f884a0d 63wxGDIRefData *wxFont::CreateGDIRefData() const
b3c86150
VS
64{
65 return new wxFontRefData;
66}
67
8f884a0d 68wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const
b3c86150
VS
69{
70 return new wxFontRefData(*(wxFontRefData *)data);
71}
72
73
74// ----------------------------------------------------------------------------
75// accessors
76// ----------------------------------------------------------------------------
77
d04f9b8e 78wxIDirectFBFontPtr wxFont::GetDirectFBFont(bool antialiased) const
b3c86150
VS
79{
80 wxCHECK_MSG( Ok(), NULL, wxT("invalid font") );
81
d04f9b8e
VS
82 // we don't support DC scaling yet, so use scale=1
83 wxFontInstance *i = M_FONTDATA->GetFontInstance(1.0, antialiased);
84 return i ? i->GetDirectFBFont() : wxIDirectFBFontPtr();
b3c86150
VS
85}
86
87int wxFont::GetPointSize() const
88{
89 wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
90
d04f9b8e 91 return M_FONTDATA->GetPointSize();
b3c86150
VS
92}
93
94wxString wxFont::GetFaceName() const
95{
96 wxCHECK_MSG( Ok(), wxEmptyString, wxT("invalid font") );
97
d04f9b8e 98 return M_FONTDATA->GetFaceName();
b3c86150
VS
99}
100
59b7da02 101wxFontFamily wxFont::DoGetFamily() const
b3c86150 102{
d04f9b8e 103 return M_FONTDATA->GetFamily();
b3c86150
VS
104}
105
0c14b6c3 106wxFontStyle wxFont::GetStyle() const
b3c86150 107{
0c14b6c3 108 wxCHECK_MSG( Ok(), wxFONTSTYLE_MAX, wxT("invalid font") );
b3c86150 109
d04f9b8e 110 return M_FONTDATA->GetStyle();
b3c86150
VS
111}
112
0c14b6c3 113wxFontWeight wxFont::GetWeight() const
b3c86150 114{
0c14b6c3 115 wxCHECK_MSG( Ok(), wxFONTWEIGHT_MAX, wxT("invalid font") );
b3c86150 116
d04f9b8e 117 return M_FONTDATA->GetWeight();
b3c86150
VS
118}
119
120bool wxFont::GetUnderlined() const
121{
122 wxCHECK_MSG( Ok(), false, wxT("invalid font") );
123
d04f9b8e 124 return M_FONTDATA->GetUnderlined();
b3c86150
VS
125}
126
127
128wxFontEncoding wxFont::GetEncoding() const
129{
130 wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
131
d04f9b8e 132 return M_FONTDATA->GetEncoding();
b3c86150
VS
133}
134
135bool wxFont::IsFixedWidth() const
136{
137 wxCHECK_MSG( Ok(), false, wxT("invalid font") );
138
d04f9b8e 139 return M_FONTDATA->IsFixedWidth();
b3c86150
VS
140}
141
142const wxNativeFontInfo *wxFont::GetNativeFontInfo() const
143{
144 wxCHECK_MSG( Ok(), NULL, wxT("invalid font") );
145
d04f9b8e
VS
146 return M_FONTDATA->GetNativeFontInfo();
147}
148
b3c86150
VS
149// ----------------------------------------------------------------------------
150// change font attributes
151// ----------------------------------------------------------------------------
152
153void wxFont::SetPointSize(int pointSize)
154{
155 AllocExclusive();
d04f9b8e 156 M_FONTDATA->SetPointSize(pointSize);
b3c86150
VS
157}
158
0c14b6c3 159void wxFont::SetFamily(wxFontFamily family)
b3c86150
VS
160{
161 AllocExclusive();
d04f9b8e 162 M_FONTDATA->SetFamily(family);
b3c86150
VS
163}
164
0c14b6c3 165void wxFont::SetStyle(wxFontStyle style)
b3c86150
VS
166{
167 AllocExclusive();
d04f9b8e 168 M_FONTDATA->SetStyle(style);
b3c86150
VS
169}
170
0c14b6c3 171void wxFont::SetWeight(wxFontWeight weight)
b3c86150
VS
172{
173 AllocExclusive();
d04f9b8e 174 M_FONTDATA->SetWeight(weight);
b3c86150
VS
175}
176
177bool wxFont::SetFaceName(const wxString& faceName)
178{
179 AllocExclusive();
d04f9b8e 180 M_FONTDATA->SetFaceName(faceName);
b3c86150
VS
181 return wxFontBase::SetFaceName(faceName);
182}
183
184void wxFont::SetUnderlined(bool underlined)
185{
186 AllocExclusive();
d04f9b8e 187 M_FONTDATA->SetUnderlined(underlined);
b3c86150
VS
188}
189
190void wxFont::SetEncoding(wxFontEncoding encoding)
191{
192 AllocExclusive();
d04f9b8e
VS
193 M_FONTDATA->SetEncoding(encoding);
194}
b3c86150 195