1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        src/richtext/richtextliststylepage.cpp
3 // Purpose:
4 // Author:      Julian Smart
5 // Modified by:
6 // Created:     10/18/2006 11:36:37 AM
7 // Copyright:   (c) Julian Smart
8 // Licence:     wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10 
11 #include "wx/richtext/richtextliststylepage.h"
12 
13 ////@begin XPM images
14 ////@end XPM images
15 
16 /*!
17  * wxRichTextListStylePage type definition
18  */
19 
IMPLEMENT_DYNAMIC_CLASS(wxRichTextListStylePage,wxRichTextDialogPage)20 IMPLEMENT_DYNAMIC_CLASS( wxRichTextListStylePage, wxRichTextDialogPage )
21 
22 /*!
23  * wxRichTextListStylePage event table definition
24  */
25 
26 BEGIN_EVENT_TABLE( wxRichTextListStylePage, wxRichTextDialogPage )
27 
28 ////@begin wxRichTextListStylePage event table entries
29     EVT_SPINCTRL( ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxRichTextListStylePage::OnLevelUpdated )
30     EVT_SPIN_UP( ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxRichTextListStylePage::OnLevelUp )
31     EVT_SPIN_DOWN( ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxRichTextListStylePage::OnLevelDown )
32     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxRichTextListStylePage::OnLevelTextUpdated )
33     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxRichTextListStylePage::OnLevelUIUpdate )
34 
35     EVT_BUTTON( ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT, wxRichTextListStylePage::OnChooseFontClick )
36 
37     EVT_LISTBOX( ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX, wxRichTextListStylePage::OnStylelistboxSelected )
38 
39     EVT_CHECKBOX( ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL, wxRichTextListStylePage::OnPeriodctrlClick )
40     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL, wxRichTextListStylePage::OnPeriodctrlUpdate )
41 
42     EVT_CHECKBOX( ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL, wxRichTextListStylePage::OnParenthesesctrlClick )
43     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL, wxRichTextListStylePage::OnParenthesesctrlUpdate )
44 
45     EVT_CHECKBOX( ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL, wxRichTextListStylePage::OnRightParenthesisCtrlClick )
46     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL, wxRichTextListStylePage::OnRightParenthesisCtrlUpdate )
47 
48     EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL, wxRichTextListStylePage::OnBulletAlignmentCtrlSelected )
49 
50     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC, wxRichTextListStylePage::OnSymbolstaticUpdate )
51 
52     EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL, wxRichTextListStylePage::OnSymbolctrlSelected )
53     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL, wxRichTextListStylePage::OnSymbolctrlUpdated )
54     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL, wxRichTextListStylePage::OnSymbolctrlUIUpdate )
55 
56     EVT_BUTTON( ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL, wxRichTextListStylePage::OnChooseSymbolClick )
57     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL, wxRichTextListStylePage::OnChooseSymbolUpdate )
58 
59     EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL, wxRichTextListStylePage::OnSymbolfontctrlSelected )
60     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL, wxRichTextListStylePage::OnSymbolfontctrlUpdated )
61     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL, wxRichTextListStylePage::OnSymbolfontctrlUIUpdate )
62 
63     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC, wxRichTextListStylePage::OnNamestaticUpdate )
64 
65     EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL, wxRichTextListStylePage::OnNamectrlSelected )
66     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL, wxRichTextListStylePage::OnNamectrlUpdated )
67     EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL, wxRichTextListStylePage::OnNamectrlUIUpdate )
68 
69     EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT, wxRichTextListStylePage::OnRichtextliststylepageAlignleftSelected )
70 
71     EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT, wxRichTextListStylePage::OnRichtextliststylepageAlignrightSelected )
72 
73     EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED, wxRichTextListStylePage::OnRichtextliststylepageJustifiedSelected )
74 
75     EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_CENTERED, wxRichTextListStylePage::OnRichtextliststylepageCenteredSelected )
76 
77     EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE, wxRichTextListStylePage::OnRichtextliststylepageAlignindeterminateSelected )
78 
79     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT, wxRichTextListStylePage::OnIndentLeftUpdated )
80 
81     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE, wxRichTextListStylePage::OnIndentFirstLineUpdated )
82 
83     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT, wxRichTextListStylePage::OnIndentRightUpdated )
84 
85     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE, wxRichTextListStylePage::OnSpacingBeforeUpdated )
86 
87     EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER, wxRichTextListStylePage::OnSpacingAfterUpdated )
88 
89     EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_LINESPACING, wxRichTextListStylePage::OnLineSpacingSelected )
90 
91 ////@end wxRichTextListStylePage event table entries
92 
93 END_EVENT_TABLE()
94 
95 IMPLEMENT_HELP_PROVISION(wxRichTextListStylePage)
96 
97 /*!
98  * wxRichTextListStylePage constructors
99  */
100 
101 wxRichTextListStylePage::wxRichTextListStylePage( )
102 {
103     Init();
104 }
105 
wxRichTextListStylePage(wxWindow * parent,wxWindowID id,const wxPoint & pos,const wxSize & size,long style)106 wxRichTextListStylePage::wxRichTextListStylePage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
107 {
108     Init();
109     Create(parent, id, pos, size, style);
110 }
111 
112 /*!
113  * wxRichTextListStylePage creator
114  */
115 
Create(wxWindow * parent,wxWindowID id,const wxPoint & pos,const wxSize & size,long style)116 bool wxRichTextListStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
117 {
118 ////@begin wxRichTextListStylePage creation
119     wxRichTextDialogPage::Create( parent, id, pos, size, style );
120 
121     CreateControls();
122     if (GetSizer())
123     {
124         GetSizer()->SetSizeHints(this);
125     }
126     Centre();
127 ////@end wxRichTextListStylePage creation
128     return true;
129 }
130 
131 /*!
132  * Member initialisation
133  */
134 
Init()135 void wxRichTextListStylePage::Init()
136 {
137     m_dontUpdate = false;
138     m_currentLevel = 1;
139 
140 ////@begin wxRichTextListStylePage member initialisation
141     m_levelCtrl = NULL;
142     m_styleListBox = NULL;
143     m_periodCtrl = NULL;
144     m_parenthesesCtrl = NULL;
145     m_rightParenthesisCtrl = NULL;
146     m_bulletAlignmentCtrl = NULL;
147     m_symbolCtrl = NULL;
148     m_symbolFontCtrl = NULL;
149     m_bulletNameCtrl = NULL;
150     m_alignmentLeft = NULL;
151     m_alignmentRight = NULL;
152     m_alignmentJustified = NULL;
153     m_alignmentCentred = NULL;
154     m_alignmentIndeterminate = NULL;
155     m_indentLeft = NULL;
156     m_indentLeftFirst = NULL;
157     m_indentRight = NULL;
158     m_spacingBefore = NULL;
159     m_spacingAfter = NULL;
160     m_spacingLine = NULL;
161     m_previewCtrl = NULL;
162 ////@end wxRichTextListStylePage member initialisation
163 }
164 
165 /*!
166  * Control creation for wxRichTextListStylePage
167  */
168 
CreateControls()169 void wxRichTextListStylePage::CreateControls()
170 {
171 ////@begin wxRichTextListStylePage content construction
172     wxRichTextListStylePage* itemRichTextDialogPage1 = this;
173 
174     wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
175     itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
176 
177     wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
178     itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
179 
180     wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
181     itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL, 5);
182 
183     wxStaticText* itemStaticText5 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&List level:"), wxDefaultPosition, wxDefaultSize, 0 );
184     itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
185 
186     m_levelCtrl = new wxSpinCtrl( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxT("1"), wxDefaultPosition, wxSize(60, -1), wxSP_ARROW_KEYS, 1, 10, 1 );
187     m_levelCtrl->SetHelpText(_("Selects the list level to edit."));
188     if (wxRichTextListStylePage::ShowToolTips())
189         m_levelCtrl->SetToolTip(_("Selects the list level to edit."));
190     itemBoxSizer4->Add(m_levelCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
191 
192     itemBoxSizer4->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
193 
194     wxButton* itemButton8 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT, _("&Font for Level..."), wxDefaultPosition, wxDefaultSize, 0 );
195     itemButton8->SetHelpText(_("Click to choose the font for this level."));
196     if (wxRichTextListStylePage::ShowToolTips())
197         itemButton8->SetToolTip(_("Click to choose the font for this level."));
198     itemBoxSizer4->Add(itemButton8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
199 
200     wxNotebook* itemNotebook9 = new wxNotebook( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT|wxBK_TOP );
201 
202     wxPanel* itemPanel10 = new wxPanel( itemNotebook9, ID_RICHTEXTLISTSTYLEPAGE_BULLETS, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
203     wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);
204     itemPanel10->SetSizer(itemBoxSizer11);
205 
206     wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxHORIZONTAL);
207     itemBoxSizer11->Add(itemBoxSizer12, 1, wxGROW, 5);
208     wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL);
209     itemBoxSizer12->Add(itemBoxSizer13, 0, wxGROW, 5);
210     wxStaticText* itemStaticText14 = new wxStaticText( itemPanel10, wxID_STATIC, _("&Bullet style:"), wxDefaultPosition, wxDefaultSize, 0 );
211     itemBoxSizer13->Add(itemStaticText14, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
212 
213     wxArrayString m_styleListBoxStrings;
214     m_styleListBox = new wxListBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX, wxDefaultPosition, wxSize(-1, 80), m_styleListBoxStrings, wxLB_SINGLE );
215     m_styleListBox->SetHelpText(_("The available bullet styles."));
216     if (wxRichTextListStylePage::ShowToolTips())
217         m_styleListBox->SetToolTip(_("The available bullet styles."));
218     itemBoxSizer13->Add(m_styleListBox, 1, wxGROW|wxALL, 5);
219 
220     wxBoxSizer* itemBoxSizer16 = new wxBoxSizer(wxHORIZONTAL);
221     itemBoxSizer13->Add(itemBoxSizer16, 0, wxGROW, 5);
222     m_periodCtrl = new wxCheckBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL, _("Peri&od"), wxDefaultPosition, wxDefaultSize, 0 );
223     m_periodCtrl->SetValue(false);
224     m_periodCtrl->SetHelpText(_("Check to add a period after the bullet."));
225     if (wxRichTextListStylePage::ShowToolTips())
226         m_periodCtrl->SetToolTip(_("Check to add a period after the bullet."));
227     itemBoxSizer16->Add(m_periodCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
228 
229     m_parenthesesCtrl = new wxCheckBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL, _("(*)"), wxDefaultPosition, wxDefaultSize, 0 );
230     m_parenthesesCtrl->SetValue(false);
231     m_parenthesesCtrl->SetHelpText(_("Check to enclose the bullet in parentheses."));
232     if (wxRichTextListStylePage::ShowToolTips())
233         m_parenthesesCtrl->SetToolTip(_("Check to enclose the bullet in parentheses."));
234     itemBoxSizer16->Add(m_parenthesesCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
235 
236     m_rightParenthesisCtrl = new wxCheckBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL, _("*)"), wxDefaultPosition, wxDefaultSize, 0 );
237     m_rightParenthesisCtrl->SetValue(false);
238     m_rightParenthesisCtrl->SetHelpText(_("Check to add a right parenthesis."));
239     if (wxRichTextListStylePage::ShowToolTips())
240         m_rightParenthesisCtrl->SetToolTip(_("Check to add a right parenthesis."));
241     itemBoxSizer16->Add(m_rightParenthesisCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
242 
243     itemBoxSizer13->Add(2, 1, 0, wxALIGN_CENTER_HORIZONTAL, 5);
244 
245     wxStaticText* itemStaticText21 = new wxStaticText( itemPanel10, wxID_STATIC, _("Bullet &Alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
246     itemBoxSizer13->Add(itemStaticText21, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
247 
248     wxArrayString m_bulletAlignmentCtrlStrings;
249     m_bulletAlignmentCtrlStrings.Add(_("Left"));
250     m_bulletAlignmentCtrlStrings.Add(_("Centre"));
251     m_bulletAlignmentCtrlStrings.Add(_("Right"));
252     m_bulletAlignmentCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL, _("Left"), wxDefaultPosition, wxSize(60, -1), m_bulletAlignmentCtrlStrings, wxCB_READONLY );
253     m_bulletAlignmentCtrl->SetStringSelection(_("Left"));
254     m_bulletAlignmentCtrl->SetHelpText(_("The bullet character."));
255     if (wxRichTextListStylePage::ShowToolTips())
256         m_bulletAlignmentCtrl->SetToolTip(_("The bullet character."));
257     itemBoxSizer13->Add(m_bulletAlignmentCtrl, 0, wxGROW|wxALL|wxFIXED_MINSIZE, 5);
258 
259     itemBoxSizer12->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
260 
261     wxStaticLine* itemStaticLine24 = new wxStaticLine( itemPanel10, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
262     itemBoxSizer12->Add(itemStaticLine24, 0, wxGROW|wxALL, 5);
263 
264     itemBoxSizer12->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
265 
266     wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxVERTICAL);
267     itemBoxSizer12->Add(itemBoxSizer26, 0, wxGROW, 5);
268     wxStaticText* itemStaticText27 = new wxStaticText( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC, _("&Symbol:"), wxDefaultPosition, wxDefaultSize, 0 );
269     itemBoxSizer26->Add(itemStaticText27, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
270 
271     wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
272     itemBoxSizer26->Add(itemBoxSizer28, 0, wxGROW, 5);
273     wxArrayString m_symbolCtrlStrings;
274     m_symbolCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL, wxEmptyString, wxDefaultPosition, wxSize(60, -1), m_symbolCtrlStrings, wxCB_DROPDOWN );
275     m_symbolCtrl->SetHelpText(_("The bullet character."));
276     if (wxRichTextListStylePage::ShowToolTips())
277         m_symbolCtrl->SetToolTip(_("The bullet character."));
278     itemBoxSizer28->Add(m_symbolCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxFIXED_MINSIZE, 5);
279 
280     wxButton* itemButton30 = new wxButton( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL, _("Ch&oose..."), wxDefaultPosition, wxDefaultSize, 0 );
281     itemButton30->SetHelpText(_("Click to browse for a symbol."));
282     if (wxRichTextListStylePage::ShowToolTips())
283         itemButton30->SetToolTip(_("Click to browse for a symbol."));
284     itemBoxSizer28->Add(itemButton30, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
285 
286     itemBoxSizer26->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
287 
288     wxStaticText* itemStaticText32 = new wxStaticText( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC, _("Symbol &font:"), wxDefaultPosition, wxDefaultSize, 0 );
289     itemBoxSizer26->Add(itemStaticText32, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
290 
291     wxArrayString m_symbolFontCtrlStrings;
292     m_symbolFontCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_symbolFontCtrlStrings, wxCB_DROPDOWN );
293     if (wxRichTextListStylePage::ShowToolTips())
294         m_symbolFontCtrl->SetToolTip(_("Available fonts."));
295     itemBoxSizer26->Add(m_symbolFontCtrl, 0, wxGROW|wxALL, 5);
296 
297     itemBoxSizer26->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL, 5);
298 
299     wxStaticText* itemStaticText35 = new wxStaticText( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC, _("S&tandard bullet name:"), wxDefaultPosition, wxDefaultSize, 0 );
300     itemBoxSizer26->Add(itemStaticText35, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
301 
302     wxArrayString m_bulletNameCtrlStrings;
303     m_bulletNameCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bulletNameCtrlStrings, wxCB_DROPDOWN );
304     m_bulletNameCtrl->SetHelpText(_("A standard bullet name."));
305     if (wxRichTextListStylePage::ShowToolTips())
306         m_bulletNameCtrl->SetToolTip(_("A standard bullet name."));
307     itemBoxSizer26->Add(m_bulletNameCtrl, 0, wxGROW|wxALL, 5);
308 
309     itemNotebook9->AddPage(itemPanel10, _("Bullet style"));
310 
311     wxPanel* itemPanel37 = new wxPanel( itemNotebook9, ID_RICHTEXTLISTSTYLEPAGE_SPACING, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
312     wxBoxSizer* itemBoxSizer38 = new wxBoxSizer(wxVERTICAL);
313     itemPanel37->SetSizer(itemBoxSizer38);
314 
315     wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
316     itemBoxSizer38->Add(itemBoxSizer39, 0, wxGROW, 5);
317     wxBoxSizer* itemBoxSizer40 = new wxBoxSizer(wxVERTICAL);
318     itemBoxSizer39->Add(itemBoxSizer40, 0, wxGROW, 5);
319     wxStaticText* itemStaticText41 = new wxStaticText( itemPanel37, wxID_STATIC, _("&Alignment"), wxDefaultPosition, wxDefaultSize, 0 );
320     itemBoxSizer40->Add(itemStaticText41, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
321 
322     wxBoxSizer* itemBoxSizer42 = new wxBoxSizer(wxHORIZONTAL);
323     itemBoxSizer40->Add(itemBoxSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
324     itemBoxSizer42->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL, 5);
325 
326     wxBoxSizer* itemBoxSizer44 = new wxBoxSizer(wxVERTICAL);
327     itemBoxSizer42->Add(itemBoxSizer44, 0, wxALIGN_CENTER_VERTICAL|wxTOP, 5);
328     m_alignmentLeft = new wxRadioButton( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT, _("&Left"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
329     m_alignmentLeft->SetValue(false);
330     m_alignmentLeft->SetHelpText(_("Left-align text."));
331     if (wxRichTextListStylePage::ShowToolTips())
332         m_alignmentLeft->SetToolTip(_("Left-align text."));
333     itemBoxSizer44->Add(m_alignmentLeft, 0, wxALIGN_LEFT|wxALL, 5);
334 
335     m_alignmentRight = new wxRadioButton( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT, _("&Right"), wxDefaultPosition, wxDefaultSize, 0 );
336     m_alignmentRight->SetValue(false);
337     m_alignmentRight->SetHelpText(_("Right-align text."));
338     if (wxRichTextListStylePage::ShowToolTips())
339         m_alignmentRight->SetToolTip(_("Right-align text."));
340     itemBoxSizer44->Add(m_alignmentRight, 0, wxALIGN_LEFT|wxALL, 5);
341 
342     m_alignmentJustified = new wxRadioButton( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED, _("&Justified"), wxDefaultPosition, wxDefaultSize, 0 );
343     m_alignmentJustified->SetValue(false);
344     m_alignmentJustified->SetHelpText(_("Justify text left and right."));
345     if (wxRichTextListStylePage::ShowToolTips())
346         m_alignmentJustified->SetToolTip(_("Justify text left and right."));
347     itemBoxSizer44->Add(m_alignmentJustified, 0, wxALIGN_LEFT|wxALL, 5);
348 
349     m_alignmentCentred = new wxRadioButton( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_CENTERED, _("Cen&tred"), wxDefaultPosition, wxDefaultSize, 0 );
350     m_alignmentCentred->SetValue(false);
351     m_alignmentCentred->SetHelpText(_("Centre text."));
352     if (wxRichTextListStylePage::ShowToolTips())
353         m_alignmentCentred->SetToolTip(_("Centre text."));
354     itemBoxSizer44->Add(m_alignmentCentred, 0, wxALIGN_LEFT|wxALL, 5);
355 
356     m_alignmentIndeterminate = new wxRadioButton( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE, _("&Indeterminate"), wxDefaultPosition, wxDefaultSize, 0 );
357     m_alignmentIndeterminate->SetValue(false);
358     m_alignmentIndeterminate->SetHelpText(_("Use the current alignment setting."));
359     if (wxRichTextListStylePage::ShowToolTips())
360         m_alignmentIndeterminate->SetToolTip(_("Use the current alignment setting."));
361     itemBoxSizer44->Add(m_alignmentIndeterminate, 0, wxALIGN_LEFT|wxALL, 5);
362 
363     itemBoxSizer39->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
364 
365     wxStaticLine* itemStaticLine51 = new wxStaticLine( itemPanel37, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
366     itemBoxSizer39->Add(itemStaticLine51, 0, wxGROW|wxLEFT|wxBOTTOM, 5);
367 
368     itemBoxSizer39->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
369 
370     wxBoxSizer* itemBoxSizer53 = new wxBoxSizer(wxVERTICAL);
371     itemBoxSizer39->Add(itemBoxSizer53, 0, wxGROW, 5);
372     wxStaticText* itemStaticText54 = new wxStaticText( itemPanel37, wxID_STATIC, _("&Indentation (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
373     itemBoxSizer53->Add(itemStaticText54, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
374 
375     wxBoxSizer* itemBoxSizer55 = new wxBoxSizer(wxHORIZONTAL);
376     itemBoxSizer53->Add(itemBoxSizer55, 0, wxALIGN_LEFT|wxALL, 5);
377     itemBoxSizer55->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL, 5);
378 
379     wxFlexGridSizer* itemFlexGridSizer57 = new wxFlexGridSizer(0, 2, 0, 0);
380     itemBoxSizer55->Add(itemFlexGridSizer57, 0, wxALIGN_CENTER_VERTICAL, 5);
381     wxStaticText* itemStaticText58 = new wxStaticText( itemPanel37, wxID_STATIC, _("&Left:"), wxDefaultPosition, wxDefaultSize, 0 );
382     itemFlexGridSizer57->Add(itemStaticText58, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
383 
384     m_indentLeft = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
385     m_indentLeft->SetHelpText(_("The left indent."));
386     if (wxRichTextListStylePage::ShowToolTips())
387         m_indentLeft->SetToolTip(_("The left indent."));
388     itemFlexGridSizer57->Add(m_indentLeft, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
389 
390     wxStaticText* itemStaticText60 = new wxStaticText( itemPanel37, wxID_STATIC, _("Left (&first line):"), wxDefaultPosition, wxDefaultSize, 0 );
391     itemFlexGridSizer57->Add(itemStaticText60, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
392 
393     m_indentLeftFirst = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
394     m_indentLeftFirst->SetHelpText(_("The first line indent."));
395     if (wxRichTextListStylePage::ShowToolTips())
396         m_indentLeftFirst->SetToolTip(_("The first line indent."));
397     itemFlexGridSizer57->Add(m_indentLeftFirst, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
398 
399     wxStaticText* itemStaticText62 = new wxStaticText( itemPanel37, wxID_STATIC, _("&Right:"), wxDefaultPosition, wxDefaultSize, 0 );
400     itemFlexGridSizer57->Add(itemStaticText62, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
401 
402     m_indentRight = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
403     m_indentRight->SetHelpText(_("The right indent."));
404     if (wxRichTextListStylePage::ShowToolTips())
405         m_indentRight->SetToolTip(_("The right indent."));
406     itemFlexGridSizer57->Add(m_indentRight, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
407 
408     itemBoxSizer39->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
409 
410     wxStaticLine* itemStaticLine65 = new wxStaticLine( itemPanel37, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
411     itemBoxSizer39->Add(itemStaticLine65, 0, wxGROW|wxTOP|wxBOTTOM, 5);
412 
413     itemBoxSizer39->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
414 
415     wxBoxSizer* itemBoxSizer67 = new wxBoxSizer(wxVERTICAL);
416     itemBoxSizer39->Add(itemBoxSizer67, 0, wxGROW, 5);
417     wxStaticText* itemStaticText68 = new wxStaticText( itemPanel37, wxID_STATIC, _("&Spacing (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
418     itemBoxSizer67->Add(itemStaticText68, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
419 
420     wxBoxSizer* itemBoxSizer69 = new wxBoxSizer(wxHORIZONTAL);
421     itemBoxSizer67->Add(itemBoxSizer69, 0, wxALIGN_LEFT|wxALL, 5);
422     itemBoxSizer69->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL, 5);
423 
424     wxFlexGridSizer* itemFlexGridSizer71 = new wxFlexGridSizer(0, 2, 0, 0);
425     itemBoxSizer69->Add(itemFlexGridSizer71, 0, wxALIGN_CENTER_VERTICAL, 5);
426     wxStaticText* itemStaticText72 = new wxStaticText( itemPanel37, wxID_STATIC, _("Before a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
427     itemFlexGridSizer71->Add(itemStaticText72, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
428 
429     m_spacingBefore = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
430     m_spacingBefore->SetHelpText(_("The spacing before the paragraph."));
431     if (wxRichTextListStylePage::ShowToolTips())
432         m_spacingBefore->SetToolTip(_("The spacing before the paragraph."));
433     itemFlexGridSizer71->Add(m_spacingBefore, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
434 
435     wxStaticText* itemStaticText74 = new wxStaticText( itemPanel37, wxID_STATIC, _("After a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
436     itemFlexGridSizer71->Add(itemStaticText74, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
437 
438     m_spacingAfter = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
439     m_spacingAfter->SetHelpText(_("The spacing after the paragraph."));
440     if (wxRichTextListStylePage::ShowToolTips())
441         m_spacingAfter->SetToolTip(_("The spacing after the paragraph."));
442     itemFlexGridSizer71->Add(m_spacingAfter, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
443 
444     wxStaticText* itemStaticText76 = new wxStaticText( itemPanel37, wxID_STATIC, _("Line spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
445     itemFlexGridSizer71->Add(itemStaticText76, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
446 
447     wxArrayString m_spacingLineStrings;
448     m_spacingLineStrings.Add(_("(none)"));
449     m_spacingLineStrings.Add(_("Single"));
450     m_spacingLineStrings.Add(_("1.1"));
451     m_spacingLineStrings.Add(_("1.2"));
452     m_spacingLineStrings.Add(_("1.3"));
453     m_spacingLineStrings.Add(_("1.4"));
454     m_spacingLineStrings.Add(_("1.5"));
455     m_spacingLineStrings.Add(_("1.6"));
456     m_spacingLineStrings.Add(_("1.7"));
457     m_spacingLineStrings.Add(_("1.8"));
458     m_spacingLineStrings.Add(_("1.9"));
459     m_spacingLineStrings.Add(_("2"));
460     m_spacingLine = new wxComboBox( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_LINESPACING, _("(none)"), wxDefaultPosition, wxSize(85, -1), m_spacingLineStrings, wxCB_READONLY );
461     m_spacingLine->SetStringSelection(_("(none)"));
462     m_spacingLine->SetHelpText(_("The line spacing."));
463     if (wxRichTextListStylePage::ShowToolTips())
464         m_spacingLine->SetToolTip(_("The line spacing."));
465     itemFlexGridSizer71->Add(m_spacingLine, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
466 
467     itemNotebook9->AddPage(itemPanel37, _("Spacing"));
468 
469     itemBoxSizer3->Add(itemNotebook9, 0, wxGROW|wxALL, 5);
470 
471     m_previewCtrl = new wxRichTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_RICHTEXTCTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 140), wxBORDER_THEME|wxVSCROLL|wxTE_READONLY );
472     m_previewCtrl->SetHelpText(_("Shows a preview of the bullet settings."));
473     if (wxRichTextListStylePage::ShowToolTips())
474         m_previewCtrl->SetToolTip(_("Shows a preview of the bullet settings."));
475     itemBoxSizer3->Add(m_previewCtrl, 0, wxGROW|wxALL, 5);
476 
477 ////@end wxRichTextListStylePage content construction
478 
479     m_dontUpdate = true;
480 
481     m_styleListBox->Append(_("(None)"));
482     m_styleListBox->Append(_("Arabic"));
483     m_styleListBox->Append(_("Upper case letters"));
484     m_styleListBox->Append(_("Lower case letters"));
485     m_styleListBox->Append(_("Upper case roman numerals"));
486     m_styleListBox->Append(_("Lower case roman numerals"));
487     m_styleListBox->Append(_("Numbered outline"));
488     m_styleListBox->Append(_("Symbol"));
489     m_styleListBox->Append(_("Bitmap"));
490     m_styleListBox->Append(_("Standard"));
491 
492     m_symbolCtrl->Append(_("*"));
493     m_symbolCtrl->Append(_("-"));
494     m_symbolCtrl->Append(_(">"));
495     m_symbolCtrl->Append(_("+"));
496     m_symbolCtrl->Append(_("~"));
497 
498     wxArrayString standardBulletNames;
499     if (wxRichTextBuffer::GetRenderer())
500         wxRichTextBuffer::GetRenderer()->EnumerateStandardBulletNames(standardBulletNames);
501 
502     m_bulletNameCtrl->Append(standardBulletNames);
503     wxArrayString facenames = wxRichTextCtrl::GetAvailableFontNames();
504     facenames.Sort();
505 
506     m_symbolFontCtrl->Append(facenames);
507 
508     m_levelCtrl->SetValue(m_currentLevel);
509 
510     m_dontUpdate = false;
511 }
512 
513 /// Updates the font preview
UpdatePreview()514 void wxRichTextListStylePage::UpdatePreview()
515 {
516     static const wxChar* s_para1 = wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
517 Nullam ante sapien, vestibulum nonummy, pulvinar sed, luctus ut, lacus.\n");
518 
519     static const wxChar* s_para2 = wxT("Duis pharetra consequat dui. Nullam vitae justo id mauris lobortis interdum.\n");
520 
521     static const wxChar* s_para3 = wxT("Integer convallis dolor at augue \
522 iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
523 
524     wxRichTextListStyleDefinition* def = wxDynamicCast(wxRichTextFormattingDialog::GetDialogStyleDefinition(this),
525         wxRichTextListStyleDefinition);
526 
527     wxRichTextStyleSheet* styleSheet = wxRichTextFormattingDialog::GetDialog(this)->GetStyleSheet();
528 
529     wxRichTextAttr attr((const wxRichTextAttr &)(styleSheet ? def->GetStyle() : def->GetStyleMergedWithBase(styleSheet)));
530 
531     attr.SetFlags(attr.GetFlags() &
532       (wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|
533        wxTEXT_ATTR_LINE_SPACING|
534        wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT));
535 
536     wxFont font(m_previewCtrl->GetFont());
537     font.SetPointSize(9);
538     m_previewCtrl->SetFont(font);
539 
540     wxRichTextAttr normalParaAttr;
541     normalParaAttr.SetFont(font);
542     normalParaAttr.SetTextColour(wxColour(wxT("LIGHT GREY")));
543 
544     m_previewCtrl->Freeze();
545     m_previewCtrl->Clear();
546 
547     m_previewCtrl->BeginStyle(normalParaAttr);
548     m_previewCtrl->WriteText(s_para1);
549     m_previewCtrl->EndStyle();
550 
551     m_previewCtrl->BeginStyle(attr);
552 
553     int i;
554     for (i = 0; i < 10; i++)
555     {
556         wxRichTextAttr levelAttr = * def->GetLevelAttributes(i);
557         levelAttr.SetBulletNumber(1);
558         m_previewCtrl->BeginStyle(levelAttr);
559         m_previewCtrl->WriteText(wxString::Format(wxT("List level %d. "), i+1) + s_para2);
560         m_previewCtrl->EndStyle();
561     }
562     m_previewCtrl->EndStyle();
563 
564     m_previewCtrl->BeginStyle(normalParaAttr);
565     m_previewCtrl->WriteText(s_para3);
566     m_previewCtrl->EndStyle();
567 
568     m_previewCtrl->Thaw();
569 }
570 
571 /// Transfer data from/to window
TransferDataFromWindow()572 bool wxRichTextListStylePage::TransferDataFromWindow()
573 {
574     wxPanel::TransferDataFromWindow();
575 
576     m_currentLevel = m_levelCtrl->GetValue();
577 
578     wxRichTextAttr* attr = GetAttributesForSelection();
579 
580     if (m_alignmentLeft->GetValue())
581         attr->SetAlignment(wxTEXT_ALIGNMENT_LEFT);
582     else if (m_alignmentCentred->GetValue())
583         attr->SetAlignment(wxTEXT_ALIGNMENT_CENTRE);
584     else if (m_alignmentRight->GetValue())
585         attr->SetAlignment(wxTEXT_ALIGNMENT_RIGHT);
586     else if (m_alignmentJustified->GetValue())
587         attr->SetAlignment(wxTEXT_ALIGNMENT_JUSTIFIED);
588     else
589     {
590         attr->SetAlignment(wxTEXT_ALIGNMENT_DEFAULT);
591         attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_ALIGNMENT));
592     }
593 
594     wxString leftIndent(m_indentLeft->GetValue());
595     wxString leftFirstIndent(m_indentLeftFirst->GetValue());
596     if (!leftIndent.empty())
597     {
598         int visualLeftIndent = wxAtoi(leftIndent);
599         int visualLeftFirstIndent = wxAtoi(leftFirstIndent);
600         int actualLeftIndent = visualLeftFirstIndent;
601         int actualLeftSubIndent = visualLeftIndent - visualLeftFirstIndent;
602 
603         attr->SetLeftIndent(actualLeftIndent, actualLeftSubIndent);
604     }
605     else
606         attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_LEFT_INDENT));
607 
608     wxString rightIndent(m_indentRight->GetValue());
609     if (!rightIndent.empty())
610         attr->SetRightIndent(wxAtoi(rightIndent));
611     else
612         attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_RIGHT_INDENT));
613 
614     wxString spacingAfter(m_spacingAfter->GetValue());
615     if (!spacingAfter.empty())
616         attr->SetParagraphSpacingAfter(wxAtoi(spacingAfter));
617     else
618         attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_PARA_SPACING_AFTER));
619 
620     wxString spacingBefore(m_spacingBefore->GetValue());
621     if (!spacingBefore.empty())
622         attr->SetParagraphSpacingBefore(wxAtoi(spacingBefore));
623     else
624         attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_PARA_SPACING_BEFORE));
625 
626     int spacingIndex = m_spacingLine->GetSelection() - 1;
627     int lineSpacing = 0;
628     if (spacingIndex > -1)
629         lineSpacing = 10 + spacingIndex;
630 
631     if (lineSpacing == 0)
632         attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_LINE_SPACING));
633     else
634         attr->SetLineSpacing(lineSpacing);
635 
636     /// BULLETS
637     // if (m_hasBulletStyle)
638     {
639         long bulletStyle = 0;
640 
641         int index = m_styleListBox->GetSelection();
642         if (index == wxRICHTEXT_BULLETINDEX_ARABIC)
643             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ARABIC;
644 
645         else if (index == wxRICHTEXT_BULLETINDEX_UPPER_CASE)
646             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER;
647 
648         else if (index == wxRICHTEXT_BULLETINDEX_LOWER_CASE)
649             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER;
650 
651         else if (index == wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN)
652             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER;
653 
654         else if (index == wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN)
655             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER;
656 
657         else if (index == wxRICHTEXT_BULLETINDEX_OUTLINE)
658             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_OUTLINE;
659 
660         else if (index == wxRICHTEXT_BULLETINDEX_SYMBOL)
661             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_SYMBOL;
662 
663         else if (index == wxRICHTEXT_BULLETINDEX_BITMAP)
664         {
665             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_BITMAP;
666             if (m_bulletNameCtrl->GetValue().IsEmpty())
667                 attr->SetFlags(attr->GetFlags() & ~wxTEXT_ATTR_BULLET_NAME);
668             else
669                 attr->SetBulletName(m_bulletNameCtrl->GetValue());
670         }
671 
672         else if (index == wxRICHTEXT_BULLETINDEX_STANDARD)
673         {
674             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_STANDARD;
675             attr->SetBulletName(m_bulletNameCtrl->GetValue());
676         }
677 
678         if (m_parenthesesCtrl->GetValue())
679             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_PARENTHESES;
680         if (m_rightParenthesisCtrl->GetValue())
681             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS;
682         if (m_periodCtrl->GetValue())
683             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_PERIOD;
684 
685         if (m_bulletAlignmentCtrl->GetSelection() == 1)
686             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE;
687         else if (m_bulletAlignmentCtrl->GetSelection() == 2)
688             bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT;
689         // Left is implied
690 
691         attr->SetBulletStyle(bulletStyle);
692     }
693 
694     // if (m_hasBulletSymbol)
695     {
696         attr->SetBulletText(m_symbolCtrl->GetValue());
697         attr->SetBulletFont(m_symbolFontCtrl->GetValue());
698     }
699 
700     return true;
701 }
702 
TransferDataToWindow()703 bool wxRichTextListStylePage::TransferDataToWindow()
704 {
705     DoTransferDataToWindow();
706     UpdatePreview();
707 
708     return true;
709 }
710 
711 /// Just transfer to the window
DoTransferDataToWindow()712 void wxRichTextListStylePage::DoTransferDataToWindow()
713 {
714     m_dontUpdate = true;
715 
716     wxPanel::TransferDataToWindow();
717 
718     wxRichTextAttr* attr = GetAttributesForSelection();
719 
720     if (attr->HasAlignment())
721     {
722         if (attr->GetAlignment() == wxTEXT_ALIGNMENT_LEFT)
723             m_alignmentLeft->SetValue(true);
724         else if (attr->GetAlignment() == wxTEXT_ALIGNMENT_RIGHT)
725             m_alignmentRight->SetValue(true);
726         else if (attr->GetAlignment() == wxTEXT_ALIGNMENT_CENTRE)
727             m_alignmentCentred->SetValue(true);
728         else if (attr->GetAlignment() == wxTEXT_ALIGNMENT_JUSTIFIED)
729             m_alignmentJustified->SetValue(true);
730         else
731             m_alignmentIndeterminate->SetValue(true);
732     }
733     else
734         m_alignmentIndeterminate->SetValue(true);
735 
736     if (attr->HasLeftIndent())
737     {
738         wxString leftIndent(wxString::Format(wxT("%ld"), attr->GetLeftIndent() + attr->GetLeftSubIndent()));
739         wxString leftFirstIndent(wxString::Format(wxT("%ld"), attr->GetLeftIndent()));
740 
741         m_indentLeft->SetValue(leftIndent);
742         m_indentLeftFirst->SetValue(leftFirstIndent);
743     }
744     else
745     {
746         m_indentLeft->SetValue(wxEmptyString);
747         m_indentLeftFirst->SetValue(wxEmptyString);
748     }
749 
750     if (attr->HasRightIndent())
751     {
752         wxString rightIndent(wxString::Format(wxT("%ld"), attr->GetRightIndent()));
753 
754         m_indentRight->SetValue(rightIndent);
755     }
756     else
757         m_indentRight->SetValue(wxEmptyString);
758 
759     if (attr->HasParagraphSpacingAfter())
760     {
761         wxString spacingAfter(wxString::Format(wxT("%d"), attr->GetParagraphSpacingAfter()));
762 
763         m_spacingAfter->SetValue(spacingAfter);
764     }
765     else
766         m_spacingAfter->SetValue(wxEmptyString);
767 
768     if (attr->HasParagraphSpacingBefore())
769     {
770         wxString spacingBefore(wxString::Format(wxT("%d"), attr->GetParagraphSpacingBefore()));
771 
772         m_spacingBefore->SetValue(spacingBefore);
773     }
774     else
775         m_spacingBefore->SetValue(wxEmptyString);
776 
777     if (attr->HasLineSpacing())
778     {
779         int index = 0;
780 
781         int lineSpacing = attr->GetLineSpacing();
782         if (lineSpacing >= 10 && lineSpacing <= 20)
783             index = (lineSpacing - 10) + 1;
784         else
785             index = 0;
786 
787         m_spacingLine->SetSelection(index);
788     }
789     else
790         m_spacingLine->SetSelection(0);
791 
792     /// BULLETS
793     if (attr->HasBulletStyle())
794     {
795         int index = 0;
796         if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ARABIC)
797             index = wxRICHTEXT_BULLETINDEX_ARABIC;
798 
799         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER)
800             index = wxRICHTEXT_BULLETINDEX_UPPER_CASE;
801 
802         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER)
803             index = wxRICHTEXT_BULLETINDEX_LOWER_CASE;
804 
805         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER)
806             index = wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN;
807 
808         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER)
809             index = wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN;
810 
811         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_OUTLINE)
812             index = wxRICHTEXT_BULLETINDEX_OUTLINE;
813 
814         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_SYMBOL)
815             index = wxRICHTEXT_BULLETINDEX_SYMBOL;
816 
817         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_BITMAP)
818             index = wxRICHTEXT_BULLETINDEX_BITMAP;
819 
820         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_STANDARD)
821             index = wxRICHTEXT_BULLETINDEX_STANDARD;
822 
823         m_styleListBox->SetSelection(index);
824 
825         if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PARENTHESES)
826             m_parenthesesCtrl->SetValue(true);
827         else
828             m_parenthesesCtrl->SetValue(false);
829 
830         if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS)
831             m_rightParenthesisCtrl->SetValue(true);
832         else
833             m_rightParenthesisCtrl->SetValue(false);
834 
835         if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PERIOD)
836             m_periodCtrl->SetValue(true);
837         else
838             m_periodCtrl->SetValue(false);
839 
840         if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE)
841             m_bulletAlignmentCtrl->SetSelection(1);
842         else if (attr->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT)
843             m_bulletAlignmentCtrl->SetSelection(2);
844         else
845             m_bulletAlignmentCtrl->SetSelection(0);
846     }
847     else
848     {
849         m_styleListBox->SetSelection(-1);
850         m_bulletAlignmentCtrl->SetSelection(-1);
851     }
852 
853     if (attr->HasBulletText())
854     {
855         m_symbolCtrl->SetValue(attr->GetBulletText());
856         m_symbolFontCtrl->SetValue(attr->GetBulletFont());
857     }
858     else
859         m_symbolCtrl->SetValue(wxEmptyString);
860 
861     if (attr->HasBulletName())
862         m_bulletNameCtrl->SetValue(attr->GetBulletName());
863     else
864         m_bulletNameCtrl->SetValue(wxEmptyString);
865 
866     m_dontUpdate = false;
867 }
868 
869 /// Get attributes for selected level
GetAttributesForSelection()870 wxRichTextAttr* wxRichTextListStylePage::GetAttributesForSelection()
871 {
872     wxRichTextListStyleDefinition* def = wxDynamicCast(wxRichTextFormattingDialog::GetDialogStyleDefinition(this),
873         wxRichTextListStyleDefinition);
874 
875     int value = m_levelCtrl->GetValue();
876 
877     if (def)
878         return def->GetLevelAttributes(value-1);
879     else
880         return NULL;
881 }
882 
883 /// Just transfer from the window and update the preview
TransferAndPreview()884 void wxRichTextListStylePage::TransferAndPreview()
885 {
886     if (!m_dontUpdate)
887     {
888         TransferDataFromWindow();
889         UpdatePreview();
890     }
891 }
892 
893 
894 /*!
895  * wxEVT_SPINCTRL event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
896  */
897 
OnLevelUpdated(wxSpinEvent & WXUNUSED (event))898 void wxRichTextListStylePage::OnLevelUpdated( wxSpinEvent& WXUNUSED(event) )
899 {
900     if (!m_dontUpdate)
901     {
902         m_currentLevel = m_levelCtrl->GetValue();
903         TransferDataToWindow();
904     }
905 }
906 
907 /*!
908  * wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
909  */
910 
OnLevelUp(wxSpinEvent & event)911 void wxRichTextListStylePage::OnLevelUp( wxSpinEvent& event )
912 {
913     if (!m_dontUpdate)
914     {
915         m_currentLevel = event.GetPosition();
916         TransferDataToWindow();
917     }
918 }
919 
920 /*!
921  * wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
922  */
923 
OnLevelDown(wxSpinEvent & event)924 void wxRichTextListStylePage::OnLevelDown( wxSpinEvent& event )
925 {
926     if (!m_dontUpdate)
927     {
928         m_currentLevel = event.GetPosition();
929         TransferDataToWindow();
930     }
931 }
932 
933 /*!
934  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
935  */
936 
OnLevelTextUpdated(wxCommandEvent & WXUNUSED (event))937 void wxRichTextListStylePage::OnLevelTextUpdated( wxCommandEvent& WXUNUSED(event) )
938 {
939     // Can cause problems
940 #if 0
941     if (!m_dontUpdate)
942     {
943         m_currentLevel = event.GetInt();
944         TransferDataToWindow();
945     }
946 #endif
947 }
948 
949 /*!
950  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
951  */
952 
OnLevelUIUpdate(wxUpdateUIEvent & event)953 void wxRichTextListStylePage::OnLevelUIUpdate( wxUpdateUIEvent& event )
954 {
955 ////@begin wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL in wxRichTextListStylePage.
956     // Before editing this code, remove the block markers.
957     event.Skip();
958 ////@end wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL in wxRichTextListStylePage.
959 }
960 
961 /*!
962  * wxEVT_LISTBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX
963  */
964 
OnStylelistboxSelected(wxCommandEvent & WXUNUSED (event))965 void wxRichTextListStylePage::OnStylelistboxSelected( wxCommandEvent& WXUNUSED(event) )
966 {
967     TransferAndPreview();
968 }
969 
970 /*!
971  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC
972  */
973 
OnSymbolstaticUpdate(wxUpdateUIEvent & event)974 void wxRichTextListStylePage::OnSymbolstaticUpdate( wxUpdateUIEvent& event )
975 {
976     OnSymbolUpdate(event);
977 }
978 
979 /*!
980  * wxEVT_COMBOBOX event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
981  */
982 
OnSymbolctrlSelected(wxCommandEvent & WXUNUSED (event))983 void wxRichTextListStylePage::OnSymbolctrlSelected( wxCommandEvent& WXUNUSED(event) )
984 {
985     TransferAndPreview();
986 }
987 
988 /*!
989  * wxEVT_TEXT event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
990  */
991 
OnSymbolctrlUpdated(wxCommandEvent & WXUNUSED (event))992 void wxRichTextListStylePage::OnSymbolctrlUpdated( wxCommandEvent& WXUNUSED(event) )
993 {
994     TransferAndPreview();
995 }
996 
997 /*!
998  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
999  */
1000 
OnSymbolctrlUIUpdate(wxUpdateUIEvent & event)1001 void wxRichTextListStylePage::OnSymbolctrlUIUpdate( wxUpdateUIEvent& event )
1002 {
1003     OnSymbolUpdate(event);
1004 }
1005 
1006 /*!
1007  * wxEVT_BUTTON event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
1008  */
1009 
OnChooseSymbolClick(wxCommandEvent & WXUNUSED (event))1010 void wxRichTextListStylePage::OnChooseSymbolClick( wxCommandEvent& WXUNUSED(event) )
1011 {
1012     int sel = m_styleListBox->GetSelection();
1013     if (sel == wxRICHTEXT_BULLETINDEX_SYMBOL)
1014     {
1015         wxString symbol = m_symbolCtrl->GetValue();
1016         wxString fontName = m_symbolFontCtrl->GetValue();
1017         wxSymbolPickerDialog dlg(symbol, fontName, fontName, this);
1018 
1019         if (dlg.ShowModal() == wxID_OK)
1020         {
1021             m_dontUpdate = true;
1022 
1023             m_symbolCtrl->SetValue(dlg.GetSymbol());
1024             m_symbolFontCtrl->SetValue(dlg.GetFontName());
1025 
1026             TransferAndPreview();
1027 
1028             m_dontUpdate = false;
1029         }
1030     }
1031 }
1032 
1033 /*!
1034  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
1035  */
1036 
OnChooseSymbolUpdate(wxUpdateUIEvent & event)1037 void wxRichTextListStylePage::OnChooseSymbolUpdate( wxUpdateUIEvent& event )
1038 {
1039     OnSymbolUpdate(event);
1040 }
1041 
1042 /*!
1043  * wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
1044  */
1045 
OnSymbolfontctrlSelected(wxCommandEvent & WXUNUSED (event))1046 void wxRichTextListStylePage::OnSymbolfontctrlSelected( wxCommandEvent& WXUNUSED(event) )
1047 {
1048     TransferAndPreview();
1049 }
1050 
1051 /*!
1052  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
1053  */
1054 
OnSymbolfontctrlUpdated(wxCommandEvent & WXUNUSED (event))1055 void wxRichTextListStylePage::OnSymbolfontctrlUpdated( wxCommandEvent& WXUNUSED(event) )
1056 {
1057     TransferAndPreview();
1058 }
1059 
1060 /*!
1061  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
1062  */
1063 
OnSymbolfontctrlUIUpdate(wxUpdateUIEvent & event)1064 void wxRichTextListStylePage::OnSymbolfontctrlUIUpdate( wxUpdateUIEvent& event )
1065 {
1066     OnSymbolUpdate(event);
1067 }
1068 
1069 /*!
1070  * wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE__PARENTHESESCTRL
1071  */
1072 
OnParenthesesctrlClick(wxCommandEvent & WXUNUSED (event))1073 void wxRichTextListStylePage::OnParenthesesctrlClick( wxCommandEvent& WXUNUSED(event) )
1074 {
1075     TransferAndPreview();
1076 }
1077 
1078 /*!
1079  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE__PARENTHESESCTRL
1080  */
1081 
OnParenthesesctrlUpdate(wxUpdateUIEvent & event)1082 void wxRichTextListStylePage::OnParenthesesctrlUpdate( wxUpdateUIEvent& event )
1083 {
1084     int sel = m_styleListBox->GetSelection();
1085     event.Enable((sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
1086                   sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
1087                   sel != wxRICHTEXT_BULLETINDEX_NONE));
1088 }
1089 
1090 /*!
1091  * wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
1092  */
1093 
OnPeriodctrlClick(wxCommandEvent & WXUNUSED (event))1094 void wxRichTextListStylePage::OnPeriodctrlClick( wxCommandEvent& WXUNUSED(event) )
1095 {
1096     TransferAndPreview();
1097 }
1098 
1099 /*!
1100  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
1101  */
1102 
OnPeriodctrlUpdate(wxUpdateUIEvent & event)1103 void wxRichTextListStylePage::OnPeriodctrlUpdate( wxUpdateUIEvent& event )
1104 {
1105     int sel = m_styleListBox->GetSelection();
1106     event.Enable((sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
1107                   sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
1108                   sel != wxRICHTEXT_BULLETINDEX_NONE));
1109 }
1110 
1111 /*!
1112  * wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT
1113  */
1114 
OnRichtextliststylepageAlignleftSelected(wxCommandEvent & WXUNUSED (event))1115 void wxRichTextListStylePage::OnRichtextliststylepageAlignleftSelected( wxCommandEvent& WXUNUSED(event) )
1116 {
1117     TransferAndPreview();
1118 }
1119 
1120 /*!
1121  * wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT
1122  */
1123 
OnRichtextliststylepageAlignrightSelected(wxCommandEvent & WXUNUSED (event))1124 void wxRichTextListStylePage::OnRichtextliststylepageAlignrightSelected( wxCommandEvent& WXUNUSED(event) )
1125 {
1126     TransferAndPreview();
1127 }
1128 
1129 /*!
1130  * wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED
1131  */
1132 
OnRichtextliststylepageJustifiedSelected(wxCommandEvent & WXUNUSED (event))1133 void wxRichTextListStylePage::OnRichtextliststylepageJustifiedSelected( wxCommandEvent& WXUNUSED(event) )
1134 {
1135     TransferAndPreview();
1136 }
1137 
1138 /*!
1139  * wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CENTERED
1140  */
1141 
OnRichtextliststylepageCenteredSelected(wxCommandEvent & WXUNUSED (event))1142 void wxRichTextListStylePage::OnRichtextliststylepageCenteredSelected( wxCommandEvent& WXUNUSED(event) )
1143 {
1144     TransferAndPreview();
1145 }
1146 
1147 /*!
1148  * wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE
1149  */
1150 
OnRichtextliststylepageAlignindeterminateSelected(wxCommandEvent & WXUNUSED (event))1151 void wxRichTextListStylePage::OnRichtextliststylepageAlignindeterminateSelected( wxCommandEvent& WXUNUSED(event) )
1152 {
1153     TransferAndPreview();
1154 }
1155 
1156 /*!
1157  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT
1158  */
1159 
OnIndentLeftUpdated(wxCommandEvent & WXUNUSED (event))1160 void wxRichTextListStylePage::OnIndentLeftUpdated( wxCommandEvent& WXUNUSED(event) )
1161 {
1162     TransferAndPreview();
1163 }
1164 
1165 /*!
1166  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE
1167  */
1168 
OnIndentFirstLineUpdated(wxCommandEvent & WXUNUSED (event))1169 void wxRichTextListStylePage::OnIndentFirstLineUpdated( wxCommandEvent& WXUNUSED(event) )
1170 {
1171     TransferAndPreview();
1172 }
1173 
1174 /*!
1175  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT
1176  */
1177 
OnIndentRightUpdated(wxCommandEvent & WXUNUSED (event))1178 void wxRichTextListStylePage::OnIndentRightUpdated( wxCommandEvent& WXUNUSED(event) )
1179 {
1180     TransferAndPreview();
1181 }
1182 
1183 /*!
1184  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE
1185  */
1186 
OnSpacingBeforeUpdated(wxCommandEvent & WXUNUSED (event))1187 void wxRichTextListStylePage::OnSpacingBeforeUpdated( wxCommandEvent& WXUNUSED(event) )
1188 {
1189     TransferAndPreview();
1190 }
1191 
1192 /*!
1193  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER
1194  */
1195 
OnSpacingAfterUpdated(wxCommandEvent & WXUNUSED (event))1196 void wxRichTextListStylePage::OnSpacingAfterUpdated( wxCommandEvent& WXUNUSED(event) )
1197 {
1198     TransferAndPreview();
1199 }
1200 
1201 /*!
1202  * wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_LINESPACING
1203  */
1204 
OnLineSpacingSelected(wxCommandEvent & WXUNUSED (event))1205 void wxRichTextListStylePage::OnLineSpacingSelected( wxCommandEvent& WXUNUSED(event) )
1206 {
1207     TransferAndPreview();
1208 }
1209 
1210 /*!
1211  * Should we show tooltips?
1212  */
1213 
ShowToolTips()1214 bool wxRichTextListStylePage::ShowToolTips()
1215 {
1216     return wxRichTextFormattingDialog::ShowToolTips();
1217 }
1218 
1219 /*!
1220  * Get bitmap resources
1221  */
1222 
GetBitmapResource(const wxString & name)1223 wxBitmap wxRichTextListStylePage::GetBitmapResource( const wxString& name )
1224 {
1225     // Bitmap retrieval
1226 ////@begin wxRichTextListStylePage bitmap retrieval
1227     wxUnusedVar(name);
1228     return wxNullBitmap;
1229 ////@end wxRichTextListStylePage bitmap retrieval
1230 }
1231 
1232 /*!
1233  * Get icon resources
1234  */
1235 
GetIconResource(const wxString & name)1236 wxIcon wxRichTextListStylePage::GetIconResource( const wxString& name )
1237 {
1238     // Icon retrieval
1239 ////@begin wxRichTextListStylePage icon retrieval
1240     wxUnusedVar(name);
1241     return wxNullIcon;
1242 ////@end wxRichTextListStylePage icon retrieval
1243 }
1244 
1245 /// Update for symbol-related controls
OnSymbolUpdate(wxUpdateUIEvent & event)1246 void wxRichTextListStylePage::OnSymbolUpdate( wxUpdateUIEvent& event )
1247 {
1248     int sel = m_styleListBox->GetSelection();
1249     event.Enable(sel == wxRICHTEXT_BULLETINDEX_SYMBOL);
1250 }
1251 
1252 /// Update for number-related controls
OnNumberUpdate(wxUpdateUIEvent & event)1253 void wxRichTextListStylePage::OnNumberUpdate( wxUpdateUIEvent& event )
1254 {
1255     int sel = m_styleListBox->GetSelection();
1256     event.Enable((sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
1257                   sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
1258                   sel != wxRICHTEXT_BULLETINDEX_STANDARD &&
1259                   sel != wxRICHTEXT_BULLETINDEX_NONE));
1260 }
1261 
1262 /// Update for standard bullet-related controls
OnStandardBulletUpdate(wxUpdateUIEvent & event)1263 void wxRichTextListStylePage::OnStandardBulletUpdate( wxUpdateUIEvent& event )
1264 {
1265     int sel = m_styleListBox->GetSelection();
1266     event.Enable( sel == wxRICHTEXT_BULLETINDEX_STANDARD || sel == wxRICHTEXT_BULLETINDEX_BITMAP );
1267 }
1268 
1269 /*!
1270  * wxEVT_BUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT
1271  */
1272 
OnChooseFontClick(wxCommandEvent & WXUNUSED (event))1273 void wxRichTextListStylePage::OnChooseFontClick( wxCommandEvent& WXUNUSED(event) )
1274 {
1275     wxRichTextAttr* attr = GetAttributesForSelection();
1276 
1277     int pages = wxRICHTEXT_FORMAT_FONT;
1278     wxRichTextFormattingDialog formatDlg;
1279     formatDlg.SetStyle(*attr, false);
1280     formatDlg.Create(pages, this);
1281 
1282     if (formatDlg.ShowModal() == wxID_OK)
1283     {
1284         (*attr) = formatDlg.GetAttributes();
1285         TransferAndPreview();
1286     }
1287 }
1288 /*!
1289  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC
1290  */
1291 
OnNamestaticUpdate(wxUpdateUIEvent & event)1292 void wxRichTextListStylePage::OnNamestaticUpdate( wxUpdateUIEvent& event )
1293 {
1294     OnStandardBulletUpdate(event);
1295 }
1296 
1297 /*!
1298  * wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
1299  */
1300 
OnNamectrlSelected(wxCommandEvent & WXUNUSED (event))1301 void wxRichTextListStylePage::OnNamectrlSelected( wxCommandEvent& WXUNUSED(event) )
1302 {
1303     TransferAndPreview();
1304 }
1305 
1306 /*!
1307  * wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
1308  */
1309 
OnNamectrlUpdated(wxCommandEvent & WXUNUSED (event))1310 void wxRichTextListStylePage::OnNamectrlUpdated( wxCommandEvent& WXUNUSED(event) )
1311 {
1312     TransferAndPreview();
1313 }
1314 
1315 /*!
1316  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
1317  */
1318 
OnNamectrlUIUpdate(wxUpdateUIEvent & event)1319 void wxRichTextListStylePage::OnNamectrlUIUpdate( wxUpdateUIEvent& event )
1320 {
1321     OnStandardBulletUpdate(event);
1322 }
1323 /*!
1324  * wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
1325  */
1326 
OnRightParenthesisCtrlClick(wxCommandEvent & WXUNUSED (event))1327 void wxRichTextListStylePage::OnRightParenthesisCtrlClick( wxCommandEvent& WXUNUSED(event) )
1328 {
1329     TransferAndPreview();
1330 }
1331 
1332 /*!
1333  * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
1334  */
1335 
OnRightParenthesisCtrlUpdate(wxUpdateUIEvent & event)1336 void wxRichTextListStylePage::OnRightParenthesisCtrlUpdate( wxUpdateUIEvent& event )
1337 {
1338     int sel = m_styleListBox->GetSelection();
1339     event.Enable((sel != wxRICHTEXT_BULLETINDEX_SYMBOL &&
1340                   sel != wxRICHTEXT_BULLETINDEX_BITMAP &&
1341                   sel != wxRICHTEXT_BULLETINDEX_NONE));
1342 }
1343 
1344 /*!
1345  * wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL
1346  */
1347 
OnBulletAlignmentCtrlSelected(wxCommandEvent & WXUNUSED (event))1348 void wxRichTextListStylePage::OnBulletAlignmentCtrlSelected( wxCommandEvent& WXUNUSED(event) )
1349 {
1350     TransferAndPreview();
1351 }
1352