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