1 /////////////////////////////////////////////////////////////////////////////
2 // Name: richtextborderspage.cpp
4 // Author: Julian Smart
6 // Created: 21/10/2010 11:34:24
8 // Copyright: (c) Julian Smart
10 /////////////////////////////////////////////////////////////////////////////
12 // For compilers that support precompilation, includes "wx/wx.h".
13 #include "wx/wxprec.h"
24 #include "wx/imaglist.h"
27 #include "wx/richtext/richtextborderspage.h"
34 * wxRichTextBordersPage type definition
37 IMPLEMENT_DYNAMIC_CLASS( wxRichTextBordersPage
, wxRichTextDialogPage
)
41 * wxRichTextBordersPage event table definition
44 BEGIN_EVENT_TABLE( wxRichTextBordersPage
, wxRichTextDialogPage
)
46 EVT_CHECKBOX(wxID_ANY
, wxRichTextBordersPage::OnCommand
)
47 EVT_TEXT(wxID_ANY
, wxRichTextBordersPage::OnCommand
)
48 EVT_TEXT_ENTER(wxID_ANY
, wxRichTextBordersPage::OnCommand
)
49 EVT_COMBOBOX(wxID_ANY
, wxRichTextBordersPage::OnCommand
)
50 EVT_BUTTON(wxID_ANY
, wxRichTextBordersPage::OnCommand
)
52 ////@begin wxRichTextBordersPage event table entries
53 EVT_CHECKBOX( ID_RICHTEXT_BORDER_LEFT_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
55 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT
, wxRichTextBordersPage::OnRichtextBorderLeftUpdate
)
57 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_UNITS
, wxRichTextBordersPage::OnRichtextBorderLeftUpdate
)
59 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_STYLE
, wxRichTextBordersPage::OnRichtextBorderLeftUpdate
)
61 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_COLOUR
, wxRichTextBordersPage::OnRichtextBorderLeftUpdate
)
63 EVT_CHECKBOX( ID_RICHTEXT_BORDER_RIGHT_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
65 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT
, wxRichTextBordersPage::OnRichtextBorderRightUpdate
)
67 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_UNITS
, wxRichTextBordersPage::OnRichtextBorderRightUpdate
)
69 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_STYLE
, wxRichTextBordersPage::OnRichtextBorderRightUpdate
)
71 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_COLOUR
, wxRichTextBordersPage::OnRichtextBorderRightUpdate
)
73 EVT_CHECKBOX( ID_RICHTEXT_BORDER_TOP_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
75 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP
, wxRichTextBordersPage::OnRichtextBorderTopUpdate
)
77 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_UNITS
, wxRichTextBordersPage::OnRichtextBorderTopUpdate
)
79 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_STYLE
, wxRichTextBordersPage::OnRichtextBorderTopUpdate
)
81 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_COLOUR
, wxRichTextBordersPage::OnRichtextBorderTopUpdate
)
83 EVT_CHECKBOX( ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
85 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM
, wxRichTextBordersPage::OnRichtextBorderBottomUpdate
)
87 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_UNITS
, wxRichTextBordersPage::OnRichtextBorderBottomUpdate
)
89 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_STYLE
, wxRichTextBordersPage::OnRichtextBorderBottomUpdate
)
91 EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_COLOUR
, wxRichTextBordersPage::OnRichtextBorderBottomUpdate
)
93 EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
95 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT
, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate
)
97 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_UNITS
, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate
)
99 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_STYLE
, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate
)
101 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_COLOUR
, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate
)
103 EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
105 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT
, wxRichTextBordersPage::OnRichtextOutlineRightUpdate
)
107 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_UNITS
, wxRichTextBordersPage::OnRichtextOutlineRightUpdate
)
109 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_STYLE
, wxRichTextBordersPage::OnRichtextOutlineRightUpdate
)
111 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_COLOUR
, wxRichTextBordersPage::OnRichtextOutlineRightUpdate
)
113 EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_TOP_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
115 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP
, wxRichTextBordersPage::OnRichtextOutlineTopUpdate
)
117 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_UNITS
, wxRichTextBordersPage::OnRichtextOutlineTopUpdate
)
119 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_STYLE
, wxRichTextBordersPage::OnRichtextOutlineTopUpdate
)
121 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_COLOUR
, wxRichTextBordersPage::OnRichtextOutlineTopUpdate
)
123 EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX
, wxRichTextBordersPage::OnRichtextBorderCheckboxClick
)
125 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM
, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate
)
127 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_UNITS
, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate
)
129 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_STYLE
, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate
)
131 EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR
, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate
)
133 ////@end wxRichTextBordersPage event table entries
137 IMPLEMENT_HELP_PROVISION(wxRichTextBordersPage
)
140 * wxRichTextBordersPage constructors
143 wxRichTextBordersPage::wxRichTextBordersPage()
148 wxRichTextBordersPage::wxRichTextBordersPage( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
151 Create(parent
, id
, pos
, size
, style
);
156 * wxRichTextBordersPage creator
159 bool wxRichTextBordersPage::Create( wxWindow
* parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& size
, long style
)
161 ////@begin wxRichTextBordersPage creation
162 SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY
);
163 wxRichTextDialogPage::Create( parent
, id
, pos
, size
, style
);
168 GetSizer()->SetSizeHints(this);
171 ////@end wxRichTextBordersPage creation
177 * wxRichTextBordersPage destructor
180 wxRichTextBordersPage::~wxRichTextBordersPage()
182 ////@begin wxRichTextBordersPage destruction
183 ////@end wxRichTextBordersPage destruction
188 * Member initialisation
191 void wxRichTextBordersPage::Init()
193 m_ignoreUpdates
= false;
195 ////@begin wxRichTextBordersPage member initialisation
196 m_leftBorderCheckbox
= NULL
;
197 m_leftBorderWidth
= NULL
;
198 m_leftBorderWidthUnits
= NULL
;
199 m_leftBorderStyle
= NULL
;
200 m_leftBorderColour
= NULL
;
201 m_rightBorderCheckbox
= NULL
;
202 m_rightBorderWidth
= NULL
;
203 m_rightBorderWidthUnits
= NULL
;
204 m_rightBorderStyle
= NULL
;
205 m_rightBorderColour
= NULL
;
206 m_topBorderCheckbox
= NULL
;
207 m_topBorderWidth
= NULL
;
208 m_topBorderWidthUnits
= NULL
;
209 m_topBorderStyle
= NULL
;
210 m_topBorderColour
= NULL
;
211 m_bottomBorderCheckbox
= NULL
;
212 m_bottomBorderWidth
= NULL
;
213 m_bottomBorderWidthUnits
= NULL
;
214 m_bottomBorderStyle
= NULL
;
215 m_bottomBorderColour
= NULL
;
216 m_leftOutlineCheckbox
= NULL
;
217 m_leftOutlineWidth
= NULL
;
218 m_leftOutlineWidthUnits
= NULL
;
219 m_leftOutlineStyle
= NULL
;
220 m_leftOutlineColour
= NULL
;
221 m_rightOutlineCheckbox
= NULL
;
222 m_rightOutlineWidth
= NULL
;
223 m_rightOutlineWidthUnits
= NULL
;
224 m_rightOutlineStyle
= NULL
;
225 m_rightOutlineColour
= NULL
;
226 m_topOutlineCheckbox
= NULL
;
227 m_topOutlineWidth
= NULL
;
228 m_topOutlineWidthUnits
= NULL
;
229 m_topOutlineStyle
= NULL
;
230 m_topOutlineColour
= NULL
;
231 m_bottomOutlineCheckbox
= NULL
;
232 m_bottomOutlineWidth
= NULL
;
233 m_bottomOutlineWidthUnits
= NULL
;
234 m_bottomOutlineStyle
= NULL
;
235 m_bottomOutlineColour
= NULL
;
236 m_borderPreviewCtrl
= NULL
;
237 ////@end wxRichTextBordersPage member initialisation
242 * Control creation for wxRichTextBordersPage
245 void wxRichTextBordersPage::CreateControls()
247 ////@begin wxRichTextBordersPage content construction
248 wxRichTextBordersPage
* itemRichTextDialogPage1
= this;
250 wxBoxSizer
* itemBoxSizer2
= new wxBoxSizer(wxVERTICAL
);
251 itemRichTextDialogPage1
->SetSizer(itemBoxSizer2
);
253 wxBoxSizer
* itemBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
254 itemBoxSizer2
->Add(itemBoxSizer3
, 1, wxGROW
|wxALL
, 5);
256 wxNotebook
* itemNotebook4
= new wxNotebook( itemRichTextDialogPage1
, ID_RICHTEXTBORDERSPAGE_NOTEBOOK
, wxDefaultPosition
, wxDefaultSize
, wxBK_DEFAULT
);
258 wxPanel
* itemPanel5
= new wxPanel( itemNotebook4
, ID_RICHTEXTBORDERSPAGE_BORDERS
, wxDefaultPosition
, wxDefaultSize
, wxTAB_TRAVERSAL
);
259 itemPanel5
->SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY
);
260 wxBoxSizer
* itemBoxSizer6
= new wxBoxSizer(wxVERTICAL
);
261 itemPanel5
->SetSizer(itemBoxSizer6
);
263 wxBoxSizer
* itemBoxSizer7
= new wxBoxSizer(wxVERTICAL
);
264 itemBoxSizer6
->Add(itemBoxSizer7
, 0, wxGROW
|wxALL
, 5);
265 wxBoxSizer
* itemBoxSizer8
= new wxBoxSizer(wxHORIZONTAL
);
266 itemBoxSizer7
->Add(itemBoxSizer8
, 0, wxGROW
, 5);
267 wxStaticText
* itemStaticText9
= new wxStaticText( itemPanel5
, wxID_STATIC
, _("Border"), wxDefaultPosition
, wxDefaultSize
, 0 );
268 itemStaticText9
->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("")));
269 itemBoxSizer8
->Add(itemStaticText9
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
271 wxStaticLine
* itemStaticLine10
= new wxStaticLine( itemPanel5
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_HORIZONTAL
);
272 itemBoxSizer8
->Add(itemStaticLine10
, 1, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
274 wxBoxSizer
* itemBoxSizer11
= new wxBoxSizer(wxHORIZONTAL
);
275 itemBoxSizer7
->Add(itemBoxSizer11
, 0, wxGROW
, 5);
276 itemBoxSizer11
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
278 wxFlexGridSizer
* itemFlexGridSizer13
= new wxFlexGridSizer(0, 2, 0, 0);
279 itemBoxSizer11
->Add(itemFlexGridSizer13
, 0, wxGROW
, 5);
280 m_leftBorderCheckbox
= new wxCheckBox( itemPanel5
, ID_RICHTEXT_BORDER_LEFT_CHECKBOX
, _("&Left:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
281 m_leftBorderCheckbox
->SetValue(false);
282 itemFlexGridSizer13
->Add(m_leftBorderCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
284 wxBoxSizer
* itemBoxSizer15
= new wxBoxSizer(wxHORIZONTAL
);
285 itemFlexGridSizer13
->Add(itemBoxSizer15
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
286 m_leftBorderWidth
= new wxTextCtrl( itemPanel5
, ID_RICHTEXT_BORDER_LEFT
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
287 itemBoxSizer15
->Add(m_leftBorderWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
289 wxArrayString m_leftBorderWidthUnitsStrings
;
290 m_leftBorderWidthUnitsStrings
.Add(_("px"));
291 m_leftBorderWidthUnitsStrings
.Add(_("cm"));
292 m_leftBorderWidthUnits
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_LEFT_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_leftBorderWidthUnitsStrings
, wxCB_READONLY
);
293 m_leftBorderWidthUnits
->SetStringSelection(_("px"));
294 m_leftBorderWidthUnits
->SetHelpText(_("Units for the left border width."));
295 if (wxRichTextBordersPage::ShowToolTips())
296 m_leftBorderWidthUnits
->SetToolTip(_("Units for the left border width."));
297 itemBoxSizer15
->Add(m_leftBorderWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
299 itemBoxSizer15
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
301 wxArrayString m_leftBorderStyleStrings
;
302 m_leftBorderStyle
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_LEFT_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_leftBorderStyleStrings
, wxCB_READONLY
);
303 itemBoxSizer15
->Add(m_leftBorderStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
305 itemBoxSizer15
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
307 m_leftBorderColour
= new wxRichTextColourSwatchCtrl( itemPanel5
, ID_RICHTEXT_BORDER_LEFT_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
308 itemBoxSizer15
->Add(m_leftBorderColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
310 m_rightBorderCheckbox
= new wxCheckBox( itemPanel5
, ID_RICHTEXT_BORDER_RIGHT_CHECKBOX
, _("&Right:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
311 m_rightBorderCheckbox
->SetValue(false);
312 itemFlexGridSizer13
->Add(m_rightBorderCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
314 wxBoxSizer
* itemBoxSizer23
= new wxBoxSizer(wxHORIZONTAL
);
315 itemFlexGridSizer13
->Add(itemBoxSizer23
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
316 m_rightBorderWidth
= new wxTextCtrl( itemPanel5
, ID_RICHTEXT_BORDER_RIGHT
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
317 itemBoxSizer23
->Add(m_rightBorderWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
319 wxArrayString m_rightBorderWidthUnitsStrings
;
320 m_rightBorderWidthUnitsStrings
.Add(_("px"));
321 m_rightBorderWidthUnitsStrings
.Add(_("cm"));
322 m_rightBorderWidthUnits
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_RIGHT_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_rightBorderWidthUnitsStrings
, wxCB_READONLY
);
323 m_rightBorderWidthUnits
->SetStringSelection(_("px"));
324 m_rightBorderWidthUnits
->SetHelpText(_("Units for the right border width."));
325 if (wxRichTextBordersPage::ShowToolTips())
326 m_rightBorderWidthUnits
->SetToolTip(_("Units for the right border width."));
327 itemBoxSizer23
->Add(m_rightBorderWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
329 itemBoxSizer23
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
331 wxArrayString m_rightBorderStyleStrings
;
332 m_rightBorderStyle
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_RIGHT_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_rightBorderStyleStrings
, wxCB_READONLY
);
333 itemBoxSizer23
->Add(m_rightBorderStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
335 itemBoxSizer23
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
337 m_rightBorderColour
= new wxRichTextColourSwatchCtrl( itemPanel5
, ID_RICHTEXT_BORDER_RIGHT_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
338 itemBoxSizer23
->Add(m_rightBorderColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
340 m_topBorderCheckbox
= new wxCheckBox( itemPanel5
, ID_RICHTEXT_BORDER_TOP_CHECKBOX
, _("&Top:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
341 m_topBorderCheckbox
->SetValue(false);
342 itemFlexGridSizer13
->Add(m_topBorderCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
344 wxBoxSizer
* itemBoxSizer31
= new wxBoxSizer(wxHORIZONTAL
);
345 itemFlexGridSizer13
->Add(itemBoxSizer31
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
346 m_topBorderWidth
= new wxTextCtrl( itemPanel5
, ID_RICHTEXT_BORDER_TOP
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
347 itemBoxSizer31
->Add(m_topBorderWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
349 wxArrayString m_topBorderWidthUnitsStrings
;
350 m_topBorderWidthUnitsStrings
.Add(_("px"));
351 m_topBorderWidthUnitsStrings
.Add(_("cm"));
352 m_topBorderWidthUnits
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_TOP_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_topBorderWidthUnitsStrings
, wxCB_READONLY
);
353 m_topBorderWidthUnits
->SetStringSelection(_("px"));
354 m_topBorderWidthUnits
->SetHelpText(_("Units for the top border width."));
355 if (wxRichTextBordersPage::ShowToolTips())
356 m_topBorderWidthUnits
->SetToolTip(_("Units for the top border width."));
357 itemBoxSizer31
->Add(m_topBorderWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
359 itemBoxSizer31
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
361 wxArrayString m_topBorderStyleStrings
;
362 m_topBorderStyle
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_TOP_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_topBorderStyleStrings
, wxCB_READONLY
);
363 itemBoxSizer31
->Add(m_topBorderStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
365 itemBoxSizer31
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
367 m_topBorderColour
= new wxRichTextColourSwatchCtrl( itemPanel5
, ID_RICHTEXT_BORDER_TOP_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
368 itemBoxSizer31
->Add(m_topBorderColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
370 m_bottomBorderCheckbox
= new wxCheckBox( itemPanel5
, ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX
, _("&Bottom:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
371 m_bottomBorderCheckbox
->SetValue(false);
372 itemFlexGridSizer13
->Add(m_bottomBorderCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
374 wxBoxSizer
* itemBoxSizer39
= new wxBoxSizer(wxHORIZONTAL
);
375 itemFlexGridSizer13
->Add(itemBoxSizer39
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
376 m_bottomBorderWidth
= new wxTextCtrl( itemPanel5
, ID_RICHTEXT_BORDER_BOTTOM
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
377 itemBoxSizer39
->Add(m_bottomBorderWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
379 wxArrayString m_bottomBorderWidthUnitsStrings
;
380 m_bottomBorderWidthUnitsStrings
.Add(_("px"));
381 m_bottomBorderWidthUnitsStrings
.Add(_("cm"));
382 m_bottomBorderWidthUnits
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_BOTTOM_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_bottomBorderWidthUnitsStrings
, wxCB_READONLY
);
383 m_bottomBorderWidthUnits
->SetStringSelection(_("px"));
384 m_bottomBorderWidthUnits
->SetHelpText(_("Units for the bottom border width."));
385 if (wxRichTextBordersPage::ShowToolTips())
386 m_bottomBorderWidthUnits
->SetToolTip(_("Units for the bottom border width."));
387 itemBoxSizer39
->Add(m_bottomBorderWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
389 itemBoxSizer39
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
391 wxArrayString m_bottomBorderStyleStrings
;
392 m_bottomBorderStyle
= new wxComboBox( itemPanel5
, ID_RICHTEXT_BORDER_BOTTOM_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_bottomBorderStyleStrings
, wxCB_READONLY
);
393 itemBoxSizer39
->Add(m_bottomBorderStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
395 itemBoxSizer39
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
397 m_bottomBorderColour
= new wxRichTextColourSwatchCtrl( itemPanel5
, ID_RICHTEXT_BORDER_BOTTOM_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
398 itemBoxSizer39
->Add(m_bottomBorderColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
400 itemNotebook4
->AddPage(itemPanel5
, _("Border"));
402 wxPanel
* itemPanel46
= new wxPanel( itemNotebook4
, ID_RICHTEXTBORDERSPAGE_OUTLINE
, wxDefaultPosition
, wxDefaultSize
, wxNO_BORDER
|wxTAB_TRAVERSAL
);
403 itemPanel46
->SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY
);
404 wxBoxSizer
* itemBoxSizer47
= new wxBoxSizer(wxVERTICAL
);
405 itemPanel46
->SetSizer(itemBoxSizer47
);
407 wxBoxSizer
* itemBoxSizer48
= new wxBoxSizer(wxVERTICAL
);
408 itemBoxSizer47
->Add(itemBoxSizer48
, 0, wxGROW
|wxALL
, 5);
409 wxBoxSizer
* itemBoxSizer49
= new wxBoxSizer(wxHORIZONTAL
);
410 itemBoxSizer48
->Add(itemBoxSizer49
, 0, wxGROW
, 5);
411 wxStaticText
* itemStaticText50
= new wxStaticText( itemPanel46
, wxID_STATIC
, _("Outline"), wxDefaultPosition
, wxDefaultSize
, 0 );
412 itemStaticText50
->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("")));
413 itemBoxSizer49
->Add(itemStaticText50
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
415 wxStaticLine
* itemStaticLine51
= new wxStaticLine( itemPanel46
, wxID_STATIC
, wxDefaultPosition
, wxDefaultSize
, wxLI_HORIZONTAL
);
416 itemBoxSizer49
->Add(itemStaticLine51
, 1, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
418 wxBoxSizer
* itemBoxSizer52
= new wxBoxSizer(wxHORIZONTAL
);
419 itemBoxSizer48
->Add(itemBoxSizer52
, 0, wxGROW
, 5);
420 itemBoxSizer52
->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
422 wxFlexGridSizer
* itemFlexGridSizer54
= new wxFlexGridSizer(0, 2, 0, 0);
423 itemBoxSizer52
->Add(itemFlexGridSizer54
, 0, wxGROW
, 5);
424 m_leftOutlineCheckbox
= new wxCheckBox( itemPanel46
, ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX
, _("&Left:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
425 m_leftOutlineCheckbox
->SetValue(false);
426 itemFlexGridSizer54
->Add(m_leftOutlineCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
428 wxBoxSizer
* itemBoxSizer56
= new wxBoxSizer(wxHORIZONTAL
);
429 itemFlexGridSizer54
->Add(itemBoxSizer56
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
430 m_leftOutlineWidth
= new wxTextCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_LEFT
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
431 itemBoxSizer56
->Add(m_leftOutlineWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
433 wxArrayString m_leftOutlineWidthUnitsStrings
;
434 m_leftOutlineWidthUnitsStrings
.Add(_("px"));
435 m_leftOutlineWidthUnitsStrings
.Add(_("cm"));
436 m_leftOutlineWidthUnits
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_LEFT_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_leftOutlineWidthUnitsStrings
, wxCB_READONLY
);
437 m_leftOutlineWidthUnits
->SetStringSelection(_("px"));
438 m_leftOutlineWidthUnits
->SetHelpText(_("Units for the left outline width."));
439 if (wxRichTextBordersPage::ShowToolTips())
440 m_leftOutlineWidthUnits
->SetToolTip(_("Units for the left outline width."));
441 itemBoxSizer56
->Add(m_leftOutlineWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
443 itemBoxSizer56
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
445 wxArrayString m_leftOutlineStyleStrings
;
446 m_leftOutlineStyle
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_LEFT_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_leftOutlineStyleStrings
, wxCB_READONLY
);
447 itemBoxSizer56
->Add(m_leftOutlineStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
449 itemBoxSizer56
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
451 m_leftOutlineColour
= new wxRichTextColourSwatchCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_LEFT_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
452 itemBoxSizer56
->Add(m_leftOutlineColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
454 m_rightOutlineCheckbox
= new wxCheckBox( itemPanel46
, ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX
, _("&Right:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
455 m_rightOutlineCheckbox
->SetValue(false);
456 itemFlexGridSizer54
->Add(m_rightOutlineCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
458 wxBoxSizer
* itemBoxSizer64
= new wxBoxSizer(wxHORIZONTAL
);
459 itemFlexGridSizer54
->Add(itemBoxSizer64
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
460 m_rightOutlineWidth
= new wxTextCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_RIGHT
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
461 itemBoxSizer64
->Add(m_rightOutlineWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
463 wxArrayString m_rightOutlineWidthUnitsStrings
;
464 m_rightOutlineWidthUnitsStrings
.Add(_("px"));
465 m_rightOutlineWidthUnitsStrings
.Add(_("cm"));
466 m_rightOutlineWidthUnits
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_RIGHT_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_rightOutlineWidthUnitsStrings
, wxCB_READONLY
);
467 m_rightOutlineWidthUnits
->SetStringSelection(_("px"));
468 m_rightOutlineWidthUnits
->SetHelpText(_("Units for the right outline width."));
469 if (wxRichTextBordersPage::ShowToolTips())
470 m_rightOutlineWidthUnits
->SetToolTip(_("Units for the right outline width."));
471 itemBoxSizer64
->Add(m_rightOutlineWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
473 itemBoxSizer64
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
475 wxArrayString m_rightOutlineStyleStrings
;
476 m_rightOutlineStyle
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_RIGHT_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_rightOutlineStyleStrings
, wxCB_READONLY
);
477 itemBoxSizer64
->Add(m_rightOutlineStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
479 itemBoxSizer64
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
481 m_rightOutlineColour
= new wxRichTextColourSwatchCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_RIGHT_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
482 itemBoxSizer64
->Add(m_rightOutlineColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
484 m_topOutlineCheckbox
= new wxCheckBox( itemPanel46
, ID_RICHTEXT_OUTLINE_TOP_CHECKBOX
, _("&Top:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
485 m_topOutlineCheckbox
->SetValue(false);
486 itemFlexGridSizer54
->Add(m_topOutlineCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
488 wxBoxSizer
* itemBoxSizer72
= new wxBoxSizer(wxHORIZONTAL
);
489 itemFlexGridSizer54
->Add(itemBoxSizer72
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
490 m_topOutlineWidth
= new wxTextCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_TOP
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
491 itemBoxSizer72
->Add(m_topOutlineWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
493 wxArrayString m_topOutlineWidthUnitsStrings
;
494 m_topOutlineWidthUnitsStrings
.Add(_("px"));
495 m_topOutlineWidthUnitsStrings
.Add(_("cm"));
496 m_topOutlineWidthUnits
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_TOP_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_topOutlineWidthUnitsStrings
, wxCB_READONLY
);
497 m_topOutlineWidthUnits
->SetStringSelection(_("px"));
498 m_topOutlineWidthUnits
->SetHelpText(_("Units for the top outline width."));
499 if (wxRichTextBordersPage::ShowToolTips())
500 m_topOutlineWidthUnits
->SetToolTip(_("Units for the top outline width."));
501 itemBoxSizer72
->Add(m_topOutlineWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
503 itemBoxSizer72
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
505 wxArrayString m_topOutlineStyleStrings
;
506 m_topOutlineStyle
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_TOP_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_topOutlineStyleStrings
, wxCB_READONLY
);
507 itemBoxSizer72
->Add(m_topOutlineStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
509 itemBoxSizer72
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
511 m_topOutlineColour
= new wxRichTextColourSwatchCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_TOP_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
512 itemBoxSizer72
->Add(m_topOutlineColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
514 m_bottomOutlineCheckbox
= new wxCheckBox( itemPanel46
, ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX
, _("&Bottom:"), wxDefaultPosition
, wxDefaultSize
, wxCHK_3STATE
|wxCHK_ALLOW_3RD_STATE_FOR_USER
);
515 m_bottomOutlineCheckbox
->SetValue(false);
516 itemFlexGridSizer54
->Add(m_bottomOutlineCheckbox
, 0, wxALIGN_LEFT
|wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
518 wxBoxSizer
* itemBoxSizer80
= new wxBoxSizer(wxHORIZONTAL
);
519 itemFlexGridSizer54
->Add(itemBoxSizer80
, 0, wxGROW
|wxALIGN_CENTER_VERTICAL
, 5);
520 m_bottomOutlineWidth
= new wxTextCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_BOTTOM
, wxEmptyString
, wxDefaultPosition
, wxSize(50, -1), 0 );
521 itemBoxSizer80
->Add(m_bottomOutlineWidth
, 0, wxALIGN_CENTER_VERTICAL
|wxLEFT
|wxTOP
|wxBOTTOM
, 5);
523 wxArrayString m_bottomOutlineWidthUnitsStrings
;
524 m_bottomOutlineWidthUnitsStrings
.Add(_("px"));
525 m_bottomOutlineWidthUnitsStrings
.Add(_("cm"));
526 m_bottomOutlineWidthUnits
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_BOTTOM_UNITS
, _("px"), wxDefaultPosition
, wxSize(60, -1), m_bottomOutlineWidthUnitsStrings
, wxCB_READONLY
);
527 m_bottomOutlineWidthUnits
->SetStringSelection(_("px"));
528 m_bottomOutlineWidthUnits
->SetHelpText(_("Units for the bottom outline width."));
529 if (wxRichTextBordersPage::ShowToolTips())
530 m_bottomOutlineWidthUnits
->SetToolTip(_("Units for the bottom outline width."));
531 itemBoxSizer80
->Add(m_bottomOutlineWidthUnits
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
533 itemBoxSizer80
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
535 wxArrayString m_bottomOutlineStyleStrings
;
536 m_bottomOutlineStyle
= new wxComboBox( itemPanel46
, ID_RICHTEXT_OUTLINE_BOTTOM_STYLE
, wxEmptyString
, wxDefaultPosition
, wxDefaultSize
, m_bottomOutlineStyleStrings
, wxCB_READONLY
);
537 itemBoxSizer80
->Add(m_bottomOutlineStyle
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
539 itemBoxSizer80
->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 2);
541 m_bottomOutlineColour
= new wxRichTextColourSwatchCtrl( itemPanel46
, ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR
, wxDefaultPosition
, wxSize(40, 20), wxBORDER_THEME
);
542 itemBoxSizer80
->Add(m_bottomOutlineColour
, 0, wxALIGN_CENTER_VERTICAL
|wxALL
, 5);
544 itemNotebook4
->AddPage(itemPanel46
, _("Outline"));
546 itemBoxSizer3
->Add(itemNotebook4
, 0, wxGROW
|wxALL
, 5);
548 m_borderPreviewCtrl
= new wxRichTextBorderPreviewCtrl( itemRichTextDialogPage1
, ID_RICHTEXT_BORDER_PREVIEW
, wxDefaultPosition
, wxSize(60, 60), wxBORDER_THEME
);
549 itemBoxSizer3
->Add(m_borderPreviewCtrl
, 1, wxGROW
|wxLEFT
|wxRIGHT
|wxBOTTOM
, 5);
551 ////@end wxRichTextBordersPage content construction
553 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_NONE
); m_borderStyleNames
.Add(_("None"));
554 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_SOLID
); m_borderStyleNames
.Add(_("Solid"));
555 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_DOTTED
); m_borderStyleNames
.Add(_("Dotted"));
556 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_DASHED
); m_borderStyleNames
.Add(_("Dashed"));
557 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_DOUBLE
); m_borderStyleNames
.Add(_("Double"));
558 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_GROOVE
); m_borderStyleNames
.Add(_("Groove"));
559 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_RIDGE
); m_borderStyleNames
.Add(_("Ridge"));
560 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_INSET
); m_borderStyleNames
.Add(_("Inset"));
561 m_borderStyles
.Add(wxTEXT_BOX_ATTR_BORDER_OUTSET
); m_borderStyleNames
.Add(_("Outset"));
563 m_ignoreUpdates
= true;
565 FillStyleComboBox(m_leftBorderStyle
);
566 FillStyleComboBox(m_rightBorderStyle
);
567 FillStyleComboBox(m_topBorderStyle
);
568 FillStyleComboBox(m_bottomBorderStyle
);
570 FillStyleComboBox(m_leftOutlineStyle
);
571 FillStyleComboBox(m_rightOutlineStyle
);
572 FillStyleComboBox(m_topOutlineStyle
);
573 FillStyleComboBox(m_bottomOutlineStyle
);
575 m_borderPreviewCtrl
->SetAttributes(GetAttributes());
577 m_ignoreUpdates
= false;
582 * Should we show tooltips?
585 bool wxRichTextBordersPage::ShowToolTips()
590 // Updates the preview
591 void wxRichTextBordersPage::OnCommand(wxCommandEvent
& event
)
597 if (m_borderPreviewCtrl
)
599 TransferDataFromWindow();
600 m_borderPreviewCtrl
->Refresh();
604 wxRichTextAttr
* wxRichTextBordersPage::GetAttributes()
606 return wxRichTextFormattingDialog::GetDialogAttributes(this);
610 void wxRichTextBordersPage::FillStyleComboBox(wxComboBox
* styleComboBox
)
612 styleComboBox
->Freeze();
613 styleComboBox
->Append(m_borderStyleNames
);
614 styleComboBox
->Thaw();
617 bool wxRichTextBordersPage::TransferDataToWindow()
619 m_ignoreUpdates
= true;
622 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft(), m_leftBorderWidth
, m_leftBorderWidthUnits
, m_leftBorderCheckbox
, m_leftBorderStyle
, m_leftBorderColour
, m_borderStyles
);
623 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetRight(), m_rightBorderWidth
, m_rightBorderWidthUnits
, m_rightBorderCheckbox
, m_rightBorderStyle
, m_rightBorderColour
, m_borderStyles
);
624 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetTop(), m_topBorderWidth
, m_topBorderWidthUnits
, m_topBorderCheckbox
, m_topBorderStyle
, m_topBorderColour
, m_borderStyles
);
625 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom(), m_bottomBorderWidth
, m_bottomBorderWidthUnits
, m_bottomBorderCheckbox
, m_bottomBorderStyle
, m_bottomBorderColour
, m_borderStyles
);
628 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft(), m_leftOutlineWidth
, m_leftOutlineWidthUnits
, m_leftOutlineCheckbox
, m_leftOutlineStyle
, m_leftOutlineColour
, m_borderStyles
);
629 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetRight(), m_rightOutlineWidth
, m_rightOutlineWidthUnits
, m_rightOutlineCheckbox
, m_rightOutlineStyle
, m_rightOutlineColour
, m_borderStyles
);
630 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetTop(), m_topOutlineWidth
, m_topOutlineWidthUnits
, m_topOutlineCheckbox
, m_topOutlineStyle
, m_topOutlineColour
, m_borderStyles
);
631 SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom(), m_bottomOutlineWidth
, m_bottomOutlineWidthUnits
, m_bottomOutlineCheckbox
, m_bottomOutlineStyle
, m_bottomOutlineColour
, m_borderStyles
);
633 m_ignoreUpdates
= false;
638 bool wxRichTextBordersPage::TransferDataFromWindow()
641 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft(), m_leftBorderWidth
, m_leftBorderWidthUnits
, m_leftBorderCheckbox
, m_leftBorderStyle
, m_leftBorderColour
, m_borderStyles
);
642 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetRight(), m_rightBorderWidth
, m_rightBorderWidthUnits
, m_rightBorderCheckbox
, m_rightBorderStyle
, m_rightBorderColour
, m_borderStyles
);
643 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetTop(), m_topBorderWidth
, m_topBorderWidthUnits
, m_topBorderCheckbox
, m_topBorderStyle
, m_topBorderColour
, m_borderStyles
);
644 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom(), m_bottomBorderWidth
, m_bottomBorderWidthUnits
, m_bottomBorderCheckbox
, m_bottomBorderStyle
, m_bottomBorderColour
, m_borderStyles
);
647 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft(), m_leftOutlineWidth
, m_leftOutlineWidthUnits
, m_leftOutlineCheckbox
, m_leftOutlineStyle
, m_leftOutlineColour
, m_borderStyles
);
648 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetRight(), m_rightOutlineWidth
, m_rightOutlineWidthUnits
, m_rightOutlineCheckbox
, m_rightOutlineStyle
, m_rightOutlineColour
, m_borderStyles
);
649 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetTop(), m_topOutlineWidth
, m_topOutlineWidthUnits
, m_topOutlineCheckbox
, m_topOutlineStyle
, m_topOutlineColour
, m_borderStyles
);
650 GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom(), m_bottomOutlineWidth
, m_bottomOutlineWidthUnits
, m_bottomOutlineCheckbox
, m_bottomOutlineStyle
, m_bottomOutlineColour
, m_borderStyles
);
655 // Set the border controls
656 void wxRichTextBordersPage::SetBorderValue(wxTextAttrBorder
& border
, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl
* widthValueCtrl
, wxComboBox
* widthUnitsCtrl
, wxCheckBox
* checkBox
,
657 wxComboBox
* styleCtrl
, wxRichTextColourSwatchCtrl
* colourCtrl
, const wxArrayInt
& borderStyles
)
659 if (!border
.IsValid())
661 checkBox
->Set3StateValue(wxCHK_UNDETERMINED
);
662 widthValueCtrl
->SetValue(wxT("1"));
663 widthUnitsCtrl
->SetSelection(0);
664 colourCtrl
->SetColour(*wxBLACK
);
665 styleCtrl
->SetSelection(0);
669 wxRichTextFormattingDialog::SetDimensionValue(border
.GetWidth(), widthValueCtrl
, widthUnitsCtrl
, checkBox
);
671 int sel
= borderStyles
.Index(border
.GetStyle());
674 styleCtrl
->SetSelection(sel
);
675 colourCtrl
->SetColour(border
.GetColour());
678 checkBox
->Set3StateValue(wxCHK_UNCHECKED
);
680 checkBox
->Set3StateValue(wxCHK_CHECKED
);
684 // Get data from the border controls
685 void wxRichTextBordersPage::GetBorderValue(wxTextAttrBorder
& border
, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl
* widthValueCtrl
, wxComboBox
* widthUnitsCtrl
, wxCheckBox
* checkBox
,
686 wxComboBox
* styleCtrl
, wxRichTextColourSwatchCtrl
* colourCtrl
, const wxArrayInt
& borderStyles
)
688 wxRichTextFormattingDialog::GetDimensionValue(border
.GetWidth(), widthValueCtrl
, widthUnitsCtrl
, checkBox
);
690 int sel
= styleCtrl
->GetSelection();
691 border
.SetColour(colourCtrl
->GetColour());
693 if (checkBox
->Get3StateValue() == wxCHK_UNDETERMINED
)
695 // When we apply the attributes, we won't apply this one, to leave the original unchanged.
697 // borderToReset.Reset();
699 else if (checkBox
->Get3StateValue() == wxCHK_UNCHECKED
)
701 // We make a note to reset this attribute.
702 // borderToReset.GetWidth().MakeValid();
703 border
.SetStyle(wxTEXT_BOX_ATTR_BORDER_NONE
);
707 // borderToReset.Reset(); // Don't reset this, in case we were going to previously.
709 border
.SetStyle(borderStyles
[sel
]);
714 * Get bitmap resources
717 wxBitmap
wxRichTextBordersPage::GetBitmapResource( const wxString
& name
)
720 ////@begin wxRichTextBordersPage bitmap retrieval
723 ////@end wxRichTextBordersPage bitmap retrieval
730 wxIcon
wxRichTextBordersPage::GetIconResource( const wxString
& name
)
733 ////@begin wxRichTextBordersPage icon retrieval
736 ////@end wxRichTextBordersPage icon retrieval
741 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_LEFT
744 void wxRichTextBordersPage::OnRichtextBorderLeftUpdate( wxUpdateUIEvent
& event
)
746 event
.Enable(m_leftBorderCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
751 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT
754 void wxRichTextBordersPage::OnRichtextBorderRightUpdate( wxUpdateUIEvent
& event
)
756 event
.Enable(m_rightBorderCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
761 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_TOP
764 void wxRichTextBordersPage::OnRichtextBorderTopUpdate( wxUpdateUIEvent
& event
)
766 event
.Enable(m_topBorderCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
770 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_BOTTOM
773 void wxRichTextBordersPage::OnRichtextBorderBottomUpdate( wxUpdateUIEvent
& event
)
775 event
.Enable(m_bottomBorderCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
780 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_LEFT
783 void wxRichTextBordersPage::OnRichtextOutlineLeftUpdate( wxUpdateUIEvent
& event
)
785 event
.Enable(m_leftOutlineCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
790 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT
793 void wxRichTextBordersPage::OnRichtextOutlineRightUpdate( wxUpdateUIEvent
& event
)
795 event
.Enable(m_rightOutlineCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
800 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_TOP
803 void wxRichTextBordersPage::OnRichtextOutlineTopUpdate( wxUpdateUIEvent
& event
)
805 event
.Enable(m_topOutlineCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
810 * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_BOTTOM
813 void wxRichTextBordersPage::OnRichtextOutlineBottomUpdate( wxUpdateUIEvent
& event
)
815 event
.Enable(m_bottomOutlineCheckbox
->Get3StateValue() == wxCHK_CHECKED
);
819 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_BORDER_LEFT_CHECKBOX
822 void wxRichTextBordersPage::OnRichtextBorderCheckboxClick( wxCommandEvent
& event
)
827 m_ignoreUpdates
= true;
828 wxCheckBox
* checkBox
= NULL
;
829 wxComboBox
* comboBox
= NULL
;
830 if (event
.GetId() == ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX
)
832 checkBox
= m_leftOutlineCheckbox
;
833 comboBox
= m_leftOutlineStyle
;
835 else if (event
.GetId() == ID_RICHTEXT_OUTLINE_TOP_CHECKBOX
)
837 checkBox
= m_topOutlineCheckbox
;
838 comboBox
= m_topOutlineStyle
;
840 else if (event
.GetId() == ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX
)
842 checkBox
= m_rightOutlineCheckbox
;
843 comboBox
= m_rightOutlineStyle
;
845 else if (event
.GetId() == ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX
)
847 checkBox
= m_bottomOutlineCheckbox
;
848 comboBox
= m_bottomOutlineStyle
;
850 else if (event
.GetId() == ID_RICHTEXT_BORDER_LEFT_CHECKBOX
)
852 checkBox
= m_leftBorderCheckbox
;
853 comboBox
= m_leftBorderStyle
;
855 else if (event
.GetId() == ID_RICHTEXT_BORDER_TOP_CHECKBOX
)
857 checkBox
= m_topBorderCheckbox
;
858 comboBox
= m_topBorderStyle
;
860 else if (event
.GetId() == ID_RICHTEXT_BORDER_RIGHT_CHECKBOX
)
862 checkBox
= m_rightBorderCheckbox
;
863 comboBox
= m_rightBorderStyle
;
865 else if (event
.GetId() == ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX
)
867 checkBox
= m_bottomBorderCheckbox
;
868 comboBox
= m_bottomBorderStyle
;
871 if (checkBox
&& comboBox
)
873 if (checkBox
->Get3StateValue() == wxCHK_UNCHECKED
|| checkBox
->Get3StateValue() == wxCHK_UNDETERMINED
)
874 comboBox
->SetSelection(0);
876 comboBox
->SetSelection(1);
878 TransferDataFromWindow();
879 m_borderPreviewCtrl
->Refresh();
882 m_ignoreUpdates
= false;
885 BEGIN_EVENT_TABLE(wxRichTextBorderPreviewCtrl
, wxWindow
)
886 EVT_PAINT(wxRichTextBorderPreviewCtrl::OnPaint
)
889 wxRichTextBorderPreviewCtrl::wxRichTextBorderPreviewCtrl(wxWindow
*parent
, wxWindowID id
, const wxPoint
& pos
, const wxSize
& sz
, long style
)
891 if ((style
& wxBORDER_MASK
) == wxBORDER_DEFAULT
)
892 style
|= wxBORDER_THEME
;
896 wxWindow::Create(parent
, id
, pos
, sz
, style
);
897 SetBackgroundColour(*wxWHITE
);
900 void wxRichTextBorderPreviewCtrl::OnPaint(wxPaintEvent
& WXUNUSED(event
))
906 wxRect rect
= GetClientRect();
911 rect
.width
-= 2*margin
;
912 rect
.height
-= 2*margin
;
914 wxRichTextObject::DrawBorder(dc
, NULL
, m_attributes
->GetTextBoxAttr().GetOutline(), rect
);
918 rect
.width
-= 2*margin
;
919 rect
.height
-= 2*margin
;
921 wxRichTextObject::DrawBorder(dc
, NULL
, m_attributes
->GetTextBoxAttr().GetBorder(), rect
);