wxWidgets/src/richtext/richtextborderspage.cpp
Vadim Zeitlin d50abc2d3e Make wxWS_EX_VALIDATE_RECURSIVELY default (and only) behaviour
In practice, almost everybody using validators also seems to use this style,
so make it the default (this hadn't been done when it was originally
introduced because of compatibility concerns, but now, 15+ years later, it's
probably safe enough to change this).
2016-02-09 23:38:23 +01:00

1374 lines
62 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: src/richtext/richtextborderspage.cpp
// Purpose: A border editing page for the wxRTC formatting dialog.
// Author: Julian Smart
// Modified by:
// Created: 21/10/2010 11:34:24
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
////@begin includes
#include "wx/imaglist.h"
////@end includes
#include "wx/richtext/richtextborderspage.h"
////@begin XPM images
////@end XPM images
/*!
* wxRichTextBordersPage type definition
*/
wxIMPLEMENT_DYNAMIC_CLASS(wxRichTextBordersPage, wxRichTextDialogPage);
/*!
* wxRichTextBordersPage event table definition
*/
wxBEGIN_EVENT_TABLE(wxRichTextBordersPage, wxRichTextDialogPage)
EVT_CHECKBOX(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_TEXT(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_TEXT_ENTER(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_COMBOBOX(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_BUTTON(wxID_ANY, wxRichTextBordersPage::OnCommand)
////@begin wxRichTextBordersPage event table entries
EVT_CHECKBOX( ID_RICHTEXT_BORDER_LEFT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_TEXT( ID_RICHTEXT_BORDER_LEFT, wxRichTextBordersPage::OnRichtextBorderLeftValueTextUpdated )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_COMBOBOX( ID_RICHTEXT_BORDER_LEFT_UNITS, wxRichTextBordersPage::OnRichtextBorderLeftUnitsSelected )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_UNITS, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_COMBOBOX( ID_RICHTEXT_BORDER_LEFT_STYLE, wxRichTextBordersPage::OnRichtextBorderLeftStyleSelected )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_STYLE, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_COLOUR, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_RIGHT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderOtherCheckboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_UNITS, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_STYLE, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_COLOUR, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_TOP_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderOtherCheckboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_UNITS, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_STYLE, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_COLOUR, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderOtherCheckboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_UNITS, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_STYLE, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_COLOUR, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_SYNCHRONIZE, wxRichTextBordersPage::OnRichtextBorderSynchronizeClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_SYNCHRONIZE, wxRichTextBordersPage::OnRichtextBorderSynchronizeUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_TEXT( ID_RICHTEXT_OUTLINE_LEFT, wxRichTextBordersPage::OnRichtextOutlineLeftTextUpdated )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_COMBOBOX( ID_RICHTEXT_OUTLINE_LEFT_UNITS, wxRichTextBordersPage::OnRichtextOutlineLeftUnitsSelected )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_UNITS, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_COMBOBOX( ID_RICHTEXT_OUTLINE_LEFT_STYLE, wxRichTextBordersPage::OnRichtextOutlineLeftStyleSelected )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_STYLE, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_COLOUR, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX, wxRichTextBordersPage::OnRichtextOutlineOtherCheckboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_UNITS, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_STYLE, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_COLOUR, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_TOP_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_CHECKBOX, wxRichTextBordersPage::OnRichtextOutlineOtherCheckboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_UNITS, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_STYLE, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_COLOUR, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX, wxRichTextBordersPage::OnRichtextOutlineOtherCheckboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_UNITS, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_STYLE, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_SYNCHRONIZE, wxRichTextBordersPage::OnRichtextOutlineSynchronizeClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_SYNCHRONIZE, wxRichTextBordersPage::OnRichtextOutlineSynchronizeUpdate )
EVT_UPDATE_UI( ID_RICHTEXTBORDERSPAGE_CORNER_TEXT, wxRichTextBordersPage::OnRichtextborderspageCornerUpdate )
EVT_UPDATE_UI( ID_RICHTEXTBORDERSPAGE_CORNER_UNITS, wxRichTextBordersPage::OnRichtextborderspageCornerUpdate )
////@end wxRichTextBordersPage event table entries
wxEND_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextBordersPage)
/*!
* wxRichTextBordersPage constructors
*/
wxRichTextBordersPage::wxRichTextBordersPage()
{
Init();
}
wxRichTextBordersPage::wxRichTextBordersPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
Init();
Create(parent, id, pos, size, style);
}
/*!
* wxRichTextBordersPage creator
*/
bool wxRichTextBordersPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextBordersPage creation
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end wxRichTextBordersPage creation
return true;
}
/*!
* wxRichTextBordersPage destructor
*/
wxRichTextBordersPage::~wxRichTextBordersPage()
{
////@begin wxRichTextBordersPage destruction
////@end wxRichTextBordersPage destruction
}
/*!
* Member initialisation
*/
void wxRichTextBordersPage::Init()
{
m_ignoreUpdates = false;
////@begin wxRichTextBordersPage member initialisation
m_leftBorderCheckbox = NULL;
m_leftBorderWidth = NULL;
m_leftBorderWidthUnits = NULL;
m_leftBorderStyle = NULL;
m_leftBorderColour = NULL;
m_rightBorderCheckbox = NULL;
m_rightBorderWidth = NULL;
m_rightBorderWidthUnits = NULL;
m_rightBorderStyle = NULL;
m_rightBorderColour = NULL;
m_topBorderCheckbox = NULL;
m_topBorderWidth = NULL;
m_topBorderWidthUnits = NULL;
m_topBorderStyle = NULL;
m_topBorderColour = NULL;
m_bottomBorderCheckbox = NULL;
m_bottomBorderWidth = NULL;
m_bottomBorderWidthUnits = NULL;
m_bottomBorderStyle = NULL;
m_bottomBorderColour = NULL;
m_borderSyncCtrl = NULL;
m_leftOutlineCheckbox = NULL;
m_leftOutlineWidth = NULL;
m_leftOutlineWidthUnits = NULL;
m_leftOutlineStyle = NULL;
m_leftOutlineColour = NULL;
m_rightOutlineCheckbox = NULL;
m_rightOutlineWidth = NULL;
m_rightOutlineWidthUnits = NULL;
m_rightOutlineStyle = NULL;
m_rightOutlineColour = NULL;
m_topOutlineCheckbox = NULL;
m_topOutlineWidth = NULL;
m_topOutlineWidthUnits = NULL;
m_topOutlineStyle = NULL;
m_topOutlineColour = NULL;
m_bottomOutlineCheckbox = NULL;
m_bottomOutlineWidth = NULL;
m_bottomOutlineWidthUnits = NULL;
m_bottomOutlineStyle = NULL;
m_bottomOutlineColour = NULL;
m_outlineSyncCtrl = NULL;
m_cornerRadiusCheckBox = NULL;
m_cornerRadiusText = NULL;
m_cornerRadiusUnits = NULL;
m_borderPreviewCtrl = NULL;
////@end wxRichTextBordersPage member initialisation
}
/*!
* Control creation for wxRichTextBordersPage
*/
void wxRichTextBordersPage::CreateControls()
{
////@begin wxRichTextBordersPage content construction
wxRichTextBordersPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
wxNotebook* itemNotebook4 = new wxNotebook( itemRichTextDialogPage1, ID_RICHTEXTBORDERSPAGE_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT );
wxPanel* itemPanel5 = new wxPanel( itemNotebook4, ID_RICHTEXTBORDERSPAGE_BORDERS, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxVERTICAL);
itemPanel5->SetSizer(itemBoxSizer6);
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer6->Add(itemBoxSizer7, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer7->Add(itemBoxSizer8, 0, wxGROW, 5);
wxStaticText* itemStaticText9 = new wxStaticText( itemPanel5, wxID_STATIC, _("Border"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText9->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxFONTWEIGHT_BOLD));
itemBoxSizer8->Add(itemStaticText9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine10 = new wxStaticLine( itemPanel5, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer8->Add(itemStaticLine10, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer7->Add(itemBoxSizer11, 0, wxGROW, 5);
itemBoxSizer11->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer13 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer11->Add(itemFlexGridSizer13, 0, wxGROW, 5);
m_leftBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_LEFT_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_leftBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_leftBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer15, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_leftBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer15->Add(m_leftBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_leftBorderWidthUnitsStrings;
m_leftBorderWidthUnitsStrings.Add(_("px"));
m_leftBorderWidthUnitsStrings.Add(_("cm"));
m_leftBorderWidthUnitsStrings.Add(_("pt"));
m_leftBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_LEFT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_leftBorderWidthUnitsStrings, wxCB_READONLY );
m_leftBorderWidthUnits->SetStringSelection(_("px"));
m_leftBorderWidthUnits->SetHelpText(_("Units for the left border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_leftBorderWidthUnits->SetToolTip(_("Units for the left border width."));
itemBoxSizer15->Add(m_leftBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer15->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_leftBorderStyleStrings;
m_leftBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_LEFT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_leftBorderStyleStrings, wxCB_READONLY );
m_leftBorderStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_leftBorderStyle->SetToolTip(_("The border line style."));
itemBoxSizer15->Add(m_leftBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer15->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_leftBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_LEFT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer15->Add(m_leftBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_rightBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_rightBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer23, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_rightBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer23->Add(m_rightBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_rightBorderWidthUnitsStrings;
m_rightBorderWidthUnitsStrings.Add(_("px"));
m_rightBorderWidthUnitsStrings.Add(_("cm"));
m_rightBorderWidthUnitsStrings.Add(_("pt"));
m_rightBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_rightBorderWidthUnitsStrings, wxCB_READONLY );
m_rightBorderWidthUnits->SetStringSelection(_("px"));
m_rightBorderWidthUnits->SetHelpText(_("Units for the right border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_rightBorderWidthUnits->SetToolTip(_("Units for the right border width."));
itemBoxSizer23->Add(m_rightBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer23->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_rightBorderStyleStrings;
m_rightBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_rightBorderStyleStrings, wxCB_READONLY );
m_rightBorderStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_rightBorderStyle->SetToolTip(_("The border line style."));
itemBoxSizer23->Add(m_rightBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer23->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_rightBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer23->Add(m_rightBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_TOP_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_topBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_topBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer31 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer31, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_topBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_TOP, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer31->Add(m_topBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_topBorderWidthUnitsStrings;
m_topBorderWidthUnitsStrings.Add(_("px"));
m_topBorderWidthUnitsStrings.Add(_("cm"));
m_topBorderWidthUnitsStrings.Add(_("pt"));
m_topBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_TOP_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_topBorderWidthUnitsStrings, wxCB_READONLY );
m_topBorderWidthUnits->SetStringSelection(_("px"));
m_topBorderWidthUnits->SetHelpText(_("Units for the top border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_topBorderWidthUnits->SetToolTip(_("Units for the top border width."));
itemBoxSizer31->Add(m_topBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer31->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_topBorderStyleStrings;
m_topBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_TOP_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_topBorderStyleStrings, wxCB_READONLY );
m_topBorderStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_topBorderStyle->SetToolTip(_("The border line style."));
itemBoxSizer31->Add(m_topBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer31->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_topBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_TOP_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer31->Add(m_topBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_bottomBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_bottomBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer39, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_bottomBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer39->Add(m_bottomBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_bottomBorderWidthUnitsStrings;
m_bottomBorderWidthUnitsStrings.Add(_("px"));
m_bottomBorderWidthUnitsStrings.Add(_("cm"));
m_bottomBorderWidthUnitsStrings.Add(_("pt"));
m_bottomBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_bottomBorderWidthUnitsStrings, wxCB_READONLY );
m_bottomBorderWidthUnits->SetStringSelection(_("px"));
m_bottomBorderWidthUnits->SetHelpText(_("Units for the bottom border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_bottomBorderWidthUnits->SetToolTip(_("Units for the bottom border width."));
itemBoxSizer39->Add(m_bottomBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer39->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_bottomBorderStyleStrings;
m_bottomBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bottomBorderStyleStrings, wxCB_READONLY );
m_bottomBorderStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_bottomBorderStyle->SetToolTip(_("The border line style."));
itemBoxSizer39->Add(m_bottomBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer39->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_bottomBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer39->Add(m_bottomBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemFlexGridSizer13->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_borderSyncCtrl = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_SYNCHRONIZE, _("&Synchronize values"), wxDefaultPosition, wxDefaultSize, 0 );
m_borderSyncCtrl->SetValue(false);
m_borderSyncCtrl->SetHelpText(_("Check to edit all borders simultaneously."));
if (wxRichTextBordersPage::ShowToolTips())
m_borderSyncCtrl->SetToolTip(_("Check to edit all borders simultaneously."));
itemFlexGridSizer13->Add(m_borderSyncCtrl, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook4->AddPage(itemPanel5, _("Border"));
wxPanel* itemPanel48 = new wxPanel( itemNotebook4, ID_RICHTEXTBORDERSPAGE_OUTLINE, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
wxBoxSizer* itemBoxSizer49 = new wxBoxSizer(wxVERTICAL);
itemPanel48->SetSizer(itemBoxSizer49);
wxBoxSizer* itemBoxSizer50 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer49->Add(itemBoxSizer50, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer51 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer50->Add(itemBoxSizer51, 0, wxGROW, 5);
wxStaticText* itemStaticText52 = new wxStaticText( itemPanel48, wxID_STATIC, _("Outline"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText52->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxFONTWEIGHT_BOLD));
itemBoxSizer51->Add(itemStaticText52, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine53 = new wxStaticLine( itemPanel48, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer51->Add(itemStaticLine53, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer54 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer50->Add(itemBoxSizer54, 0, wxGROW, 5);
itemBoxSizer54->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer56 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer54->Add(itemFlexGridSizer56, 0, wxGROW, 5);
m_leftOutlineCheckbox = new wxCheckBox( itemPanel48, ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_leftOutlineCheckbox->SetValue(false);
itemFlexGridSizer56->Add(m_leftOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer58 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer56->Add(itemBoxSizer58, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_leftOutlineWidth = new wxTextCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer58->Add(m_leftOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_leftOutlineWidthUnitsStrings;
m_leftOutlineWidthUnitsStrings.Add(_("px"));
m_leftOutlineWidthUnitsStrings.Add(_("cm"));
m_leftOutlineWidthUnitsStrings.Add(_("pt"));
m_leftOutlineWidthUnits = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_LEFT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_leftOutlineWidthUnitsStrings, wxCB_READONLY );
m_leftOutlineWidthUnits->SetStringSelection(_("px"));
m_leftOutlineWidthUnits->SetHelpText(_("Units for the left outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_leftOutlineWidthUnits->SetToolTip(_("Units for the left outline width."));
itemBoxSizer58->Add(m_leftOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer58->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_leftOutlineStyleStrings;
m_leftOutlineStyle = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_LEFT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_leftOutlineStyleStrings, wxCB_READONLY );
m_leftOutlineStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_leftOutlineStyle->SetToolTip(_("The border line style."));
itemBoxSizer58->Add(m_leftOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer58->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_leftOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_LEFT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer58->Add(m_leftOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightOutlineCheckbox = new wxCheckBox( itemPanel48, ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_rightOutlineCheckbox->SetValue(false);
itemFlexGridSizer56->Add(m_rightOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer66 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer56->Add(itemBoxSizer66, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_rightOutlineWidth = new wxTextCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer66->Add(m_rightOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_rightOutlineWidthUnitsStrings;
m_rightOutlineWidthUnitsStrings.Add(_("px"));
m_rightOutlineWidthUnitsStrings.Add(_("cm"));
m_rightOutlineWidthUnitsStrings.Add(_("pt"));
m_rightOutlineWidthUnits = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_RIGHT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_rightOutlineWidthUnitsStrings, wxCB_READONLY );
m_rightOutlineWidthUnits->SetStringSelection(_("px"));
m_rightOutlineWidthUnits->SetHelpText(_("Units for the right outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_rightOutlineWidthUnits->SetToolTip(_("Units for the right outline width."));
itemBoxSizer66->Add(m_rightOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer66->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_rightOutlineStyleStrings;
m_rightOutlineStyle = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_RIGHT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_rightOutlineStyleStrings, wxCB_READONLY );
m_rightOutlineStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_rightOutlineStyle->SetToolTip(_("The border line style."));
itemBoxSizer66->Add(m_rightOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer66->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_rightOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_RIGHT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer66->Add(m_rightOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topOutlineCheckbox = new wxCheckBox( itemPanel48, ID_RICHTEXT_OUTLINE_TOP_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_topOutlineCheckbox->SetValue(false);
itemFlexGridSizer56->Add(m_topOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer74 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer56->Add(itemBoxSizer74, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_topOutlineWidth = new wxTextCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_TOP, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer74->Add(m_topOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_topOutlineWidthUnitsStrings;
m_topOutlineWidthUnitsStrings.Add(_("px"));
m_topOutlineWidthUnitsStrings.Add(_("cm"));
m_topOutlineWidthUnitsStrings.Add(_("pt"));
m_topOutlineWidthUnits = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_TOP_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_topOutlineWidthUnitsStrings, wxCB_READONLY );
m_topOutlineWidthUnits->SetStringSelection(_("px"));
m_topOutlineWidthUnits->SetHelpText(_("Units for the top outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_topOutlineWidthUnits->SetToolTip(_("Units for the top outline width."));
itemBoxSizer74->Add(m_topOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer74->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_topOutlineStyleStrings;
m_topOutlineStyle = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_TOP_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_topOutlineStyleStrings, wxCB_READONLY );
m_topOutlineStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_topOutlineStyle->SetToolTip(_("The border line style."));
itemBoxSizer74->Add(m_topOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer74->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_topOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_TOP_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer74->Add(m_topOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomOutlineCheckbox = new wxCheckBox( itemPanel48, ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_bottomOutlineCheckbox->SetValue(false);
itemFlexGridSizer56->Add(m_bottomOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer82 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer56->Add(itemBoxSizer82, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_bottomOutlineWidth = new wxTextCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_BOTTOM, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer82->Add(m_bottomOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_bottomOutlineWidthUnitsStrings;
m_bottomOutlineWidthUnitsStrings.Add(_("px"));
m_bottomOutlineWidthUnitsStrings.Add(_("cm"));
m_bottomOutlineWidthUnitsStrings.Add(_("pt"));
m_bottomOutlineWidthUnits = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_BOTTOM_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_bottomOutlineWidthUnitsStrings, wxCB_READONLY );
m_bottomOutlineWidthUnits->SetStringSelection(_("px"));
m_bottomOutlineWidthUnits->SetHelpText(_("Units for the bottom outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_bottomOutlineWidthUnits->SetToolTip(_("Units for the bottom outline width."));
itemBoxSizer82->Add(m_bottomOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer82->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_bottomOutlineStyleStrings;
m_bottomOutlineStyle = new wxComboBox( itemPanel48, ID_RICHTEXT_OUTLINE_BOTTOM_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bottomOutlineStyleStrings, wxCB_READONLY );
m_bottomOutlineStyle->SetHelpText(_("The border line style."));
if (wxRichTextBordersPage::ShowToolTips())
m_bottomOutlineStyle->SetToolTip(_("The border line style."));
itemBoxSizer82->Add(m_bottomOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer82->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_bottomOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel48, ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer82->Add(m_bottomOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemFlexGridSizer56->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_outlineSyncCtrl = new wxCheckBox( itemPanel48, ID_RICHTEXT_OUTLINE_SYNCHRONIZE, _("&Synchronize values"), wxDefaultPosition, wxDefaultSize, 0 );
m_outlineSyncCtrl->SetValue(false);
m_outlineSyncCtrl->SetHelpText(_("Check to edit all borders simultaneously."));
if (wxRichTextBordersPage::ShowToolTips())
m_outlineSyncCtrl->SetToolTip(_("Check to edit all borders simultaneously."));
itemFlexGridSizer56->Add(m_outlineSyncCtrl, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook4->AddPage(itemPanel48, _("Outline"));
wxPanel* itemPanel91 = new wxPanel( itemNotebook4, ID_RICHTEXTBORDERSPAGE_CORNER, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
wxBoxSizer* itemBoxSizer92 = new wxBoxSizer(wxVERTICAL);
itemPanel91->SetSizer(itemBoxSizer92);
wxBoxSizer* itemBoxSizer93 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer92->Add(itemBoxSizer93, 1, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer94 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer93->Add(itemBoxSizer94, 0, wxGROW, 5);
wxStaticText* itemStaticText95 = new wxStaticText( itemPanel91, wxID_STATIC, _("Corner"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText95->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxFONTWEIGHT_BOLD));
itemBoxSizer94->Add(itemStaticText95, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine96 = new wxStaticLine( itemPanel91, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer94->Add(itemStaticLine96, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer97 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer93->Add(itemFlexGridSizer97, 0, wxALIGN_LEFT, 5);
m_cornerRadiusCheckBox = new wxCheckBox( itemPanel91, ID_RICHTEXTBORDERSPAGE_CORNER_CHECKBOX, _("Corner &radius:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_cornerRadiusCheckBox->SetValue(false);
m_cornerRadiusCheckBox->SetHelpText(_("An optional corner radius for adding rounded corners."));
if (wxRichTextBordersPage::ShowToolTips())
m_cornerRadiusCheckBox->SetToolTip(_("An optional corner radius for adding rounded corners."));
itemFlexGridSizer97->Add(m_cornerRadiusCheckBox, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer99 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer97->Add(itemBoxSizer99, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_cornerRadiusText = new wxTextCtrl( itemPanel91, ID_RICHTEXTBORDERSPAGE_CORNER_TEXT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_cornerRadiusText->SetHelpText(_("The value of the corner radius."));
if (wxRichTextBordersPage::ShowToolTips())
m_cornerRadiusText->SetToolTip(_("The value of the corner radius."));
itemBoxSizer99->Add(m_cornerRadiusText, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_cornerRadiusUnitsStrings;
m_cornerRadiusUnitsStrings.Add(_("px"));
m_cornerRadiusUnitsStrings.Add(_("cm"));
m_cornerRadiusUnitsStrings.Add(_("pt"));
m_cornerRadiusUnits = new wxComboBox( itemPanel91, ID_RICHTEXTBORDERSPAGE_CORNER_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_cornerRadiusUnitsStrings, wxCB_READONLY );
m_cornerRadiusUnits->SetStringSelection(_("px"));
m_cornerRadiusUnits->SetHelpText(_("Units for the corner radius."));
if (wxRichTextBordersPage::ShowToolTips())
m_cornerRadiusUnits->SetToolTip(_("Units for the corner radius."));
itemBoxSizer99->Add(m_cornerRadiusUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook4->AddPage(itemPanel91, _("Corner"));
itemBoxSizer3->Add(itemNotebook4, 0, wxGROW|wxALL, 5);
m_borderPreviewCtrl = new wxRichTextBorderPreviewCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BORDER_PREVIEW, wxDefaultPosition, wxSize(60, 60), wxBORDER_THEME|wxFULL_REPAINT_ON_RESIZE );
itemBoxSizer3->Add(m_borderPreviewCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
////@end wxRichTextBordersPage content construction
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_NONE); m_borderStyleNames.Add(_("None"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_SOLID); m_borderStyleNames.Add(_("Solid"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_DOTTED); m_borderStyleNames.Add(_("Dotted"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_DASHED); m_borderStyleNames.Add(_("Dashed"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_DOUBLE); m_borderStyleNames.Add(_("Double"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_GROOVE); m_borderStyleNames.Add(_("Groove"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_RIDGE); m_borderStyleNames.Add(_("Ridge"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_INSET); m_borderStyleNames.Add(_("Inset"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_OUTSET); m_borderStyleNames.Add(_("Outset"));
m_ignoreUpdates = true;
FillStyleComboBox(m_leftBorderStyle);
FillStyleComboBox(m_rightBorderStyle);
FillStyleComboBox(m_topBorderStyle);
FillStyleComboBox(m_bottomBorderStyle);
FillStyleComboBox(m_leftOutlineStyle);
FillStyleComboBox(m_rightOutlineStyle);
FillStyleComboBox(m_topOutlineStyle);
FillStyleComboBox(m_bottomOutlineStyle);
m_borderPreviewCtrl->SetAttributes(GetAttributes());
m_ignoreUpdates = false;
}
/*!
* Should we show tooltips?
*/
bool wxRichTextBordersPage::ShowToolTips()
{
return wxRichTextFormattingDialog::ShowToolTips();
}
// Updates the preview
void wxRichTextBordersPage::OnCommand(wxCommandEvent& event)
{
event.Skip();
if (m_ignoreUpdates)
return;
if (event.GetId() == ID_RICHTEXT_BORDER_LEFT_COLOUR && m_borderSyncCtrl->GetValue())
{
m_rightBorderColour->SetColour(m_leftBorderColour->GetColour());
m_rightBorderColour->Refresh();
m_topBorderColour->SetColour(m_leftBorderColour->GetColour());
m_topBorderColour->Refresh();
m_bottomBorderColour->SetColour(m_leftBorderColour->GetColour());
m_bottomBorderColour->Refresh();
}
if (event.GetId() == ID_RICHTEXT_OUTLINE_LEFT_COLOUR && m_outlineSyncCtrl->GetValue())
{
m_rightOutlineColour->SetColour(m_leftOutlineColour->GetColour());
m_rightOutlineColour->Refresh();
m_topOutlineColour->SetColour(m_leftOutlineColour->GetColour());
m_topOutlineColour->Refresh();
m_bottomOutlineColour->SetColour(m_leftOutlineColour->GetColour());
m_bottomOutlineColour->Refresh();
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
wxRichTextAttr* wxRichTextBordersPage::GetAttributes()
{
return wxRichTextFormattingDialog::GetDialogAttributes(this);
}
// Fill style combo
void wxRichTextBordersPage::FillStyleComboBox(wxComboBox* styleComboBox)
{
styleComboBox->Freeze();
styleComboBox->Append(m_borderStyleNames);
styleComboBox->Thaw();
}
// Updates the synchronization checkboxes to reflect the state of the attributes
void wxRichTextBordersPage::UpdateSyncControls()
{
bool ignoreUpdates = m_ignoreUpdates;
m_ignoreUpdates = true;
if (GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft() == GetAttributes()->GetTextBoxAttr().GetBorder().GetRight() &&
GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft() == GetAttributes()->GetTextBoxAttr().GetBorder().GetTop() &&
GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft() == GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom())
{
m_borderSyncCtrl->SetValue(true);
}
else
{
m_borderSyncCtrl->SetValue(false);
}
if (GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft() == GetAttributes()->GetTextBoxAttr().GetOutline().GetRight() &&
GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft() == GetAttributes()->GetTextBoxAttr().GetOutline().GetTop() &&
GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft() == GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom())
{
m_outlineSyncCtrl->SetValue(true);
}
else
{
m_outlineSyncCtrl->SetValue(false);
}
m_ignoreUpdates = ignoreUpdates;
}
bool wxRichTextBordersPage::TransferDataToWindow()
{
m_ignoreUpdates = true;
// Border
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft(), m_leftBorderWidth, m_leftBorderWidthUnits, m_leftBorderCheckbox, m_leftBorderStyle, m_leftBorderColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetRight(), m_rightBorderWidth, m_rightBorderWidthUnits, m_rightBorderCheckbox, m_rightBorderStyle, m_rightBorderColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetTop(), m_topBorderWidth, m_topBorderWidthUnits, m_topBorderCheckbox, m_topBorderStyle, m_topBorderColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom(), m_bottomBorderWidth, m_bottomBorderWidthUnits, m_bottomBorderCheckbox, m_bottomBorderStyle, m_bottomBorderColour, m_borderStyles);
// Outline
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft(), m_leftOutlineWidth, m_leftOutlineWidthUnits, m_leftOutlineCheckbox, m_leftOutlineStyle, m_leftOutlineColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetRight(), m_rightOutlineWidth, m_rightOutlineWidthUnits, m_rightOutlineCheckbox, m_rightOutlineStyle, m_rightOutlineColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetTop(), m_topOutlineWidth, m_topOutlineWidthUnits, m_topOutlineCheckbox, m_topOutlineStyle, m_topOutlineColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom(), m_bottomOutlineWidth, m_bottomOutlineWidthUnits, m_bottomOutlineCheckbox, m_bottomOutlineStyle, m_bottomOutlineColour, m_borderStyles);
// Corner radius
if (!GetAttributes()->GetTextBoxAttr().HasCornerRadius())
{
m_cornerRadiusCheckBox->Set3StateValue(wxCHK_UNDETERMINED);
m_cornerRadiusText->SetValue(wxT("0"));
m_cornerRadiusUnits->SetSelection(0);
}
else
{
wxArrayInt units;
units.Add(wxTEXT_ATTR_UNITS_PIXELS);
units.Add(wxTEXT_ATTR_UNITS_TENTHS_MM);
units.Add(wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetCornerRadius(), m_cornerRadiusText, m_cornerRadiusUnits, NULL,
& units);
if (GetAttributes()->GetTextBoxAttr().GetCornerRadius().GetValue() == 0)
m_cornerRadiusCheckBox->Set3StateValue(wxCHK_UNCHECKED);
else
m_cornerRadiusCheckBox->Set3StateValue(wxCHK_CHECKED);
}
m_ignoreUpdates = false;
UpdateSyncControls();
return true;
}
bool wxRichTextBordersPage::TransferDataFromWindow()
{
// Border
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft(), m_leftBorderWidth, m_leftBorderWidthUnits, m_leftBorderCheckbox, m_leftBorderStyle, m_leftBorderColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetRight(), m_rightBorderWidth, m_rightBorderWidthUnits, m_rightBorderCheckbox, m_rightBorderStyle, m_rightBorderColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetTop(), m_topBorderWidth, m_topBorderWidthUnits, m_topBorderCheckbox, m_topBorderStyle, m_topBorderColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom(), m_bottomBorderWidth, m_bottomBorderWidthUnits, m_bottomBorderCheckbox, m_bottomBorderStyle, m_bottomBorderColour, m_borderStyles);
// Outline
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft(), m_leftOutlineWidth, m_leftOutlineWidthUnits, m_leftOutlineCheckbox, m_leftOutlineStyle, m_leftOutlineColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetRight(), m_rightOutlineWidth, m_rightOutlineWidthUnits, m_rightOutlineCheckbox, m_rightOutlineStyle, m_rightOutlineColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetTop(), m_topOutlineWidth, m_topOutlineWidthUnits, m_topOutlineCheckbox, m_topOutlineStyle, m_topOutlineColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom(), m_bottomOutlineWidth, m_bottomOutlineWidthUnits, m_bottomOutlineCheckbox, m_bottomOutlineStyle, m_bottomOutlineColour, m_borderStyles);
// Corner radius
{
wxArrayInt units;
units.Add(wxTEXT_ATTR_UNITS_PIXELS);
units.Add(wxTEXT_ATTR_UNITS_TENTHS_MM);
units.Add(wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetCornerRadius(), m_cornerRadiusText, m_cornerRadiusUnits, NULL,
& units);
if (m_cornerRadiusCheckBox->Get3StateValue() == wxCHK_UNDETERMINED)
{
// When we apply the attributes, we won't apply this one, to leave the original unchanged.
GetAttributes()->GetTextBoxAttr().GetCornerRadius().Reset();
GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_CORNER_RADIUS);
}
else if (m_cornerRadiusCheckBox->Get3StateValue() == wxCHK_UNCHECKED)
{
GetAttributes()->GetTextBoxAttr().GetCornerRadius().SetValue(0);
GetAttributes()->GetTextBoxAttr().AddFlag(wxTEXT_BOX_ATTR_CORNER_RADIUS);
}
else
{
GetAttributes()->GetTextBoxAttr().AddFlag(wxTEXT_BOX_ATTR_CORNER_RADIUS);
}
}
return true;
}
// Set the border controls
void wxRichTextBordersPage::SetBorderValue(wxTextAttrBorder& border, wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles)
{
if (!border.IsValid())
{
checkBox->Set3StateValue(wxCHK_UNDETERMINED);
widthValueCtrl->SetValue(wxT("0"));
widthUnitsCtrl->SetSelection(0);
colourCtrl->SetColour(*wxBLACK);
styleCtrl->SetSelection(0);
}
else
{
wxArrayInt units;
units.Add(wxTEXT_ATTR_UNITS_PIXELS);
units.Add(wxTEXT_ATTR_UNITS_TENTHS_MM);
units.Add(wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT);
wxRichTextFormattingDialog::SetDimensionValue(border.GetWidth(), widthValueCtrl, widthUnitsCtrl, NULL,
& units);
int sel = borderStyles.Index(border.GetStyle());
if (sel == -1)
sel = 1;
styleCtrl->SetSelection(sel);
colourCtrl->SetColour(border.GetColour());
if (sel == 0)
checkBox->Set3StateValue(wxCHK_UNCHECKED);
else
checkBox->Set3StateValue(wxCHK_CHECKED);
}
}
// Get data from the border controls
void wxRichTextBordersPage::GetBorderValue(wxTextAttrBorder& border, wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles)
{
wxArrayInt units;
units.Add(wxTEXT_ATTR_UNITS_PIXELS);
units.Add(wxTEXT_ATTR_UNITS_TENTHS_MM);
units.Add(wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT);
wxRichTextFormattingDialog::GetDimensionValue(border.GetWidth(), widthValueCtrl, widthUnitsCtrl, NULL,
& units);
int sel = styleCtrl->GetSelection();
border.SetColour(colourCtrl->GetColour());
if (checkBox->Get3StateValue() == wxCHK_UNDETERMINED)
{
// When we apply the attributes, we won't apply this one, to leave the original unchanged.
border.Reset();
}
else if (checkBox->Get3StateValue() == wxCHK_UNCHECKED)
{
border.SetStyle(wxTEXT_BOX_ATTR_BORDER_NONE);
border.GetWidth().SetValue(0);
}
else
{
if (sel != -1)
border.SetStyle(borderStyles[sel]);
}
}
/*!
* Get bitmap resources
*/
wxBitmap wxRichTextBordersPage::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin wxRichTextBordersPage bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end wxRichTextBordersPage bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon wxRichTextBordersPage::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin wxRichTextBordersPage icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end wxRichTextBordersPage icon retrieval
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_LEFT
*/
void wxRichTextBordersPage::OnRichtextBorderLeftUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_leftBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT
*/
void wxRichTextBordersPage::OnRichtextBorderRightUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_rightBorderCheckbox->Get3StateValue() == wxCHK_CHECKED && !m_borderSyncCtrl->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_TOP
*/
void wxRichTextBordersPage::OnRichtextBorderTopUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topBorderCheckbox->Get3StateValue() == wxCHK_CHECKED && !m_borderSyncCtrl->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_BOTTOM
*/
void wxRichTextBordersPage::OnRichtextBorderBottomUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomBorderCheckbox->Get3StateValue() == wxCHK_CHECKED && !m_borderSyncCtrl->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_LEFT
*/
void wxRichTextBordersPage::OnRichtextOutlineLeftUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_leftOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT
*/
void wxRichTextBordersPage::OnRichtextOutlineRightUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_rightOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED && !m_outlineSyncCtrl->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_TOP
*/
void wxRichTextBordersPage::OnRichtextOutlineTopUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED && !m_outlineSyncCtrl->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_BOTTOM
*/
void wxRichTextBordersPage::OnRichtextOutlineBottomUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED && !m_outlineSyncCtrl->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXTBORDERSPAGE_CORNER_TEXT
*/
void wxRichTextBordersPage::OnRichtextborderspageCornerUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_cornerRadiusCheckBox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_CHECKBOX event handler for ID_RICHTEXT_BORDER_LEFT_CHECKBOX
*/
void wxRichTextBordersPage::OnRichtextBorderCheckboxClick( wxCommandEvent& event )
{
if (m_ignoreUpdates)
return;
m_ignoreUpdates = true;
wxCheckBox* checkBox = NULL;
wxComboBox* comboBox = NULL;
if (event.GetId() == ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX)
{
checkBox = m_leftOutlineCheckbox;
comboBox = m_leftOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_OUTLINE_TOP_CHECKBOX)
{
checkBox = m_topOutlineCheckbox;
comboBox = m_topOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX)
{
checkBox = m_rightOutlineCheckbox;
comboBox = m_rightOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX)
{
checkBox = m_bottomOutlineCheckbox;
comboBox = m_bottomOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_LEFT_CHECKBOX)
{
checkBox = m_leftBorderCheckbox;
comboBox = m_leftBorderStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_TOP_CHECKBOX)
{
checkBox = m_topBorderCheckbox;
comboBox = m_topBorderStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_RIGHT_CHECKBOX)
{
checkBox = m_rightBorderCheckbox;
comboBox = m_rightBorderStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX)
{
checkBox = m_bottomBorderCheckbox;
comboBox = m_bottomBorderStyle;
}
if (checkBox && comboBox)
{
if (checkBox->Get3StateValue() == wxCHK_UNCHECKED || checkBox->Get3StateValue() == wxCHK_UNDETERMINED)
comboBox->SetSelection(0);
else
comboBox->SetSelection(1);
if (event.GetId() == ID_RICHTEXT_BORDER_LEFT_CHECKBOX && m_borderSyncCtrl->GetValue())
{
m_topBorderCheckbox->Set3StateValue(checkBox->Get3StateValue());
m_topBorderStyle->SetSelection(comboBox->GetSelection());
m_rightBorderCheckbox->Set3StateValue(checkBox->Get3StateValue());
m_rightBorderStyle->SetSelection(comboBox->GetSelection());
m_bottomBorderCheckbox->Set3StateValue(checkBox->Get3StateValue());
m_bottomBorderStyle->SetSelection(comboBox->GetSelection());
}
if (event.GetId() == ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX && m_outlineSyncCtrl->GetValue())
{
m_topOutlineCheckbox->Set3StateValue(checkBox->Get3StateValue());
m_topOutlineStyle->SetSelection(comboBox->GetSelection());
m_rightOutlineCheckbox->Set3StateValue(checkBox->Get3StateValue());
m_rightOutlineStyle->SetSelection(comboBox->GetSelection());
m_bottomOutlineCheckbox->Set3StateValue(checkBox->Get3StateValue());
m_bottomOutlineStyle->SetSelection(comboBox->GetSelection());
}
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
m_ignoreUpdates = false;
}
/*!
* wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_BORDER_SYNCHRONIZE
*/
void wxRichTextBordersPage::OnRichtextBorderSynchronizeClick( wxCommandEvent& event )
{
if (m_ignoreUpdates)
return;
if (event.IsChecked())
{
TransferDataFromWindow();
GetAttributes()->GetTextBoxAttr().GetBorder().GetTop() = GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft();
GetAttributes()->GetTextBoxAttr().GetBorder().GetRight() = GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft();
GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom() = GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft();
m_ignoreUpdates = true;
TransferDataToWindow();
m_ignoreUpdates = false;
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_SYNCHRONIZE
*/
void wxRichTextBordersPage::OnRichtextBorderSynchronizeUpdate( wxUpdateUIEvent& WXUNUSED(event) )
{
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT_CHECKBOX
*/
void wxRichTextBordersPage::OnRichtextBorderOtherCheckboxUpdate( wxUpdateUIEvent& event )
{
event.Enable(!m_borderSyncCtrl->GetValue());
}
/*!
* wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXT_BORDER_LEFT
*/
void wxRichTextBordersPage::OnRichtextBorderLeftValueTextUpdated( wxCommandEvent& event )
{
if (m_ignoreUpdates)
return;
if (m_borderSyncCtrl->GetValue())
{
wxString value = event.GetString();
m_ignoreUpdates = true;
m_rightBorderWidth->SetValue(value);
m_topBorderWidth->SetValue(value);
m_bottomBorderWidth->SetValue(value);
m_ignoreUpdates = false;
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
/*!
* wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_BORDER_LEFT_UNITS
*/
void wxRichTextBordersPage::OnRichtextBorderLeftUnitsSelected( wxCommandEvent& WXUNUSED(event) )
{
if (m_ignoreUpdates)
return;
if (m_borderSyncCtrl->GetValue())
{
m_ignoreUpdates = true;
m_rightBorderWidthUnits->SetSelection(m_leftBorderWidthUnits->GetSelection());
m_topBorderWidthUnits->SetSelection(m_leftBorderWidthUnits->GetSelection());
m_bottomBorderWidthUnits->SetSelection(m_leftBorderWidthUnits->GetSelection());
m_ignoreUpdates = false;
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
/*!
* wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_BORDER_LEFT_STYLE
*/
void wxRichTextBordersPage::OnRichtextBorderLeftStyleSelected( wxCommandEvent& WXUNUSED(event) )
{
if (m_ignoreUpdates)
return;
if (m_borderSyncCtrl->GetValue())
{
m_ignoreUpdates = true;
m_rightBorderStyle->SetSelection(m_leftBorderStyle->GetSelection());
m_topBorderStyle->SetSelection(m_leftBorderStyle->GetSelection());
m_bottomBorderStyle->SetSelection(m_leftBorderStyle->GetSelection());
m_ignoreUpdates = false;
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
/*!
* wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_OUTLINE_SYNCHRONIZE
*/
void wxRichTextBordersPage::OnRichtextOutlineSynchronizeClick( wxCommandEvent& event )
{
if (m_ignoreUpdates)
return;
if (event.IsChecked())
{
TransferDataFromWindow();
GetAttributes()->GetTextBoxAttr().GetOutline().GetTop() = GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft();
GetAttributes()->GetTextBoxAttr().GetOutline().GetRight() = GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft();
GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom() = GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft();
m_ignoreUpdates = true;
TransferDataToWindow();
m_ignoreUpdates = false;
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_SYNCHRONIZE
*/
void wxRichTextBordersPage::OnRichtextOutlineSynchronizeUpdate( wxUpdateUIEvent& WXUNUSED(event) )
{
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX
*/
void wxRichTextBordersPage::OnRichtextOutlineOtherCheckboxUpdate( wxUpdateUIEvent& event )
{
event.Enable(!m_outlineSyncCtrl->GetValue());
}
/*!
* wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXT_OUTLINE_LEFT
*/
void wxRichTextBordersPage::OnRichtextOutlineLeftTextUpdated( wxCommandEvent& event )
{
if (m_ignoreUpdates)
return;
if (m_outlineSyncCtrl->GetValue())
{
wxString value = event.GetString();
m_ignoreUpdates = true;
m_rightOutlineWidth->SetValue(value);
m_topOutlineWidth->SetValue(value);
m_bottomOutlineWidth->SetValue(value);
m_ignoreUpdates = false;
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
/*!
* wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_OUTLINE_LEFT_UNITS
*/
void wxRichTextBordersPage::OnRichtextOutlineLeftUnitsSelected( wxCommandEvent& WXUNUSED(event) )
{
if (m_ignoreUpdates)
return;
if (m_outlineSyncCtrl->GetValue())
{
m_ignoreUpdates = true;
m_rightOutlineWidthUnits->SetSelection(m_leftOutlineWidthUnits->GetSelection());
m_topOutlineWidthUnits->SetSelection(m_leftOutlineWidthUnits->GetSelection());
m_bottomOutlineWidthUnits->SetSelection(m_leftOutlineWidthUnits->GetSelection());
m_ignoreUpdates = false;
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
/*!
* wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_OUTLINE_LEFT_STYLE
*/
void wxRichTextBordersPage::OnRichtextOutlineLeftStyleSelected( wxCommandEvent& WXUNUSED(event) )
{
if (m_ignoreUpdates)
return;
if (m_outlineSyncCtrl->GetValue())
{
m_ignoreUpdates = true;
m_rightOutlineStyle->SetSelection(m_leftOutlineStyle->GetSelection());
m_topOutlineStyle->SetSelection(m_leftOutlineStyle->GetSelection());
m_bottomOutlineStyle->SetSelection(m_leftOutlineStyle->GetSelection());
m_ignoreUpdates = false;
}
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
wxBEGIN_EVENT_TABLE(wxRichTextBorderPreviewCtrl, wxWindow)
EVT_PAINT(wxRichTextBorderPreviewCtrl::OnPaint)
wxEND_EVENT_TABLE()
wxRichTextBorderPreviewCtrl::wxRichTextBorderPreviewCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& sz, long style)
{
if ((style & wxBORDER_MASK) == wxBORDER_DEFAULT)
style |= wxBORDER_THEME;
m_attributes = NULL;
wxWindow::Create(parent, id, pos, sz, style);
SetBackgroundColour(*wxWHITE);
}
void wxRichTextBorderPreviewCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
dc.SetBackground(*wxWHITE_BRUSH);
dc.Clear();
if (m_attributes)
{
wxRect rect = GetClientRect();
wxRichTextAttr attr;
attr.GetTextBoxAttr().GetBorder() = m_attributes->GetTextBoxAttr().GetBorder();
attr.GetTextBoxAttr().GetOutline() = m_attributes->GetTextBoxAttr().GetOutline();
if (m_attributes->GetTextBoxAttr().HasCornerRadius())
attr.GetTextBoxAttr().SetCornerRadius(m_attributes->GetTextBoxAttr().GetCornerRadius());
if (m_attributes->HasBackgroundColour())
attr.SetBackgroundColour(m_attributes->GetBackgroundColour());
wxTextAttrDimension marginDim(10, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetLeft() = marginDim;
attr.GetTextBoxAttr().GetMargins().GetTop() = marginDim;
attr.GetTextBoxAttr().GetMargins().GetRight() = marginDim;
attr.GetTextBoxAttr().GetMargins().GetBottom() = marginDim;
int margin = 10;
rect.x += margin;
rect.y += margin;
rect.width -= 2*margin;
rect.height -= 2*margin;
wxRichTextObject::DrawBoxAttributes(dc, NULL, attr, rect);
}
}