1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/richtext/richtextsizepage.cpp
4 // Author: Julian Smart
6 // Created: 20/10/2010 10:23:24
8 // Copyright: (c) Julian Smart
10 /////////////////////////////////////////////////////////////////////////////
12 #include "wx/richtext/richtextsizepage.h"
19 * wxRichTextSizePage type definition
22 IMPLEMENT_DYNAMIC_CLASS( wxRichTextSizePage
, wxRichTextDialogPage
)
26 * wxRichTextSizePage event table definition
29 BEGIN_EVENT_TABLE( wxRichTextSizePage
, wxRichTextDialogPage
)
31 ////@begin wxRichTextSizePage event table entries
32 EVT_UPDATE_UI( ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX
, wxRichTextSizePage::OnRichtextVerticalAlignmentComboboxUpdate
)
33 EVT_UPDATE_UI( ID_RICHTEXT_WIDTH
, wxRichTextSizePage::OnRichtextWidthUpdate
)
34 EVT_UPDATE_UI( ID_RICHTEXT_UNITS_W
, wxRichTextSizePage::OnRichtextWidthUpdate
)
35 EVT_UPDATE_UI( ID_RICHTEXT_HEIGHT
, wxRichTextSizePage::OnRichtextHeightUpdate
)
36 EVT_UPDATE_UI( ID_RICHTEXT_UNITS_H
, wxRichTextSizePage::OnRichtextHeightUpdate
)
37 EVT_UPDATE_UI( ID_RICHTEXT_MIN_WIDTH
, wxRichTextSizePage::OnRichtextMinWidthUpdate
)
38 EVT_UPDATE_UI( ID_RICHTEXT_UNITS_MIN_W
, wxRichTextSizePage::OnRichtextMinWidthUpdate
)
39 EVT_UPDATE_UI( ID_RICHTEXT_MIN_HEIGHT
, wxRichTextSizePage::OnRichtextMinHeightUpdate
)
40 EVT_UPDATE_UI( ID_RICHTEXT_UNITS_MIN_H
, wxRichTextSizePage::OnRichtextMinHeightUpdate
)
41 EVT_UPDATE_UI( ID_RICHTEXT_MAX_WIDTH
, wxRichTextSizePage::OnRichtextMaxWidthUpdate
)
42 EVT_UPDATE_UI( ID_RICHTEXT_UNITS_MAX_W
, wxRichTextSizePage::OnRichtextMaxWidthUpdate
)
43 EVT_UPDATE_UI( ID_RICHTEXT_MAX_HEIGHT
, wxRichTextSizePage::OnRichtextMaxHeightUpdate
)
44 EVT_UPDATE_UI( ID_RICHTEXT_UNITS_MAX_H
, wxRichTextSizePage::OnRichtextMaxHeightUpdate
)
45 EVT_UPDATE_UI( ID_RICHTEXT_LEFT
, wxRichTextSizePage::OnRichtextLeftUpdate
)
46 EVT_UPDATE_UI( ID_RICHTEXT_LEFT_UNITS
, wxRichTextSizePage::OnRichtextTopUpdate
)
47 EVT_UPDATE_UI( ID_RICHTEXT_TOP
, wxRichTextSizePage::OnRichtextTopUpdate
)
48 EVT_UPDATE_UI( ID_RICHTEXT_TOP_UNITS
, wxRichTextSizePage::OnRichtextTopUpdate
)
49 EVT_UPDATE_UI( ID_RICHTEXT_RIGHT
, wxRichTextSizePage::OnRichtextRightUpdate
)
50 EVT_UPDATE_UI( ID_RICHTEXT_RIGHT_UNITS
, wxRichTextSizePage::OnRichtextRightUpdate
)
51 EVT_UPDATE_UI( ID_RICHTEXT_BOTTOM
, wxRichTextSizePage::OnRichtextBottomUpdate
)
52 EVT_UPDATE_UI( ID_RICHTEXT_BOTTOM_UNITS
, wxRichTextSizePage::OnRichtextBottomUpdate
)
53 EVT_BUTTON( ID_RICHTEXT_PARA_UP
, wxRichTextSizePage::OnRichtextParaUpClick
)
54 EVT_BUTTON( ID_RICHTEXT_PARA_DOWN
, wxRichTextSizePage::OnRichtextParaDownClick
)
55 ////@end wxRichTextSizePage event table entries
59 IMPLEMENT_HELP_PROVISION(wxRichTextSizePage
)
61 bool wxRichTextSizePage::sm_showFloatingControls
= true;
62 bool wxRichTextSizePage::sm_showPositionControls
= true;
63 bool wxRichTextSizePage::sm_showPositionModeControls
= true;
64 bool wxRichTextSizePage::sm_showRightBottomPositionControls
= true;
65 bool wxRichTextSizePage::sm_showAlignmentControls
= true;
66 bool wxRichTextSizePage::sm_showFloatingAndAlignmentControls
= true;
69 * wxRichTextSizePage constructors
72 wxRichTextSizePage::wxRichTextSizePage()
77 wxRichTextSizePage::wxRichTextSizePage( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
80 Create(parent
, id
, pos
, size
, style
);
85 * wxRichTextSizePage creator
88 bool wxRichTextSizePage::Create( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
90 ////@begin wxRichTextSizePage creation
91 wxRichTextDialogPage::Create( parent
, id
, pos
, size
, style
);
96 GetSizer()->SetSizeHints(this);
99 ////@end wxRichTextSizePage creation
105 * wxRichTextSizePage destructor
108 wxRichTextSizePage::~wxRichTextSizePage()
110 sm_showFloatingControls
= true;
111 sm_showPositionControls
= true;
112 sm_showPositionModeControls
= true;
113 sm_showRightBottomPositionControls
= true;
114 sm_showAlignmentControls
= true;
115 sm_showFloatingAndAlignmentControls
= true;
117 ////@begin wxRichTextSizePage destruction
118 ////@end wxRichTextSizePage destruction
123 * Member initialisation
126 void wxRichTextSizePage::Init()
128 ////@begin wxRichTextSizePage member initialisation
130 m_parentSizer
= NULL
;
131 m_floatingAlignmentSizer
= NULL
;
132 m_floatingSizer
= NULL
;
134 m_alignmentSizer
= NULL
;
135 m_verticalAlignmentCheckbox
= NULL
;
136 m_verticalAlignmentComboBox
= NULL
;
137 m_widthCheckbox
= NULL
;
140 m_heightCheckbox
= NULL
;
143 m_minWidthCheckbox
= NULL
;
146 m_minHeightCheckbox
= NULL
;
149 m_maxWidthCheckbox
= NULL
;
152 m_maxHeightCheckbox
= NULL
;
155 m_positionControls
= NULL
;
156 m_moveObjectParentSizer
= NULL
;
157 m_positionModeSizer
= NULL
;
158 m_positionModeCtrl
= NULL
;
159 m_positionGridSizer
= NULL
;
160 m_positionLeftCheckbox
= NULL
;
163 m_positionTopCheckbox
= NULL
;
166 m_positionRightCheckbox
= NULL
;
167 m_rightPositionSizer
= NULL
;
170 m_positionBottomCheckbox
= NULL
;
171 m_bottomPositionSizer
= NULL
;
173 m_unitsBottom
= NULL
;
174 m_moveObjectSizer
= NULL
;
175 ////@end wxRichTextSizePage member initialisation
180 * Control creation for wxRichTextSizePage
183 void wxRichTextSizePage::CreateControls()
185 ////@begin wxRichTextSizePage content construction
186 wxRichTextSizePage
* itemRichTextDialogPage1
= this;
188 wxBoxSizer
* itemBoxSizer2
= new wxBoxSizer(wxVERTICAL
);
189 itemRichTextDialogPage1
->SetSizer(itemBoxSizer2
);
191 m_parentSizer
= new wxBoxSizer(wxVERTICAL
);
192 itemBoxSizer2
->Add(m_parentSizer
, 0, wxGROW
|wxALL
, 5);
194 m_floatingAlignmentSizer
= new wxBoxSizer(wxHORIZONTAL
);
195 m_parentSizer
->Add(m_floatingAlignmentSizer
, 0, wxGROW
, 5);
197 m_floatingSizer
= new wxBoxSizer(wxVERTICAL
);
198 m_floatingAlignmentSizer
->Add(m_floatingSizer
, 0, wxALIGN_CENTER_VERTICAL
, 5);
200 wxBoxSizer
* itemBoxSizer6
= new wxBoxSizer(wxHORIZONTAL
);
201 m_floatingSizer
->Add(itemBoxSizer6
, 0, wxGROW
, 5);
203 wxStaticText
* itemStaticText7
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("Floating"), wxDefaultPosition
, wxDefaultSize
, 0 );
204 itemStaticText7
->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetStyle(), wxBOLD
, false, wxT("")));
205 itemBoxSizer6
->Add(itemStaticText7
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
207 wxStaticLine
* itemStaticLine8
= new wxStaticLine( itemRichTextDialogPage1
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_HORIZONTAL
);
208 itemBoxSizer6
->Add(itemStaticLine8
, 1, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
210 wxBoxSizer
* itemBoxSizer9
= new wxBoxSizer(wxHORIZONTAL
);
211 m_floatingSizer
->Add(itemBoxSizer9
, 0, wxGROW
, 5);
213 itemBoxSizer9
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
215 wxFlexGridSizer
* itemFlexGridSizer11
= new wxFlexGridSizer(0, 2, 0, 0);
216 itemBoxSizer9
->Add(itemFlexGridSizer11
, 0, wxALIGN_CENTER_VERTICAL
|wxRIGHT
, 5);
218 wxStaticText
* itemStaticText12
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("&Floating mode:"), wxDefaultPosition
, wxDefaultSize
, 0 );
219 itemFlexGridSizer11
->Add(itemStaticText12
, 0, wxALIGN_RIGHT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
221 wxArrayString m_floatStrings
;
222 m_floatStrings
.Add(_("None"));
223 m_floatStrings
.Add(_("Left"));
224 m_floatStrings
.Add(_("Right"));
225 m_float
= new wxChoice( itemRichTextDialogPage1
, ID_RICHTEXT_FLOATING_MODE
, wxDefaultPosition
, wxSize(80, -1), m_floatStrings
, 0 );
226 m_float
->SetStringSelection(_("None"));
227 m_float
->SetHelpText(_("How the object will float relative to the text."));
228 if (wxRichTextSizePage::ShowToolTips())
229 m_float
->SetToolTip(_("How the object will float relative to the text."));
230 itemFlexGridSizer11
->Add(m_float
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
232 m_floatingAlignmentSizer
->Add(0, 0, 1, wxALIGN_CENTER_VERTICAL
, 5);
234 m_alignmentSizer
= new wxBoxSizer(wxVERTICAL
);
235 m_floatingAlignmentSizer
->Add(m_alignmentSizer
, 0, wxALIGN_CENTER_VERTICAL
, 5);
237 wxBoxSizer
* itemBoxSizer16
= new wxBoxSizer(wxHORIZONTAL
);
238 m_alignmentSizer
->Add(itemBoxSizer16
, 0, wxGROW
, 5);
240 wxStaticText
* itemStaticText17
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("Alignment"), wxDefaultPosition
, wxDefaultSize
, 0 );
241 itemStaticText17
->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetStyle(), wxBOLD
, false, wxT("")));
242 itemBoxSizer16
->Add(itemStaticText17
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
244 wxStaticLine
* itemStaticLine18
= new wxStaticLine( itemRichTextDialogPage1
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_HORIZONTAL
);
245 itemBoxSizer16
->Add(itemStaticLine18
, 1, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
247 wxBoxSizer
* itemBoxSizer19
= new wxBoxSizer(wxHORIZONTAL
);
248 m_alignmentSizer
->Add(itemBoxSizer19
, 0, wxGROW
, 5);
250 itemBoxSizer19
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
252 m_verticalAlignmentCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_VERTICAL_ALIGNMENT_CHECKBOX
, _("&Vertical alignment:"), wxDefaultPosition
, wxDefaultSize
, 0 );
253 m_verticalAlignmentCheckbox
->SetValue(false);
254 m_verticalAlignmentCheckbox
->SetHelpText(_("Enable vertical alignment."));
255 if (wxRichTextSizePage::ShowToolTips())
256 m_verticalAlignmentCheckbox
->SetToolTip(_("Enable vertical alignment."));
257 itemBoxSizer19
->Add(m_verticalAlignmentCheckbox
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
259 wxArrayString m_verticalAlignmentComboBoxStrings
;
260 m_verticalAlignmentComboBoxStrings
.Add(_("Top"));
261 m_verticalAlignmentComboBoxStrings
.Add(_("Centred"));
262 m_verticalAlignmentComboBoxStrings
.Add(_("Bottom"));
263 m_verticalAlignmentComboBox
= new wxChoice( itemRichTextDialogPage1
, ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX
, wxDefaultPosition
, wxDefaultSize
, m_verticalAlignmentComboBoxStrings
, 0 );
264 m_verticalAlignmentComboBox
->SetStringSelection(_("Top"));
265 m_verticalAlignmentComboBox
->SetHelpText(_("Vertical alignment."));
266 if (wxRichTextSizePage::ShowToolTips())
267 m_verticalAlignmentComboBox
->SetToolTip(_("Vertical alignment."));
268 itemBoxSizer19
->Add(m_verticalAlignmentComboBox
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
270 wxBoxSizer
* itemBoxSizer23
= new wxBoxSizer(wxHORIZONTAL
);
271 m_parentSizer
->Add(itemBoxSizer23
, 0, wxGROW
, 5);
273 wxStaticText
* itemStaticText24
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("Size"), wxDefaultPosition
, wxDefaultSize
, 0 );
274 itemStaticText24
->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetStyle(), wxBOLD
, false, wxT("")));
275 itemBoxSizer23
->Add(itemStaticText24
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
277 wxStaticLine
* itemStaticLine25
= new wxStaticLine( itemRichTextDialogPage1
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_HORIZONTAL
);
278 itemBoxSizer23
->Add(itemStaticLine25
, 1, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
280 wxBoxSizer
* itemBoxSizer26
= new wxBoxSizer(wxHORIZONTAL
);
281 m_parentSizer
->Add(itemBoxSizer26
, 0, wxGROW
, 5);
283 itemBoxSizer26
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
285 wxFlexGridSizer
* itemFlexGridSizer28
= new wxFlexGridSizer(0, 4, 0, 0);
286 itemBoxSizer26
->Add(itemFlexGridSizer28
, 0, wxALIGN_CENTER_VERTICAL
, 5);
288 m_widthCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_WIDTH_CHECKBOX
, _("&Width:"), wxDefaultPosition
, wxDefaultSize
, 0 );
289 m_widthCheckbox
->SetValue(false);
290 m_widthCheckbox
->SetHelpText(_("Enable the width value."));
291 if (wxRichTextSizePage::ShowToolTips())
292 m_widthCheckbox
->SetToolTip(_("Enable the width value."));
293 itemFlexGridSizer28
->Add(m_widthCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
295 wxBoxSizer
* itemBoxSizer30
= new wxBoxSizer(wxHORIZONTAL
);
296 itemFlexGridSizer28
->Add(itemBoxSizer30
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
, 5);
298 m_width
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_WIDTH
, wxEmptyString
, wxDefaultPosition
, wxSize(60, -1), 0 );
299 m_width
->SetHelpText(_("The object width."));
300 if (wxRichTextSizePage::ShowToolTips())
301 m_width
->SetToolTip(_("The object width."));
302 itemBoxSizer30
->Add(m_width
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
304 wxArrayString m_unitsWStrings
;
305 m_unitsWStrings
.Add(_("px"));
306 m_unitsWStrings
.Add(_("cm"));
307 m_unitsWStrings
.Add(_("percent"));
308 m_unitsW
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_UNITS_W
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsWStrings
, wxCB_READONLY
);
309 m_unitsW
->SetStringSelection(_("px"));
310 m_unitsW
->SetHelpText(_("Units for the object width."));
311 if (wxRichTextSizePage::ShowToolTips())
312 m_unitsW
->SetToolTip(_("Units for the object width."));
313 itemBoxSizer30
->Add(m_unitsW
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
315 m_heightCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_HEIGHT_CHECKBOX
, _("&Height:"), wxDefaultPosition
, wxDefaultSize
, 0 );
316 m_heightCheckbox
->SetValue(false);
317 m_heightCheckbox
->SetHelpText(_("Enable the height value."));
318 if (wxRichTextSizePage::ShowToolTips())
319 m_heightCheckbox
->SetToolTip(_("Enable the height value."));
320 itemFlexGridSizer28
->Add(m_heightCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
322 wxBoxSizer
* itemBoxSizer34
= new wxBoxSizer(wxHORIZONTAL
);
323 itemFlexGridSizer28
->Add(itemBoxSizer34
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
, 5);
325 m_height
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_HEIGHT
, wxEmptyString
, wxDefaultPosition
, wxSize(60, -1), 0 );
326 m_height
->SetHelpText(_("The object height."));
327 if (wxRichTextSizePage::ShowToolTips())
328 m_height
->SetToolTip(_("The object height."));
329 itemBoxSizer34
->Add(m_height
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
331 wxArrayString m_unitsHStrings
;
332 m_unitsHStrings
.Add(_("px"));
333 m_unitsHStrings
.Add(_("cm"));
334 m_unitsHStrings
.Add(_("percent"));
335 m_unitsH
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_UNITS_H
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsHStrings
, wxCB_READONLY
);
336 m_unitsH
->SetStringSelection(_("px"));
337 m_unitsH
->SetHelpText(_("Units for the object height."));
338 if (wxRichTextSizePage::ShowToolTips())
339 m_unitsH
->SetToolTip(_("Units for the object height."));
340 itemBoxSizer34
->Add(m_unitsH
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
342 m_minWidthCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_MIN_WIDTH_CHECKBOX
, _("Min width:"), wxDefaultPosition
, wxDefaultSize
, 0 );
343 m_minWidthCheckbox
->SetValue(false);
344 m_minWidthCheckbox
->SetHelpText(_("Enable the minimum width value."));
345 if (wxRichTextSizePage::ShowToolTips())
346 m_minWidthCheckbox
->SetToolTip(_("Enable the minimum width value."));
347 itemFlexGridSizer28
->Add(m_minWidthCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
349 wxBoxSizer
* itemBoxSizer38
= new wxBoxSizer(wxHORIZONTAL
);
350 itemFlexGridSizer28
->Add(itemBoxSizer38
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
, 5);
352 m_minWidth
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_MIN_WIDTH
, wxEmptyString
, wxDefaultPosition
, wxSize(60, -1), 0 );
353 m_minWidth
->SetHelpText(_("The object minimum width."));
354 if (wxRichTextSizePage::ShowToolTips())
355 m_minWidth
->SetToolTip(_("The object minimum width."));
356 itemBoxSizer38
->Add(m_minWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
358 wxArrayString m_unitsMinWStrings
;
359 m_unitsMinWStrings
.Add(_("px"));
360 m_unitsMinWStrings
.Add(_("cm"));
361 m_unitsMinWStrings
.Add(_("percent"));
362 m_unitsMinW
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_UNITS_MIN_W
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsMinWStrings
, wxCB_READONLY
);
363 m_unitsMinW
->SetStringSelection(_("px"));
364 m_unitsMinW
->SetHelpText(_("Units for the minimum object width."));
365 if (wxRichTextSizePage::ShowToolTips())
366 m_unitsMinW
->SetToolTip(_("Units for the minimum object width."));
367 itemBoxSizer38
->Add(m_unitsMinW
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
369 m_minHeightCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_MIN_HEIGHT_CHECKBOX
, _("Min height:"), wxDefaultPosition
, wxDefaultSize
, 0 );
370 m_minHeightCheckbox
->SetValue(false);
371 m_minHeightCheckbox
->SetHelpText(_("Enable the minimum height value."));
372 if (wxRichTextSizePage::ShowToolTips())
373 m_minHeightCheckbox
->SetToolTip(_("Enable the minimum height value."));
374 itemFlexGridSizer28
->Add(m_minHeightCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
376 wxBoxSizer
* itemBoxSizer42
= new wxBoxSizer(wxHORIZONTAL
);
377 itemFlexGridSizer28
->Add(itemBoxSizer42
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
, 5);
379 m_minHeight
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_MIN_HEIGHT
, wxEmptyString
, wxDefaultPosition
, wxSize(60, -1), 0 );
380 m_minHeight
->SetHelpText(_("The object minimum height."));
381 if (wxRichTextSizePage::ShowToolTips())
382 m_minHeight
->SetToolTip(_("The object minimum height."));
383 itemBoxSizer42
->Add(m_minHeight
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
385 wxArrayString m_unitsMinHStrings
;
386 m_unitsMinHStrings
.Add(_("px"));
387 m_unitsMinHStrings
.Add(_("cm"));
388 m_unitsMinHStrings
.Add(_("percent"));
389 m_unitsMinH
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_UNITS_MIN_H
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsMinHStrings
, wxCB_READONLY
);
390 m_unitsMinH
->SetStringSelection(_("px"));
391 m_unitsMinH
->SetHelpText(_("Units for the minimum object height."));
392 if (wxRichTextSizePage::ShowToolTips())
393 m_unitsMinH
->SetToolTip(_("Units for the minimum object height."));
394 itemBoxSizer42
->Add(m_unitsMinH
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
396 m_maxWidthCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_MAX_WIDTH_CHECKBOX
, _("Max width:"), wxDefaultPosition
, wxDefaultSize
, 0 );
397 m_maxWidthCheckbox
->SetValue(false);
398 m_maxWidthCheckbox
->SetHelpText(_("Enable the maximum width value."));
399 if (wxRichTextSizePage::ShowToolTips())
400 m_maxWidthCheckbox
->SetToolTip(_("Enable the maximum width value."));
401 itemFlexGridSizer28
->Add(m_maxWidthCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
403 wxBoxSizer
* itemBoxSizer46
= new wxBoxSizer(wxHORIZONTAL
);
404 itemFlexGridSizer28
->Add(itemBoxSizer46
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
, 5);
406 m_maxWidth
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_MAX_WIDTH
, wxEmptyString
, wxDefaultPosition
, wxSize(60, -1), 0 );
407 m_maxWidth
->SetHelpText(_("The object maximum width."));
408 if (wxRichTextSizePage::ShowToolTips())
409 m_maxWidth
->SetToolTip(_("The object maximum width."));
410 itemBoxSizer46
->Add(m_maxWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
412 wxArrayString m_unitsMaxWStrings
;
413 m_unitsMaxWStrings
.Add(_("px"));
414 m_unitsMaxWStrings
.Add(_("cm"));
415 m_unitsMaxWStrings
.Add(_("percent"));
416 m_unitsMaxW
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_UNITS_MAX_W
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsMaxWStrings
, wxCB_READONLY
);
417 m_unitsMaxW
->SetStringSelection(_("px"));
418 m_unitsMaxW
->SetHelpText(_("Units for the maximum object width."));
419 if (wxRichTextSizePage::ShowToolTips())
420 m_unitsMaxW
->SetToolTip(_("Units for the maximum object width."));
421 itemBoxSizer46
->Add(m_unitsMaxW
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
423 m_maxHeightCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_MAX_HEIGHT_CHECKBOX
, _("Max height:"), wxDefaultPosition
, wxDefaultSize
, 0 );
424 m_maxHeightCheckbox
->SetValue(false);
425 m_maxHeightCheckbox
->SetHelpText(_("Enable the height value."));
426 if (wxRichTextSizePage::ShowToolTips())
427 m_maxHeightCheckbox
->SetToolTip(_("Enable the height value."));
428 itemFlexGridSizer28
->Add(m_maxHeightCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
430 wxBoxSizer
* itemBoxSizer50
= new wxBoxSizer(wxHORIZONTAL
);
431 itemFlexGridSizer28
->Add(itemBoxSizer50
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
, 5);
433 m_maxHeight
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_MAX_HEIGHT
, wxEmptyString
, wxDefaultPosition
, wxSize(60, -1), 0 );
434 m_maxHeight
->SetHelpText(_("The object maximum height."));
435 if (wxRichTextSizePage::ShowToolTips())
436 m_maxHeight
->SetToolTip(_("The object maximum height."));
437 itemBoxSizer50
->Add(m_maxHeight
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
439 wxArrayString m_unitsMaxHStrings
;
440 m_unitsMaxHStrings
.Add(_("px"));
441 m_unitsMaxHStrings
.Add(_("cm"));
442 m_unitsMaxHStrings
.Add(_("percent"));
443 m_unitsMaxH
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_UNITS_MAX_H
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsMaxHStrings
, wxCB_READONLY
);
444 m_unitsMaxH
->SetStringSelection(_("px"));
445 m_unitsMaxH
->SetHelpText(_("Units for the maximum object height."));
446 if (wxRichTextSizePage::ShowToolTips())
447 m_unitsMaxH
->SetToolTip(_("Units for the maximum object height."));
448 itemBoxSizer50
->Add(m_unitsMaxH
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
450 m_positionControls
= new wxBoxSizer(wxVERTICAL
);
451 m_parentSizer
->Add(m_positionControls
, 0, wxGROW
, 5);
453 wxBoxSizer
* itemBoxSizer54
= new wxBoxSizer(wxHORIZONTAL
);
454 m_positionControls
->Add(itemBoxSizer54
, 0, wxGROW
, 5);
456 wxStaticText
* itemStaticText55
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("Position"), wxDefaultPosition
, wxDefaultSize
, 0 );
457 itemStaticText55
->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
).GetStyle(), wxBOLD
, false, wxT("")));
458 itemBoxSizer54
->Add(itemStaticText55
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
460 wxStaticLine
* itemStaticLine56
= new wxStaticLine( itemRichTextDialogPage1
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_HORIZONTAL
);
461 itemBoxSizer54
->Add(itemStaticLine56
, 1, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
463 wxBoxSizer
* itemBoxSizer57
= new wxBoxSizer(wxHORIZONTAL
);
464 m_positionControls
->Add(itemBoxSizer57
, 0, wxGROW
, 5);
466 itemBoxSizer57
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
468 m_moveObjectParentSizer
= new wxBoxSizer(wxVERTICAL
);
469 itemBoxSizer57
->Add(m_moveObjectParentSizer
, 0, wxALIGN_TOP
, 5);
471 m_positionModeSizer
= new wxBoxSizer(wxHORIZONTAL
);
472 m_moveObjectParentSizer
->Add(m_positionModeSizer
, 0, wxALIGN_LEFT
, 5);
474 wxStaticText
* itemStaticText61
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("&Position mode:"), wxDefaultPosition
, wxDefaultSize
, 0 );
475 m_positionModeSizer
->Add(itemStaticText61
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
477 wxArrayString m_positionModeCtrlStrings
;
478 m_positionModeCtrlStrings
.Add(_("Static"));
479 m_positionModeCtrlStrings
.Add(_("Relative"));
480 m_positionModeCtrlStrings
.Add(_("Absolute"));
481 m_positionModeCtrlStrings
.Add(_("Fixed"));
482 m_positionModeCtrl
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_POSITION_MODE
, _("Static"), wxDefaultPosition
, wxDefaultSize
, m_positionModeCtrlStrings
, wxCB_READONLY
);
483 m_positionModeCtrl
->SetStringSelection(_("Static"));
484 m_positionModeSizer
->Add(m_positionModeCtrl
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
486 m_positionGridSizer
= new wxFlexGridSizer(0, 4, 0, 0);
487 m_moveObjectParentSizer
->Add(m_positionGridSizer
, 0, wxGROW
, 5);
489 m_positionLeftCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_LEFT_CHECKBOX
, _("&Left:"), wxDefaultPosition
, wxDefaultSize
, 0 );
490 m_positionLeftCheckbox
->SetValue(false);
491 m_positionLeftCheckbox
->SetHelpText(_("The left position."));
492 if (wxRichTextSizePage::ShowToolTips())
493 m_positionLeftCheckbox
->SetToolTip(_("The left position."));
494 m_positionGridSizer
->Add(m_positionLeftCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
496 wxBoxSizer
* itemBoxSizer65
= new wxBoxSizer(wxHORIZONTAL
);
497 m_positionGridSizer
->Add(itemBoxSizer65
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
499 m_left
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_LEFT
, wxEmptyString
, wxDefaultPosition
, wxSize(65, -1), 0 );
500 m_left
->SetMaxLength(10);
501 m_left
->SetHelpText(_("The left position."));
502 if (wxRichTextSizePage::ShowToolTips())
503 m_left
->SetToolTip(_("The left position."));
504 itemBoxSizer65
->Add(m_left
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
506 wxArrayString m_unitsLeftStrings
;
507 m_unitsLeftStrings
.Add(_("px"));
508 m_unitsLeftStrings
.Add(_("cm"));
509 m_unitsLeftStrings
.Add(_("percent"));
510 m_unitsLeft
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_LEFT_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsLeftStrings
, wxCB_READONLY
);
511 m_unitsLeft
->SetStringSelection(_("px"));
512 m_unitsLeft
->SetHelpText(_("Units for the left position."));
513 if (wxRichTextSizePage::ShowToolTips())
514 m_unitsLeft
->SetToolTip(_("Units for the left position."));
515 itemBoxSizer65
->Add(m_unitsLeft
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
517 m_positionTopCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_TOP_CHECKBOX
, _("&Top:"), wxDefaultPosition
, wxDefaultSize
, 0 );
518 m_positionTopCheckbox
->SetValue(false);
519 m_positionTopCheckbox
->SetHelpText(_("The top position."));
520 if (wxRichTextSizePage::ShowToolTips())
521 m_positionTopCheckbox
->SetToolTip(_("The top position."));
522 m_positionGridSizer
->Add(m_positionTopCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
524 wxBoxSizer
* itemBoxSizer69
= new wxBoxSizer(wxHORIZONTAL
);
525 m_positionGridSizer
->Add(itemBoxSizer69
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
527 m_top
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_TOP
, wxEmptyString
, wxDefaultPosition
, wxSize(65, -1), 0 );
528 m_top
->SetMaxLength(10);
529 m_top
->SetHelpText(_("The top position."));
530 if (wxRichTextSizePage::ShowToolTips())
531 m_top
->SetToolTip(_("The top position."));
532 itemBoxSizer69
->Add(m_top
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
534 wxArrayString m_unitsTopStrings
;
535 m_unitsTopStrings
.Add(_("px"));
536 m_unitsTopStrings
.Add(_("cm"));
537 m_unitsTopStrings
.Add(_("percent"));
538 m_unitsTop
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_TOP_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsTopStrings
, wxCB_READONLY
);
539 m_unitsTop
->SetStringSelection(_("px"));
540 m_unitsTop
->SetHelpText(_("Units for the top position."));
541 if (wxRichTextSizePage::ShowToolTips())
542 m_unitsTop
->SetToolTip(_("Units for the top position."));
543 itemBoxSizer69
->Add(m_unitsTop
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
545 m_positionRightCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_RIGHT_CHECKBOX
, _("&Right:"), wxDefaultPosition
, wxDefaultSize
, 0 );
546 m_positionRightCheckbox
->SetValue(false);
547 m_positionRightCheckbox
->SetHelpText(_("The right position."));
548 if (wxRichTextSizePage::ShowToolTips())
549 m_positionRightCheckbox
->SetToolTip(_("The right position."));
550 m_positionGridSizer
->Add(m_positionRightCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
552 m_rightPositionSizer
= new wxBoxSizer(wxHORIZONTAL
);
553 m_positionGridSizer
->Add(m_rightPositionSizer
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
555 m_right
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_RIGHT
, wxEmptyString
, wxDefaultPosition
, wxSize(65, -1), 0 );
556 m_right
->SetMaxLength(10);
557 m_right
->SetHelpText(_("The right position."));
558 if (wxRichTextSizePage::ShowToolTips())
559 m_right
->SetToolTip(_("The right position."));
560 m_rightPositionSizer
->Add(m_right
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
562 wxArrayString m_unitsRightStrings
;
563 m_unitsRightStrings
.Add(_("px"));
564 m_unitsRightStrings
.Add(_("cm"));
565 m_unitsRightStrings
.Add(_("percent"));
566 m_unitsRight
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_RIGHT_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsRightStrings
, wxCB_READONLY
);
567 m_unitsRight
->SetStringSelection(_("px"));
568 m_unitsRight
->SetHelpText(_("Units for the right position."));
569 if (wxRichTextSizePage::ShowToolTips())
570 m_unitsRight
->SetToolTip(_("Units for the right position."));
571 m_rightPositionSizer
->Add(m_unitsRight
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
573 m_positionBottomCheckbox
= new wxCheckBox( itemRichTextDialogPage1
, ID_RICHTEXT_BOTTOM_CHECKBOX
, _("&Bottom:"), wxDefaultPosition
, wxDefaultSize
, 0 );
574 m_positionBottomCheckbox
->SetValue(false);
575 m_positionBottomCheckbox
->SetHelpText(_("The bottom position."));
576 if (wxRichTextSizePage::ShowToolTips())
577 m_positionBottomCheckbox
->SetToolTip(_("The bottom position."));
578 m_positionGridSizer
->Add(m_positionBottomCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
580 m_bottomPositionSizer
= new wxBoxSizer(wxHORIZONTAL
);
581 m_positionGridSizer
->Add(m_bottomPositionSizer
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
583 m_bottom
= new wxTextCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_BOTTOM
, wxEmptyString
, wxDefaultPosition
, wxSize(65, -1), 0 );
584 m_bottom
->SetMaxLength(10);
585 m_bottom
->SetHelpText(_("The bottom position."));
586 if (wxRichTextSizePage::ShowToolTips())
587 m_bottom
->SetToolTip(_("The bottom position."));
588 m_bottomPositionSizer
->Add(m_bottom
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
590 wxArrayString m_unitsBottomStrings
;
591 m_unitsBottomStrings
.Add(_("px"));
592 m_unitsBottomStrings
.Add(_("cm"));
593 m_unitsBottomStrings
.Add(_("percent"));
594 m_unitsBottom
= new wxComboBox( itemRichTextDialogPage1
, ID_RICHTEXT_BOTTOM_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_unitsBottomStrings
, wxCB_READONLY
);
595 m_unitsBottom
->SetStringSelection(_("px"));
596 m_unitsBottom
->SetHelpText(_("Units for the bottom position."));
597 if (wxRichTextSizePage::ShowToolTips())
598 m_unitsBottom
->SetToolTip(_("Units for the bottom position."));
599 m_bottomPositionSizer
->Add(m_unitsBottom
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
601 m_moveObjectSizer
= new wxBoxSizer(wxHORIZONTAL
);
602 m_moveObjectParentSizer
->Add(m_moveObjectSizer
, 0, wxGROW
, 5);
604 wxStaticText
* itemStaticText81
= new wxStaticText( itemRichTextDialogPage1
, wxID_STATIC
, _("&Move the object to:"), wxDefaultPosition
, wxDefaultSize
, 0 );
605 m_moveObjectSizer
->Add(itemStaticText81
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
607 wxButton
* itemButton82
= new wxButton( itemRichTextDialogPage1
, ID_RICHTEXT_PARA_UP
, _("&Previous Paragraph"), wxDefaultPosition
, wxDefaultSize
, 0 );
608 itemButton82
->SetHelpText(_("Moves the object to the previous paragraph."));
609 if (wxRichTextSizePage::ShowToolTips())
610 itemButton82
->SetToolTip(_("Moves the object to the previous paragraph."));
611 m_moveObjectSizer
->Add(itemButton82
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
613 wxButton
* itemButton83
= new wxButton( itemRichTextDialogPage1
, ID_RICHTEXT_PARA_DOWN
, _("&Next Paragraph"), wxDefaultPosition
, wxDefaultSize
, 0 );
614 itemButton83
->SetHelpText(_("Moves the object to the next paragraph."));
615 if (wxRichTextSizePage::ShowToolTips())
616 itemButton83
->SetToolTip(_("Moves the object to the next paragraph."));
617 m_moveObjectSizer
->Add(itemButton83
, 0, wxALIGN_CENTER_VERTICAL
|wxRIGHT
|wxTOP
|wxBOTTOM
, 5);
620 m_positionModeCtrl
->SetValidator( wxGenericValidator(& m_positionMode
) );
621 ////@end wxRichTextSizePage content construction
623 if (!sm_showFloatingAndAlignmentControls
)
624 m_parentSizer
->Show(m_floatingAlignmentSizer
, false);
626 if (!sm_showFloatingControls
)
627 m_floatingAlignmentSizer
->Show(m_floatingSizer
, false);
629 if (!sm_showAlignmentControls
)
630 m_floatingAlignmentSizer
->Show(m_alignmentSizer
, false);
632 if (!sm_showPositionControls
)
633 m_parentSizer
->Show(m_positionControls
, false);
635 if (!sm_showRightBottomPositionControls
)
637 m_positionGridSizer
->Show(m_positionRightCheckbox
, false);
638 m_positionGridSizer
->Show(m_rightPositionSizer
, false);
639 m_positionGridSizer
->Show(m_positionBottomCheckbox
, false);
640 m_positionGridSizer
->Show(m_bottomPositionSizer
, false);
643 if (!sm_showPositionModeControls
)
644 m_moveObjectParentSizer
->Show(m_positionModeSizer
, false);
647 wxRichTextAttr
* wxRichTextSizePage::GetAttributes()
649 return wxRichTextFormattingDialog::GetDialogAttributes(this);
653 * Should we show tooltips?
656 bool wxRichTextSizePage::ShowToolTips()
661 bool wxRichTextSizePage::TransferDataToWindow()
663 m_float
->SetSelection(GetAttributes()->GetTextBoxAttr().GetFloatMode());
664 m_verticalAlignmentCheckbox
->SetValue(GetAttributes()->GetTextBoxAttr().HasVerticalAlignment());
665 if (GetAttributes()->GetTextBoxAttr().HasVerticalAlignment())
667 if ((int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() > 0 &&
668 (int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() < 4)
670 m_verticalAlignmentComboBox
->SetSelection(((int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() - 1));
673 m_verticalAlignmentComboBox
->SetSelection(0);
676 wxRichTextFormattingDialog
* dialog
= wxRichTextFormattingDialog::GetDialog(this);
680 // Only show the Move Object controls if there's an object.
681 if (!dialog
->GetObject())
683 m_moveObjectParentSizer
->Show(m_moveObjectSizer
, false);
684 GetSizer()->Layout();
688 wxRichTextImage
* imageObj
= NULL
;
690 imageObj
= wxDynamicCast(dialog
->GetObject(), wxRichTextImage
);
692 // For an image, show the original width and height if the size is not explicitly specified.
693 if (imageObj
&& !GetAttributes()->GetTextBoxAttr().GetWidth().IsValid() && !GetAttributes()->GetTextBoxAttr().GetHeight().IsValid() &&
694 imageObj
->GetOriginalImageSize() != wxSize(-1, -1))
696 m_widthCheckbox
->SetValue(false);
697 m_heightCheckbox
->SetValue(false);
698 m_unitsW
->SetSelection(0);
699 m_unitsH
->SetSelection(0);
700 m_width
->SetValue(wxString::Format(wxT("%d"), (int) imageObj
->GetOriginalImageSize().GetWidth()));
701 m_height
->SetValue(wxString::Format(wxT("%d"), (int) imageObj
->GetOriginalImageSize().GetHeight()));
705 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetWidth(), m_width
, m_unitsW
, m_widthCheckbox
);
706 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetHeight(), m_height
, m_unitsH
, m_heightCheckbox
);
709 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMinSize().GetWidth(), m_minWidth
, m_unitsMinW
, m_minWidthCheckbox
);
710 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMinSize().GetHeight(), m_minHeight
, m_unitsMinH
, m_minHeightCheckbox
);
711 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMaxSize().GetWidth(), m_maxWidth
, m_unitsMaxW
, m_maxWidthCheckbox
);
712 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMaxSize().GetHeight(), m_maxHeight
, m_unitsMaxH
, m_maxHeightCheckbox
);
713 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetLeft(), m_left
, m_unitsLeft
, m_positionLeftCheckbox
);
714 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetTop(), m_top
, m_unitsTop
, m_positionTopCheckbox
);
715 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetRight(), m_right
, m_unitsRight
, m_positionRightCheckbox
);
716 wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetBottom(), m_bottom
, m_unitsBottom
, m_positionBottomCheckbox
);
718 if ((GetAttributes()->GetTextBoxAttr().GetLeft().GetPosition() & wxTEXT_BOX_ATTR_POSITION_FIXED
) ||
719 (GetAttributes()->GetTextBoxAttr().GetRight().GetPosition() & wxTEXT_BOX_ATTR_POSITION_FIXED
) ||
720 (GetAttributes()->GetTextBoxAttr().GetTop().GetPosition() & wxTEXT_BOX_ATTR_POSITION_FIXED
) ||
721 (GetAttributes()->GetTextBoxAttr().GetBottom().GetPosition() & wxTEXT_BOX_ATTR_POSITION_FIXED
))
726 if ((GetAttributes()->GetTextBoxAttr().GetLeft().GetPosition() & wxTEXT_BOX_ATTR_POSITION_ABSOLUTE
) ||
727 (GetAttributes()->GetTextBoxAttr().GetRight().GetPosition() & wxTEXT_BOX_ATTR_POSITION_ABSOLUTE
) ||
728 (GetAttributes()->GetTextBoxAttr().GetTop().GetPosition() & wxTEXT_BOX_ATTR_POSITION_ABSOLUTE
) ||
729 (GetAttributes()->GetTextBoxAttr().GetBottom().GetPosition() & wxTEXT_BOX_ATTR_POSITION_ABSOLUTE
))
734 if ((GetAttributes()->GetTextBoxAttr().GetLeft().GetPosition() & wxTEXT_BOX_ATTR_POSITION_RELATIVE
) ||
735 (GetAttributes()->GetTextBoxAttr().GetRight().GetPosition() & wxTEXT_BOX_ATTR_POSITION_RELATIVE
) ||
736 (GetAttributes()->GetTextBoxAttr().GetTop().GetPosition() & wxTEXT_BOX_ATTR_POSITION_RELATIVE
) ||
737 (GetAttributes()->GetTextBoxAttr().GetBottom().GetPosition() & wxTEXT_BOX_ATTR_POSITION_RELATIVE
))
744 return wxPanel::TransferDataToWindow();
747 bool wxRichTextSizePage::TransferDataFromWindow()
749 wxPanel::TransferDataFromWindow();
751 GetAttributes()->GetTextBoxAttr().SetFloatMode((wxTextBoxAttrFloatStyle
) m_float
->GetSelection());
752 if (m_float
->GetSelection() == 0)
753 GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_FLOAT
);
755 if (m_verticalAlignmentCheckbox
->GetValue())
756 GetAttributes()->GetTextBoxAttr().SetVerticalAlignment((wxTextBoxAttrVerticalAlignment
) (m_verticalAlignmentComboBox
->GetSelection() + 1));
759 GetAttributes()->GetTextBoxAttr().SetVerticalAlignment(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_NONE
);
760 GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT
);
763 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetWidth(), m_width
, m_unitsW
, m_widthCheckbox
);
764 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetHeight(), m_height
, m_unitsH
, m_heightCheckbox
);
765 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMinSize().GetWidth(), m_minWidth
, m_unitsMinW
, m_minWidthCheckbox
);
766 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMinSize().GetHeight(), m_minHeight
, m_unitsMinH
, m_minHeightCheckbox
);
767 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMaxSize().GetWidth(), m_maxWidth
, m_unitsMaxW
, m_maxWidthCheckbox
);
768 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMaxSize().GetHeight(), m_maxHeight
, m_unitsMaxH
, m_maxHeightCheckbox
);
770 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetLeft(), m_left
, m_unitsLeft
, m_positionLeftCheckbox
);
771 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetTop(), m_top
, m_unitsTop
, m_positionTopCheckbox
);
772 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetRight(), m_right
, m_unitsRight
, m_positionRightCheckbox
);
773 wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetBottom(), m_bottom
, m_unitsBottom
, m_positionBottomCheckbox
);
775 wxTextBoxAttrPosition flags
;
776 if (m_positionMode
== 3)
777 flags
= wxTEXT_BOX_ATTR_POSITION_FIXED
;
778 else if (m_positionMode
== 2)
779 flags
= wxTEXT_BOX_ATTR_POSITION_ABSOLUTE
;
780 else if (m_positionMode
== 1)
781 flags
= wxTEXT_BOX_ATTR_POSITION_RELATIVE
;
783 flags
= wxTEXT_BOX_ATTR_POSITION_STATIC
;
785 if (GetAttributes()->GetTextBoxAttr().GetLeft().IsValid())
786 GetAttributes()->GetTextBoxAttr().GetLeft().SetPosition(flags
);
787 if (GetAttributes()->GetTextBoxAttr().GetTop().IsValid())
788 GetAttributes()->GetTextBoxAttr().GetTop().SetPosition(flags
);
789 if (GetAttributes()->GetTextBoxAttr().GetRight().IsValid())
790 GetAttributes()->GetTextBoxAttr().GetRight().SetPosition(flags
);
791 if (GetAttributes()->GetTextBoxAttr().GetBottom().IsValid())
792 GetAttributes()->GetTextBoxAttr().GetBottom().SetPosition(flags
);
798 * Get bitmap resources
801 wxBitmap
wxRichTextSizePage::GetBitmapResource( const wxString
& name
)
804 ////@begin wxRichTextSizePage bitmap retrieval
807 ////@end wxRichTextSizePage bitmap retrieval
814 wxIcon
wxRichTextSizePage::GetIconResource( const wxString
& name
)
817 ////@begin wxRichTextSizePage icon retrieval
820 ////@end wxRichTextSizePage icon retrieval
825 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_WIDTH
828 void wxRichTextSizePage::OnRichtextWidthUpdate( wxUpdateUIEvent
& event
)
830 event
.Enable(m_widthCheckbox
->GetValue());
834 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_HEIGHT
837 void wxRichTextSizePage::OnRichtextHeightUpdate( wxUpdateUIEvent
& event
)
839 event
.Enable(m_heightCheckbox
->GetValue());
843 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_UP
846 void wxRichTextSizePage::OnRichtextParaUpClick( wxCommandEvent
& WXUNUSED(event
) )
848 wxRichTextFormattingDialog
* dialog
= wxRichTextFormattingDialog::GetDialog(this);
849 if (!dialog
|| !dialog
->GetObject())
852 // Make sure object attributes are up-to-date
853 dialog
->TransferDataFromWindow();
855 wxRichTextBuffer
* buffer
= dialog
->GetObject()->GetBuffer();
856 wxRichTextParagraphLayoutBox
* container
= dialog
->GetObject()->GetParentContainer();
857 wxRichTextObject
* parent
= dialog
->GetObject()->GetParent();
858 if (!container
|| !parent
|| !buffer
)
861 wxRichTextRange range
= dialog
->GetObject()->GetRange();
862 wxRichTextObjectList::compatibility_iterator iter
= container
->GetChildren().GetFirst();
868 if (iter
->GetData() == parent
)
870 iter
= iter
->GetNext();
874 iter
= iter
->GetPrevious();
878 wxRichTextObject
*obj
= iter
->GetData();
879 wxRichTextRange rg
= obj
->GetRange();
880 // tempObj will be deleted along with the undo object, and a clone of it will be
881 // returned by InsertObjectWithUndo
882 wxRichTextObject
* tempObj
= dialog
->GetObject()->Clone();
884 container
->DeleteRangeWithUndo(range
, buffer
->GetRichTextCtrl(), buffer
);
886 wxRichTextObject
* obj2
= container
->InsertObjectWithUndo(buffer
, rg
.GetStart(), tempObj
, buffer
->GetRichTextCtrl(), 0);
887 dialog
->SetObject(obj2
);
891 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_DOWN
894 void wxRichTextSizePage::OnRichtextParaDownClick( wxCommandEvent
& WXUNUSED(event
) )
896 wxRichTextFormattingDialog
* dialog
= wxRichTextFormattingDialog::GetDialog(this);
897 if (!dialog
|| !dialog
->GetObject())
900 // Make sure object attributes are up-to-date
901 dialog
->TransferDataFromWindow();
903 wxRichTextBuffer
* buffer
= dialog
->GetObject()->GetBuffer();
904 wxRichTextParagraphLayoutBox
* container
= dialog
->GetObject()->GetParentContainer();
905 wxRichTextObject
* parent
= dialog
->GetObject()->GetParent();
906 if (!container
|| !parent
|| !buffer
)
909 wxRichTextRange range
= dialog
->GetObject()->GetRange();
911 wxRichTextObjectList::compatibility_iterator iter
= buffer
->GetChildren().GetFirst();
917 if (iter
->GetData() == parent
)
919 iter
= iter
->GetNext();
922 iter
= iter
->GetNext();
926 wxRichTextObject
*obj
= iter
->GetData();
927 wxRichTextRange rg
= obj
->GetRange();
928 // tempObj will be deleted along with the undo object, and a clone of it will be
929 // returned by InsertObjectWithUndo
930 wxRichTextObject
* tempObj
= dialog
->GetObject()->Clone();
932 container
->DeleteRangeWithUndo(range
, buffer
->GetRichTextCtrl(), buffer
);
934 // Minus one because we deleted an object
935 wxRichTextObject
* obj2
= container
->InsertObjectWithUndo(buffer
, rg
.GetStart()-1, tempObj
, buffer
->GetRichTextCtrl(), 0);
936 dialog
->SetObject(obj2
);
941 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX
944 void wxRichTextSizePage::OnRichtextVerticalAlignmentComboboxUpdate( wxUpdateUIEvent
& event
)
946 event
.Enable(m_verticalAlignmentCheckbox
->GetValue());
951 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MIN_WIDTH
954 void wxRichTextSizePage::OnRichtextMinWidthUpdate( wxUpdateUIEvent
& event
)
956 event
.Enable(m_minWidthCheckbox
->GetValue());
960 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MIN_HEIGHT
963 void wxRichTextSizePage::OnRichtextMinHeightUpdate( wxUpdateUIEvent
& event
)
965 event
.Enable(m_minHeightCheckbox
->GetValue());
970 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MAX_WIDTH
973 void wxRichTextSizePage::OnRichtextMaxWidthUpdate( wxUpdateUIEvent
& event
)
975 event
.Enable(m_maxWidthCheckbox
->GetValue());
980 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MAX_HEIGHT
983 void wxRichTextSizePage::OnRichtextMaxHeightUpdate( wxUpdateUIEvent
& event
)
985 event
.Enable(m_maxHeightCheckbox
->GetValue());
990 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT
993 void wxRichTextSizePage::OnRichtextLeftUpdate( wxUpdateUIEvent
& event
)
995 event
.Enable(m_positionLeftCheckbox
->GetValue());
999 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_UNITS
1002 void wxRichTextSizePage::OnRichtextTopUpdate( wxUpdateUIEvent
& event
)
1004 event
.Enable(m_positionTopCheckbox
->GetValue());
1008 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT
1011 void wxRichTextSizePage::OnRichtextRightUpdate( wxUpdateUIEvent
& event
)
1013 event
.Enable(m_positionRightCheckbox
->GetValue());
1018 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM
1021 void wxRichTextSizePage::OnRichtextBottomUpdate( wxUpdateUIEvent
& event
)
1023 event
.Enable(m_positionBottomCheckbox
->GetValue());