]> git.saurik.com Git - wxWidgets.git/blame - src/cocoa/fontutil.cpp
panther fix
[wxWidgets.git] / src / cocoa / fontutil.cpp
CommitLineData
a24aff65
DE
1/////////////////////////////////////////////////////////////////////////////
2// Name: unix/fontutil.cpp
3// Purpose: Font helper functions for X11 (GDK/X)
4// Author: Vadim Zeitlin
5// Modified by:
6// Created: 05.11.99
7// RCS-ID: $Id$
8// Copyright: (c) Vadim Zeitlin
9// Licence: wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11
12// ============================================================================
13// declarations
14// ============================================================================
15
16// ----------------------------------------------------------------------------
17// headers
18// ----------------------------------------------------------------------------
19
20#ifdef __GNUG__
21 #pragma implementation "fontutil.h"
22#endif
23
24// For compilers that support precompilation, includes "wx.h".
25#include "wx/wxprec.h"
26
27#ifdef __BORLANDC__
28 #pragma hdrstop
29#endif
30
31#ifndef WX_PRECOMP
32#endif // PCH
33
34#include "wx/fontutil.h"
35#include "wx/fontmap.h"
36#include "wx/tokenzr.h"
37#include "wx/hash.h"
38#include "wx/module.h"
39
40#ifdef __WXGTK20__
41
42#include "wx/gtk/private.h"
43
44// ----------------------------------------------------------------------------
45// wxNativeFontInfo
46// ----------------------------------------------------------------------------
47
48void wxNativeFontInfo::Init()
49{
50 description = NULL;
51}
52
53int wxNativeFontInfo::GetPointSize() const
54{
55 return pango_font_description_get_size( description ) / PANGO_SCALE;
56}
57
58wxFontStyle wxNativeFontInfo::GetStyle() const
59{
60 wxFontStyle m_style = wxFONTSTYLE_NORMAL;
61
62 switch (pango_font_description_get_style( description ))
63 {
64 case PANGO_STYLE_NORMAL:
65 m_style = wxFONTSTYLE_NORMAL;
66 break;
67 case PANGO_STYLE_ITALIC:
68 m_style = wxFONTSTYLE_ITALIC;
69 break;
70 case PANGO_STYLE_OBLIQUE:
71 m_style = wxFONTSTYLE_SLANT;
72 break;
73 }
74
75 return m_style;
76}
77
78wxFontWeight wxNativeFontInfo::GetWeight() const
79{
80 wxFontWeight m_weight = wxFONTWEIGHT_NORMAL;
81
82 switch (pango_font_description_get_weight( description ))
83 {
84 case PANGO_WEIGHT_ULTRALIGHT:
85 m_weight = wxFONTWEIGHT_LIGHT;
86 break;
87 case PANGO_WEIGHT_LIGHT:
88 m_weight = wxFONTWEIGHT_LIGHT;
89 break;
90 case PANGO_WEIGHT_NORMAL:
91 m_weight = wxFONTWEIGHT_NORMAL;
92 break;
93 case PANGO_WEIGHT_BOLD:
94 m_weight = wxFONTWEIGHT_BOLD;
95 break;
96 case PANGO_WEIGHT_ULTRABOLD:
97 m_weight = wxFONTWEIGHT_BOLD;
98 break;
99 case PANGO_WEIGHT_HEAVY:
100 m_weight = wxFONTWEIGHT_BOLD;
101 break;
102 }
103
104 return m_weight;
105}
106
107bool wxNativeFontInfo::GetUnderlined() const
108{
109 return FALSE;
110}
111
112wxString wxNativeFontInfo::GetFaceName() const
113{
114 wxString tmp = wxGTK_CONV_BACK( pango_font_description_get_family( description ) );
115
116 return tmp;
117}
118
119wxFontFamily wxNativeFontInfo::GetFamily() const
120{
121 return wxFONTFAMILY_SWISS;
122}
123
124wxFontEncoding wxNativeFontInfo::GetEncoding() const
125{
126 return wxFONTENCODING_SYSTEM;
127}
128
129// ----------------------------------------------------------------------------
130// wxNativeEncodingInfo
131// ----------------------------------------------------------------------------
132
133bool wxNativeEncodingInfo::FromString(const wxString& s)
134{
135 return FALSE;
136}
137
138wxString wxNativeEncodingInfo::ToString() const
139{
140 return wxEmptyString;
141}
142
143bool wxTestFontEncoding(const wxNativeEncodingInfo& info)
144{
145 return TRUE;
146}
147
148bool wxGetNativeFontEncoding(wxFontEncoding encoding,
149 wxNativeEncodingInfo *info)
150{
151 return FALSE;
152}
153
154#else
155 // __WXGTK20__
156
157#ifdef __X__
158 #ifdef __VMS__
159 #pragma message disable nosimpint
160 #endif
161
162 #include <X11/Xlib.h>
163
164 #ifdef __VMS__
165 #pragma message enable nosimpint
166 #endif
167
168 #include "wx/utils.h" // for wxGetDisplay()
169#elif defined(__WXGTK__)
170 // we have to declare struct tm to avoid problems with first forward
171 // declaring it in C code (glib.h included from gdk.h does it) and then
172 // defining it when time.h is included from the headers below - this is
173 // known not to work at least with Sun CC 6.01
174 #include <time.h>
175
176 #include <gdk/gdk.h>
177#endif
178
179
180// ----------------------------------------------------------------------------
181// private data
182// ----------------------------------------------------------------------------
183
184static wxHashTable *g_fontHash = (wxHashTable*) NULL;
185
186// ----------------------------------------------------------------------------
187// private functions
188// ----------------------------------------------------------------------------
189
190// ============================================================================
191// implementation
192// ============================================================================
193
194// ----------------------------------------------------------------------------
195// wxNativeEncodingInfo
196// ----------------------------------------------------------------------------
197
198// convert to/from the string representation: format is
199// encodingid;registry;encoding[;facename]
200bool wxNativeEncodingInfo::FromString(const wxString& s)
201{
202return false;
203}
204
205wxString wxNativeEncodingInfo::ToString() const
206{
207return wxEmptyString;
208}
209
210// ----------------------------------------------------------------------------
211// common functions
212// ----------------------------------------------------------------------------
213
214bool wxGetNativeFontEncoding(wxFontEncoding encoding,
215 wxNativeEncodingInfo *info)
216{
217 return FALSE;
218}
219
220bool wxTestFontEncoding(const wxNativeEncodingInfo& info)
221{
222return false;
223}
224
225// ----------------------------------------------------------------------------
226// private functions
227// ----------------------------------------------------------------------------
228
229// ----------------------------------------------------------------------------
230// wxFontModule
231// ----------------------------------------------------------------------------
232
233class wxFontModule : public wxModule
234{
235public:
236 bool OnInit();
237 void OnExit();
238
239private:
240 DECLARE_DYNAMIC_CLASS(wxFontModule)
241};
242
243IMPLEMENT_DYNAMIC_CLASS(wxFontModule, wxModule)
244
245bool wxFontModule::OnInit()
246{
247 g_fontHash = new wxHashTable( wxKEY_STRING );
248
249 return TRUE;
250}
251
252void wxFontModule::OnExit()
253{
254 delete g_fontHash;
255
256 g_fontHash = (wxHashTable *)NULL;
257}
258
259#endif
260 // not GTK 2.0