]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/richtext/richtextbulletspage.cpp
fix syntax errors in the example
[wxWidgets.git] / src / richtext / richtextbulletspage.cpp
... / ...
CommitLineData
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#if wxUSE_RICHTEXT
13
14#include "wx/richtext/richtextbulletspage.h"
15
16#include "wx/richtext/richtextsymboldlg.h"
17
18/*!
19 * wxRichTextBulletsPage type definition
20 */
21
22IMPLEMENT_DYNAMIC_CLASS( wxRichTextBulletsPage, wxPanel )
23
24/*!
25 * wxRichTextBulletsPage event table definition
26 */
27
28BEGIN_EVENT_TABLE( wxRichTextBulletsPage, wxPanel )
29
30////@begin wxRichTextBulletsPage event table entries
31 EVT_LISTBOX( ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxRichTextBulletsPage::OnStylelistboxSelected )
32
33 EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_PERIODCTRL, wxRichTextBulletsPage::OnPeriodctrlClick )
34 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_PERIODCTRL, wxRichTextBulletsPage::OnPeriodctrlUpdate )
35
36 EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, wxRichTextBulletsPage::OnParenthesesctrlClick )
37 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, wxRichTextBulletsPage::OnParenthesesctrlUpdate )
38
39 EVT_CHECKBOX( ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, wxRichTextBulletsPage::OnRightParenthesisCtrlClick )
40 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, wxRichTextBulletsPage::OnRightParenthesisCtrlUpdate )
41
42 EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL, wxRichTextBulletsPage::OnBulletAlignmentCtrlSelected )
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_NAMESTATIC, wxRichTextBulletsPage::OnNamestaticUpdate )
58
59 EVT_COMBOBOX( ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxRichTextBulletsPage::OnNamectrlSelected )
60 EVT_TEXT( ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxRichTextBulletsPage::OnNamectrlUpdated )
61 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxRichTextBulletsPage::OnNamectrlUIUpdate )
62
63 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, wxRichTextBulletsPage::OnNumberstaticUpdate )
64
65 EVT_SPINCTRL( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUpdated )
66 EVT_SPIN_UP( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUp )
67 EVT_SPIN_DOWN( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlDown )
68 EVT_TEXT( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlTextUpdated )
69 EVT_UPDATE_UI( ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxRichTextBulletsPage::OnNumberctrlUpdate )
70
71////@end wxRichTextBulletsPage event table entries
72
73END_EVENT_TABLE()
74
75/*!
76 * wxRichTextBulletsPage constructors
77 */
78
79wxRichTextBulletsPage::wxRichTextBulletsPage( )
80{
81 Init();
82}
83
84wxRichTextBulletsPage::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
94void 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_periodCtrl = NULL;
104 m_parenthesesCtrl = NULL;
105 m_rightParenthesisCtrl = NULL;
106 m_bulletAlignmentCtrl = NULL;
107 m_symbolCtrl = NULL;
108 m_symbolFontCtrl = NULL;
109 m_bulletNameCtrl = NULL;
110 m_numberCtrl = NULL;
111 m_previewCtrl = NULL;
112////@end wxRichTextBulletsPage member initialisation
113}
114
115/*!
116 * wxRichTextBulletsPage creator
117 */
118
119bool wxRichTextBulletsPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
120{
121////@begin wxRichTextBulletsPage creation
122 wxPanel::Create( parent, id, pos, size, style );
123
124 CreateControls();
125 if (GetSizer())
126 {
127 GetSizer()->SetSizeHints(this);
128 }
129 Centre();
130////@end wxRichTextBulletsPage creation
131 return true;
132}
133
134/*!
135 * Control creation for wxRichTextBulletsPage
136 */
137
138void wxRichTextBulletsPage::CreateControls()
139{
140////@begin wxRichTextBulletsPage content construction
141 wxRichTextBulletsPage* itemPanel1 = this;
142
143 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
144 itemPanel1->SetSizer(itemBoxSizer2);
145
146 wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
147 itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
148
149 wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
150 itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
151
152 wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
153 itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5);
154
155 wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Bullet style:"), wxDefaultPosition, wxDefaultSize, 0 );
156 itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
157
158 wxArrayString m_styleListBoxStrings;
159 m_styleListBox = new wxListBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxDefaultPosition, wxSize(-1, 140), m_styleListBoxStrings, wxLB_SINGLE );
160 m_styleListBox->SetHelpText(_("The available bullet styles."));
161 if (wxRichTextBulletsPage::ShowToolTips())
162 m_styleListBox->SetToolTip(_("The available bullet styles."));
163 itemBoxSizer5->Add(m_styleListBox, 1, wxGROW|wxALL, 5);
164
165 wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
166 itemBoxSizer5->Add(itemBoxSizer8, 0, wxGROW, 5);
167
168 m_periodCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_PERIODCTRL, _("Peri&od"), wxDefaultPosition, wxDefaultSize, 0 );
169 m_periodCtrl->SetValue(false);
170 m_periodCtrl->SetHelpText(_("Check to add a period after the bullet."));
171 if (wxRichTextBulletsPage::ShowToolTips())
172 m_periodCtrl->SetToolTip(_("Check to add a period after the bullet."));
173 itemBoxSizer8->Add(m_periodCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
174
175 m_parenthesesCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, _("(*)"), wxDefaultPosition, wxDefaultSize, 0 );
176 m_parenthesesCtrl->SetValue(false);
177 m_parenthesesCtrl->SetHelpText(_("Check to enclose the bullet in parentheses."));
178 if (wxRichTextBulletsPage::ShowToolTips())
179 m_parenthesesCtrl->SetToolTip(_("Check to enclose the bullet in parentheses."));
180 itemBoxSizer8->Add(m_parenthesesCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
181
182 m_rightParenthesisCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, _("*)"), wxDefaultPosition, wxDefaultSize, 0 );
183 m_rightParenthesisCtrl->SetValue(false);
184 m_rightParenthesisCtrl->SetHelpText(_("Check to add a right parenthesis."));
185 if (wxRichTextBulletsPage::ShowToolTips())
186 m_rightParenthesisCtrl->SetToolTip(_("Check to add a right parenthesis."));
187 itemBoxSizer8->Add(m_rightParenthesisCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
188
189 itemBoxSizer5->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
190
191 wxStaticText* itemStaticText13 = new wxStaticText( itemPanel1, wxID_STATIC, _("Bullet &Alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
192 itemBoxSizer5->Add(itemStaticText13, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
193
194 wxArrayString m_bulletAlignmentCtrlStrings;
195 m_bulletAlignmentCtrlStrings.Add(_("Left"));
196 m_bulletAlignmentCtrlStrings.Add(_("Centre"));
197 m_bulletAlignmentCtrlStrings.Add(_("Right"));
198 m_bulletAlignmentCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL, _("Left"), wxDefaultPosition, wxSize(60, -1), m_bulletAlignmentCtrlStrings, wxCB_READONLY );
199 m_bulletAlignmentCtrl->SetStringSelection(_("Left"));
200 m_bulletAlignmentCtrl->SetHelpText(_("The bullet character."));
201 if (wxRichTextBulletsPage::ShowToolTips())
202 m_bulletAlignmentCtrl->SetToolTip(_("The bullet character."));
203 itemBoxSizer5->Add(m_bulletAlignmentCtrl, 0, wxGROW|wxALL|wxFIXED_MINSIZE, 5);
204
205 itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
206
207 wxStaticLine* itemStaticLine16 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
208 itemBoxSizer4->Add(itemStaticLine16, 0, wxGROW|wxLEFT|wxRIGHT, 5);
209
210 itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
211
212 wxBoxSizer* itemBoxSizer18 = new wxBoxSizer(wxVERTICAL);
213 itemBoxSizer4->Add(itemBoxSizer18, 0, wxGROW, 5);
214
215 wxStaticText* itemStaticText19 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("&Symbol:"), wxDefaultPosition, wxDefaultSize, 0 );
216 itemBoxSizer18->Add(itemStaticText19, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
217
218 wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
219 itemBoxSizer18->Add(itemBoxSizer20, 0, wxGROW, 5);
220
221 wxArrayString m_symbolCtrlStrings;
222 m_symbolCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, _T(""), wxDefaultPosition, wxSize(60, -1), m_symbolCtrlStrings, wxCB_DROPDOWN );
223 m_symbolCtrl->SetHelpText(_("The bullet character."));
224 if (wxRichTextBulletsPage::ShowToolTips())
225 m_symbolCtrl->SetToolTip(_("The bullet character."));
226 itemBoxSizer20->Add(m_symbolCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxFIXED_MINSIZE, 5);
227
228 wxButton* itemButton22 = new wxButton( itemPanel1, ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, _("Ch&oose..."), wxDefaultPosition, wxDefaultSize, 0 );
229 itemButton22->SetHelpText(_("Click to browse for a symbol."));
230 if (wxRichTextBulletsPage::ShowToolTips())
231 itemButton22->SetToolTip(_("Click to browse for a symbol."));
232 itemBoxSizer20->Add(itemButton22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
233
234 itemBoxSizer18->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
235
236 wxStaticText* itemStaticText24 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("Symbol &font:"), wxDefaultPosition, wxDefaultSize, 0 );
237 itemBoxSizer18->Add(itemStaticText24, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
238
239 wxArrayString m_symbolFontCtrlStrings;
240 m_symbolFontCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, m_symbolFontCtrlStrings, wxCB_DROPDOWN );
241 m_symbolFontCtrl->SetHelpText(_("Available fonts."));
242 if (wxRichTextBulletsPage::ShowToolTips())
243 m_symbolFontCtrl->SetToolTip(_("Available fonts."));
244 itemBoxSizer18->Add(m_symbolFontCtrl, 0, wxGROW|wxALL, 5);
245
246 itemBoxSizer18->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
247
248 wxStaticText* itemStaticText27 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_NAMESTATIC, _("S&tandard bullet name:"), wxDefaultPosition, wxDefaultSize, 0 );
249 itemBoxSizer18->Add(itemStaticText27, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
250
251 wxArrayString m_bulletNameCtrlStrings;
252 m_bulletNameCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_NAMECTRL, _T(""), wxDefaultPosition, wxDefaultSize, m_bulletNameCtrlStrings, wxCB_DROPDOWN );
253 m_bulletNameCtrl->SetHelpText(_("A standard bullet name."));
254 if (wxRichTextBulletsPage::ShowToolTips())
255 m_bulletNameCtrl->SetToolTip(_("A standard bullet name."));
256 itemBoxSizer18->Add(m_bulletNameCtrl, 0, wxGROW|wxALL, 5);
257
258 itemBoxSizer18->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
259
260 wxStaticText* itemStaticText30 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, _("&Number:"), wxDefaultPosition, wxDefaultSize, 0 );
261 itemBoxSizer18->Add(itemStaticText30, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
262
263 m_numberCtrl = new wxSpinCtrl( itemPanel1, ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, _T("0"), wxDefaultPosition, wxSize(50, -1), wxSP_ARROW_KEYS, 0, 100000, 0 );
264 m_numberCtrl->SetHelpText(_("The list item number."));
265 if (wxRichTextBulletsPage::ShowToolTips())
266 m_numberCtrl->SetToolTip(_("The list item number."));
267 itemBoxSizer18->Add(m_numberCtrl, 0, wxGROW|wxALL, 5);
268
269 itemBoxSizer3->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
270
271 m_previewCtrl = new wxRichTextCtrl( itemPanel1, ID_RICHTEXTBULLETSPAGE_PREVIEW_CTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 180), wxSUNKEN_BORDER|wxVSCROLL );
272 m_previewCtrl->SetHelpText(_("Shows a preview of the bullet settings."));
273 if (wxRichTextBulletsPage::ShowToolTips())
274 m_previewCtrl->SetToolTip(_("Shows a preview of the bullet settings."));
275 itemBoxSizer3->Add(m_previewCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
276
277////@end wxRichTextBulletsPage content construction
278
279 m_styleListBox->Append(_("(None)"));
280 m_styleListBox->Append(_("Arabic"));
281 m_styleListBox->Append(_("Upper case letters"));
282 m_styleListBox->Append(_("Lower case letters"));
283 m_styleListBox->Append(_("Upper case roman numerals"));
284 m_styleListBox->Append(_("Lower case roman numerals"));
285 m_styleListBox->Append(_("Numbered outline"));
286 m_styleListBox->Append(_("Symbol"));
287 m_styleListBox->Append(_("Bitmap"));
288 m_styleListBox->Append(_("Standard"));
289
290 m_symbolCtrl->Append(_("*"));
291 m_symbolCtrl->Append(_("-"));
292 m_symbolCtrl->Append(_(">"));
293 m_symbolCtrl->Append(_("+"));
294 m_symbolCtrl->Append(_("~"));
295
296 wxArrayString standardBulletNames;
297 if (wxRichTextBuffer::GetRenderer())
298 wxRichTextBuffer::GetRenderer()->EnumerateStandardBulletNames(standardBulletNames);
299
300 m_bulletNameCtrl->Append(standardBulletNames);
301
302 wxArrayString facenames = wxRichTextCtrl::GetAvailableFontNames();
303 facenames.Sort();
304
305 m_symbolFontCtrl->Append(facenames);
306}
307
308/// Transfer data from/to window
309bool wxRichTextBulletsPage::TransferDataFromWindow()
310{
311 wxPanel::TransferDataFromWindow();
312
313 wxTextAttr* attr = GetAttributes();
314
315 if (m_hasBulletStyle)
316 {
317 long bulletStyle = wxRICHTEXT_BULLETINDEX_NONE;
318
319 int index = m_styleListBox->GetSelection();
320 if (index == wxRICHTEXT_BULLETINDEX_ARABIC)
321 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ARABIC;
322
323 else if (index == wxRICHTEXT_BULLETINDEX_UPPER_CASE)
324 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER;
325
326 else if (index == wxRICHTEXT_BULLETINDEX_LOWER_CASE)
327 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER;
328
329 else if (index == wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN)
330 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER;
331
332 else if (index == wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN)
333 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER;
334
335 else if (index == wxRICHTEXT_BULLETINDEX_OUTLINE)
336 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_OUTLINE;
337
338 else if (index == wxRICHTEXT_BULLETINDEX_SYMBOL)
339 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_SYMBOL;
340
341 else if (index == wxRICHTEXT_BULLETINDEX_BITMAP)
342 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_BITMAP;
343
344 else if (index == wxRICHTEXT_BULLETINDEX_STANDARD)
345 {
346 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_STANDARD;
347 attr->SetBulletName(m_bulletNameCtrl->GetValue());
348 }
349
350 if (m_parenthesesCtrl->GetValue())
351 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_PARENTHESES;
352 if (m_rightParenthesisCtrl->GetValue())
353 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS;
354 if (m_periodCtrl->GetValue())
355 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_PERIOD;
356
357 if (m_bulletAlignmentCtrl->GetSelection() == 1)
358 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE;
359 else if (m_bulletAlignmentCtrl->GetSelection() == 2)
360 bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT;
361 // Left is implied
362
363 attr->SetBulletStyle(bulletStyle);
364 }
365
366 if (m_hasBulletNumber)
367 {
368 attr->SetBulletNumber(m_numberCtrl->GetValue());
369 }
370
371 if (m_hasBulletSymbol)
372 {
373 attr->SetBulletText(m_symbolCtrl->GetValue());
374 attr->SetBulletFont(m_symbolFontCtrl->GetValue());
375 }
376
377 return true;
378}
379
380bool wxRichTextBulletsPage::TransferDataToWindow()
381{
382 m_dontUpdate = true;
383
384 wxPanel::TransferDataToWindow();
385
386 wxTextAttr* attr = GetAttributes();
387
388 if (attr->HasBulletStyle())
389 {
390 m_hasBulletStyle = true;
391 int index = wxRICHTEXT_BULLETINDEX_NONE;
392
393 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ARABIC)
394 index = wxRICHTEXT_BULLETINDEX_ARABIC;
395
396 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER)
397 index = wxRICHTEXT_BULLETINDEX_UPPER_CASE;
398
399 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER)
400 index = wxRICHTEXT_BULLETINDEX_LOWER_CASE;
401
402 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER)
403 index = wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN;
404
405 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER)
406 index = wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN;
407
408 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_OUTLINE)
409 index = wxRICHTEXT_BULLETINDEX_OUTLINE;
410
411 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_SYMBOL)
412 index = wxRICHTEXT_BULLETINDEX_SYMBOL;
413
414 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_BITMAP)
415 index = wxRICHTEXT_BULLETINDEX_BITMAP;
416
417 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_STANDARD)
418 index = wxRICHTEXT_BULLETINDEX_STANDARD;
419
420 m_styleListBox->SetSelection(index);
421
422 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PARENTHESES)
423 m_parenthesesCtrl->SetValue(true);
424 else
425 m_parenthesesCtrl->SetValue(false);
426
427 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS)
428 m_rightParenthesisCtrl->SetValue(true);
429 else
430 m_rightParenthesisCtrl->SetValue(false);
431
432 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PERIOD)
433 m_periodCtrl->SetValue(true);
434 else
435 m_periodCtrl->SetValue(false);
436
437 if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE)
438 m_bulletAlignmentCtrl->SetSelection(1);
439 else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT)
440 m_bulletAlignmentCtrl->SetSelection(2);
441 else
442 m_bulletAlignmentCtrl->SetSelection(0);
443 }
444 else
445 {
446 m_hasBulletStyle = false;
447 m_styleListBox->SetSelection(-1);
448 m_bulletAlignmentCtrl->SetSelection(-1);
449 }
450
451 if (attr->HasBulletText())
452 {
453 m_symbolCtrl->SetValue(attr->GetBulletText());
454 m_symbolFontCtrl->SetValue(attr->GetBulletFont());
455 }
456 else
457 m_symbolCtrl->SetValue(wxEmptyString);
458
459 if (attr->HasBulletNumber())
460 m_numberCtrl->SetValue(attr->GetBulletNumber());
461 else
462 m_numberCtrl->SetValue(0);
463
464 if (attr->HasBulletName())
465 m_bulletNameCtrl->SetValue(attr->GetBulletName());
466 else
467 m_bulletNameCtrl->SetValue(wxEmptyString);
468
469 UpdatePreview();
470
471 m_dontUpdate = false;
472
473 return true;
474}
475
476/// Updates the bullet preview
477void wxRichTextBulletsPage::UpdatePreview()
478{
479 static const wxChar* s_para1 = wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
480Nullam ante sapien, vestibulum nonummy, pulvinar sed, luctus ut, lacus.");
481
482 static const wxChar* s_para2 = wxT("\nDuis pharetra consequat dui. Cum sociis natoque penatibus \
483et magnis dis parturient montes, nascetur ridiculus mus. Nullam vitae justo id mauris lobortis interdum.");
484
485 static const wxChar* s_para3 = wxT("\nInteger convallis dolor at augue \
486iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
487
488 TransferDataFromWindow();
489 wxTextAttr attr(*GetAttributes());
490 attr.SetFlags(attr.GetFlags() &
491 (wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|
492 wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|
493 wxTEXT_ATTR_LINE_SPACING));
494
495 wxFont font(m_previewCtrl->GetFont());
496 font.SetPointSize(9);
497 m_previewCtrl->SetFont(font);
498
499 wxTextAttr normalParaAttr;
500 normalParaAttr.SetFont(font);
501 normalParaAttr.SetTextColour(wxColour(wxT("LIGHT GREY")));
502
503 m_previewCtrl->Freeze();
504 m_previewCtrl->Clear();
505
506 m_previewCtrl->BeginStyle(normalParaAttr);
507 m_previewCtrl->WriteText(s_para1);
508 m_previewCtrl->EndStyle();
509
510 m_previewCtrl->BeginStyle(attr);
511 m_previewCtrl->WriteText(s_para2);
512 m_previewCtrl->EndStyle();
513
514 m_previewCtrl->BeginStyle(normalParaAttr);
515 m_previewCtrl->WriteText(s_para3);
516 m_previewCtrl->EndStyle();
517
518 m_previewCtrl->NumberList(wxRichTextRange(0, m_previewCtrl->GetLastPosition()+1));
519
520 m_previewCtrl->Thaw();
521}
522
523wxTextAttr* wxRichTextBulletsPage::GetAttributes()
524{
525 return wxRichTextFormattingDialog::GetDialogAttributes(this);
526}
527
528/*!
529 * Should we show tooltips?
530 */
531
532bool wxRichTextBulletsPage::ShowToolTips()
533{
534 return wxRichTextFormattingDialog::ShowToolTips();
535}
536
537/*!
538 * Get bitmap resources
539 */
540
541wxBitmap wxRichTextBulletsPage::GetBitmapResource( const wxString& name )
542{
543 // Bitmap retrieval
544////@begin wxRichTextBulletsPage bitmap retrieval
545 wxUnusedVar(name);
546 return wxNullBitmap;
547////@end wxRichTextBulletsPage bitmap retrieval
548}
549
550/*!
551 * Get icon resources
552 */
553
554wxIcon wxRichTextBulletsPage::GetIconResource( const wxString& name )
555{
556 // Icon retrieval
557////@begin wxRichTextBulletsPage icon retrieval
558 wxUnusedVar(name);
559 return wxNullIcon;
560////@end wxRichTextBulletsPage icon retrieval
561}
562
563/*!
564 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_STYLELISTBOX
565 */
566
567void wxRichTextBulletsPage::OnStylelistboxSelected( wxCommandEvent& WXUNUSED(event) )
568{
569 if (!m_dontUpdate)
570 {
571 m_hasBulletStyle = true;
572
573 if (m_styleListBox->GetSelection() == wxRICHTEXT_BULLETINDEX_SYMBOL)
574 m_hasBulletSymbol = true;
575
576 UpdatePreview();
577 }
578}
579
580/*!
581 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
582 */
583
584void wxRichTextBulletsPage::OnSymbolctrlSelected( wxCommandEvent& WXUNUSED(event) )
585{
586 if (!m_dontUpdate)
587 {
588 m_hasBulletSymbol = true;
589 UpdatePreview();
590 }
591}
592
593/*!
594 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
595 */
596
597void wxRichTextBulletsPage::OnSymbolctrlUpdated( wxCommandEvent& WXUNUSED(event) )
598{
599 if (!m_dontUpdate)
600 {
601 m_hasBulletSymbol = true;
602 UpdatePreview();
603 }
604}
605
606/*!
607 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
608 */
609
610void wxRichTextBulletsPage::OnSymbolctrlUpdate( wxUpdateUIEvent& event )
611{
612 OnSymbolUpdate(event);
613}
614
615/*!
616 * wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
617 */
618
619void wxRichTextBulletsPage::OnNumberctrlUpdated( wxSpinEvent& WXUNUSED(event) )
620{
621 if (!m_dontUpdate)
622 {
623 m_hasBulletNumber = true;
624 UpdatePreview();
625 }
626}
627
628/*!
629 * wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
630 */
631
632void wxRichTextBulletsPage::OnNumberctrlUp( wxSpinEvent& WXUNUSED(event) )
633{
634 if (!m_dontUpdate)
635 {
636 m_hasBulletNumber = true;
637 UpdatePreview();
638 }
639}
640
641/*!
642 * wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
643 */
644
645void wxRichTextBulletsPage::OnNumberctrlDown( wxSpinEvent& WXUNUSED(event) )
646{
647 if (!m_dontUpdate)
648 {
649 m_hasBulletNumber = true;
650 UpdatePreview();
651 }
652}
653
654/*!
655 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
656 */
657
658void wxRichTextBulletsPage::OnNumberctrlTextUpdated( wxCommandEvent& WXUNUSED(event) )
659{
660 if (!m_dontUpdate)
661 {
662 m_hasBulletNumber = true;
663 UpdatePreview();
664 }
665}
666
667/*!
668 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL
669 */
670
671void wxRichTextBulletsPage::OnNumberctrlUpdate( wxUpdateUIEvent& event )
672{
673 OnNumberUpdate(event);
674}
675
676/*!
677 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL
678 */
679
680void wxRichTextBulletsPage::OnParenthesesctrlClick( wxCommandEvent& WXUNUSED(event) )
681{
682 if (!m_dontUpdate)
683 {
684 m_hasBulletStyle = true;
685 UpdatePreview();
686 }
687}
688
689/*!
690 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL
691 */
692
693void wxRichTextBulletsPage::OnParenthesesctrlUpdate( wxUpdateUIEvent& event )
694{
695 int sel = m_styleListBox->GetSelection();
696 event.Enable(m_hasBulletStyle && (sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
697 sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
698 sel != wxRICHTEXT_BULLETINDEX_NONE));
699}
700
701/*!
702 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL
703 */
704
705void wxRichTextBulletsPage::OnPeriodctrlClick( wxCommandEvent& WXUNUSED(event) )
706{
707 if (!m_dontUpdate)
708 {
709 m_hasBulletStyle = true;
710 UpdatePreview();
711 }
712}
713
714/*!
715 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL
716 */
717
718void wxRichTextBulletsPage::OnPeriodctrlUpdate( wxUpdateUIEvent& event )
719{
720 int sel = m_styleListBox->GetSelection();
721 event.Enable(m_hasBulletStyle && (sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
722 sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
723 sel != wxRICHTEXT_BULLETINDEX_NONE));
724}
725
726/*!
727 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
728 */
729
730void wxRichTextBulletsPage::OnChooseSymbolClick( wxCommandEvent& WXUNUSED(event) )
731{
732 int sel = m_styleListBox->GetSelection();
733 if (m_hasBulletStyle && sel == wxRICHTEXT_BULLETINDEX_SYMBOL)
734 {
735 wxString symbol = m_symbolCtrl->GetValue();
736 wxString fontName = m_symbolFontCtrl->GetValue();
737 wxSymbolPickerDialog dlg(symbol, fontName, fontName, this);
738
739 if (dlg.ShowModal() == wxID_OK)
740 {
741 m_dontUpdate = true;
742
743 m_symbolCtrl->SetValue(dlg.GetSymbol());
744 m_symbolFontCtrl->SetValue(dlg.GetFontName());
745
746 UpdatePreview();
747
748 m_dontUpdate = false;
749 }
750 }
751}
752
753/*!
754 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
755 */
756
757void wxRichTextBulletsPage::OnChooseSymbolUpdate( wxUpdateUIEvent& event )
758{
759 OnSymbolUpdate(event);
760}
761/*!
762 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL
763 */
764
765void wxRichTextBulletsPage::OnSymbolfontctrlSelected( wxCommandEvent& WXUNUSED(event) )
766{
767 if (m_dontUpdate)
768 return;
769 UpdatePreview();
770}
771
772/*!
773 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL
774 */
775
776void wxRichTextBulletsPage::OnSymbolfontctrlUpdated( wxCommandEvent& WXUNUSED(event) )
777{
778 if (m_dontUpdate)
779 return;
780 UpdatePreview();
781}
782
783
784/*!
785 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL
786 */
787
788void wxRichTextBulletsPage::OnSymbolfontctrlUIUpdate( wxUpdateUIEvent& event )
789{
790 OnSymbolUpdate(event);
791}
792
793/// Update for symbol-related controls
794void wxRichTextBulletsPage::OnSymbolUpdate( wxUpdateUIEvent& event )
795{
796 int sel = m_styleListBox->GetSelection();
797 event.Enable(m_hasBulletStyle && (sel == wxRICHTEXT_BULLETINDEX_SYMBOL));
798}
799
800/// Update for number-related controls
801void wxRichTextBulletsPage::OnNumberUpdate( wxUpdateUIEvent& event )
802{
803 int sel = m_styleListBox->GetSelection();
804 event.Enable( m_hasBulletStyle && (sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
805 sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
806 sel != wxRICHTEXT_BULLETINDEX_STANDARD &&
807 sel != wxRICHTEXT_BULLETINDEX_NONE));
808}
809
810/// Update for standard bullet-related controls
811void wxRichTextBulletsPage::OnStandardBulletUpdate( wxUpdateUIEvent& event )
812{
813 int sel = m_styleListBox->GetSelection();
814 event.Enable( sel == wxRICHTEXT_BULLETINDEX_STANDARD );
815}
816
817
818/*!
819 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC
820 */
821
822void wxRichTextBulletsPage::OnSymbolstaticUpdate( wxUpdateUIEvent& event )
823{
824 OnSymbolUpdate(event);
825}
826
827
828/*!
829 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC
830 */
831
832void wxRichTextBulletsPage::OnNumberstaticUpdate( wxUpdateUIEvent& event )
833{
834 OnNumberUpdate(event);
835}
836
837/*!
838 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NAMESTATIC
839 */
840
841void wxRichTextBulletsPage::OnNamestaticUpdate( wxUpdateUIEvent& event )
842{
843 OnStandardBulletUpdate(event);
844}
845
846
847/*!
848 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL
849 */
850
851void wxRichTextBulletsPage::OnNamectrlSelected( wxCommandEvent& WXUNUSED(event) )
852{
853 if (m_dontUpdate)
854 return;
855 UpdatePreview();
856}
857
858/*!
859 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL
860 */
861
862void wxRichTextBulletsPage::OnNamectrlUpdated( wxCommandEvent& WXUNUSED(event) )
863{
864 if (m_dontUpdate)
865 return;
866 UpdatePreview();
867}
868
869/*!
870 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL
871 */
872
873void wxRichTextBulletsPage::OnNamectrlUIUpdate( wxUpdateUIEvent& event )
874{
875 OnStandardBulletUpdate(event);
876}
877
878#endif // wxUSE_RICHTEXT
879/*!
880 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_RIGHT_PARENTHESIS_CTRL
881 */
882
883void wxRichTextBulletsPage::OnRightParenthesisCtrlClick( wxCommandEvent& WXUNUSED(event) )
884{
885 if (!m_dontUpdate)
886 {
887 m_hasBulletStyle = true;
888 UpdatePreview();
889 }
890}
891
892/*!
893 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_RIGHT_PARENTHESIS_CTRL
894 */
895
896void wxRichTextBulletsPage::OnRightParenthesisCtrlUpdate( wxUpdateUIEvent& event )
897{
898 int sel = m_styleListBox->GetSelection();
899 event.Enable(m_hasBulletStyle && (sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
900 sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
901 sel != wxRICHTEXT_BULLETINDEX_NONE));
902}
903
904/*!
905 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX
906 */
907
908void wxRichTextBulletsPage::OnBulletAlignmentCtrlSelected( wxCommandEvent& WXUNUSED(event) )
909{
910 if (m_dontUpdate)
911 return;
912 UpdatePreview();
913}
914
915