Files
wxWidgets/src/richtext/richtextborderspage.cpp
Julian Smart d3cd6c6d22 Compile fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-14 12:15:17 +00:00

913 lines
41 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: richtextborderspage.cpp
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 21/10/2010 11:34:24
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
////@begin includes
#include "wx/imaglist.h"
////@end includes
#include "wx/richtext/richtextborderspage.h"
////@begin XPM images
////@end XPM images
/*!
* wxRichTextBordersPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextBordersPage, wxRichTextDialogPage )
/*!
* wxRichTextBordersPage event table definition
*/
BEGIN_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_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_UNITS, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
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, 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, 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, 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_OUTLINE_LEFT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_UNITS, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
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, 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, 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, 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 )
////@end wxRichTextBordersPage event table entries
END_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
SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
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_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_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 );
itemPanel5->SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
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(), wxBOLD, false, wxT("")));
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_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 );
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_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 );
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_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 );
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_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 );
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);
itemNotebook4->AddPage(itemPanel5, _("Border"));
wxPanel* itemPanel46 = new wxPanel( itemNotebook4, ID_RICHTEXTBORDERSPAGE_OUTLINE, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
itemPanel46->SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
wxBoxSizer* itemBoxSizer47 = new wxBoxSizer(wxVERTICAL);
itemPanel46->SetSizer(itemBoxSizer47);
wxBoxSizer* itemBoxSizer48 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer47->Add(itemBoxSizer48, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer49 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer48->Add(itemBoxSizer49, 0, wxGROW, 5);
wxStaticText* itemStaticText50 = new wxStaticText( itemPanel46, wxID_STATIC, _("Outline"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText50->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer49->Add(itemStaticText50, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine51 = new wxStaticLine( itemPanel46, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer49->Add(itemStaticLine51, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer52 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer48->Add(itemBoxSizer52, 0, wxGROW, 5);
itemBoxSizer52->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer54 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer52->Add(itemFlexGridSizer54, 0, wxGROW, 5);
m_leftOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_leftOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_leftOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer56 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer56, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_leftOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer56->Add(m_leftOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_leftOutlineWidthUnitsStrings;
m_leftOutlineWidthUnitsStrings.Add(_("px"));
m_leftOutlineWidthUnitsStrings.Add(_("cm"));
m_leftOutlineWidthUnits = new wxComboBox( itemPanel46, 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."));
itemBoxSizer56->Add(m_leftOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer56->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_leftOutlineStyleStrings;
m_leftOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_leftOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer56->Add(m_leftOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer56->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_leftOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer56->Add(m_leftOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_rightOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_rightOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer64 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer64, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_rightOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer64->Add(m_rightOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_rightOutlineWidthUnitsStrings;
m_rightOutlineWidthUnitsStrings.Add(_("px"));
m_rightOutlineWidthUnitsStrings.Add(_("cm"));
m_rightOutlineWidthUnits = new wxComboBox( itemPanel46, 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."));
itemBoxSizer64->Add(m_rightOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer64->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_rightOutlineStyleStrings;
m_rightOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_rightOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer64->Add(m_rightOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer64->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_rightOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer64->Add(m_rightOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_topOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_topOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer72 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer72, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_topOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_TOP, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer72->Add(m_topOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_topOutlineWidthUnitsStrings;
m_topOutlineWidthUnitsStrings.Add(_("px"));
m_topOutlineWidthUnitsStrings.Add(_("cm"));
m_topOutlineWidthUnits = new wxComboBox( itemPanel46, 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."));
itemBoxSizer72->Add(m_topOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer72->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_topOutlineStyleStrings;
m_topOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_topOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer72->Add(m_topOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer72->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_topOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer72->Add(m_topOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_bottomOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_bottomOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer80 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer80, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_bottomOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer80->Add(m_bottomOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_bottomOutlineWidthUnitsStrings;
m_bottomOutlineWidthUnitsStrings.Add(_("px"));
m_bottomOutlineWidthUnitsStrings.Add(_("cm"));
m_bottomOutlineWidthUnits = new wxComboBox( itemPanel46, 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."));
itemBoxSizer80->Add(m_bottomOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer80->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_bottomOutlineStyleStrings;
m_bottomOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bottomOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer80->Add(m_bottomOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer80->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_bottomOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer80->Add(m_bottomOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook4->AddPage(itemPanel46, _("Outline"));
itemBoxSizer3->Add(itemNotebook4, 0, wxGROW|wxALL, 5);
m_borderPreviewCtrl = new wxRichTextBorderPreviewCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BORDER_PREVIEW, wxDefaultPosition, wxSize(60, 60), wxBORDER_THEME );
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 true;
}
// Updates the preview
void wxRichTextBordersPage::OnCommand(wxCommandEvent& event)
{
event.Skip();
if (m_ignoreUpdates)
return;
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();
}
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);
m_ignoreUpdates = false;
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);
return true;
}
// Set the border controls
void wxRichTextBordersPage::SetBorderValue(wxTextAttrBorder& border, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles)
{
if (!border.IsValid())
{
checkBox->Set3StateValue(wxCHK_UNDETERMINED);
widthValueCtrl->SetValue(wxT("1"));
widthUnitsCtrl->SetSelection(0);
colourCtrl->SetColour(*wxBLACK);
styleCtrl->SetSelection(0);
}
else
{
wxRichTextFormattingDialog::SetDimensionValue(border.GetWidth(), widthValueCtrl, widthUnitsCtrl, checkBox);
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, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles)
{
wxRichTextFormattingDialog::GetDimensionValue(border.GetWidth(), widthValueCtrl, widthUnitsCtrl, checkBox);
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();
// borderToReset.Reset();
}
else if (checkBox->Get3StateValue() == wxCHK_UNCHECKED)
{
// We make a note to reset this attribute.
// borderToReset.GetWidth().MakeValid();
border.SetStyle(wxTEXT_BOX_ATTR_BORDER_NONE);
}
else
{
// borderToReset.Reset(); // Don't reset this, in case we were going to previously.
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);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_TOP
*/
void wxRichTextBordersPage::OnRichtextBorderTopUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_BOTTOM
*/
void wxRichTextBordersPage::OnRichtextBorderBottomUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* 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);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_TOP
*/
void wxRichTextBordersPage::OnRichtextOutlineTopUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_BOTTOM
*/
void wxRichTextBordersPage::OnRichtextOutlineBottomUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_COMMAND_CHECKBOX_CLICKED 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);
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
m_ignoreUpdates = false;
}
BEGIN_EVENT_TABLE(wxRichTextBorderPreviewCtrl, wxWindow)
EVT_PAINT(wxRichTextBorderPreviewCtrl::OnPaint)
END_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);
if (m_attributes)
{
wxRect rect = GetClientRect();
int margin = 10;
rect.x += margin;
rect.y += margin;
rect.width -= 2*margin;
rect.height -= 2*margin;
wxRichTextObject::DrawBorder(dc, NULL, m_attributes->GetTextBoxAttr().GetOutline(), rect);
rect.x += margin;
rect.y += margin;
rect.width -= 2*margin;
rect.height -= 2*margin;
wxRichTextObject::DrawBorder(dc, NULL, m_attributes->GetTextBoxAttr().GetBorder(), rect);
}
}