1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/richtext/richtextliststylepage.cpp
4 // Author: Julian Smart
6 // Created: 10/18/2006 11:36:37 AM
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #include "wx/richtext/richtextliststylepage.h"
18 * wxRichTextListStylePage type definition
21 IMPLEMENT_DYNAMIC_CLASS( wxRichTextListStylePage
, wxPanel
)
24 * wxRichTextListStylePage event table definition
27 BEGIN_EVENT_TABLE( wxRichTextListStylePage
, wxPanel
)
29 ////@begin wxRichTextListStylePage event table entries
30 EVT_SPINCTRL( ID_RICHTEXTLISTSTYLEPAGE_LEVEL
, wxRichTextListStylePage::OnLevelUpdated
)
31 EVT_SPIN_UP( ID_RICHTEXTLISTSTYLEPAGE_LEVEL
, wxRichTextListStylePage::OnLevelUp
)
32 EVT_SPIN_DOWN( ID_RICHTEXTLISTSTYLEPAGE_LEVEL
, wxRichTextListStylePage::OnLevelDown
)
33 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_LEVEL
, wxRichTextListStylePage::OnLevelTextUpdated
)
34 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_LEVEL
, wxRichTextListStylePage::OnLevelUIUpdate
)
36 EVT_BUTTON( ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT
, wxRichTextListStylePage::OnChooseFontClick
)
38 EVT_LISTBOX( ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX
, wxRichTextListStylePage::OnStylelistboxSelected
)
40 EVT_CHECKBOX( ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
, wxRichTextListStylePage::OnPeriodctrlClick
)
41 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
, wxRichTextListStylePage::OnPeriodctrlUpdate
)
43 EVT_CHECKBOX( ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL
, wxRichTextListStylePage::OnParenthesesctrlClick
)
44 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL
, wxRichTextListStylePage::OnParenthesesctrlUpdate
)
46 EVT_CHECKBOX( ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
, wxRichTextListStylePage::OnRightParenthesisCtrlClick
)
47 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
, wxRichTextListStylePage::OnRightParenthesisCtrlUpdate
)
49 EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL
, wxRichTextListStylePage::OnBulletAlignmentCtrlSelected
)
51 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC
, wxRichTextListStylePage::OnSymbolstaticUpdate
)
53 EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
, wxRichTextListStylePage::OnSymbolctrlSelected
)
54 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
, wxRichTextListStylePage::OnSymbolctrlUpdated
)
55 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
, wxRichTextListStylePage::OnSymbolctrlUIUpdate
)
57 EVT_BUTTON( ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL
, wxRichTextListStylePage::OnChooseSymbolClick
)
58 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL
, wxRichTextListStylePage::OnChooseSymbolUpdate
)
60 EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
, wxRichTextListStylePage::OnSymbolfontctrlSelected
)
61 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
, wxRichTextListStylePage::OnSymbolfontctrlUpdated
)
62 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
, wxRichTextListStylePage::OnSymbolfontctrlUIUpdate
)
64 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC
, wxRichTextListStylePage::OnNamestaticUpdate
)
66 EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
, wxRichTextListStylePage::OnNamectrlSelected
)
67 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
, wxRichTextListStylePage::OnNamectrlUpdated
)
68 EVT_UPDATE_UI( ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
, wxRichTextListStylePage::OnNamectrlUIUpdate
)
70 EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT
, wxRichTextListStylePage::OnRichtextliststylepageAlignleftSelected
)
72 EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT
, wxRichTextListStylePage::OnRichtextliststylepageAlignrightSelected
)
74 EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED
, wxRichTextListStylePage::OnRichtextliststylepageJustifiedSelected
)
76 EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_CENTERED
, wxRichTextListStylePage::OnRichtextliststylepageCenteredSelected
)
78 EVT_RADIOBUTTON( ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE
, wxRichTextListStylePage::OnRichtextliststylepageAlignindeterminateSelected
)
80 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT
, wxRichTextListStylePage::OnIndentLeftUpdated
)
82 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE
, wxRichTextListStylePage::OnIndentFirstLineUpdated
)
84 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT
, wxRichTextListStylePage::OnIndentRightUpdated
)
86 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE
, wxRichTextListStylePage::OnSpacingBeforeUpdated
)
88 EVT_TEXT( ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER
, wxRichTextListStylePage::OnSpacingAfterUpdated
)
90 EVT_COMBOBOX( ID_RICHTEXTLISTSTYLEPAGE_LINESPACING
, wxRichTextListStylePage::OnLineSpacingSelected
)
92 ////@end wxRichTextListStylePage event table entries
97 * wxRichTextListStylePage constructors
100 wxRichTextListStylePage::wxRichTextListStylePage( )
105 wxRichTextListStylePage::wxRichTextListStylePage( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
108 Create(parent
, id
, pos
, size
, style
);
112 * wxRichTextListStylePage creator
115 bool wxRichTextListStylePage::Create( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
117 ////@begin wxRichTextListStylePage creation
118 wxPanel::Create( parent
, id
, pos
, size
, style
);
123 GetSizer()->SetSizeHints(this);
126 ////@end wxRichTextListStylePage creation
131 * Member initialisation
134 void wxRichTextListStylePage::Init()
136 m_dontUpdate
= false;
139 ////@begin wxRichTextListStylePage member initialisation
141 m_styleListBox
= NULL
;
143 m_parenthesesCtrl
= NULL
;
144 m_rightParenthesisCtrl
= NULL
;
145 m_bulletAlignmentCtrl
= NULL
;
147 m_symbolFontCtrl
= NULL
;
148 m_bulletNameCtrl
= NULL
;
149 m_alignmentLeft
= NULL
;
150 m_alignmentRight
= NULL
;
151 m_alignmentJustified
= NULL
;
152 m_alignmentCentred
= NULL
;
153 m_alignmentIndeterminate
= NULL
;
155 m_indentLeftFirst
= NULL
;
156 m_indentRight
= NULL
;
157 m_spacingBefore
= NULL
;
158 m_spacingAfter
= NULL
;
159 m_spacingLine
= NULL
;
160 m_previewCtrl
= NULL
;
161 ////@end wxRichTextListStylePage member initialisation
165 * Control creation for wxRichTextListStylePage
168 void wxRichTextListStylePage::CreateControls()
170 ////@begin wxRichTextListStylePage content construction
171 wxRichTextListStylePage
* itemPanel1
= this;
173 wxBoxSizer
* itemBoxSizer2
= new wxBoxSizer(wxVERTICAL
);
174 itemPanel1
->SetSizer(itemBoxSizer2
);
176 wxBoxSizer
* itemBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
177 itemBoxSizer2
->Add(itemBoxSizer3
, 1, wxGROW
|wxALL
, 5);
179 wxBoxSizer
* itemBoxSizer4
= new wxBoxSizer(wxHORIZONTAL
);
180 itemBoxSizer3
->Add(itemBoxSizer4
, 0, wxALIGN_CENTER_HORIZONTAL
, 5);
182 wxStaticText
* itemStaticText5
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&List level:"), wxDefaultPosition
, wxDefaultSize
, 0 );
183 itemBoxSizer4
->Add(itemStaticText5
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
185 m_levelCtrl
= new wxSpinCtrl( itemPanel1
, ID_RICHTEXTLISTSTYLEPAGE_LEVEL
, _T("1"), wxDefaultPosition
, wxSize(60, -1), wxSP_ARROW_KEYS
, 1, 10, 1 );
186 m_levelCtrl
->SetHelpText(_("Selects the list level to edit."));
188 m_levelCtrl
->SetToolTip(_("Selects the list level to edit."));
189 itemBoxSizer4
->Add(m_levelCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
191 itemBoxSizer4
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
193 wxButton
* itemButton8
= new wxButton( itemPanel1
, ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT
, _("&Font for Level..."), wxDefaultPosition
, wxDefaultSize
, 0 );
194 itemButton8
->SetHelpText(_("Click to choose the font for this level."));
196 itemButton8
->SetToolTip(_("Click to choose the font for this level."));
197 itemBoxSizer4
->Add(itemButton8
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
199 wxNotebook
* itemNotebook9
= new wxNotebook( itemPanel1
, ID_RICHTEXTLISTSTYLEPAGE_NOTEBOOK
, wxDefaultPosition
, wxDefaultSize
, wxNB_TOP
);
201 wxPanel
* itemPanel10
= new wxPanel( itemNotebook9
, ID_RICHTEXTLISTSTYLEPAGE_BULLETS
, wxDefaultPosition
, wxDefaultSize
, wxNO_BORDER
|wxTAB_TRAVERSAL
);
202 wxBoxSizer
* itemBoxSizer11
= new wxBoxSizer(wxVERTICAL
);
203 itemPanel10
->SetSizer(itemBoxSizer11
);
205 wxBoxSizer
* itemBoxSizer12
= new wxBoxSizer(wxHORIZONTAL
);
206 itemBoxSizer11
->Add(itemBoxSizer12
, 1, wxGROW
, 5);
207 wxBoxSizer
* itemBoxSizer13
= new wxBoxSizer(wxVERTICAL
);
208 itemBoxSizer12
->Add(itemBoxSizer13
, 0, wxGROW
, 5);
209 wxStaticText
* itemStaticText14
= new wxStaticText( itemPanel10
, wxID_STATIC
, _("&Bullet style:"), wxDefaultPosition
, wxDefaultSize
, 0 );
210 itemBoxSizer13
->Add(itemStaticText14
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
212 wxString
* m_styleListBoxStrings
= NULL
;
213 m_styleListBox
= new wxListBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX
, wxDefaultPosition
, wxSize(-1, 140), 0, m_styleListBoxStrings
, wxLB_SINGLE
);
214 m_styleListBox
->SetHelpText(_("The available bullet styles."));
216 m_styleListBox
->SetToolTip(_("The available bullet styles."));
217 itemBoxSizer13
->Add(m_styleListBox
, 1, wxGROW
|wxALL
, 5);
219 wxBoxSizer
* itemBoxSizer16
= new wxBoxSizer(wxHORIZONTAL
);
220 itemBoxSizer13
->Add(itemBoxSizer16
, 0, wxGROW
, 5);
221 m_periodCtrl
= new wxCheckBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
, _("Peri&od"), wxDefaultPosition
, wxDefaultSize
, 0 );
222 m_periodCtrl
->SetValue(false);
223 m_periodCtrl
->SetHelpText(_("Check to add a period after the bullet."));
225 m_periodCtrl
->SetToolTip(_("Check to add a period after the bullet."));
226 itemBoxSizer16
->Add(m_periodCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
228 m_parenthesesCtrl
= new wxCheckBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL
, _("(*)"), wxDefaultPosition
, wxDefaultSize
, 0 );
229 m_parenthesesCtrl
->SetValue(false);
230 m_parenthesesCtrl
->SetHelpText(_("Check to enclose the bullet in parentheses."));
232 m_parenthesesCtrl
->SetToolTip(_("Check to enclose the bullet in parentheses."));
233 itemBoxSizer16
->Add(m_parenthesesCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
235 m_rightParenthesisCtrl
= new wxCheckBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
, _("*)"), wxDefaultPosition
, wxDefaultSize
, 0 );
236 m_rightParenthesisCtrl
->SetValue(false);
237 m_rightParenthesisCtrl
->SetHelpText(_("Check to add a right parenthesis."));
239 m_rightParenthesisCtrl
->SetToolTip(_("Check to add a right parenthesis."));
240 itemBoxSizer16
->Add(m_rightParenthesisCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
242 itemBoxSizer13
->Add(2, 1, 0, wxALIGN_CENTER_HORIZONTAL
, 5);
244 wxStaticText
* itemStaticText21
= new wxStaticText( itemPanel10
, wxID_STATIC
, _("Bullet &Alignment:"), wxDefaultPosition
, wxDefaultSize
, 0 );
245 itemBoxSizer13
->Add(itemStaticText21
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
247 wxString m_bulletAlignmentCtrlStrings
[] = {
252 m_bulletAlignmentCtrl
= new wxComboBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL
, _("Left"), wxDefaultPosition
, wxSize(60, -1), 3, m_bulletAlignmentCtrlStrings
, wxCB_READONLY
);
253 m_bulletAlignmentCtrl
->SetStringSelection(_("Left"));
254 m_bulletAlignmentCtrl
->SetHelpText(_("The bullet character."));
256 m_bulletAlignmentCtrl
->SetToolTip(_("The bullet character."));
257 itemBoxSizer13
->Add(m_bulletAlignmentCtrl
, 0, wxGROW
|wxALL
|wxFIXED_MINSIZE
, 5);
259 itemBoxSizer12
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
261 wxStaticLine
* itemStaticLine24
= new wxStaticLine( itemPanel10
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_VERTICAL
);
262 itemBoxSizer12
->Add(itemStaticLine24
, 0, wxGROW
|wxALL
, 5);
264 itemBoxSizer12
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
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
|wxADJUST_MINSIZE
, 5);
271 wxBoxSizer
* itemBoxSizer28
= new wxBoxSizer(wxHORIZONTAL
);
272 itemBoxSizer26
->Add(itemBoxSizer28
, 0, wxGROW
, 5);
273 wxString
* m_symbolCtrlStrings
= NULL
;
274 m_symbolCtrl
= new wxComboBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL
, _T(""), wxDefaultPosition
, wxSize(60, -1), 0, m_symbolCtrlStrings
, wxCB_DROPDOWN
);
275 m_symbolCtrl
->SetHelpText(_("The bullet character."));
277 m_symbolCtrl
->SetToolTip(_("The bullet character."));
278 itemBoxSizer28
->Add(m_symbolCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
|wxFIXED_MINSIZE
, 5);
280 wxButton
* itemButton30
= new wxButton( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL
, _("Ch&oose..."), wxDefaultPosition
, wxDefaultSize
, 0 );
281 itemButton30
->SetHelpText(_("Click to browse for a symbol."));
283 itemButton30
->SetToolTip(_("Click to browse for a symbol."));
284 itemBoxSizer28
->Add(itemButton30
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
286 itemBoxSizer26
->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL
, 5);
288 wxStaticText
* itemStaticText32
= new wxStaticText( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC
, _("Symbol &font:"), wxDefaultPosition
, wxDefaultSize
, 0 );
289 itemBoxSizer26
->Add(itemStaticText32
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
291 wxString
* m_symbolFontCtrlStrings
= NULL
;
292 m_symbolFontCtrl
= new wxComboBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
, _T(""), wxDefaultPosition
, wxDefaultSize
, 0, m_symbolFontCtrlStrings
, wxCB_DROPDOWN
);
294 m_symbolFontCtrl
->SetToolTip(_("Available fonts."));
295 itemBoxSizer26
->Add(m_symbolFontCtrl
, 0, wxGROW
|wxALL
, 5);
297 itemBoxSizer26
->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL
, 5);
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
|wxADJUST_MINSIZE
, 5);
302 wxString
* m_bulletNameCtrlStrings
= NULL
;
303 m_bulletNameCtrl
= new wxComboBox( itemPanel10
, ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
, _T(""), wxDefaultPosition
, wxDefaultSize
, 0, m_bulletNameCtrlStrings
, wxCB_DROPDOWN
);
304 m_bulletNameCtrl
->SetHelpText(_("A standard bullet name."));
306 m_bulletNameCtrl
->SetToolTip(_("A standard bullet name."));
307 itemBoxSizer26
->Add(m_bulletNameCtrl
, 0, wxGROW
|wxALL
, 5);
309 itemNotebook9
->AddPage(itemPanel10
, _("Bullet style"));
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
);
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
|wxADJUST_MINSIZE
, 5);
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);
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."));
332 m_alignmentLeft
->SetToolTip(_("Left-align text."));
333 itemBoxSizer44
->Add(m_alignmentLeft
, 0, wxALIGN_LEFT
|wxALL
, 5);
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."));
339 m_alignmentRight
->SetToolTip(_("Right-align text."));
340 itemBoxSizer44
->Add(m_alignmentRight
, 0, wxALIGN_LEFT
|wxALL
, 5);
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."));
346 m_alignmentJustified
->SetToolTip(_("Justify text left and right."));
347 itemBoxSizer44
->Add(m_alignmentJustified
, 0, wxALIGN_LEFT
|wxALL
, 5);
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."));
353 m_alignmentCentred
->SetToolTip(_("Centre text."));
354 itemBoxSizer44
->Add(m_alignmentCentred
, 0, wxALIGN_LEFT
|wxALL
, 5);
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."));
360 m_alignmentIndeterminate
->SetToolTip(_("Use the current alignment setting."));
361 itemBoxSizer44
->Add(m_alignmentIndeterminate
, 0, wxALIGN_LEFT
|wxALL
, 5);
363 itemBoxSizer39
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
365 wxStaticLine
* itemStaticLine51
= new wxStaticLine( itemPanel37
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_VERTICAL
);
366 itemBoxSizer39
->Add(itemStaticLine51
, 0, wxGROW
|wxLEFT
|wxBOTTOM
, 5);
368 itemBoxSizer39
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
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
|wxADJUST_MINSIZE
, 5);
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);
379 wxFlexGridSizer
* itemFlexGridSizer57
= new wxFlexGridSizer(2, 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
|wxADJUST_MINSIZE
, 5);
384 wxBoxSizer
* itemBoxSizer59
= new wxBoxSizer(wxHORIZONTAL
);
385 itemFlexGridSizer57
->Add(itemBoxSizer59
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
386 m_indentLeft
= new wxTextCtrl( itemPanel37
, ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT
, _T(""), wxDefaultPosition
, wxSize(50, -1), 0 );
387 m_indentLeft
->SetHelpText(_("The left indent."));
389 m_indentLeft
->SetToolTip(_("The left indent."));
390 itemBoxSizer59
->Add(m_indentLeft
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
392 wxStaticText
* itemStaticText61
= new wxStaticText( itemPanel37
, wxID_STATIC
, _("Left (&first line):"), wxDefaultPosition
, wxDefaultSize
, 0 );
393 itemFlexGridSizer57
->Add(itemStaticText61
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
395 wxBoxSizer
* itemBoxSizer62
= new wxBoxSizer(wxHORIZONTAL
);
396 itemFlexGridSizer57
->Add(itemBoxSizer62
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
397 m_indentLeftFirst
= new wxTextCtrl( itemPanel37
, ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE
, _T(""), wxDefaultPosition
, wxSize(50, -1), 0 );
398 m_indentLeftFirst
->SetHelpText(_("The first line indent."));
400 m_indentLeftFirst
->SetToolTip(_("The first line indent."));
401 itemBoxSizer62
->Add(m_indentLeftFirst
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
403 wxStaticText
* itemStaticText64
= new wxStaticText( itemPanel37
, wxID_STATIC
, _("&Right:"), wxDefaultPosition
, wxDefaultSize
, 0 );
404 itemFlexGridSizer57
->Add(itemStaticText64
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
406 wxBoxSizer
* itemBoxSizer65
= new wxBoxSizer(wxHORIZONTAL
);
407 itemFlexGridSizer57
->Add(itemBoxSizer65
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
408 m_indentRight
= new wxTextCtrl( itemPanel37
, ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT
, _T(""), wxDefaultPosition
, wxSize(50, -1), 0 );
409 m_indentRight
->SetHelpText(_("The right indent."));
411 m_indentRight
->SetToolTip(_("The right indent."));
412 itemBoxSizer65
->Add(m_indentRight
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
414 itemBoxSizer39
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
416 wxStaticLine
* itemStaticLine68
= new wxStaticLine( itemPanel37
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_VERTICAL
);
417 itemBoxSizer39
->Add(itemStaticLine68
, 0, wxGROW
|wxTOP
|wxBOTTOM
, 5);
419 itemBoxSizer39
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
421 wxBoxSizer
* itemBoxSizer70
= new wxBoxSizer(wxVERTICAL
);
422 itemBoxSizer39
->Add(itemBoxSizer70
, 0, wxGROW
, 5);
423 wxStaticText
* itemStaticText71
= new wxStaticText( itemPanel37
, wxID_STATIC
, _("&Spacing (tenths of a mm)"), wxDefaultPosition
, wxDefaultSize
, 0 );
424 itemBoxSizer70
->Add(itemStaticText71
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
426 wxBoxSizer
* itemBoxSizer72
= new wxBoxSizer(wxHORIZONTAL
);
427 itemBoxSizer70
->Add(itemBoxSizer72
, 0, wxALIGN_LEFT
|wxALL
, 5);
428 itemBoxSizer72
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
, 5);
430 wxFlexGridSizer
* itemFlexGridSizer74
= new wxFlexGridSizer(2, 2, 0, 0);
431 itemBoxSizer72
->Add(itemFlexGridSizer74
, 0, wxALIGN_CENTER_VERTICAL
, 5);
432 wxStaticText
* itemStaticText75
= new wxStaticText( itemPanel37
, wxID_STATIC
, _("Before a paragraph:"), wxDefaultPosition
, wxDefaultSize
, 0 );
433 itemFlexGridSizer74
->Add(itemStaticText75
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
435 wxBoxSizer
* itemBoxSizer76
= new wxBoxSizer(wxHORIZONTAL
);
436 itemFlexGridSizer74
->Add(itemBoxSizer76
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
437 m_spacingBefore
= new wxTextCtrl( itemPanel37
, ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE
, _T(""), wxDefaultPosition
, wxSize(50, -1), 0 );
438 m_spacingBefore
->SetHelpText(_("The spacing before the paragraph."));
440 m_spacingBefore
->SetToolTip(_("The spacing before the paragraph."));
441 itemBoxSizer76
->Add(m_spacingBefore
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
443 wxStaticText
* itemStaticText78
= new wxStaticText( itemPanel37
, wxID_STATIC
, _("After a paragraph:"), wxDefaultPosition
, wxDefaultSize
, 0 );
444 itemFlexGridSizer74
->Add(itemStaticText78
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
446 wxBoxSizer
* itemBoxSizer79
= new wxBoxSizer(wxHORIZONTAL
);
447 itemFlexGridSizer74
->Add(itemBoxSizer79
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
448 m_spacingAfter
= new wxTextCtrl( itemPanel37
, ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER
, _T(""), wxDefaultPosition
, wxSize(50, -1), 0 );
449 m_spacingAfter
->SetHelpText(_("The spacing after the paragraph."));
451 m_spacingAfter
->SetToolTip(_("The spacing after the paragraph."));
452 itemBoxSizer79
->Add(m_spacingAfter
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
454 wxStaticText
* itemStaticText81
= new wxStaticText( itemPanel37
, wxID_STATIC
, _("Line spacing:"), wxDefaultPosition
, wxDefaultSize
, 0 );
455 itemFlexGridSizer74
->Add(itemStaticText81
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
457 wxBoxSizer
* itemBoxSizer82
= new wxBoxSizer(wxHORIZONTAL
);
458 itemFlexGridSizer74
->Add(itemBoxSizer82
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
459 wxString m_spacingLineStrings
[] = {
464 m_spacingLine
= new wxComboBox( itemPanel37
, ID_RICHTEXTLISTSTYLEPAGE_LINESPACING
, _("Single"), wxDefaultPosition
, wxDefaultSize
, 3, m_spacingLineStrings
, wxCB_READONLY
);
465 m_spacingLine
->SetStringSelection(_("Single"));
466 m_spacingLine
->SetHelpText(_("The line spacing."));
468 m_spacingLine
->SetToolTip(_("The line spacing."));
469 itemBoxSizer82
->Add(m_spacingLine
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
471 itemNotebook9
->AddPage(itemPanel37
, _("Spacing"));
473 itemBoxSizer3
->Add(itemNotebook9
, 0, wxGROW
|wxALL
, 5);
475 m_previewCtrl
= new wxRichTextCtrl( itemPanel1
, ID_RICHTEXTLISTSTYLEPAGE_RICHTEXTCTRL
, wxEmptyString
, wxDefaultPosition
, wxSize(350, 180), wxSUNKEN_BORDER
|wxTE_READONLY
);
476 m_previewCtrl
->SetHelpText(_("Shows a preview of the bullet settings."));
478 m_previewCtrl
->SetToolTip(_("Shows a preview of the bullet settings."));
479 itemBoxSizer3
->Add(m_previewCtrl
, 0, wxGROW
|wxALL
, 5);
481 ////@end wxRichTextListStylePage content construction
485 m_styleListBox
->Append(_("(None)"));
486 m_styleListBox
->Append(_("Arabic"));
487 m_styleListBox
->Append(_("Upper case letters"));
488 m_styleListBox
->Append(_("Lower case letters"));
489 m_styleListBox
->Append(_("Upper case roman numerals"));
490 m_styleListBox
->Append(_("Lower case roman numerals"));
491 m_styleListBox
->Append(_("Numbered outline"));
492 m_styleListBox
->Append(_("Symbol"));
493 m_styleListBox
->Append(_("Bitmap"));
494 m_styleListBox
->Append(_("Standard"));
496 m_symbolCtrl
->Append(_("*"));
497 m_symbolCtrl
->Append(_("-"));
498 m_symbolCtrl
->Append(_(">"));
499 m_symbolCtrl
->Append(_("+"));
500 m_symbolCtrl
->Append(_("~"));
502 wxArrayString standardBulletNames
;
503 if (wxRichTextBuffer::GetRenderer())
504 wxRichTextBuffer::GetRenderer()->EnumerateStandardBulletNames(standardBulletNames
);
506 m_bulletNameCtrl
->Append(standardBulletNames
);
507 wxArrayString facenames
= wxRichTextCtrl::GetAvailableFontNames();
510 m_symbolFontCtrl
->Append(facenames
);
512 m_levelCtrl
->SetValue(m_currentLevel
);
514 m_dontUpdate
= false;
517 /// Updates the font preview
518 void wxRichTextListStylePage::UpdatePreview()
520 static const wxChar
* s_para1
= wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
521 Nullam ante sapien, vestibulum nonummy, pulvinar sed, luctus ut, lacus.");
523 static const wxChar
* s_para2
= wxT("Duis pharetra consequat dui. Nullam vitae justo id mauris lobortis interdum.");
525 static const wxChar
* s_para3
= wxT("\nInteger convallis dolor at augue \
526 iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
528 wxRichTextListStyleDefinition
* def
= wxDynamicCast(wxRichTextFormattingDialog::GetDialogStyleDefinition(this),
529 wxRichTextListStyleDefinition
);
531 wxTextAttrEx
attr(def
->GetStyle());
532 attr
.SetFlags(attr
.GetFlags() &
533 (wxTEXT_ATTR_ALIGNMENT
|wxTEXT_ATTR_LEFT_INDENT
|wxTEXT_ATTR_RIGHT_INDENT
|wxTEXT_ATTR_PARA_SPACING_BEFORE
|wxTEXT_ATTR_PARA_SPACING_AFTER
|
534 wxTEXT_ATTR_LINE_SPACING
|
535 wxTEXT_ATTR_BULLET_STYLE
|wxTEXT_ATTR_BULLET_NUMBER
|wxTEXT_ATTR_BULLET_TEXT
));
537 wxFont
font(m_previewCtrl
->GetFont());
538 font
.SetPointSize(9);
539 m_previewCtrl
->SetFont(font
);
541 wxTextAttrEx normalParaAttr
;
542 normalParaAttr
.SetFont(font
);
543 normalParaAttr
.SetTextColour(wxColour(wxT("LIGHT GREY")));
545 m_previewCtrl
->Freeze();
546 m_previewCtrl
->Clear();
548 m_previewCtrl
->BeginStyle(normalParaAttr
);
549 m_previewCtrl
->WriteText(s_para1
);
550 m_previewCtrl
->EndStyle();
552 m_previewCtrl
->BeginStyle(attr
);
553 long listStart
= m_previewCtrl
->GetInsertionPoint() + 1;
556 for (i
= 0; i
< 10; i
++)
558 wxTextAttrEx levelAttr
= * def
->GetLevelAttributes(i
);
559 levelAttr
.SetBulletNumber(1);
560 m_previewCtrl
->BeginStyle(levelAttr
);
561 m_previewCtrl
->WriteText(wxString::Format(wxT("\nList level %d. "), i
+1) + s_para2
);
562 m_previewCtrl
->EndStyle();
564 m_previewCtrl
->EndStyle();
565 long listEnd
= m_previewCtrl
->GetInsertionPoint();
567 m_previewCtrl
->BeginStyle(normalParaAttr
);
568 m_previewCtrl
->WriteText(s_para3
);
569 m_previewCtrl
->EndStyle();
571 m_previewCtrl
->NumberList(wxRichTextRange(listStart
, listEnd
), def
);
573 m_previewCtrl
->Thaw();
576 /// Transfer data from/to window
577 bool wxRichTextListStylePage::TransferDataFromWindow()
579 wxPanel::TransferDataFromWindow();
581 m_currentLevel
= m_levelCtrl
->GetValue();
583 wxRichTextAttr
* attr
= GetAttributesForSelection();
585 if (m_alignmentLeft
->GetValue())
586 attr
->SetAlignment(wxTEXT_ALIGNMENT_LEFT
);
587 else if (m_alignmentCentred
->GetValue())
588 attr
->SetAlignment(wxTEXT_ALIGNMENT_CENTRE
);
589 else if (m_alignmentRight
->GetValue())
590 attr
->SetAlignment(wxTEXT_ALIGNMENT_RIGHT
);
591 else if (m_alignmentJustified
->GetValue())
592 attr
->SetAlignment(wxTEXT_ALIGNMENT_JUSTIFIED
);
595 attr
->SetAlignment(wxTEXT_ALIGNMENT_DEFAULT
);
596 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_ALIGNMENT
));
599 wxString
leftIndent(m_indentLeft
->GetValue());
600 wxString
leftFirstIndent(m_indentLeftFirst
->GetValue());
601 if (!leftIndent
.empty())
603 int visualLeftIndent
= wxAtoi(leftIndent
);
604 int visualLeftFirstIndent
= wxAtoi(leftFirstIndent
);
605 int actualLeftIndent
= visualLeftFirstIndent
;
606 int actualLeftSubIndent
= visualLeftIndent
- visualLeftFirstIndent
;
608 attr
->SetLeftIndent(actualLeftIndent
, actualLeftSubIndent
);
611 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_LEFT_INDENT
));
613 wxString
rightIndent(m_indentRight
->GetValue());
614 if (!rightIndent
.empty())
615 attr
->SetRightIndent(wxAtoi(rightIndent
));
617 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_RIGHT_INDENT
));
619 wxString
spacingAfter(m_spacingAfter
->GetValue());
620 if (!spacingAfter
.empty())
621 attr
->SetParagraphSpacingAfter(wxAtoi(spacingAfter
));
623 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_PARA_SPACING_AFTER
));
625 wxString
spacingBefore(m_spacingBefore
->GetValue());
626 if (!spacingBefore
.empty())
627 attr
->SetParagraphSpacingBefore(wxAtoi(spacingBefore
));
629 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_PARA_SPACING_BEFORE
));
631 int spacingIndex
= m_spacingLine
->GetSelection();
633 if (spacingIndex
== 0)
635 else if (spacingIndex
== 1)
637 else if (spacingIndex
== 2)
640 if (lineSpacing
== 0)
641 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_LINE_SPACING
));
643 attr
->SetLineSpacing(lineSpacing
);
646 if (true) // m_hasBulletStyle)
648 long bulletStyle
= 0;
650 int index
= m_styleListBox
->GetSelection();
651 if (index
== wxRICHTEXT_BULLETINDEX_ARABIC
)
652 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_ARABIC
;
654 else if (index
== wxRICHTEXT_BULLETINDEX_UPPER_CASE
)
655 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER
;
657 else if (index
== wxRICHTEXT_BULLETINDEX_LOWER_CASE
)
658 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER
;
660 else if (index
== wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN
)
661 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER
;
663 else if (index
== wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN
)
664 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER
;
666 else if (index
== wxRICHTEXT_BULLETINDEX_OUTLINE
)
667 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_OUTLINE
;
669 else if (index
== wxRICHTEXT_BULLETINDEX_SYMBOL
)
670 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_SYMBOL
;
672 else if (index
== wxRICHTEXT_BULLETINDEX_BITMAP
)
673 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_BITMAP
;
675 else if (index
== wxRICHTEXT_BULLETINDEX_STANDARD
)
677 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_STANDARD
;
678 attr
->SetBulletName(m_bulletNameCtrl
->GetValue());
681 if (m_parenthesesCtrl
->GetValue())
682 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_PARENTHESES
;
683 if (m_rightParenthesisCtrl
->GetValue())
684 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS
;
685 if (m_periodCtrl
->GetValue())
686 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_PERIOD
;
688 if (m_bulletAlignmentCtrl
->GetSelection() == 1)
689 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE
;
690 else if (m_bulletAlignmentCtrl
->GetSelection() == 2)
691 bulletStyle
|= wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT
;
694 attr
->SetBulletStyle(bulletStyle
);
697 // if (m_hasBulletSymbol)
699 attr
->SetBulletText(m_symbolCtrl
->GetValue());
700 attr
->SetBulletFont(m_symbolFontCtrl
->GetValue());
706 bool wxRichTextListStylePage::TransferDataToWindow()
708 DoTransferDataToWindow();
714 /// Just transfer to the window
715 void wxRichTextListStylePage::DoTransferDataToWindow()
719 wxPanel::TransferDataToWindow();
721 wxRichTextAttr
* attr
= GetAttributesForSelection();
723 if (attr
->HasAlignment())
725 if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_LEFT
)
726 m_alignmentLeft
->SetValue(true);
727 else if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_RIGHT
)
728 m_alignmentRight
->SetValue(true);
729 else if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_CENTRE
)
730 m_alignmentCentred
->SetValue(true);
731 else if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_JUSTIFIED
)
732 m_alignmentJustified
->SetValue(true);
734 m_alignmentIndeterminate
->SetValue(true);
737 m_alignmentIndeterminate
->SetValue(true);
739 if (attr
->HasLeftIndent())
741 wxString
leftIndent(wxString::Format(wxT("%ld"), attr
->GetLeftIndent() + attr
->GetLeftSubIndent()));
742 wxString
leftFirstIndent(wxString::Format(wxT("%ld"), attr
->GetLeftIndent()));
744 m_indentLeft
->SetValue(leftIndent
);
745 m_indentLeftFirst
->SetValue(leftFirstIndent
);
749 m_indentLeft
->SetValue(wxEmptyString
);
750 m_indentLeftFirst
->SetValue(wxEmptyString
);
753 if (attr
->HasRightIndent())
755 wxString
rightIndent(wxString::Format(wxT("%ld"), attr
->GetRightIndent()));
757 m_indentRight
->SetValue(rightIndent
);
760 m_indentRight
->SetValue(wxEmptyString
);
762 if (attr
->HasParagraphSpacingAfter())
764 wxString
spacingAfter(wxString::Format(wxT("%d"), attr
->GetParagraphSpacingAfter()));
766 m_spacingAfter
->SetValue(spacingAfter
);
769 m_spacingAfter
->SetValue(wxEmptyString
);
771 if (attr
->HasParagraphSpacingBefore())
773 wxString
spacingBefore(wxString::Format(wxT("%d"), attr
->GetParagraphSpacingBefore()));
775 m_spacingBefore
->SetValue(spacingBefore
);
778 m_spacingBefore
->SetValue(wxEmptyString
);
780 if (attr
->HasLineSpacing())
784 int lineSpacing
= attr
->GetLineSpacing();
785 if (lineSpacing
== 10)
787 else if (lineSpacing
== 15)
789 else if (lineSpacing
== 20)
794 m_spacingLine
->SetSelection(index
);
797 m_spacingLine
->SetSelection(-1);
800 if (attr
->HasBulletStyle())
803 if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ARABIC
)
804 index
= wxRICHTEXT_BULLETINDEX_ARABIC
;
806 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER
)
807 index
= wxRICHTEXT_BULLETINDEX_UPPER_CASE
;
809 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER
)
810 index
= wxRICHTEXT_BULLETINDEX_LOWER_CASE
;
812 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER
)
813 index
= wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN
;
815 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER
)
816 index
= wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN
;
818 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_OUTLINE
)
819 index
= wxRICHTEXT_BULLETINDEX_OUTLINE
;
821 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_SYMBOL
)
822 index
= wxRICHTEXT_BULLETINDEX_SYMBOL
;
824 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_BITMAP
)
825 index
= wxRICHTEXT_BULLETINDEX_BITMAP
;
827 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_STANDARD
)
828 index
= wxRICHTEXT_BULLETINDEX_STANDARD
;
830 m_styleListBox
->SetSelection(index
);
832 if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PARENTHESES
)
833 m_parenthesesCtrl
->SetValue(true);
835 m_parenthesesCtrl
->SetValue(false);
837 if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS
)
838 m_rightParenthesisCtrl
->SetValue(true);
840 m_rightParenthesisCtrl
->SetValue(false);
842 if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_PERIOD
)
843 m_periodCtrl
->SetValue(true);
845 m_periodCtrl
->SetValue(false);
847 if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE
)
848 m_bulletAlignmentCtrl
->SetSelection(1);
849 else if (attr
->GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT
)
850 m_bulletAlignmentCtrl
->SetSelection(2);
852 m_bulletAlignmentCtrl
->SetSelection(0);
856 m_styleListBox
->SetSelection(-1);
857 m_bulletAlignmentCtrl
->SetSelection(-1);
860 if (attr
->HasBulletText())
862 m_symbolCtrl
->SetValue(attr
->GetBulletText());
863 m_symbolFontCtrl
->SetValue(attr
->GetBulletFont());
866 m_symbolCtrl
->SetValue(wxEmptyString
);
868 if (attr
->HasBulletName())
869 m_bulletNameCtrl
->SetValue(attr
->GetBulletName());
871 m_bulletNameCtrl
->SetValue(wxEmptyString
);
873 m_dontUpdate
= false;
876 /// Get attributes for selected level
877 wxRichTextAttr
* wxRichTextListStylePage::GetAttributesForSelection()
879 wxRichTextListStyleDefinition
* def
= wxDynamicCast(wxRichTextFormattingDialog::GetDialogStyleDefinition(this),
880 wxRichTextListStyleDefinition
);
882 int value
= m_levelCtrl
->GetValue();
885 return def
->GetLevelAttributes(value
-1);
890 /// Just transfer from the window and update the preview
891 void wxRichTextListStylePage::TransferAndPreview()
895 TransferDataFromWindow();
902 * wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
905 void wxRichTextListStylePage::OnLevelUpdated( wxSpinEvent
& WXUNUSED(event
) )
909 m_currentLevel
= m_levelCtrl
->GetValue();
910 TransferDataToWindow();
915 * wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
918 void wxRichTextListStylePage::OnLevelUp( wxSpinEvent
& event
)
922 m_currentLevel
= event
.GetPosition();
923 TransferDataToWindow();
928 * wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
931 void wxRichTextListStylePage::OnLevelDown( wxSpinEvent
& event
)
935 m_currentLevel
= event
.GetPosition();
936 TransferDataToWindow();
941 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
944 void wxRichTextListStylePage::OnLevelTextUpdated( wxCommandEvent
& WXUNUSED(event
) )
946 // Can cause problems
950 m_currentLevel
= event
.GetInt();
951 TransferDataToWindow();
957 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL
960 void wxRichTextListStylePage::OnLevelUIUpdate( wxUpdateUIEvent
& event
)
962 ////@begin wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL in wxRichTextListStylePage.
963 // Before editing this code, remove the block markers.
965 ////@end wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL in wxRichTextListStylePage.
969 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX
972 void wxRichTextListStylePage::OnStylelistboxSelected( wxCommandEvent
& WXUNUSED(event
) )
974 TransferAndPreview();
978 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC
981 void wxRichTextListStylePage::OnSymbolstaticUpdate( wxUpdateUIEvent
& event
)
983 OnSymbolUpdate(event
);
987 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
990 void wxRichTextListStylePage::OnSymbolctrlSelected( wxCommandEvent
& WXUNUSED(event
) )
992 TransferAndPreview();
996 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
999 void wxRichTextListStylePage::OnSymbolctrlUpdated( wxCommandEvent
& WXUNUSED(event
) )
1001 TransferAndPreview();
1005 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL
1008 void wxRichTextListStylePage::OnSymbolctrlUIUpdate( wxUpdateUIEvent
& event
)
1010 OnSymbolUpdate(event
);
1014 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
1017 void wxRichTextListStylePage::OnChooseSymbolClick( wxCommandEvent
& WXUNUSED(event
) )
1019 int sel
= m_styleListBox
->GetSelection();
1020 if (sel
== wxRICHTEXT_BULLETINDEX_SYMBOL
)
1022 wxString symbol
= m_symbolCtrl
->GetValue();
1023 wxString fontName
= m_symbolFontCtrl
->GetValue();
1024 wxSymbolPickerDialog
dlg(symbol
, fontName
, fontName
, this);
1026 if (dlg
.ShowModal() == wxID_OK
)
1028 m_dontUpdate
= true;
1030 m_symbolCtrl
->SetValue(dlg
.GetSymbol());
1031 m_symbolFontCtrl
->SetValue(dlg
.GetFontName());
1033 TransferAndPreview();
1035 m_dontUpdate
= false;
1041 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL
1044 void wxRichTextListStylePage::OnChooseSymbolUpdate( wxUpdateUIEvent
& event
)
1046 OnSymbolUpdate(event
);
1050 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
1053 void wxRichTextListStylePage::OnSymbolfontctrlSelected( wxCommandEvent
& WXUNUSED(event
) )
1055 TransferAndPreview();
1059 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
1062 void wxRichTextListStylePage::OnSymbolfontctrlUpdated( wxCommandEvent
& WXUNUSED(event
) )
1064 TransferAndPreview();
1068 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL
1071 void wxRichTextListStylePage::OnSymbolfontctrlUIUpdate( wxUpdateUIEvent
& event
)
1073 OnSymbolUpdate(event
);
1077 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTLISTSTYLEPAGE__PARENTHESESCTRL
1080 void wxRichTextListStylePage::OnParenthesesctrlClick( wxCommandEvent
& WXUNUSED(event
) )
1082 TransferAndPreview();
1086 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE__PARENTHESESCTRL
1089 void wxRichTextListStylePage::OnParenthesesctrlUpdate( wxUpdateUIEvent
& event
)
1091 int sel
= m_styleListBox
->GetSelection();
1092 event
.Enable((sel
!= wxRICHTEXT_BULLETINDEX_SYMBOL
&&
1093 sel
!= wxRICHTEXT_BULLETINDEX_BITMAP
&&
1094 sel
!= wxRICHTEXT_BULLETINDEX_NONE
));
1098 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
1101 void wxRichTextListStylePage::OnPeriodctrlClick( wxCommandEvent
& WXUNUSED(event
) )
1103 TransferAndPreview();
1107 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL
1110 void wxRichTextListStylePage::OnPeriodctrlUpdate( wxUpdateUIEvent
& event
)
1112 int sel
= m_styleListBox
->GetSelection();
1113 event
.Enable((sel
!= wxRICHTEXT_BULLETINDEX_SYMBOL
&&
1114 sel
!= wxRICHTEXT_BULLETINDEX_BITMAP
&&
1115 sel
!= wxRICHTEXT_BULLETINDEX_NONE
));
1119 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT
1122 void wxRichTextListStylePage::OnRichtextliststylepageAlignleftSelected( wxCommandEvent
& WXUNUSED(event
) )
1124 TransferAndPreview();
1128 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT
1131 void wxRichTextListStylePage::OnRichtextliststylepageAlignrightSelected( wxCommandEvent
& WXUNUSED(event
) )
1133 TransferAndPreview();
1137 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED
1140 void wxRichTextListStylePage::OnRichtextliststylepageJustifiedSelected( wxCommandEvent
& WXUNUSED(event
) )
1142 TransferAndPreview();
1146 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_CENTERED
1149 void wxRichTextListStylePage::OnRichtextliststylepageCenteredSelected( wxCommandEvent
& WXUNUSED(event
) )
1151 TransferAndPreview();
1155 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE
1158 void wxRichTextListStylePage::OnRichtextliststylepageAlignindeterminateSelected( wxCommandEvent
& WXUNUSED(event
) )
1160 TransferAndPreview();
1164 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT
1167 void wxRichTextListStylePage::OnIndentLeftUpdated( wxCommandEvent
& WXUNUSED(event
) )
1169 TransferAndPreview();
1173 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE
1176 void wxRichTextListStylePage::OnIndentFirstLineUpdated( wxCommandEvent
& WXUNUSED(event
) )
1178 TransferAndPreview();
1182 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT
1185 void wxRichTextListStylePage::OnIndentRightUpdated( wxCommandEvent
& WXUNUSED(event
) )
1187 TransferAndPreview();
1191 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE
1194 void wxRichTextListStylePage::OnSpacingBeforeUpdated( wxCommandEvent
& WXUNUSED(event
) )
1196 TransferAndPreview();
1200 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER
1203 void wxRichTextListStylePage::OnSpacingAfterUpdated( wxCommandEvent
& WXUNUSED(event
) )
1205 TransferAndPreview();
1209 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_LINESPACING
1212 void wxRichTextListStylePage::OnLineSpacingSelected( wxCommandEvent
& WXUNUSED(event
) )
1214 TransferAndPreview();
1218 * Should we show tooltips?
1221 bool wxRichTextListStylePage::ShowToolTips()
1223 return wxRichTextFormattingDialog::ShowToolTips();
1227 * Get bitmap resources
1230 wxBitmap
wxRichTextListStylePage::GetBitmapResource( const wxString
& name
)
1233 ////@begin wxRichTextListStylePage bitmap retrieval
1235 return wxNullBitmap
;
1236 ////@end wxRichTextListStylePage bitmap retrieval
1240 * Get icon resources
1243 wxIcon
wxRichTextListStylePage::GetIconResource( const wxString
& name
)
1246 ////@begin wxRichTextListStylePage icon retrieval
1249 ////@end wxRichTextListStylePage icon retrieval
1252 /// Update for symbol-related controls
1253 void wxRichTextListStylePage::OnSymbolUpdate( wxUpdateUIEvent
& event
)
1255 int sel
= m_styleListBox
->GetSelection();
1256 event
.Enable(sel
== wxRICHTEXT_BULLETINDEX_SYMBOL
);
1259 /// Update for number-related controls
1260 void wxRichTextListStylePage::OnNumberUpdate( wxUpdateUIEvent
& event
)
1262 int sel
= m_styleListBox
->GetSelection();
1263 event
.Enable((sel
!= wxRICHTEXT_BULLETINDEX_SYMBOL
&&
1264 sel
!= wxRICHTEXT_BULLETINDEX_BITMAP
&&
1265 sel
!= wxRICHTEXT_BULLETINDEX_STANDARD
&&
1266 sel
!= wxRICHTEXT_BULLETINDEX_NONE
));
1269 /// Update for standard bullet-related controls
1270 void wxRichTextListStylePage::OnStandardBulletUpdate( wxUpdateUIEvent
& event
)
1272 int sel
= m_styleListBox
->GetSelection();
1273 event
.Enable( sel
== wxRICHTEXT_BULLETINDEX_STANDARD
);
1277 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT
1280 void wxRichTextListStylePage::OnChooseFontClick( wxCommandEvent
& WXUNUSED(event
) )
1282 wxRichTextAttr
* attr
= GetAttributesForSelection();
1284 int pages
= wxRICHTEXT_FORMAT_FONT
;
1285 wxRichTextFormattingDialog formatDlg
;
1286 formatDlg
.SetStyle(*attr
, false);
1287 formatDlg
.Create(pages
, this);
1289 if (formatDlg
.ShowModal() == wxID_OK
)
1291 (*attr
) = formatDlg
.GetAttributes();
1292 TransferAndPreview();
1296 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC
1299 void wxRichTextListStylePage::OnNamestaticUpdate( wxUpdateUIEvent
& event
)
1301 OnStandardBulletUpdate(event
);
1305 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
1308 void wxRichTextListStylePage::OnNamectrlSelected( wxCommandEvent
& WXUNUSED(event
) )
1310 TransferAndPreview();
1314 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
1317 void wxRichTextListStylePage::OnNamectrlUpdated( wxCommandEvent
& WXUNUSED(event
) )
1319 TransferAndPreview();
1323 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL
1326 void wxRichTextListStylePage::OnNamectrlUIUpdate( wxUpdateUIEvent
& event
)
1328 OnStandardBulletUpdate(event
);
1331 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
1334 void wxRichTextListStylePage::OnRightParenthesisCtrlClick( wxCommandEvent
& WXUNUSED(event
) )
1336 TransferAndPreview();
1340 * wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL
1343 void wxRichTextListStylePage::OnRightParenthesisCtrlUpdate( wxUpdateUIEvent
& event
)
1345 int sel
= m_styleListBox
->GetSelection();
1346 event
.Enable((sel
!= wxRICHTEXT_BULLETINDEX_SYMBOL
&&
1347 sel
!= wxRICHTEXT_BULLETINDEX_BITMAP
&&
1348 sel
!= wxRICHTEXT_BULLETINDEX_NONE
));
1352 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL
1355 void wxRichTextListStylePage::OnBulletAlignmentCtrlSelected( wxCommandEvent
& WXUNUSED(event
) )
1357 TransferAndPreview();