///////////////////////////////////////////////////////////////////////////// // 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); } }