Warnings, build errors, headers, licence, prefered api and non-PCH support cleaning...
[wxWidgets.git] / src / richtext / richtextbulletspage.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/richtext/richtextbulletspage.cpp
3 // Purpose:
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 10/4/2006 10:32:31 AM
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // For compilers that support precompilation, includes "wx/wx.h".
13 #include "wx/wxprec.h"
14
15 #ifdef __BORLANDC__
16 #pragma hdrstop
17 #endif
18
19 #if wxUSE_RICHTEXT
20
21 #include "wx/richtext/richtextbulletspage.h"
22
23 #ifndef WX_PRECOMP
24 #endif
25
26 #include "wx/richtext/richtextsymboldlg.h"
27 #include "wx/fontenum.h"
28
29 /*!
30 * wxRichTextBulletsPage type definition
31 */
32
33 IMPLEMENT_DYNAMIC_CLASS( wxRichTextBulletsPage, wxPanel )
34
35 /*!
36 * wxRichTextBulletsPage event table definition
37 */
38
39 BEGIN_EVENT_TABLE( wxRichTextBulletsPage, wxPanel )
40
41 ////@begin wxRichTextBulletsPage event table entries
42 EVT_LISTBOX( ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxRichTextBulletsPage::OnStylelistboxSelected )
43
44 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, wxRichTextBulletsPage::OnSymbolstaticUpdate )
45
46 EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxRichTextBulletsPage::OnSymbolctrlSelected )
47 EVT_TEXT( ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxRichTextBulletsPage::OnSymbolctrlUpdated )
48 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxRichTextBulletsPage::OnSymbolctrlUpdate )
49
50 EVT_BUTTON( ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, wxRichTextBulletsPage::OnChooseSymbolClick )
51 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, wxRichTextBulletsPage::OnChooseSymbolUpdate )
52
53 EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxRichTextBulletsPage::OnSymbolfontctrlSelected )
54 EVT_TEXT( ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxRichTextBulletsPage::OnSymbolfontctrlUpdated )
55 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxRichTextBulletsPage::OnSymbolfontctrlUIUpdate )
56
57 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, wxRichTextBulletsPage::OnNumberstaticUpdate )
58
59 EVT_SPINCTRL( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUpdated )
60 EVT_SPIN_UP( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUp )
61 EVT_SPIN_DOWN( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlDown )
62 EVT_TEXT( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlTextUpdated )
63 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUpdate )
64
65 EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, wxRichTextBulletsPage::OnParenthesesctrlClick )
66 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, wxRichTextBulletsPage::OnParenthesesctrlUpdate )
67
68 EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_PERIODCTRL, wxRichTextBulletsPage::OnPeriodctrlClick )
69 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_PERIODCTRL, wxRichTextBulletsPage::OnPeriodctrlUpdate )
70
71 ////@end wxRichTextBulletsPage event table entries
72
73 END_EVENT_TABLE()
74
75 /*!
76 * wxRichTextBulletsPage constructors
77 */
78
79 wxRichTextBulletsPage::wxRichTextBulletsPage( )
80 {
81 Init();
82 }
83
84 wxRichTextBulletsPage::wxRichTextBulletsPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
85 {
86 Init();
87 Create(parent, id, pos, size, style);
88 }
89
90 /*!
91 * Initialise members
92 */
93
94 void wxRichTextBulletsPage::Init()
95 {
96 m_hasBulletStyle = false;
97 m_hasBulletNumber = false;
98 m_hasBulletSymbol = false;
99 m_dontUpdate = false;
100
101 ////@begin wxRichTextBulletsPage member initialisation
102 m_styleListBox = NULL;
103 m_symbolCtrl = NULL;
104 m_symbolFontCtrl = NULL;
105 m_numberCtrl = NULL;
106 m_parenthesesCtrl = NULL;
107 m_periodCtrl = NULL;
108 m_previewCtrl = NULL;
109 ////@end wxRichTextBulletsPage member initialisation
110 }
111
112 /*!
113 * wxRichTextBulletsPage creator
114 */
115
116 bool wxRichTextBulletsPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
117 {
118 ////@begin wxRichTextBulletsPage creation
119 wxPanel::Create( parent, id, pos, size, style );
120
121 CreateControls();
122 if (GetSizer())
123 {
124 GetSizer()->SetSizeHints(this);
125 }
126 Centre();
127 ////@end wxRichTextBulletsPage creation
128 return true;
129 }
130
131 /*!
132 * Control creation for wxRichTextBulletsPage
133 */
134
135 void wxRichTextBulletsPage::CreateControls()
136 {
137 ////@begin wxRichTextBulletsPage content construction
138 wxRichTextBulletsPage* itemPanel1 = this;
139
140 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
141 itemPanel1->SetSizer(itemBoxSizer2);
142
143 wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
144 itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
145
146 wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
147 itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
148
149 wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
150 itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5);
151
152 wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Bullet style:"), wxDefaultPosition, wxDefaultSize, 0 );
153 itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
154
155 wxString* m_styleListBoxStrings = NULL;
156 m_styleListBox = new wxListBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxDefaultPosition, wxDefaultSize, 0, m_styleListBoxStrings, wxLB_SINGLE );
157 itemBoxSizer5->Add(m_styleListBox, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
158
159 itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
160
161 wxStaticLine* itemStaticLine9 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
162 itemBoxSizer4->Add(itemStaticLine9, 0, wxGROW|wxALL, 5);
163
164 itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
165
166 wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);
167 itemBoxSizer4->Add(itemBoxSizer11, 0, wxGROW, 5);
168
169 wxStaticText* itemStaticText12 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("&Symbol:"), wxDefaultPosition, wxDefaultSize, 0 );
170 itemBoxSizer11->Add(itemStaticText12, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
171
172 wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL);
173 itemBoxSizer11->Add(itemBoxSizer13, 0, wxGROW, 5);
174
175 wxString* m_symbolCtrlStrings = NULL;
176 m_symbolCtrl = new wxComboBox( itemPanel1,
177 ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL,
178 wxEmptyString,
179 wxDefaultPosition,
180 wxSize(60, wxDefaultCoord),
181 0,
182 m_symbolCtrlStrings,
183 wxCB_DROPDOWN );
184 itemBoxSizer13->Add(m_symbolCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxFIXED_MINSIZE, 5);
185
186 wxButton* itemButton15 = new wxButton( itemPanel1, ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, _("Ch&oose..."), wxDefaultPosition, wxDefaultSize, 0 );
187 itemBoxSizer13->Add(itemButton15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
188
189 itemBoxSizer11->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
190
191 wxStaticText* itemStaticText17 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("Symbol &font:"), wxDefaultPosition, wxDefaultSize, 0 );
192 itemBoxSizer11->Add(itemStaticText17, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
193
194 wxString* m_symbolFontCtrlStrings = NULL;
195 m_symbolFontCtrl = new wxComboBox( itemPanel1,
196 ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL,
197 wxEmptyString,
198 wxDefaultPosition,
199 wxDefaultSize,
200 0,
201 m_symbolFontCtrlStrings,
202 wxCB_DROPDOWN );
203 itemBoxSizer11->Add(m_symbolFontCtrl, 0, wxGROW|wxALL, 5);
204
205 itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
206
207 wxStaticLine* itemStaticLine20 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
208 itemBoxSizer4->Add(itemStaticLine20, 0, wxGROW|wxALL, 5);
209
210 itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
211
212 wxBoxSizer* itemBoxSizer22 = new wxBoxSizer(wxVERTICAL);
213 itemBoxSizer4->Add(itemBoxSizer22, 0, wxGROW, 5);
214
215 wxStaticText* itemStaticText23 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, _("&Number:"), wxDefaultPosition, wxDefaultSize, 0 );
216 itemBoxSizer22->Add(itemStaticText23, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
217
218 m_numberCtrl = new wxSpinCtrl( itemPanel1, ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, _T("0"), wxDefaultPosition, wxSize(50, wxDefaultCoord), wxSP_ARROW_KEYS, 0, 100000, 0 );
219 itemBoxSizer22->Add(m_numberCtrl, 0, wxGROW|wxALL, 5);
220
221 itemBoxSizer22->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
222
223 m_parenthesesCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, _("&Parentheses"), wxDefaultPosition, wxDefaultSize, 0 );
224 m_parenthesesCtrl->SetValue(false);
225 itemBoxSizer22->Add(m_parenthesesCtrl, 0, wxALIGN_LEFT|wxALL, 5);
226
227 m_periodCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_PERIODCTRL, _("Peri&od"), wxDefaultPosition, wxDefaultSize, 0 );
228 m_periodCtrl->SetValue(false);
229 itemBoxSizer22->Add(m_periodCtrl, 0, wxALIGN_LEFT|wxALL, 5);
230
231 itemBoxSizer3->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
232
233 m_previewCtrl = new wxRichTextCtrl( itemPanel1, ID_RICHTEXTBULLETSPAGE_PREVIEW_CTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 180), wxSUNKEN_BORDER );
234 m_previewCtrl->SetHelpText(_("Shows a preview of the bullet settings."));
235 if (ShowToolTips())
236 m_previewCtrl->SetToolTip(_("Shows a preview of the bullet settings."));
237 itemBoxSizer3->Add(m_previewCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
238
239 ////@end wxRichTextBulletsPage content construction
240
241 m_styleListBox->Append(_("(None)"));
242 m_styleListBox->Append(_("Arabic"));
243 m_styleListBox->Append(_("Upper case letters"));
244 m_styleListBox->Append(_("Lower case letters"));
245 m_styleListBox->Append(_("Upper case roman numerals"));
246 m_styleListBox->Append(_("Lower case roman numerals"));
247 m_styleListBox->Append(_("Symbol"));
248 m_styleListBox->Append(_("Bitmap"));
249
250 m_symbolCtrl->Append(_("*"));
251 m_symbolCtrl->Append(_("-"));
252 m_symbolCtrl->Append(_(">"));
253 m_symbolCtrl->Append(_("+"));
254 m_symbolCtrl->Append(_("~"));
255
256 wxFontEnumerator enumerator;
257 enumerator.EnumerateFacenames();
258 wxArrayString facenames = enumerator.GetFacenames();
259 facenames.Sort();
260
261 m_symbolFontCtrl->Append(facenames);
262 }
263
264 /// Transfer data from/to window
265 bool wxRichTextBulletsPage::TransferDataFromWindow()
266 {
267 wxPanel::TransferDataFromWindow();
268
269 wxTextAttrEx* attr = GetAttributes();
270
271 if (m_hasBulletStyle)
272 {
273 long bulletStyle = 0;
274
275 int index = m_styleListBox->GetSelection();
276 if (index == 1)
277 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ARABIC;
278 else if (index == 2)
279 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER;
280 else if (index == 3)
281 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER;
282 else if (index == 4)
283 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER;
284 else if (index == 5)
285 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER;
286 else if (index == 6)
287 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_SYMBOL;
288 else if (index == 7)
289 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_BITMAP;
290
291 if (m_parenthesesCtrl->GetValue())
292 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_PARENTHESES;
293 if (m_periodCtrl->GetValue())
294 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_PERIOD;
295
296 attr->SetBulletStyle(bulletStyle);
297 }
298
299 if (m_hasBulletNumber)
300 {
301 attr->SetBulletNumber(m_numberCtrl->GetValue());
302 }
303
304 if (m_hasBulletSymbol)
305 {
306 wxChar c(wxT('*'));
307 if (m_symbolCtrl->GetValue().length() > 0)
308 c = m_symbolCtrl->GetValue()[0];
309 attr->SetBulletSymbol(c);
310 attr->SetBulletFont(m_symbolFontCtrl->GetValue());
311 }
312 return true;
313 }
314
315 bool wxRichTextBulletsPage::TransferDataToWindow()
316 {
317 m_dontUpdate = true;
318
319 wxPanel::TransferDataToWindow();
320
321 wxTextAttrEx* attr = GetAttributes();
322
323 if (attr->HasBulletStyle())
324 {
325 int index = -1;
326 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ARABIC)
327 index = 1;
328 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER)
329 index = 2;
330 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER)
331 index = 3;
332 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER)
333 index = 4;
334 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER)
335 index = 5;
336 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_SYMBOL)
337 index = 6;
338 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_BITMAP)
339 index = 7;
340 m_styleListBox->SetSelection(index);
341
342 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PARENTHESES)
343 m_parenthesesCtrl->SetValue(true);
344 else
345 m_parenthesesCtrl->SetValue(false);
346
347 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PERIOD)
348 m_periodCtrl->SetValue(true);
349 else
350 m_periodCtrl->SetValue(false);
351 }
352 else
353 m_styleListBox->SetSelection(-1);
354
355 if (attr->HasBulletSymbol())
356 {
357 wxChar c = attr->GetBulletSymbol();
358 wxString s;
359 s << c;
360 m_symbolCtrl->SetValue(s);
361 m_symbolFontCtrl->SetValue(attr->GetBulletFont());
362 }
363 else
364 m_symbolCtrl->SetValue(wxEmptyString);
365
366 if (attr->HasBulletNumber())
367 m_numberCtrl->SetValue(attr->GetBulletNumber());
368 else
369 m_numberCtrl->SetValue(0);
370
371 UpdatePreview();
372
373 m_dontUpdate = false;
374
375 return true;
376 }
377
378 /// Updates the bullet preview
379 void wxRichTextBulletsPage::UpdatePreview()
380 {
381 static const wxChar* s_para1 = wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
382 Nullam ante sapien, vestibulum nonummy, pulvinar sed, luctus ut, lacus.");
383
384 static const wxChar* s_para2 = wxT("\nDuis pharetra consequat dui. Cum sociis natoque penatibus \
385 et magnis dis parturient montes, nascetur ridiculus mus. Nullam vitae justo id mauris lobortis interdum.");
386
387 static const wxChar* s_para3 = wxT("\nInteger convallis dolor at augue \
388 iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
389
390 TransferDataFromWindow();
391 wxTextAttrEx attr(*GetAttributes());
392 attr.SetFlags(attr.GetFlags() &
393 (wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_SYMBOL|
394 wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|
395 wxTEXT_ATTR_LINE_SPACING));
396
397 wxFont font(m_previewCtrl->GetFont());
398 font.SetPointSize(9);
399 m_previewCtrl->SetFont(font);
400
401 font.SetWeight(wxBOLD);
402 attr.SetFont(font);
403
404 m_previewCtrl->Clear();
405
406 m_previewCtrl->WriteText(s_para1);
407 m_previewCtrl->BeginStyle(attr);
408 m_previewCtrl->WriteText(s_para2);
409 m_previewCtrl->EndStyle();
410 m_previewCtrl->WriteText(s_para3);
411 }
412
413 wxTextAttrEx* wxRichTextBulletsPage::GetAttributes()
414 {
415 return wxRichTextFormattingDialog::GetDialogAttributes(this);
416 }
417
418 /*!
419 * Should we show tooltips?
420 */
421
422 bool wxRichTextBulletsPage::ShowToolTips()
423 {
424 return true;
425 }
426
427 /*!
428 * Get bitmap resources
429 */
430
431 wxBitmap wxRichTextBulletsPage::GetBitmapResource( const wxString& name )
432 {
433 // Bitmap retrieval
434 ////@begin wxRichTextBulletsPage bitmap retrieval
435 wxUnusedVar(name);
436 return wxNullBitmap;
437 ////@end wxRichTextBulletsPage bitmap retrieval
438 }
439
440 /*!
441 * Get icon resources
442 */
443
444 wxIcon wxRichTextBulletsPage::GetIconResource( const wxString& name )
445 {
446 // Icon retrieval
447 ////@begin wxRichTextBulletsPage icon retrieval
448 wxUnusedVar(name);
449 return wxNullIcon;
450 ////@end wxRichTextBulletsPage icon retrieval
451 }
452
453 /*!
454 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_STYLELISTBOX
455 */
456
457 void wxRichTextBulletsPage::OnStylelistboxSelected( wxCommandEvent& WXUNUSED(event) )
458 {
459 if (!m_dontUpdate)
460 {
461 m_hasBulletStyle = true;
462
463 if (m_styleListBox->GetSelection() == 6)
464 m_hasBulletSymbol = true;
465
466 UpdatePreview();
467 }
468 }
469
470 /*!
471 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
472 */
473
474 void wxRichTextBulletsPage::OnSymbolctrlSelected( wxCommandEvent& WXUNUSED(event) )
475 {
476 if (!m_dontUpdate)
477 {
478 m_hasBulletSymbol = true;
479 UpdatePreview();
480 }
481 }
482
483 /*!
484 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
485 */
486
487 void wxRichTextBulletsPage::OnSymbolctrlUpdated( wxCommandEvent& WXUNUSED(event) )
488 {
489 if (!m_dontUpdate)
490 {
491 m_hasBulletSymbol = true;
492 UpdatePreview();
493 }
494 }
495
496 /*!
497 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
498 */
499
500 void wxRichTextBulletsPage::OnSymbolctrlUpdate( wxUpdateUIEvent& event )
501 {
502 OnSymbolUpdate(event);
503 }
504
505 /*!
506 * wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
507 */
508
509 void wxRichTextBulletsPage::OnNumberctrlUpdated( wxSpinEvent& WXUNUSED(event) )
510 {
511 if (!m_dontUpdate)
512 {
513 m_hasBulletNumber = true;
514 UpdatePreview();
515 }
516 }
517
518 /*!
519 * wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
520 */
521
522 void wxRichTextBulletsPage::OnNumberctrlUp( wxSpinEvent& WXUNUSED(event) )
523 {
524 if (!m_dontUpdate)
525 {
526 m_hasBulletNumber = true;
527 UpdatePreview();
528 }
529 }
530
531 /*!
532 * wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
533 */
534
535 void wxRichTextBulletsPage::OnNumberctrlDown( wxSpinEvent& WXUNUSED(event) )
536 {
537 if (!m_dontUpdate)
538 {
539 m_hasBulletNumber = true;
540 UpdatePreview();
541 }
542 }
543
544 /*!
545 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
546 */
547
548 void wxRichTextBulletsPage::OnNumberctrlTextUpdated( wxCommandEvent& WXUNUSED(event) )
549 {
550 if (!m_dontUpdate)
551 {
552 m_hasBulletNumber = true;
553 UpdatePreview();
554 }
555 }
556
557 /*!
558 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
559 */
560
561 void wxRichTextBulletsPage::OnNumberctrlUpdate( wxUpdateUIEvent& event )
562 {
563 OnNumberUpdate(event);
564 }
565
566 /*!
567 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL
568 */
569
570 void wxRichTextBulletsPage::OnParenthesesctrlClick( wxCommandEvent& WXUNUSED(event) )
571 {
572 if (!m_dontUpdate)
573 {
574 m_hasBulletStyle = true;
575 UpdatePreview();
576 }
577 }
578
579 /*!
580 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL
581 */
582
583 void wxRichTextBulletsPage::OnParenthesesctrlUpdate( wxUpdateUIEvent& event )
584 {
585 int sel = m_styleListBox->GetSelection();
586 event.Enable(m_hasBulletStyle && (sel != 6 && sel != 7 && sel != 0));
587 }
588
589 /*!
590 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL
591 */
592
593 void wxRichTextBulletsPage::OnPeriodctrlClick( wxCommandEvent& WXUNUSED(event) )
594 {
595 if (!m_dontUpdate)
596 {
597 m_hasBulletStyle = true;
598 UpdatePreview();
599 }
600 }
601
602 /*!
603 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL
604 */
605
606 void wxRichTextBulletsPage::OnPeriodctrlUpdate( wxUpdateUIEvent& event )
607 {
608 int sel = m_styleListBox->GetSelection();
609 event.Enable(m_hasBulletStyle && (sel != 6 && sel != 7 && sel != 0));
610 }
611
612 /*!
613 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
614 */
615
616 void wxRichTextBulletsPage::OnChooseSymbolClick( wxCommandEvent& WXUNUSED(event) )
617 {
618 int sel = m_styleListBox->GetSelection();
619 if (m_hasBulletStyle && sel == 6)
620 {
621 wxString symbol = m_symbolCtrl->GetValue();
622 wxString fontName = m_symbolFontCtrl->GetValue();
623 wxSymbolPickerDialog dlg(symbol, fontName, fontName, this);
624
625 if (dlg.ShowModal() == wxID_OK)
626 {
627 m_dontUpdate = true;
628
629 m_symbolCtrl->SetValue(dlg.GetSymbol());
630 m_symbolFontCtrl->SetValue(dlg.GetFontName());
631
632 UpdatePreview();
633
634 m_dontUpdate = false;
635 }
636 }
637 }
638
639 /*!
640 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
641 */
642
643 void wxRichTextBulletsPage::OnChooseSymbolUpdate( wxUpdateUIEvent& event )
644 {
645 OnSymbolUpdate(event);
646 }
647 /*!
648 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL
649 */
650
651 void wxRichTextBulletsPage::OnSymbolfontctrlSelected( wxCommandEvent& WXUNUSED(event) )
652 {
653 if (m_dontUpdate)
654 return;
655 UpdatePreview();
656 }
657
658 /*!
659 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL
660 */
661
662 void wxRichTextBulletsPage::OnSymbolfontctrlUpdated( wxCommandEvent& WXUNUSED(event) )
663 {
664 if (m_dontUpdate)
665 return;
666 UpdatePreview();
667 }
668
669
670 /*!
671 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL
672 */
673
674 void wxRichTextBulletsPage::OnSymbolfontctrlUIUpdate( wxUpdateUIEvent& event )
675 {
676 OnSymbolUpdate(event);
677 }
678
679 /// Update for symbol-related controls
680 void wxRichTextBulletsPage::OnSymbolUpdate( wxUpdateUIEvent& event )
681 {
682 int sel = m_styleListBox->GetSelection();
683 event.Enable(m_hasBulletStyle && (sel == 6));
684 }
685
686 /// Update for number-related controls
687 void wxRichTextBulletsPage::OnNumberUpdate( wxUpdateUIEvent& event )
688 {
689 int sel = m_styleListBox->GetSelection();
690 event.Enable( m_hasBulletStyle && (sel != 6 && sel != 7 && sel != 0));
691 }
692
693 /*!
694 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC
695 */
696
697 void wxRichTextBulletsPage::OnSymbolstaticUpdate( wxUpdateUIEvent& event )
698 {
699 OnSymbolUpdate(event);
700 }
701
702
703 /*!
704 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC
705 */
706
707 void wxRichTextBulletsPage::OnNumberstaticUpdate( wxUpdateUIEvent& event )
708 {
709 OnNumberUpdate(event);
710 }
711
712 #endif // wxUSE_RICHTEXT