1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/richtext/richeditfontpage.cpp
3 // Purpose: Font page for wxRichTextFormattingDialog
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #include "wx/richtext/richtextfontpage.h"
15 * wxRichTextFontPage type definition
18 IMPLEMENT_DYNAMIC_CLASS( wxRichTextFontPage
, wxPanel
)
21 * wxRichTextFontPage event table definition
24 BEGIN_EVENT_TABLE( wxRichTextFontPage
, wxPanel
)
25 EVT_LISTBOX( ID_RICHTEXTFONTPAGE_FACELISTBOX
, wxRichTextFontPage::OnFaceListBoxSelected
)
26 EVT_BUTTON( ID_RICHTEXTFONTPAGE_COLOURCTRL
, wxRichTextFontPage::OnColourClicked
)
28 ////@begin wxRichTextFontPage event table entries
29 EVT_TEXT( ID_RICHTEXTFONTPAGE_FACETEXTCTRL
, wxRichTextFontPage::OnFaceTextCtrlUpdated
)
31 EVT_TEXT( ID_RICHTEXTFONTPAGE_SIZETEXTCTRL
, wxRichTextFontPage::OnSizeTextCtrlUpdated
)
33 EVT_LISTBOX( ID_RICHTEXTFONTPAGE_SIZELISTBOX
, wxRichTextFontPage::OnSizeListBoxSelected
)
35 EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_STYLECTRL
, wxRichTextFontPage::OnStyleCtrlSelected
)
37 EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_WEIGHTCTRL
, wxRichTextFontPage::OnWeightCtrlSelected
)
39 EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL
, wxRichTextFontPage::OnUnderliningCtrlSelected
)
41 EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL
, wxRichTextFontPage::OnStrikethroughctrlClick
)
43 EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_CAPSCTRL
, wxRichTextFontPage::OnCapsctrlClick
)
45 ////@end wxRichTextFontPage event table entries
50 * wxRichTextFontPage constructors
53 wxRichTextFontPage::wxRichTextFontPage( )
58 wxRichTextFontPage::wxRichTextFontPage( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
61 Create(parent
, id
, pos
, size
, style
);
68 void wxRichTextFontPage::Init()
71 m_colourPresent
= false;
73 ////@begin wxRichTextFontPage member initialisation
74 m_faceTextCtrl
= NULL
;
76 m_sizeTextCtrl
= NULL
;
80 m_underliningCtrl
= NULL
;
82 m_strikethroughCtrl
= NULL
;
83 m_capitalsCtrl
= NULL
;
85 ////@end wxRichTextFontPage member initialisation
89 * wxRichTextFontPage creator
92 bool wxRichTextFontPage::Create( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
94 ////@begin wxRichTextFontPage creation
95 wxPanel::Create( parent
, id
, pos
, size
, style
);
100 GetSizer()->SetSizeHints(this);
103 ////@end wxRichTextFontPage creation
108 * Control creation for wxRichTextFontPage
111 void wxRichTextFontPage::CreateControls()
113 ////@begin wxRichTextFontPage content construction
114 wxRichTextFontPage
* itemPanel1
= this;
116 wxBoxSizer
* itemBoxSizer2
= new wxBoxSizer(wxVERTICAL
);
117 itemPanel1
->SetSizer(itemBoxSizer2
);
119 wxBoxSizer
* itemBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
120 itemBoxSizer2
->Add(itemBoxSizer3
, 1, wxGROW
|wxALL
, 5);
122 wxBoxSizer
* itemBoxSizer4
= new wxBoxSizer(wxHORIZONTAL
);
123 itemBoxSizer3
->Add(itemBoxSizer4
, 1, wxGROW
, 5);
125 wxBoxSizer
* itemBoxSizer5
= new wxBoxSizer(wxVERTICAL
);
126 itemBoxSizer4
->Add(itemBoxSizer5
, 1, wxGROW
, 5);
128 wxStaticText
* itemStaticText6
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Font:"), wxDefaultPosition
, wxDefaultSize
, 0 );
129 itemBoxSizer5
->Add(itemStaticText6
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
131 m_faceTextCtrl
= new wxTextCtrl( itemPanel1
, ID_RICHTEXTFONTPAGE_FACETEXTCTRL
, _T(""), wxDefaultPosition
, wxDefaultSize
, 0 );
132 m_faceTextCtrl
->SetHelpText(_("Type a font name."));
134 m_faceTextCtrl
->SetToolTip(_("Type a font name."));
135 itemBoxSizer5
->Add(m_faceTextCtrl
, 0, wxGROW
|wxLEFT
|wxRIGHT
|wxTOP
, 5);
137 m_faceListBox
= new wxRichTextFontListBox( itemPanel1
, ID_RICHTEXTFONTPAGE_FACELISTBOX
, wxDefaultPosition
, wxSize(200, 140), wxSIMPLE_BORDER
);
138 m_faceListBox
->SetHelpText(_("Lists the available fonts."));
140 m_faceListBox
->SetToolTip(_("Lists the available fonts."));
141 itemBoxSizer5
->Add(m_faceListBox
, 1, wxGROW
|wxALL
|wxFIXED_MINSIZE
, 5);
143 wxBoxSizer
* itemBoxSizer9
= new wxBoxSizer(wxVERTICAL
);
144 itemBoxSizer4
->Add(itemBoxSizer9
, 0, wxGROW
, 5);
146 wxStaticText
* itemStaticText10
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Size:"), wxDefaultPosition
, wxDefaultSize
, 0 );
147 itemBoxSizer9
->Add(itemStaticText10
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
149 m_sizeTextCtrl
= new wxTextCtrl( itemPanel1
, ID_RICHTEXTFONTPAGE_SIZETEXTCTRL
, _T(""), wxDefaultPosition
, wxSize(50, -1), 0 );
150 m_sizeTextCtrl
->SetHelpText(_("Type a size in points."));
152 m_sizeTextCtrl
->SetToolTip(_("Type a size in points."));
153 itemBoxSizer9
->Add(m_sizeTextCtrl
, 0, wxGROW
|wxLEFT
|wxRIGHT
|wxTOP
, 5);
155 wxString
* m_sizeListBoxStrings
= NULL
;
156 m_sizeListBox
= new wxListBox( itemPanel1
, ID_RICHTEXTFONTPAGE_SIZELISTBOX
, wxDefaultPosition
, wxSize(50, -1), 0, m_sizeListBoxStrings
, wxLB_SINGLE
);
157 m_sizeListBox
->SetHelpText(_("Lists font sizes in points."));
159 m_sizeListBox
->SetToolTip(_("Lists font sizes in points."));
160 itemBoxSizer9
->Add(m_sizeListBox
, 1, wxALIGN_CENTER_HORIZONTAL
|wxALL
|wxFIXED_MINSIZE
, 5);
162 wxBoxSizer
* itemBoxSizer13
= new wxBoxSizer(wxHORIZONTAL
);
163 itemBoxSizer3
->Add(itemBoxSizer13
, 0, wxGROW
, 5);
165 wxBoxSizer
* itemBoxSizer14
= new wxBoxSizer(wxVERTICAL
);
166 itemBoxSizer13
->Add(itemBoxSizer14
, 1, wxGROW
, 5);
168 wxStaticText
* itemStaticText15
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("Font st&yle:"), wxDefaultPosition
, wxDefaultSize
, 0 );
169 itemBoxSizer14
->Add(itemStaticText15
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
171 wxString
* m_styleCtrlStrings
= NULL
;
172 m_styleCtrl
= new wxComboBox( itemPanel1
, ID_RICHTEXTFONTPAGE_STYLECTRL
, _T(""), wxDefaultPosition
, wxDefaultSize
, 0, m_styleCtrlStrings
, wxCB_READONLY
);
173 m_styleCtrl
->SetHelpText(_("Select regular or italic style."));
175 m_styleCtrl
->SetToolTip(_("Select regular or italic style."));
176 itemBoxSizer14
->Add(m_styleCtrl
, 0, wxGROW
|wxALL
, 5);
178 wxBoxSizer
* itemBoxSizer17
= new wxBoxSizer(wxVERTICAL
);
179 itemBoxSizer13
->Add(itemBoxSizer17
, 1, wxGROW
, 5);
181 wxStaticText
* itemStaticText18
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("Font &weight:"), wxDefaultPosition
, wxDefaultSize
, 0 );
182 itemBoxSizer17
->Add(itemStaticText18
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
184 wxString
* m_weightCtrlStrings
= NULL
;
185 m_weightCtrl
= new wxComboBox( itemPanel1
, ID_RICHTEXTFONTPAGE_WEIGHTCTRL
, _T(""), wxDefaultPosition
, wxDefaultSize
, 0, m_weightCtrlStrings
, wxCB_READONLY
);
186 m_weightCtrl
->SetHelpText(_("Select regular or bold."));
188 m_weightCtrl
->SetToolTip(_("Select regular or bold."));
189 itemBoxSizer17
->Add(m_weightCtrl
, 0, wxGROW
|wxALL
, 5);
191 wxBoxSizer
* itemBoxSizer20
= new wxBoxSizer(wxVERTICAL
);
192 itemBoxSizer13
->Add(itemBoxSizer20
, 1, wxGROW
, 5);
194 wxStaticText
* itemStaticText21
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Underlining:"), wxDefaultPosition
, wxDefaultSize
, 0 );
195 itemBoxSizer20
->Add(itemStaticText21
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
197 wxString
* m_underliningCtrlStrings
= NULL
;
198 m_underliningCtrl
= new wxComboBox( itemPanel1
, ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL
, _T(""), wxDefaultPosition
, wxDefaultSize
, 0, m_underliningCtrlStrings
, wxCB_READONLY
);
199 m_underliningCtrl
->SetHelpText(_("Select underlining or no underlining."));
201 m_underliningCtrl
->SetToolTip(_("Select underlining or no underlining."));
202 itemBoxSizer20
->Add(m_underliningCtrl
, 0, wxGROW
|wxALL
, 5);
204 wxBoxSizer
* itemBoxSizer23
= new wxBoxSizer(wxVERTICAL
);
205 itemBoxSizer13
->Add(itemBoxSizer23
, 0, wxGROW
, 5);
207 wxStaticText
* itemStaticText24
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Colour:"), wxDefaultPosition
, wxDefaultSize
, 0 );
208 itemBoxSizer23
->Add(itemStaticText24
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
210 m_colourCtrl
= new wxRichTextColourSwatchCtrl( itemPanel1
, ID_RICHTEXTFONTPAGE_COLOURCTRL
, wxDefaultPosition
, wxSize(40, 20), wxSIMPLE_BORDER
);
211 m_colourCtrl
->SetHelpText(_("Click to change the text colour."));
213 m_colourCtrl
->SetToolTip(_("Click to change the text colour."));
214 itemBoxSizer23
->Add(m_colourCtrl
, 0, wxALIGN_LEFT
|wxALL
, 5);
216 wxBoxSizer
* itemBoxSizer26
= new wxBoxSizer(wxHORIZONTAL
);
217 itemBoxSizer3
->Add(itemBoxSizer26
, 0, wxGROW
, 5);
219 m_strikethroughCtrl
= new wxCheckBox( itemPanel1
, ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL
, _("&Strikethrough"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
);
220 m_strikethroughCtrl
->SetValue(false);
221 m_strikethroughCtrl
->SetHelpText(_("Check to show a line through the text."));
223 m_strikethroughCtrl
->SetToolTip(_("Check to show a line through the text."));
224 itemBoxSizer26
->Add(m_strikethroughCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
226 m_capitalsCtrl
= new wxCheckBox( itemPanel1
, ID_RICHTEXTFONTPAGE_CAPSCTRL
, _("Ca&pitals"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
);
227 m_capitalsCtrl
->SetValue(false);
228 m_capitalsCtrl
->SetHelpText(_("Check to show the text in capitals."));
230 m_capitalsCtrl
->SetToolTip(_("Check to show the text in capitals."));
231 itemBoxSizer26
->Add(m_capitalsCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
233 itemBoxSizer3
->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
235 m_previewCtrl
= new wxRichTextFontPreviewCtrl( itemPanel1
, ID_RICHTEXTFONTPAGE_PREVIEWCTRL
, wxDefaultPosition
, wxSize(100, 80), wxSIMPLE_BORDER
);
236 m_previewCtrl
->SetHelpText(_("Shows a preview of the font settings."));
238 m_previewCtrl
->SetToolTip(_("Shows a preview of the font settings."));
239 itemBoxSizer3
->Add(m_previewCtrl
, 0, wxGROW
|wxALL
, 5);
241 ////@end wxRichTextFontPage content construction
243 m_faceListBox
->UpdateFonts();
245 m_styleCtrl
->Append(_("Regular"));
246 m_styleCtrl
->Append(_("Italic"));
248 m_weightCtrl
->Append(_("Regular"));
249 m_weightCtrl
->Append(_("Bold"));
251 m_underliningCtrl
->Append(_("Not underlined"));
252 m_underliningCtrl
->Append(_("Underlined"));
256 for (i
= 8; i
< 40; i
++)
258 nStr
.Printf(wxT("%d"), i
);
259 m_sizeListBox
->Append(nStr
);
261 m_sizeListBox
->Append(wxT("48"));
262 m_sizeListBox
->Append(wxT("72"));
265 /// Transfer data from/to window
266 bool wxRichTextFontPage::TransferDataFromWindow()
268 wxPanel::TransferDataFromWindow();
270 wxTextAttrEx
* attr
= GetAttributes();
272 if (m_faceListBox
->GetSelection() != wxNOT_FOUND
)
274 wxString faceName
= m_faceListBox
->GetFaceName(m_faceListBox
->GetSelection());
275 if (!faceName
.IsEmpty())
277 wxFont
font(attr
->GetFont().Ok() ? attr
->GetFont() : *wxNORMAL_FONT
);
278 font
.SetFaceName(faceName
);
279 wxSetFontPreservingStyles(*attr
, font
);
280 attr
->SetFlags(attr
->GetFlags() | wxTEXT_ATTR_FONT_FACE
);
284 attr
->SetFlags(attr
->GetFlags() & (~ wxTEXT_ATTR_FONT_FACE
));
286 wxString strSize
= m_sizeTextCtrl
->GetValue();
287 if (!strSize
.IsEmpty())
289 int sz
= wxAtoi(strSize
);
292 wxFont
font(attr
->GetFont().Ok() ? attr
->GetFont() : *wxNORMAL_FONT
);
293 font
.SetPointSize(sz
);
294 wxSetFontPreservingStyles(*attr
, font
);
295 attr
->SetFlags(attr
->GetFlags() | wxTEXT_ATTR_FONT_SIZE
);
299 attr
->SetFlags(attr
->GetFlags() & (~ wxTEXT_ATTR_FONT_SIZE
));
301 if (m_styleCtrl
->GetSelection() != wxNOT_FOUND
)
304 if (m_styleCtrl
->GetStringSelection() == _("Italic"))
309 wxFont
font(attr
->GetFont().Ok() ? attr
->GetFont() : *wxNORMAL_FONT
);
310 font
.SetStyle(style
);
311 wxSetFontPreservingStyles(*attr
, font
);
312 attr
->SetFlags(attr
->GetFlags() | wxTEXT_ATTR_FONT_ITALIC
);
315 attr
->SetFlags(attr
->GetFlags() & (~ wxTEXT_ATTR_FONT_ITALIC
));
317 if (m_weightCtrl
->GetSelection() != wxNOT_FOUND
)
320 if (m_weightCtrl
->GetStringSelection() == _("Bold"))
325 wxFont
font(attr
->GetFont().Ok() ? attr
->GetFont() : *wxNORMAL_FONT
);
326 font
.SetWeight(weight
);
327 wxSetFontPreservingStyles(*attr
, font
);
328 attr
->SetFlags(attr
->GetFlags() | wxTEXT_ATTR_FONT_WEIGHT
);
331 attr
->SetFlags(attr
->GetFlags() & (~ wxTEXT_ATTR_FONT_WEIGHT
));
333 if (m_underliningCtrl
->GetSelection() != wxNOT_FOUND
)
336 if (m_underliningCtrl
->GetStringSelection() == _("Underlined"))
341 wxFont
font(attr
->GetFont().Ok() ? attr
->GetFont() : *wxNORMAL_FONT
);
342 font
.SetUnderlined(underlined
);
343 wxSetFontPreservingStyles(*attr
, font
);
344 attr
->SetFlags(attr
->GetFlags() | wxTEXT_ATTR_FONT_UNDERLINE
);
347 attr
->SetFlags(attr
->GetFlags() & (~ wxTEXT_ATTR_FONT_UNDERLINE
));
351 attr
->SetTextColour(m_colourCtrl
->GetBackgroundColour());
354 attr
->SetFlags(attr
->GetFlags() & (~ wxTEXT_ATTR_TEXT_COLOUR
));
356 if (m_strikethroughCtrl
->Get3StateValue() != wxCHK_UNDETERMINED
)
358 attr
->SetTextEffectFlags(attr
->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_STRIKETHROUGH
);
360 if (m_strikethroughCtrl
->Get3StateValue() == wxCHK_CHECKED
)
361 attr
->SetTextEffects(attr
->GetTextEffects() | wxTEXT_ATTR_EFFECT_STRIKETHROUGH
);
363 attr
->SetTextEffects(attr
->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_STRIKETHROUGH
);
366 if (m_capitalsCtrl
->Get3StateValue() != wxCHK_UNDETERMINED
)
368 attr
->SetTextEffectFlags(attr
->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_CAPITALS
);
370 if (m_capitalsCtrl
->Get3StateValue() == wxCHK_CHECKED
)
371 attr
->SetTextEffects(attr
->GetTextEffects() | wxTEXT_ATTR_EFFECT_CAPITALS
);
373 attr
->SetTextEffects(attr
->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_CAPITALS
);
379 bool wxRichTextFontPage::TransferDataToWindow()
381 wxPanel::TransferDataToWindow();
384 wxTextAttrEx
* attr
= GetAttributes();
386 if (attr
->HasFont() && attr
->HasFontFaceName())
388 m_faceTextCtrl
->SetValue(attr
->GetFont().GetFaceName());
389 m_faceListBox
->SetFaceNameSelection(attr
->GetFont().GetFaceName());
393 m_faceTextCtrl
->SetValue(wxEmptyString
);
394 m_faceListBox
->SetFaceNameSelection(wxEmptyString
);
397 if (attr
->HasFont() && attr
->HasFontSize())
399 wxString strSize
= wxString::Format(wxT("%d"), attr
->GetFont().GetPointSize());
400 m_sizeTextCtrl
->SetValue(strSize
);
401 if (m_sizeListBox
->FindString(strSize
) != wxNOT_FOUND
)
402 m_sizeListBox
->SetStringSelection(strSize
);
406 m_sizeTextCtrl
->SetValue(wxEmptyString
);
407 m_sizeListBox
->SetSelection(wxNOT_FOUND
);
410 if (attr
->HasFont() && attr
->HasFontWeight())
412 if (attr
->GetFont().GetWeight() == wxBOLD
)
413 m_weightCtrl
->SetSelection(1);
415 m_weightCtrl
->SetSelection(0);
419 m_weightCtrl
->SetSelection(wxNOT_FOUND
);
422 if (attr
->HasFont() && attr
->HasFontItalic())
424 if (attr
->GetFont().GetStyle() == wxITALIC
)
425 m_styleCtrl
->SetSelection(1);
427 m_styleCtrl
->SetSelection(0);
431 m_styleCtrl
->SetSelection(wxNOT_FOUND
);
434 if (attr
->HasFont() && attr
->HasFontUnderlined())
436 if (attr
->GetFont().GetUnderlined())
437 m_underliningCtrl
->SetSelection(1);
439 m_underliningCtrl
->SetSelection(0);
443 m_underliningCtrl
->SetSelection(wxNOT_FOUND
);
446 if (attr
->HasTextColour())
448 m_colourCtrl
->SetBackgroundColour(attr
->GetTextColour());
449 m_colourPresent
= true;
452 if (attr
->HasTextEffects())
454 if (attr
->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_STRIKETHROUGH
)
456 if (attr
->GetTextEffects() & wxTEXT_ATTR_EFFECT_STRIKETHROUGH
)
457 m_strikethroughCtrl
->Set3StateValue(wxCHK_CHECKED
);
459 m_strikethroughCtrl
->Set3StateValue(wxCHK_UNCHECKED
);
462 m_strikethroughCtrl
->Set3StateValue(wxCHK_UNDETERMINED
);
464 if (attr
->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_CAPITALS
)
466 if (attr
->GetTextEffects() & wxTEXT_ATTR_EFFECT_CAPITALS
)
467 m_capitalsCtrl
->Set3StateValue(wxCHK_CHECKED
);
469 m_capitalsCtrl
->Set3StateValue(wxCHK_UNCHECKED
);
472 m_capitalsCtrl
->Set3StateValue(wxCHK_UNDETERMINED
);
476 m_strikethroughCtrl
->Set3StateValue(wxCHK_UNDETERMINED
);
477 m_capitalsCtrl
->Set3StateValue(wxCHK_UNDETERMINED
);
482 m_dontUpdate
= false;
487 wxTextAttrEx
* wxRichTextFontPage::GetAttributes()
489 return wxRichTextFormattingDialog::GetDialogAttributes(this);
492 /// Updates the font preview
493 void wxRichTextFontPage::UpdatePreview()
495 wxFont
font(*wxNORMAL_FONT
);
498 m_previewCtrl
->SetForegroundColour(m_colourCtrl
->GetBackgroundColour());
500 if (m_faceListBox
->GetSelection() != wxNOT_FOUND
)
502 wxString faceName
= m_faceListBox
->GetFaceName(m_faceListBox
->GetSelection());
503 font
.SetFaceName(faceName
);
506 wxString strSize
= m_sizeTextCtrl
->GetValue();
507 if (!strSize
.IsEmpty())
509 int sz
= wxAtoi(strSize
);
511 font
.SetPointSize(sz
);
514 if (m_styleCtrl
->GetSelection() != wxNOT_FOUND
)
517 if (m_styleCtrl
->GetStringSelection() == _("Italic"))
522 font
.SetStyle(style
);
525 if (m_weightCtrl
->GetSelection() != wxNOT_FOUND
)
528 if (m_weightCtrl
->GetStringSelection() == _("Bold"))
533 font
.SetWeight(weight
);
536 if (m_underliningCtrl
->GetSelection() != wxNOT_FOUND
)
539 if (m_underliningCtrl
->GetStringSelection() == _("Underlined"))
544 font
.SetUnderlined(underlined
);
549 if (m_strikethroughCtrl
->Get3StateValue() == wxCHK_CHECKED
)
551 textEffects
|= wxTEXT_ATTR_EFFECT_STRIKETHROUGH
;
554 if (m_capitalsCtrl
->Get3StateValue() == wxCHK_CHECKED
)
556 textEffects
|= wxTEXT_ATTR_EFFECT_CAPITALS
;
559 m_previewCtrl
->SetFont(font
);
560 m_previewCtrl
->SetTextEffects(textEffects
);
561 m_previewCtrl
->Refresh();
565 * Should we show tooltips?
568 bool wxRichTextFontPage::ShowToolTips()
570 return wxRichTextFormattingDialog::ShowToolTips();
574 * Get bitmap resources
577 wxBitmap
wxRichTextFontPage::GetBitmapResource( const wxString
& name
)
580 ////@begin wxRichTextFontPage bitmap retrieval
583 ////@end wxRichTextFontPage bitmap retrieval
590 wxIcon
wxRichTextFontPage::GetIconResource( const wxString
& name
)
593 ////@begin wxRichTextFontPage icon retrieval
596 ////@end wxRichTextFontPage icon retrieval
600 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTFONTPAGE_FACETEXTCTRL
603 void wxRichTextFontPage::OnFaceTextCtrlUpdated( wxCommandEvent
& WXUNUSED(event
) )
608 wxString facename
= m_faceTextCtrl
->GetValue();
609 if (!facename
.IsEmpty())
611 if (m_faceListBox
->HasFaceName(facename
))
613 m_faceListBox
->SetFaceNameSelection(facename
);
618 // Try to find a partial match
619 const wxArrayString
& arr
= m_faceListBox
->GetFaceNames();
621 for (i
= 0; i
< arr
.GetCount(); i
++)
623 if (arr
[i
].Mid(0, facename
.Length()).Lower() == facename
.Lower())
625 m_faceListBox
->ScrollToLine(i
);
635 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTFONTPAGE_SIZETEXTCTRL
638 void wxRichTextFontPage::OnSizeTextCtrlUpdated( wxCommandEvent
& WXUNUSED(event
) )
643 wxString strSize
= m_sizeTextCtrl
->GetValue();
644 if (!strSize
.IsEmpty() && m_sizeListBox
->FindString(strSize
) != wxNOT_FOUND
)
645 m_sizeListBox
->SetStringSelection(strSize
);
651 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_SIZELISTBOX
654 void wxRichTextFontPage::OnSizeListBoxSelected( wxCommandEvent
& event
)
658 m_sizeTextCtrl
->SetValue(event
.GetString());
660 m_dontUpdate
= false;
666 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_FACELISTBOX
669 void wxRichTextFontPage::OnFaceListBoxSelected( wxCommandEvent
& WXUNUSED(event
) )
673 m_faceTextCtrl
->SetValue(m_faceListBox
->GetFaceName(m_faceListBox
->GetSelection()));
675 m_dontUpdate
= false;
681 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_STYLECTRL
684 void wxRichTextFontPage::OnStyleCtrlSelected( wxCommandEvent
& WXUNUSED(event
) )
691 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL
694 void wxRichTextFontPage::OnUnderliningCtrlSelected( wxCommandEvent
& WXUNUSED(event
) )
701 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_WEIGHTCTRL
704 void wxRichTextFontPage::OnWeightCtrlSelected( wxCommandEvent
& WXUNUSED(event
) )
709 void wxRichTextFontPage::OnColourClicked( wxCommandEvent
& WXUNUSED(event
) )
711 m_colourPresent
= true;
716 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL
719 void wxRichTextFontPage::OnStrikethroughctrlClick( wxCommandEvent
& WXUNUSED(event
) )
725 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_CAPSCTRL
728 void wxRichTextFontPage::OnCapsctrlClick( wxCommandEvent
& WXUNUSED(event
) )