1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/richtext/richtextindentspage.cpp
4 // Author: Julian Smart
6 // Created: 10/3/2006 2:28:21 PM
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx/wx.h".
13 #include "wx/wxprec.h"
21 #include "wx/richtext/richtextindentspage.h"
27 * wxRichTextIndentsSpacingPage type definition
30 IMPLEMENT_DYNAMIC_CLASS( wxRichTextIndentsSpacingPage
, wxPanel
)
33 * wxRichTextIndentsSpacingPage event table definition
36 BEGIN_EVENT_TABLE( wxRichTextIndentsSpacingPage
, wxPanel
)
38 ////@begin wxRichTextIndentsSpacingPage event table entries
39 EVT_RADIOBUTTON( ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT
, wxRichTextIndentsSpacingPage::OnAlignmentLeftSelected
)
41 EVT_RADIOBUTTON( ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT
, wxRichTextIndentsSpacingPage::OnAlignmentRightSelected
)
43 EVT_RADIOBUTTON( ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED
, wxRichTextIndentsSpacingPage::OnAlignmentJustifiedSelected
)
45 EVT_RADIOBUTTON( ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED
, wxRichTextIndentsSpacingPage::OnAlignmentCentredSelected
)
47 EVT_RADIOBUTTON( ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE
, wxRichTextIndentsSpacingPage::OnAlignmentIndeterminateSelected
)
49 EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT
, wxRichTextIndentsSpacingPage::OnIndentLeftUpdated
)
51 EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST
, wxRichTextIndentsSpacingPage::OnIndentLeftFirstUpdated
)
53 EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT
, wxRichTextIndentsSpacingPage::OnIndentRightUpdated
)
55 EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE
, wxRichTextIndentsSpacingPage::OnSpacingBeforeUpdated
)
57 EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER
, wxRichTextIndentsSpacingPage::OnSpacingAfterUpdated
)
59 EVT_COMBOBOX( ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE
, wxRichTextIndentsSpacingPage::OnSpacingLineSelected
)
61 ////@end wxRichTextIndentsSpacingPage event table entries
66 * wxRichTextIndentsSpacingPage constructors
69 wxRichTextIndentsSpacingPage::wxRichTextIndentsSpacingPage( )
74 wxRichTextIndentsSpacingPage::wxRichTextIndentsSpacingPage( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
77 Create(parent
, id
, pos
, size
, style
);
84 void wxRichTextIndentsSpacingPage::Init()
88 ////@begin wxRichTextIndentsSpacingPage member initialisation
89 m_alignmentLeft
= NULL
;
90 m_alignmentRight
= NULL
;
91 m_alignmentJustified
= NULL
;
92 m_alignmentCentred
= NULL
;
93 m_alignmentIndeterminate
= NULL
;
95 m_indentLeftFirst
= NULL
;
97 m_spacingBefore
= NULL
;
98 m_spacingAfter
= NULL
;
100 m_previewCtrl
= NULL
;
101 ////@end wxRichTextIndentsSpacingPage member initialisation
106 * wxRichTextIndentsSpacingPage creator
109 bool wxRichTextIndentsSpacingPage::Create( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
111 ////@begin wxRichTextIndentsSpacingPage creation
112 wxPanel::Create( parent
, id
, pos
, size
, style
);
117 GetSizer()->SetSizeHints(this);
120 ////@end wxRichTextIndentsSpacingPage creation
125 * Control creation for wxRichTextIndentsSpacingPage
128 void wxRichTextIndentsSpacingPage::CreateControls()
130 ////@begin wxRichTextIndentsSpacingPage content construction
131 wxRichTextIndentsSpacingPage
* itemPanel1
= this;
133 wxBoxSizer
* itemBoxSizer2
= new wxBoxSizer(wxVERTICAL
);
134 itemPanel1
->SetSizer(itemBoxSizer2
);
136 wxBoxSizer
* itemBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
137 itemBoxSizer2
->Add(itemBoxSizer3
, 1, wxGROW
|wxALL
, 5);
139 wxBoxSizer
* itemBoxSizer4
= new wxBoxSizer(wxHORIZONTAL
);
140 itemBoxSizer3
->Add(itemBoxSizer4
, 0, wxGROW
, 5);
142 wxBoxSizer
* itemBoxSizer5
= new wxBoxSizer(wxVERTICAL
);
143 itemBoxSizer4
->Add(itemBoxSizer5
, 0, wxGROW
, 5);
145 wxStaticText
* itemStaticText6
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Alignment"), wxDefaultPosition
, wxDefaultSize
, 0 );
146 itemBoxSizer5
->Add(itemStaticText6
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
148 wxBoxSizer
* itemBoxSizer7
= new wxBoxSizer(wxHORIZONTAL
);
149 itemBoxSizer5
->Add(itemBoxSizer7
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
151 itemBoxSizer7
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
, 5);
153 wxBoxSizer
* itemBoxSizer9
= new wxBoxSizer(wxVERTICAL
);
154 itemBoxSizer7
->Add(itemBoxSizer9
, 0, wxALIGN_CENTER_VERTICAL
|wxTOP
, 5);
156 m_alignmentLeft
= new wxRadioButton( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT
, _("&Left"), wxDefaultPosition
, wxDefaultSize
, wxRB_GROUP
);
157 m_alignmentLeft
->SetValue(false);
158 itemBoxSizer9
->Add(m_alignmentLeft
, 0, wxALIGN_LEFT
|wxALL
, 5);
160 m_alignmentRight
= new wxRadioButton( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT
, _("&Right"), wxDefaultPosition
, wxDefaultSize
, 0 );
161 m_alignmentRight
->SetValue(false);
162 itemBoxSizer9
->Add(m_alignmentRight
, 0, wxALIGN_LEFT
|wxALL
, 5);
164 m_alignmentJustified
= new wxRadioButton( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED
, _("&Justified"), wxDefaultPosition
, wxDefaultSize
, 0 );
165 m_alignmentJustified
->SetValue(false);
166 itemBoxSizer9
->Add(m_alignmentJustified
, 0, wxALIGN_LEFT
|wxALL
, 5);
168 m_alignmentCentred
= new wxRadioButton( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED
, _("Cen&tred"), wxDefaultPosition
, wxDefaultSize
, 0 );
169 m_alignmentCentred
->SetValue(false);
170 itemBoxSizer9
->Add(m_alignmentCentred
, 0, wxALIGN_LEFT
|wxALL
, 5);
172 m_alignmentIndeterminate
= new wxRadioButton( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE
, _("&Indeterminate"), wxDefaultPosition
, wxDefaultSize
, 0 );
173 m_alignmentIndeterminate
->SetValue(false);
174 itemBoxSizer9
->Add(m_alignmentIndeterminate
, 0, wxALIGN_LEFT
|wxALL
, 5);
176 itemBoxSizer4
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
178 wxStaticLine
* itemStaticLine16
= new wxStaticLine( itemPanel1
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_VERTICAL
);
179 itemBoxSizer4
->Add(itemStaticLine16
, 0, wxGROW
|wxLEFT
|wxBOTTOM
, 5);
181 itemBoxSizer4
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
183 wxBoxSizer
* itemBoxSizer18
= new wxBoxSizer(wxVERTICAL
);
184 itemBoxSizer4
->Add(itemBoxSizer18
, 0, wxGROW
, 5);
186 wxStaticText
* itemStaticText19
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Indentation (tenths of a mm)"), wxDefaultPosition
, wxDefaultSize
, 0 );
187 itemBoxSizer18
->Add(itemStaticText19
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
189 wxBoxSizer
* itemBoxSizer20
= new wxBoxSizer(wxHORIZONTAL
);
190 itemBoxSizer18
->Add(itemBoxSizer20
, 0, wxALIGN_LEFT
|wxALL
, 5);
192 itemBoxSizer20
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
, 5);
194 wxFlexGridSizer
* itemFlexGridSizer22
= new wxFlexGridSizer(2, 2, 0, 0);
195 itemBoxSizer20
->Add(itemFlexGridSizer22
, 0, wxALIGN_CENTER_VERTICAL
, 5);
197 wxStaticText
* itemStaticText23
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Left:"), wxDefaultPosition
, wxDefaultSize
, 0 );
198 itemFlexGridSizer22
->Add(itemStaticText23
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
200 wxBoxSizer
* itemBoxSizer24
= new wxBoxSizer(wxHORIZONTAL
);
201 itemFlexGridSizer22
->Add(itemBoxSizer24
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
203 m_indentLeft
= new wxTextCtrl( itemPanel1
,
204 ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT
,
207 wxSize(50, wxDefaultCoord
),
209 itemBoxSizer24
->Add(m_indentLeft
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
211 wxStaticText
* itemStaticText26
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("Left (&first line):"), wxDefaultPosition
, wxDefaultSize
, 0 );
212 itemFlexGridSizer22
->Add(itemStaticText26
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
214 wxBoxSizer
* itemBoxSizer27
= new wxBoxSizer(wxHORIZONTAL
);
215 itemFlexGridSizer22
->Add(itemBoxSizer27
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
217 m_indentLeftFirst
= new wxTextCtrl( itemPanel1
,
218 ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST
,
221 wxSize(50, wxDefaultCoord
),
223 itemBoxSizer27
->Add(m_indentLeftFirst
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
225 wxStaticText
* itemStaticText29
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Right:"), wxDefaultPosition
, wxDefaultSize
, 0 );
226 itemFlexGridSizer22
->Add(itemStaticText29
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
228 wxBoxSizer
* itemBoxSizer30
= new wxBoxSizer(wxHORIZONTAL
);
229 itemFlexGridSizer22
->Add(itemBoxSizer30
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
231 m_indentRight
= new wxTextCtrl( itemPanel1
,
232 ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT
,
235 wxSize(50, wxDefaultCoord
),
237 itemBoxSizer30
->Add(m_indentRight
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
239 itemBoxSizer4
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
241 wxStaticLine
* itemStaticLine33
= new wxStaticLine( itemPanel1
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_VERTICAL
);
242 itemBoxSizer4
->Add(itemStaticLine33
, 0, wxGROW
|wxTOP
|wxBOTTOM
, 5);
244 itemBoxSizer4
->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL
|wxTOP
|wxBOTTOM
, 5);
246 wxBoxSizer
* itemBoxSizer35
= new wxBoxSizer(wxVERTICAL
);
247 itemBoxSizer4
->Add(itemBoxSizer35
, 0, wxGROW
, 5);
249 wxStaticText
* itemStaticText36
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("&Spacing (tenths of a mm)"), wxDefaultPosition
, wxDefaultSize
, 0 );
250 itemBoxSizer35
->Add(itemStaticText36
, 0, wxALIGN_LEFT
|wxLEFT
|wxRIGHT
|wxTOP
|wxADJUST_MINSIZE
, 5);
252 wxBoxSizer
* itemBoxSizer37
= new wxBoxSizer(wxHORIZONTAL
);
253 itemBoxSizer35
->Add(itemBoxSizer37
, 0, wxALIGN_LEFT
|wxALL
, 5);
255 itemBoxSizer37
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
, 5);
257 wxFlexGridSizer
* itemFlexGridSizer39
= new wxFlexGridSizer(2, 2, 0, 0);
258 itemBoxSizer37
->Add(itemFlexGridSizer39
, 0, wxALIGN_CENTER_VERTICAL
, 5);
260 wxStaticText
* itemStaticText40
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("Before a paragraph:"), wxDefaultPosition
, wxDefaultSize
, 0 );
261 itemFlexGridSizer39
->Add(itemStaticText40
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
263 wxBoxSizer
* itemBoxSizer41
= new wxBoxSizer(wxHORIZONTAL
);
264 itemFlexGridSizer39
->Add(itemBoxSizer41
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
266 m_spacingBefore
= new wxTextCtrl( itemPanel1
,
267 ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE
,
270 wxSize(50, wxDefaultCoord
),
272 itemBoxSizer41
->Add(m_spacingBefore
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
274 wxStaticText
* itemStaticText43
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("After a paragraph:"), wxDefaultPosition
, wxDefaultSize
, 0 );
275 itemFlexGridSizer39
->Add(itemStaticText43
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
277 wxBoxSizer
* itemBoxSizer44
= new wxBoxSizer(wxHORIZONTAL
);
278 itemFlexGridSizer39
->Add(itemBoxSizer44
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
280 m_spacingAfter
= new wxTextCtrl( itemPanel1
,
281 ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER
,
284 wxSize(50, wxDefaultCoord
),
286 itemBoxSizer44
->Add(m_spacingAfter
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
288 wxStaticText
* itemStaticText46
= new wxStaticText( itemPanel1
, wxID_STATIC
, _("Line spacing:"), wxDefaultPosition
, wxDefaultSize
, 0 );
289 itemFlexGridSizer39
->Add(itemStaticText46
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
|wxADJUST_MINSIZE
, 5);
291 wxBoxSizer
* itemBoxSizer47
= new wxBoxSizer(wxHORIZONTAL
);
292 itemFlexGridSizer39
->Add(itemBoxSizer47
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALIGN_CENTER_VERTICAL
, 5);
294 wxString m_spacingLineStrings
[] = {
299 m_spacingLine
= new wxComboBox( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE
, _("Single"), wxDefaultPosition
, wxDefaultSize
, 3, m_spacingLineStrings
, wxCB_READONLY
);
300 m_spacingLine
->SetStringSelection(_("Single"));
301 itemBoxSizer47
->Add(m_spacingLine
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
303 itemBoxSizer3
->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
305 m_previewCtrl
= new wxRichTextCtrl( itemPanel1
, ID_RICHTEXTINDENTSSPACINGPAGE_PREVIEW_CTRL
, wxEmptyString
, wxDefaultPosition
, wxSize(350, 180), wxSUNKEN_BORDER
);
306 m_previewCtrl
->SetHelpText(_("Shows a preview of the paragraph settings."));
308 m_previewCtrl
->SetToolTip(_("Shows a preview of the paragraph settings."));
309 itemBoxSizer3
->Add(m_previewCtrl
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
311 ////@end wxRichTextIndentsSpacingPage content construction
314 wxTextAttrEx
* wxRichTextIndentsSpacingPage::GetAttributes()
316 return wxRichTextFormattingDialog::GetDialogAttributes(this);
319 /// Updates the font preview
320 void wxRichTextIndentsSpacingPage::UpdatePreview()
322 static const wxChar
* s_para1
= wxT("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
323 Nullam ante sapien, vestibulum nonummy, pulvinar sed, luctus ut, lacus.");
325 static const wxChar
* s_para2
= wxT("\nDuis pharetra consequat dui. Cum sociis natoque penatibus \
326 et magnis dis parturient montes, nascetur ridiculus mus. Nullam vitae justo id mauris lobortis interdum.");
328 static const wxChar
* s_para3
= wxT("\nInteger convallis dolor at augue \
329 iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
331 TransferDataFromWindow();
332 wxTextAttrEx
attr(*GetAttributes());
333 attr
.SetFlags(attr
.GetFlags() &
334 (wxTEXT_ATTR_ALIGNMENT
|wxTEXT_ATTR_LEFT_INDENT
|wxTEXT_ATTR_RIGHT_INDENT
|wxTEXT_ATTR_PARA_SPACING_BEFORE
|wxTEXT_ATTR_PARA_SPACING_AFTER
|
335 wxTEXT_ATTR_LINE_SPACING
|
336 wxTEXT_ATTR_BULLET_STYLE
|wxTEXT_ATTR_BULLET_NUMBER
|wxTEXT_ATTR_BULLET_SYMBOL
));
338 wxFont
font(m_previewCtrl
->GetFont());
339 font
.SetPointSize(9);
340 m_previewCtrl
->SetFont(font
);
342 font
.SetWeight(wxBOLD
);
345 m_previewCtrl
->Clear();
347 m_previewCtrl
->WriteText(s_para1
);
348 m_previewCtrl
->BeginStyle(attr
);
349 m_previewCtrl
->WriteText(s_para2
);
350 m_previewCtrl
->EndStyle();
351 m_previewCtrl
->WriteText(s_para3
);
354 /// Transfer data from/to window
355 bool wxRichTextIndentsSpacingPage::TransferDataFromWindow()
357 wxPanel::TransferDataFromWindow();
359 wxTextAttrEx
* attr
= GetAttributes();
361 if (m_alignmentLeft
->GetValue())
362 attr
->SetAlignment(wxTEXT_ALIGNMENT_LEFT
);
363 else if (m_alignmentCentred
->GetValue())
364 attr
->SetAlignment(wxTEXT_ALIGNMENT_CENTRE
);
365 else if (m_alignmentRight
->GetValue())
366 attr
->SetAlignment(wxTEXT_ALIGNMENT_RIGHT
);
367 else if (m_alignmentJustified
->GetValue())
368 attr
->SetAlignment(wxTEXT_ALIGNMENT_JUSTIFIED
);
371 attr
->SetAlignment(wxTEXT_ALIGNMENT_DEFAULT
);
372 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_ALIGNMENT
));
375 wxString
leftIndent(m_indentLeft
->GetValue());
376 wxString
leftFirstIndent(m_indentLeftFirst
->GetValue());
377 if (!leftIndent
.empty())
379 int visualLeftIndent
= wxAtoi(leftIndent
);
380 int visualLeftFirstIndent
= wxAtoi(leftFirstIndent
);
381 int actualLeftIndent
= visualLeftFirstIndent
;
382 int actualLeftSubIndent
= visualLeftIndent
- visualLeftFirstIndent
;
384 attr
->SetLeftIndent(actualLeftIndent
, actualLeftSubIndent
);
387 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_LEFT_INDENT
));
389 wxString
rightIndent(m_indentRight
->GetValue());
390 if (!rightIndent
.empty())
391 attr
->SetRightIndent(wxAtoi(rightIndent
));
393 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_RIGHT_INDENT
));
395 wxString
spacingAfter(m_spacingAfter
->GetValue());
396 if (!spacingAfter
.empty())
397 attr
->SetParagraphSpacingAfter(wxAtoi(spacingAfter
));
399 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_PARA_SPACING_AFTER
));
401 wxString
spacingBefore(m_spacingBefore
->GetValue());
402 if (!spacingBefore
.empty())
403 attr
->SetParagraphSpacingBefore(wxAtoi(spacingBefore
));
405 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_PARA_SPACING_BEFORE
));
407 int spacingIndex
= m_spacingLine
->GetSelection();
409 if (spacingIndex
== 0)
411 else if (spacingIndex
== 1)
413 else if (spacingIndex
== 2)
416 if (lineSpacing
== 0)
417 attr
->SetFlags(attr
->GetFlags() & (~wxTEXT_ATTR_LINE_SPACING
));
419 attr
->SetLineSpacing(lineSpacing
);
424 bool wxRichTextIndentsSpacingPage::TransferDataToWindow()
428 wxPanel::TransferDataToWindow();
430 wxTextAttrEx
* attr
= GetAttributes();
432 if (attr
->HasAlignment())
434 if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_LEFT
)
435 m_alignmentLeft
->SetValue(true);
436 else if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_RIGHT
)
437 m_alignmentRight
->SetValue(true);
438 else if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_CENTRE
)
439 m_alignmentCentred
->SetValue(true);
440 else if (attr
->GetAlignment() == wxTEXT_ALIGNMENT_JUSTIFIED
)
441 m_alignmentJustified
->SetValue(true);
443 m_alignmentIndeterminate
->SetValue(true);
446 m_alignmentIndeterminate
->SetValue(true);
448 if (attr
->HasLeftIndent())
450 wxString
leftIndent(wxString::Format(wxT("%ld"), attr
->GetLeftIndent() + attr
->GetLeftSubIndent()));
451 wxString
leftFirstIndent(wxString::Format(wxT("%ld"), attr
->GetLeftIndent()));
453 m_indentLeft
->SetValue(leftIndent
);
454 m_indentLeftFirst
->SetValue(leftFirstIndent
);
458 m_indentLeft
->SetValue(wxEmptyString
);
459 m_indentLeftFirst
->SetValue(wxEmptyString
);
462 if (attr
->HasRightIndent())
464 wxString
rightIndent(wxString::Format(wxT("%ld"), attr
->GetRightIndent()));
466 m_indentRight
->SetValue(rightIndent
);
469 m_indentRight
->SetValue(wxEmptyString
);
471 if (attr
->HasParagraphSpacingAfter())
473 wxString
spacingAfter(wxString::Format(wxT("%d"), attr
->GetParagraphSpacingAfter()));
475 m_spacingAfter
->SetValue(spacingAfter
);
478 m_spacingAfter
->SetValue(wxEmptyString
);
480 if (attr
->HasParagraphSpacingBefore())
482 wxString
spacingBefore(wxString::Format(wxT("%d"), attr
->GetParagraphSpacingBefore()));
484 m_spacingBefore
->SetValue(spacingBefore
);
487 m_spacingBefore
->SetValue(wxEmptyString
);
489 if (attr
->HasLineSpacing())
493 int lineSpacing
= attr
->GetLineSpacing();
494 if (lineSpacing
== 10)
496 else if (lineSpacing
== 15)
498 else if (lineSpacing
== 20)
503 m_spacingLine
->SetSelection(index
);
506 m_spacingLine
->SetSelection(-1);
510 m_dontUpdate
= false;
517 * Should we show tooltips?
520 bool wxRichTextIndentsSpacingPage::ShowToolTips()
526 * Get bitmap resources
529 wxBitmap
wxRichTextIndentsSpacingPage::GetBitmapResource( const wxString
& name
)
532 ////@begin wxRichTextIndentsSpacingPage bitmap retrieval
535 ////@end wxRichTextIndentsSpacingPage bitmap retrieval
542 wxIcon
wxRichTextIndentsSpacingPage::GetIconResource( const wxString
& name
)
545 ////@begin wxRichTextIndentsSpacingPage icon retrieval
548 ////@end wxRichTextIndentsSpacingPage icon retrieval
551 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT
554 void wxRichTextIndentsSpacingPage::OnAlignmentLeftSelected( wxCommandEvent
& WXUNUSED(event
) )
562 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT
565 void wxRichTextIndentsSpacingPage::OnAlignmentRightSelected( wxCommandEvent
& WXUNUSED(event
) )
573 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED
576 void wxRichTextIndentsSpacingPage::OnAlignmentJustifiedSelected( wxCommandEvent
& WXUNUSED(event
) )
584 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED
587 void wxRichTextIndentsSpacingPage::OnAlignmentCentredSelected( wxCommandEvent
& WXUNUSED(event
) )
595 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE
598 void wxRichTextIndentsSpacingPage::OnAlignmentIndeterminateSelected( wxCommandEvent
& WXUNUSED(event
) )
606 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT
609 void wxRichTextIndentsSpacingPage::OnIndentLeftUpdated( wxCommandEvent
& WXUNUSED(event
) )
617 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST
620 void wxRichTextIndentsSpacingPage::OnIndentLeftFirstUpdated( wxCommandEvent
& WXUNUSED(event
) )
628 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT
631 void wxRichTextIndentsSpacingPage::OnIndentRightUpdated( wxCommandEvent
& WXUNUSED(event
) )
639 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE
642 void wxRichTextIndentsSpacingPage::OnSpacingBeforeUpdated( wxCommandEvent
& WXUNUSED(event
) )
650 * wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER
653 void wxRichTextIndentsSpacingPage::OnSpacingAfterUpdated( wxCommandEvent
& WXUNUSED(event
) )
660 * wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE
663 void wxRichTextIndentsSpacingPage::OnSpacingLineSelected( wxCommandEvent
& WXUNUSED(event
) )
669 #endif // wxUSE_RICHTEXT