]> git.saurik.com Git - wxWidgets.git/blob - src/generic/fontdlgg.cpp
Improve type safety by doing a runtime check to make sure the
[wxWidgets.git] / src / generic / fontdlgg.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/generic/fontdlgg.cpp
3 // Purpose: Generic font dialog
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 04/01/98
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
13 #pragma implementation "fontdlgg.h"
14 #endif
15
16 // For compilers that support precompilation, includes "wx.h".
17 #include "wx/wxprec.h"
18
19 #ifdef __BORLANDC__
20 #pragma hdrstop
21 #endif
22
23 #if wxUSE_FONTDLG && (!defined(__WXGTK__) || defined(__WXGPE__) || defined(__WXUNIVERSAL__))
24
25 #ifndef WX_PRECOMP
26 #include <stdio.h>
27 #include "wx/utils.h"
28 #include "wx/dialog.h"
29 #include "wx/listbox.h"
30 #include "wx/button.h"
31 #include "wx/stattext.h"
32 #include "wx/layout.h"
33 #include "wx/dcclient.h"
34 #include "wx/choice.h"
35 #include "wx/checkbox.h"
36 #include "wx/intl.h"
37 #endif
38
39 #include <string.h>
40 #include <stdlib.h>
41
42 #include "wx/cmndata.h"
43 #include "wx/sizer.h"
44 #include "wx/fontdlg.h"
45 #include "wx/generic/fontdlgg.h"
46 #include "wx/settings.h"
47
48 //-----------------------------------------------------------------------------
49 // helper class - wxFontPreviewer
50 //-----------------------------------------------------------------------------
51
52 class WXDLLEXPORT wxFontPreviewer : public wxWindow
53 {
54 public:
55 wxFontPreviewer(wxWindow *parent, const wxSize& sz = wxDefaultSize) : wxWindow(parent, wxID_ANY, wxDefaultPosition, sz)
56 {
57 }
58
59 private:
60 void OnPaint(wxPaintEvent& event);
61 DECLARE_EVENT_TABLE()
62 };
63
64 BEGIN_EVENT_TABLE(wxFontPreviewer, wxWindow)
65 EVT_PAINT(wxFontPreviewer::OnPaint)
66 END_EVENT_TABLE()
67
68 void wxFontPreviewer::OnPaint(wxPaintEvent& WXUNUSED(event))
69 {
70 wxPaintDC dc(this);
71
72 wxSize size = GetSize();
73 wxFont font = GetFont();
74
75 dc.SetPen(*wxBLACK_PEN);
76 dc.SetBrush(*wxWHITE_BRUSH);
77 dc.DrawRectangle(0, 0, size.x, size.y);
78
79 if ( font.Ok() )
80 {
81 dc.SetFont(font);
82 // Calculate vertical centre
83 long w, h;
84 dc.GetTextExtent( wxT("X"), &w, &h);
85 dc.SetTextForeground(GetForegroundColour());
86 dc.SetClippingRegion(2, 2, size.x-4, size.y-4);
87 dc.DrawText(_("ABCDEFGabcdefg12345"),
88 10, size.y/2 - h/2);
89 dc.DestroyClippingRegion();
90 }
91 }
92
93 //-----------------------------------------------------------------------------
94 // wxGenericFontDialog
95 //-----------------------------------------------------------------------------
96
97 IMPLEMENT_DYNAMIC_CLASS(wxGenericFontDialog, wxDialog)
98
99 BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog)
100 EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
101 EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
102 EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
103 EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
104 EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
105 EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
106 EVT_CLOSE(wxGenericFontDialog::OnCloseWindow)
107 END_EVENT_TABLE()
108
109
110 #define NUM_COLS 48
111 static wxString wxColourDialogNames[NUM_COLS]={wxT("ORANGE"),
112 wxT("GOLDENROD"),
113 wxT("WHEAT"),
114 wxT("SPRING GREEN"),
115 wxT("SKY BLUE"),
116 wxT("SLATE BLUE"),
117 wxT("MEDIUM VIOLET RED"),
118 wxT("PURPLE"),
119
120 wxT("RED"),
121 wxT("YELLOW"),
122 wxT("MEDIUM SPRING GREEN"),
123 wxT("PALE GREEN"),
124 wxT("CYAN"),
125 wxT("LIGHT STEEL BLUE"),
126 wxT("ORCHID"),
127 wxT("LIGHT MAGENTA"),
128
129 wxT("BROWN"),
130 wxT("YELLOW"),
131 wxT("GREEN"),
132 wxT("CADET BLUE"),
133 wxT("MEDIUM BLUE"),
134 wxT("MAGENTA"),
135 wxT("MAROON"),
136 wxT("ORANGE RED"),
137
138 wxT("FIREBRICK"),
139 wxT("CORAL"),
140 wxT("FOREST GREEN"),
141 wxT("AQUARAMINE"),
142 wxT("BLUE"),
143 wxT("NAVY"),
144 wxT("THISTLE"),
145 wxT("MEDIUM VIOLET RED"),
146
147 wxT("INDIAN RED"),
148 wxT("GOLD"),
149 wxT("MEDIUM SEA GREEN"),
150 wxT("MEDIUM BLUE"),
151 wxT("MIDNIGHT BLUE"),
152 wxT("GREY"),
153 wxT("PURPLE"),
154 wxT("KHAKI"),
155
156 wxT("BLACK"),
157 wxT("MEDIUM FOREST GREEN"),
158 wxT("KHAKI"),
159 wxT("DARK GREY"),
160 wxT("SEA GREEN"),
161 wxT("LIGHT GREY"),
162 wxT("MEDIUM SLATE BLUE"),
163 wxT("WHITE")
164 };
165
166 /*
167 * Generic wxFontDialog
168 */
169
170 void wxGenericFontDialog::Init()
171 {
172 m_useEvents = false;
173 m_previewer = NULL;
174 Create( m_parent ) ;
175 }
176
177 wxGenericFontDialog::~wxGenericFontDialog()
178 {
179 }
180
181 void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
182 {
183 EndModal(wxID_CANCEL);
184 }
185
186 bool wxGenericFontDialog::DoCreate(wxWindow *parent)
187 {
188 if ( !wxDialog::Create( parent , wxID_ANY , _T("Choose Font") , wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE,
189 _T("fontdialog") ) )
190 {
191 wxFAIL_MSG( wxT("wxFontDialog creation failed") );
192 return false;
193 }
194
195 InitializeFont();
196 CreateWidgets();
197
198 // sets initial font in preview area
199 wxCommandEvent dummy;
200 OnChangeFont(dummy);
201
202 return true;
203 }
204
205 int wxGenericFontDialog::ShowModal()
206 {
207 int ret = wxDialog::ShowModal();
208
209 if (ret != wxID_CANCEL)
210 {
211 m_fontData.m_chosenFont = dialogFont;
212 }
213
214 return ret;
215 }
216
217 // This should be application-settable
218 static bool ShowToolTips() { return false; }
219
220 void wxGenericFontDialog::CreateWidgets()
221 {
222 wxString
223 *families = new wxString[6],
224 *styles = new wxString[3],
225 *weights = new wxString[3];
226 families[0] = _("Roman");
227 families[1] = _("Decorative");
228 families[2] = _("Modern");
229 families[3] = _("Script");
230 families[4] = _("Swiss" );
231 families[5] = _("Teletype" );
232 styles[0] = _("Normal");
233 styles[1] = _("Italic");
234 styles[2] = _("Slant");
235 weights[0] = _("Normal");
236 weights[1] = _("Light");
237 weights[2] = _("Bold");
238
239 wxString *pointSizes = new wxString[40];
240 int i;
241 for ( i = 0; i < 40; i++)
242 {
243 wxChar buf[5];
244 wxSprintf(buf, wxT("%d"), i + 1);
245 pointSizes[i] = buf;
246 }
247
248 // layout
249
250 bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
251 int noCols, noRows;
252 if (is_pda)
253 {
254 noCols = 2; noRows = 3;
255 }
256 else
257 {
258 noCols = 3; noRows = 2;
259 }
260
261 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
262 this->SetSizer(itemBoxSizer2);
263 this->SetAutoLayout(TRUE);
264
265 wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
266 itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
267
268 wxFlexGridSizer* itemGridSizer4 = new wxFlexGridSizer(noRows, noCols, 0, 0);
269 itemBoxSizer3->Add(itemGridSizer4, 0, wxGROW, 5);
270
271 wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
272 itemGridSizer4->Add(itemBoxSizer5, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW, 5);
273 wxStaticText* itemStaticText6 = new wxStaticText( this, wxID_STATIC, _("&Font family:"), wxDefaultPosition, wxDefaultSize, 0 );
274 itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
275
276 wxChoice* itemChoice7 = new wxChoice( this, wxID_FONT_FAMILY, wxDefaultPosition, wxDefaultSize, 5, families, 0 );
277 itemChoice7->SetHelpText(_("The font family."));
278 if (ShowToolTips())
279 itemChoice7->SetToolTip(_("The font family."));
280 itemBoxSizer5->Add(itemChoice7, 0, wxALIGN_LEFT|wxALL, 5);
281
282 wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxVERTICAL);
283 itemGridSizer4->Add(itemBoxSizer8, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW, 5);
284 wxStaticText* itemStaticText9 = new wxStaticText( this, wxID_STATIC, _("&Style:"), wxDefaultPosition, wxDefaultSize, 0 );
285 itemBoxSizer8->Add(itemStaticText9, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
286
287 wxChoice* itemChoice10 = new wxChoice( this, wxID_FONT_STYLE, wxDefaultPosition, wxDefaultSize, 3, styles, 0 );
288 itemChoice10->SetHelpText(_("The font style."));
289 if (ShowToolTips())
290 itemChoice10->SetToolTip(_("The font style."));
291 itemBoxSizer8->Add(itemChoice10, 0, wxALIGN_LEFT|wxALL, 5);
292
293 wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);
294 itemGridSizer4->Add(itemBoxSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW, 5);
295 wxStaticText* itemStaticText12 = new wxStaticText( this, wxID_STATIC, _("&Weight:"), wxDefaultPosition, wxDefaultSize, 0 );
296 itemBoxSizer11->Add(itemStaticText12, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
297
298 wxChoice* itemChoice13 = new wxChoice( this, wxID_FONT_WEIGHT, wxDefaultPosition, wxDefaultSize, 3, weights, 0 );
299 itemChoice13->SetHelpText(_("The font weight."));
300 if (ShowToolTips())
301 itemChoice13->SetToolTip(_("The font weight."));
302 itemBoxSizer11->Add(itemChoice13, 0, wxALIGN_LEFT|wxALL, 5);
303
304 wxBoxSizer* itemBoxSizer14 = new wxBoxSizer(wxVERTICAL);
305 itemGridSizer4->Add(itemBoxSizer14, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW, 5);
306 if (m_fontData.GetEnableEffects())
307 {
308 wxStaticText* itemStaticText15 = new wxStaticText( this, wxID_STATIC, _("C&olour:"), wxDefaultPosition, wxDefaultSize, 0 );
309 itemBoxSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
310
311 wxSize colourSize = wxDefaultSize;
312 if (is_pda)
313 colourSize.x = 100;
314
315 wxChoice* itemChoice16 = new wxChoice( this, wxID_FONT_COLOUR, wxDefaultPosition, wxDefaultSize, NUM_COLS, wxColourDialogNames, 0 );
316 itemChoice16->SetHelpText(_("The font colour."));
317 if (ShowToolTips())
318 itemChoice16->SetToolTip(_("The font colour."));
319 itemBoxSizer14->Add(itemChoice16, 0, wxALIGN_LEFT|wxALL, 5);
320 }
321
322 wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
323 itemGridSizer4->Add(itemBoxSizer17, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW, 5);
324 wxStaticText* itemStaticText18 = new wxStaticText( this, wxID_STATIC, _("&Point size:"), wxDefaultPosition, wxDefaultSize, 0 );
325 itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
326
327 wxChoice* itemChoice19 = new wxChoice( this, wxID_FONT_SIZE, wxDefaultPosition, wxDefaultSize, 40, pointSizes, 0 );
328 itemChoice19->SetHelpText(_("The font point size."));
329 if (ShowToolTips())
330 itemChoice19->SetToolTip(_("The font point size."));
331 itemBoxSizer17->Add(itemChoice19, 0, wxALIGN_LEFT|wxALL, 5);
332
333 if (m_fontData.GetEnableEffects())
334 {
335 wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxVERTICAL);
336 itemGridSizer4->Add(itemBoxSizer20, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
337 wxCheckBox* itemCheckBox21 = new wxCheckBox( this, wxID_FONT_UNDERLINE, _("&Underline"), wxDefaultPosition, wxDefaultSize, 0 );
338 itemCheckBox21->SetValue(FALSE);
339 itemCheckBox21->SetHelpText(_("Whether the font is underlined."));
340 if (ShowToolTips())
341 itemCheckBox21->SetToolTip(_("Whether the font is underlined."));
342 itemBoxSizer20->Add(itemCheckBox21, 0, wxALIGN_LEFT|wxALL, 5);
343 }
344
345 if (!is_pda)
346 itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
347
348 wxStaticText* itemStaticText23 = new wxStaticText( this, wxID_STATIC, _("Preview:"), wxDefaultPosition, wxDefaultSize, 0 );
349 itemBoxSizer3->Add(itemStaticText23, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
350
351 wxFontPreviewer* itemWindow24 = new wxFontPreviewer( this );
352 m_previewer = itemWindow24;
353 itemWindow24->SetHelpText(_("Shows the font preview."));
354 if (ShowToolTips())
355 itemWindow24->SetToolTip(_("Shows the font preview."));
356 itemBoxSizer3->Add(itemWindow24, 0, wxGROW|wxALL, 5);
357
358 wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL);
359 itemBoxSizer3->Add(itemBoxSizer25, 0, wxGROW, 5);
360 itemBoxSizer25->Add(5, 5, 1, wxGROW|wxALL, 5);
361
362 #ifdef __WXMAC__
363 wxButton* itemButton28 = new wxButton( this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
364 if (ShowToolTips())
365 itemButton28->SetToolTip(_("Click to cancel the font selection."));
366 itemBoxSizer25->Add(itemButton28, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
367
368 wxButton* itemButton27 = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
369 itemButton27->SetDefault();
370 itemButton27->SetHelpText(_("Click to confirm the font selection."));
371 if (ShowToolTips())
372 itemButton27->SetToolTip(_("Click to confirm the font selection."));
373 itemBoxSizer25->Add(itemButton27, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
374 #else
375 wxButton* itemButton27 = new wxButton( this, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
376 itemButton27->SetDefault();
377 itemButton27->SetHelpText(_("Click to confirm the font selection."));
378 if (ShowToolTips())
379 itemButton27->SetToolTip(_("Click to confirm the font selection."));
380 itemBoxSizer25->Add(itemButton27, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
381
382 wxButton* itemButton28 = new wxButton( this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
383 if (ShowToolTips())
384 itemButton28->SetToolTip(_("Click to cancel the font selection."));
385 itemBoxSizer25->Add(itemButton28, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
386 #endif
387
388 familyChoice = (wxChoice*) FindWindow(wxID_FONT_FAMILY);
389 styleChoice = (wxChoice*) FindWindow(wxID_FONT_STYLE);
390 weightChoice = (wxChoice*) FindWindow(wxID_FONT_WEIGHT);
391 colourChoice = (wxChoice*) FindWindow(wxID_FONT_COLOUR);
392 pointSizeChoice = (wxChoice*) FindWindow(wxID_FONT_SIZE);
393 underLineCheckBox = (wxCheckBox*) FindWindow(wxID_FONT_UNDERLINE);
394
395 familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) );
396 styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle()));
397 weightChoice->SetStringSelection(wxFontWeightIntToString(dialogFont.GetWeight()));
398
399 if (colourChoice)
400 {
401 wxString name(wxTheColourDatabase->FindName(m_fontData.GetColour()));
402 if (name.length())
403 colourChoice->SetStringSelection(name);
404 else
405 colourChoice->SetStringSelection(wxT("BLACK"));
406 }
407
408 if (underLineCheckBox)
409 {
410 underLineCheckBox->SetValue(dialogFont.GetUnderlined());
411 }
412
413 pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1);
414
415 GetSizer()->SetItemMinSize(m_previewer, is_pda ? 100 : 430, is_pda ? 40 : 100);
416 GetSizer()->SetSizeHints(this);
417 GetSizer()->Fit(this);
418
419 Centre(wxBOTH);
420
421 delete[] families;
422 delete[] styles;
423 delete[] weights;
424 delete[] pointSizes;
425
426 // Don't block events any more
427 m_useEvents = true;
428
429 }
430
431 void wxGenericFontDialog::InitializeFont()
432 {
433 int fontFamily = wxSWISS;
434 int fontWeight = wxNORMAL;
435 int fontStyle = wxNORMAL;
436 int fontSize = 12;
437 bool fontUnderline = false;
438
439 if (m_fontData.m_initialFont.Ok())
440 {
441 fontFamily = m_fontData.m_initialFont.GetFamily();
442 fontWeight = m_fontData.m_initialFont.GetWeight();
443 fontStyle = m_fontData.m_initialFont.GetStyle();
444 fontSize = m_fontData.m_initialFont.GetPointSize();
445 fontUnderline = m_fontData.m_initialFont.GetUnderlined();
446 }
447
448 dialogFont = wxFont(fontSize, fontFamily, fontStyle,
449 fontWeight, fontUnderline);
450
451 if (m_previewer)
452 m_previewer->SetFont(dialogFont);
453 }
454
455 void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event))
456 {
457 if (!m_useEvents) return;
458
459 int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection());
460 int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection());
461 int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection());
462 int fontSize = wxAtoi(pointSizeChoice->GetStringSelection());
463 // Start with previous underline setting, we want to retain it even if we can't edit it
464 // dialogFont is always initialized because of the call to InitializeFont
465 int fontUnderline = dialogFont.GetUnderlined();
466
467 if (underLineCheckBox)
468 {
469 fontUnderline = underLineCheckBox->GetValue();
470 }
471
472 dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0));
473 m_previewer->SetFont(dialogFont);
474
475 if ( colourChoice )
476 {
477 if ( !colourChoice->GetStringSelection().empty() )
478 {
479 wxColour col = wxTheColourDatabase->Find(colourChoice->GetStringSelection());
480 if (col.Ok())
481 {
482 m_fontData.m_fontColour = col;
483 }
484 }
485 }
486 // Update color here so that we can also use the color originally passed in
487 // (EnableEffects may be false)
488 if (m_fontData.m_fontColour.Ok())
489 m_previewer->SetForegroundColour(m_fontData.m_fontColour);
490
491 m_previewer->Refresh();
492 }
493
494 const wxChar *wxFontWeightIntToString(int weight)
495 {
496 switch (weight)
497 {
498 case wxLIGHT:
499 return wxT("Light");
500 case wxBOLD:
501 return wxT("Bold");
502 case wxNORMAL:
503 default:
504 return wxT("Normal");
505 }
506 }
507
508 const wxChar *wxFontStyleIntToString(int style)
509 {
510 switch (style)
511 {
512 case wxITALIC:
513 return wxT("Italic");
514 case wxSLANT:
515 return wxT("Slant");
516 case wxNORMAL:
517 default:
518 return wxT("Normal");
519 }
520 }
521
522 const wxChar *wxFontFamilyIntToString(int family)
523 {
524 switch (family)
525 {
526 case wxROMAN:
527 return wxT("Roman");
528 case wxDECORATIVE:
529 return wxT("Decorative");
530 case wxMODERN:
531 return wxT("Modern");
532 case wxSCRIPT:
533 return wxT("Script");
534 case wxTELETYPE:
535 return wxT("Teletype");
536 case wxSWISS:
537 default:
538 return wxT("Swiss");
539 }
540 }
541
542 int wxFontFamilyStringToInt(wxChar *family)
543 {
544 if (!family)
545 return wxSWISS;
546
547 if (wxStrcmp(family, wxT("Roman")) == 0)
548 return wxROMAN;
549 else if (wxStrcmp(family, wxT("Decorative")) == 0)
550 return wxDECORATIVE;
551 else if (wxStrcmp(family, wxT("Modern")) == 0)
552 return wxMODERN;
553 else if (wxStrcmp(family, wxT("Script")) == 0)
554 return wxSCRIPT;
555 else if (wxStrcmp(family, wxT("Teletype")) == 0)
556 return wxTELETYPE;
557 else return wxSWISS;
558 }
559
560 int wxFontStyleStringToInt(wxChar *style)
561 {
562 if (!style)
563 return wxNORMAL;
564 if (wxStrcmp(style, wxT("Italic")) == 0)
565 return wxITALIC;
566 else if (wxStrcmp(style, wxT("Slant")) == 0)
567 return wxSLANT;
568 else
569 return wxNORMAL;
570 }
571
572 int wxFontWeightStringToInt(wxChar *weight)
573 {
574 if (!weight)
575 return wxNORMAL;
576 if (wxStrcmp(weight, wxT("Bold")) == 0)
577 return wxBOLD;
578 else if (wxStrcmp(weight, wxT("Light")) == 0)
579 return wxLIGHT;
580 else
581 return wxNORMAL;
582 }
583
584 #endif
585 // wxUSE_FONTDLG
586