Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
544 lines
24 KiB
C++
544 lines
24 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: src/richtext/richtextbackgroundpage.cpp
|
|
// Purpose: Implements the rich text formatting dialog background
|
|
// properties page.
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 13/11/2010 11:17:25
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows Licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "wx/richtext/richtextbackgroundpage.h"
|
|
#include "wx/richtext/richtextformatdlg.h"
|
|
|
|
////@begin XPM images
|
|
////@end XPM images
|
|
|
|
|
|
/*!
|
|
* wxRichTextBackgroundPage type definition
|
|
*/
|
|
|
|
wxIMPLEMENT_DYNAMIC_CLASS(wxRichTextBackgroundPage, wxRichTextDialogPage);
|
|
|
|
|
|
/*!
|
|
* wxRichTextBackgroundPage event table definition
|
|
*/
|
|
|
|
wxBEGIN_EVENT_TABLE( wxRichTextBackgroundPage, wxRichTextDialogPage )
|
|
EVT_BUTTON(ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH, wxRichTextBackgroundPage::OnColourSwatch)
|
|
|
|
////@begin wxRichTextBackgroundPage event table entries
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET_UNITS, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_VERTICAL_OFFSET, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_VERTICAL_OFFSET_UNITS, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_USE_SHADOW_COLOUR, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXTSHADOWCOLOURSWATCHCTRL, wxRichTextBackgroundPage::OnRichtextshadowcolourswatchctrlUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_USE_SHADOW_SPREAD, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_SPREAD, wxRichTextBackgroundPage::OnRichtextShadowSpreadUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_SPREAD_UNITS, wxRichTextBackgroundPage::OnRichtextShadowSpreadUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_USE_BLUR_DISTANCE, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_BLUR_DISTANCE, wxRichTextBackgroundPage::OnRichtextShadowBlurUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_BLUR_DISTANCE_UNITS, wxRichTextBackgroundPage::OnRichtextShadowBlurUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_USE_SHADOW_OPACITY, wxRichTextBackgroundPage::OnRichtextShadowUpdate )
|
|
EVT_UPDATE_UI( ID_RICHTEXT_SHADOW_OPACITY, wxRichTextBackgroundPage::OnRichtextShadowOpacityUpdate )
|
|
////@end wxRichTextBackgroundPage event table entries
|
|
|
|
wxEND_EVENT_TABLE()
|
|
|
|
IMPLEMENT_HELP_PROVISION(wxRichTextBackgroundPage)
|
|
|
|
/*!
|
|
* wxRichTextBackgroundPage constructors
|
|
*/
|
|
|
|
wxRichTextBackgroundPage::wxRichTextBackgroundPage()
|
|
{
|
|
Init();
|
|
}
|
|
|
|
wxRichTextBackgroundPage::wxRichTextBackgroundPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
|
|
{
|
|
Init();
|
|
Create(parent, id, pos, size, style);
|
|
}
|
|
|
|
|
|
/*!
|
|
* wxRichTextBackgroundPage creator
|
|
*/
|
|
|
|
bool wxRichTextBackgroundPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
|
|
{
|
|
////@begin wxRichTextBackgroundPage creation
|
|
SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
|
|
wxRichTextDialogPage::Create( parent, id, pos, size, style );
|
|
|
|
CreateControls();
|
|
if (GetSizer())
|
|
{
|
|
GetSizer()->SetSizeHints(this);
|
|
}
|
|
Centre();
|
|
////@end wxRichTextBackgroundPage creation
|
|
return true;
|
|
}
|
|
|
|
|
|
/*!
|
|
* wxRichTextBackgroundPage destructor
|
|
*/
|
|
|
|
wxRichTextBackgroundPage::~wxRichTextBackgroundPage()
|
|
{
|
|
////@begin wxRichTextBackgroundPage destruction
|
|
////@end wxRichTextBackgroundPage destruction
|
|
}
|
|
|
|
|
|
/*!
|
|
* Member initialisation
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::Init()
|
|
{
|
|
////@begin wxRichTextBackgroundPage member initialisation
|
|
m_backgroundColourCheckBox = NULL;
|
|
m_backgroundColourSwatch = NULL;
|
|
m_shadowBox = NULL;
|
|
m_useShadow = NULL;
|
|
m_offsetX = NULL;
|
|
m_unitsHorizontalOffset = NULL;
|
|
m_offsetY = NULL;
|
|
m_unitsVerticalOffset = NULL;
|
|
m_shadowColourCheckBox = NULL;
|
|
m_shadowColourSwatch = NULL;
|
|
m_useShadowSpread = NULL;
|
|
m_spread = NULL;
|
|
m_unitsShadowSpread = NULL;
|
|
m_useBlurDistance = NULL;
|
|
m_blurDistance = NULL;
|
|
m_unitsBlurDistance = NULL;
|
|
m_useShadowOpacity = NULL;
|
|
m_opacity = NULL;
|
|
////@end wxRichTextBackgroundPage member initialisation
|
|
}
|
|
|
|
|
|
/*!
|
|
* Control creation for wxRichTextBackgroundPage
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::CreateControls()
|
|
{
|
|
////@begin wxRichTextBackgroundPage content construction
|
|
wxRichTextBackgroundPage* itemRichTextDialogPage1 = this;
|
|
|
|
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
|
|
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
|
|
|
|
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
|
|
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
|
|
|
|
wxStaticText* itemStaticText5 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Background"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
itemStaticText5->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, false, wxT("")));
|
|
itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxStaticLine* itemStaticLine6 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
itemBoxSizer4->Add(itemStaticLine6, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemBoxSizer3->Add(itemBoxSizer7, 0, wxGROW, 5);
|
|
|
|
itemBoxSizer7->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_backgroundColourCheckBox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_BACKGROUND_COLOUR_CHECKBOX, _("Background &colour:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
m_backgroundColourCheckBox->SetValue(false);
|
|
m_backgroundColourCheckBox->SetHelpText(_("Enables a background colour."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_backgroundColourCheckBox->SetToolTip(_("Enables a background colour."));
|
|
itemBoxSizer7->Add(m_backgroundColourCheckBox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_backgroundColourSwatch = new wxRichTextColourSwatchCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH, wxDefaultPosition, wxSize(80, 20), wxBORDER_THEME );
|
|
m_backgroundColourSwatch->SetHelpText(_("The background colour."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_backgroundColourSwatch->SetToolTip(_("The background colour."));
|
|
itemBoxSizer7->Add(m_backgroundColourSwatch, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_shadowBox = new wxBoxSizer(wxVERTICAL);
|
|
itemBoxSizer3->Add(m_shadowBox, 0, wxGROW, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxHORIZONTAL);
|
|
m_shadowBox->Add(itemBoxSizer12, 0, wxGROW, 5);
|
|
|
|
wxStaticText* itemStaticText13 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Shadow"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
itemStaticText13->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, false, wxT("")));
|
|
itemBoxSizer12->Add(itemStaticText13, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxStaticLine* itemStaticLine14 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
itemBoxSizer12->Add(itemStaticLine14, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxHORIZONTAL);
|
|
m_shadowBox->Add(itemBoxSizer15, 0, wxGROW, 5);
|
|
|
|
itemBoxSizer15->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
|
|
itemBoxSizer15->Add(itemBoxSizer17, 0, wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
m_useShadow = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_USE_SHADOW, _("Use &shadow"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
m_useShadow->SetValue(false);
|
|
m_useShadow->SetHelpText(_("Enables a shadow."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_useShadow->SetToolTip(_("Enables a shadow."));
|
|
itemBoxSizer17->Add(m_useShadow, 0, wxALIGN_LEFT|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer19 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemBoxSizer17->Add(itemBoxSizer19, 0, wxGROW, 5);
|
|
|
|
itemBoxSizer19->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer21 = new wxBoxSizer(wxVERTICAL);
|
|
itemBoxSizer19->Add(itemBoxSizer21, 0, wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
wxFlexGridSizer* itemFlexGridSizer22 = new wxFlexGridSizer(0, 2, 0, 0);
|
|
itemBoxSizer21->Add(itemFlexGridSizer22, 0, wxGROW, 5);
|
|
|
|
wxStaticText* itemStaticText23 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Horizontal offset:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
itemFlexGridSizer22->Add(itemStaticText23, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemFlexGridSizer22->Add(itemBoxSizer24, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
m_offsetX = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET, wxEmptyString, wxDefaultPosition, wxSize(60, -1), 0 );
|
|
m_offsetX->SetHelpText(_("The horizontal offset."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_offsetX->SetToolTip(_("The horizontal offset."));
|
|
itemBoxSizer24->Add(m_offsetX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
|
|
|
|
wxArrayString m_unitsHorizontalOffsetStrings;
|
|
m_unitsHorizontalOffsetStrings.Add(_("px"));
|
|
m_unitsHorizontalOffsetStrings.Add(_("cm"));
|
|
m_unitsHorizontalOffsetStrings.Add(_("pt"));
|
|
m_unitsHorizontalOffset = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsHorizontalOffsetStrings, wxCB_READONLY );
|
|
m_unitsHorizontalOffset->SetStringSelection(_("px"));
|
|
m_unitsHorizontalOffset->SetHelpText(_("Units for this value."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_unitsHorizontalOffset->SetToolTip(_("Units for this value."));
|
|
itemBoxSizer24->Add(m_unitsHorizontalOffset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxStaticText* itemStaticText27 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Vertical offset:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
itemFlexGridSizer22->Add(itemStaticText27, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemFlexGridSizer22->Add(itemBoxSizer28, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
m_offsetY = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_VERTICAL_OFFSET, wxEmptyString, wxDefaultPosition, wxSize(60, -1), 0 );
|
|
m_offsetY->SetHelpText(_("The vertical offset."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_offsetY->SetToolTip(_("The vertical offset."));
|
|
itemBoxSizer28->Add(m_offsetY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
|
|
|
|
wxArrayString m_unitsVerticalOffsetStrings;
|
|
m_unitsVerticalOffsetStrings.Add(_("px"));
|
|
m_unitsVerticalOffsetStrings.Add(_("cm"));
|
|
m_unitsVerticalOffsetStrings.Add(_("pt"));
|
|
m_unitsVerticalOffset = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_VERTICAL_OFFSET_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsVerticalOffsetStrings, wxCB_READONLY );
|
|
m_unitsVerticalOffset->SetStringSelection(_("px"));
|
|
m_unitsVerticalOffset->SetHelpText(_("Units for this value."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_unitsVerticalOffset->SetToolTip(_("Units for this value."));
|
|
itemBoxSizer28->Add(m_unitsVerticalOffset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_shadowColourCheckBox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_USE_SHADOW_COLOUR, _("Shadow c&olour:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
m_shadowColourCheckBox->SetValue(false);
|
|
m_shadowColourCheckBox->SetHelpText(_("Enables the shadow colour."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_shadowColourCheckBox->SetToolTip(_("Enables the shadow colour."));
|
|
itemFlexGridSizer22->Add(m_shadowColourCheckBox, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_shadowColourSwatch = new wxRichTextColourSwatchCtrl( itemRichTextDialogPage1, ID_RICHTEXTSHADOWCOLOURSWATCHCTRL, wxDefaultPosition, wxSize(60, 20), wxBORDER_THEME );
|
|
m_shadowColourSwatch->SetHelpText(_("The shadow colour."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_shadowColourSwatch->SetToolTip(_("The shadow colour."));
|
|
itemFlexGridSizer22->Add(m_shadowColourSwatch, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_useShadowSpread = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_USE_SHADOW_SPREAD, _("Sh&adow spread:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
m_useShadowSpread->SetValue(false);
|
|
m_useShadowSpread->SetHelpText(_("Enables the shadow spread."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_useShadowSpread->SetToolTip(_("Enables the shadow spread."));
|
|
itemFlexGridSizer22->Add(m_useShadowSpread, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer34 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemFlexGridSizer22->Add(itemBoxSizer34, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
m_spread = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_SPREAD, wxEmptyString, wxDefaultPosition, wxSize(60, -1), 0 );
|
|
m_spread->SetHelpText(_("The shadow spread."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_spread->SetToolTip(_("The shadow spread."));
|
|
itemBoxSizer34->Add(m_spread, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
|
|
|
|
wxArrayString m_unitsShadowSpreadStrings;
|
|
m_unitsShadowSpreadStrings.Add(_("px"));
|
|
m_unitsShadowSpreadStrings.Add(_("cm"));
|
|
m_unitsShadowSpreadStrings.Add(_("pt"));
|
|
m_unitsShadowSpread = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_SPREAD_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsShadowSpreadStrings, wxCB_READONLY );
|
|
m_unitsShadowSpread->SetStringSelection(_("px"));
|
|
m_unitsShadowSpread->SetHelpText(_("Units for this value."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_unitsShadowSpread->SetToolTip(_("Units for this value."));
|
|
itemBoxSizer34->Add(m_unitsShadowSpread, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_useBlurDistance = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_USE_BLUR_DISTANCE, _("&Blur distance:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
m_useBlurDistance->SetValue(false);
|
|
m_useBlurDistance->SetHelpText(_("Enables the blur distance."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_useBlurDistance->SetToolTip(_("Enables the blur distance."));
|
|
itemFlexGridSizer22->Add(m_useBlurDistance, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer38 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemFlexGridSizer22->Add(itemBoxSizer38, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
m_blurDistance = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_BLUR_DISTANCE, wxEmptyString, wxDefaultPosition, wxSize(60, -1), 0 );
|
|
m_blurDistance->SetHelpText(_("The shadow blur distance."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_blurDistance->SetToolTip(_("The shadow blur distance."));
|
|
itemBoxSizer38->Add(m_blurDistance, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
|
|
|
|
wxArrayString m_unitsBlurDistanceStrings;
|
|
m_unitsBlurDistanceStrings.Add(_("px"));
|
|
m_unitsBlurDistanceStrings.Add(_("cm"));
|
|
m_unitsBlurDistanceStrings.Add(_("pt"));
|
|
m_unitsBlurDistance = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_BLUR_DISTANCE_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsBlurDistanceStrings, wxCB_READONLY );
|
|
m_unitsBlurDistance->SetStringSelection(_("px"));
|
|
m_unitsBlurDistance->SetHelpText(_("Units for this value."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_unitsBlurDistance->SetToolTip(_("Units for this value."));
|
|
itemBoxSizer38->Add(m_unitsBlurDistance, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
m_useShadowOpacity = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_USE_SHADOW_OPACITY, _("Opaci&ty:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
m_useShadowOpacity->SetValue(false);
|
|
m_useShadowOpacity->SetHelpText(_("Enables the shadow opacity."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_useShadowOpacity->SetToolTip(_("Enables the shadow opacity."));
|
|
itemFlexGridSizer22->Add(m_useShadowOpacity, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
wxBoxSizer* itemBoxSizer42 = new wxBoxSizer(wxHORIZONTAL);
|
|
itemFlexGridSizer22->Add(itemBoxSizer42, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
|
|
|
|
m_opacity = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_SHADOW_OPACITY, wxEmptyString, wxDefaultPosition, wxSize(60, -1), 0 );
|
|
m_opacity->SetHelpText(_("The shadow opacity."));
|
|
if (wxRichTextBackgroundPage::ShowToolTips())
|
|
m_opacity->SetToolTip(_("The shadow opacity."));
|
|
itemBoxSizer42->Add(m_opacity, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
|
|
|
|
wxStaticText* itemStaticText44 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
itemBoxSizer42->Add(itemStaticText44, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
|
|
|
////@end wxRichTextBackgroundPage content construction
|
|
}
|
|
|
|
|
|
/*!
|
|
* Should we show tooltips?
|
|
*/
|
|
|
|
wxRichTextAttr* wxRichTextBackgroundPage::GetAttributes()
|
|
{
|
|
return wxRichTextFormattingDialog::GetDialogAttributes(this);
|
|
}
|
|
|
|
bool wxRichTextBackgroundPage::TransferDataToWindow()
|
|
{
|
|
wxRichTextAttr* attr = GetAttributes();
|
|
if (!attr->HasBackgroundColour())
|
|
{
|
|
m_backgroundColourCheckBox->SetValue(false);
|
|
m_backgroundColourSwatch->SetColour(*wxWHITE);
|
|
}
|
|
else
|
|
{
|
|
m_backgroundColourCheckBox->SetValue(true);
|
|
m_backgroundColourSwatch->SetColour(attr->GetBackgroundColour());
|
|
}
|
|
|
|
m_useShadow->SetValue(attr->GetTextBoxAttr().GetShadow().IsValid());
|
|
|
|
wxArrayInt units;
|
|
units.Add(wxTEXT_ATTR_UNITS_PIXELS);
|
|
units.Add(wxTEXT_ATTR_UNITS_TENTHS_MM);
|
|
units.Add(wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT);
|
|
|
|
wxArrayInt percentUnits;
|
|
percentUnits.Add(wxTEXT_ATTR_UNITS_PERCENTAGE);
|
|
|
|
if (!attr->GetTextBoxAttr().GetShadow().GetOffsetX().IsValid())
|
|
attr->GetTextBoxAttr().GetShadow().GetOffsetX().SetValue(0, wxTEXT_ATTR_UNITS_PIXELS);
|
|
if (!attr->GetTextBoxAttr().GetShadow().GetOffsetY().IsValid())
|
|
attr->GetTextBoxAttr().GetShadow().GetOffsetY().SetValue(0, wxTEXT_ATTR_UNITS_PIXELS);
|
|
|
|
wxRichTextFormattingDialog::SetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetOffsetX(), m_offsetX, m_unitsHorizontalOffset, NULL,
|
|
& units);
|
|
wxRichTextFormattingDialog::SetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetOffsetY(), m_offsetY, m_unitsVerticalOffset, NULL,
|
|
& units);
|
|
wxRichTextFormattingDialog::SetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetSpread(), m_spread, m_unitsShadowSpread, m_useShadowSpread,
|
|
& units);
|
|
wxRichTextFormattingDialog::SetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetBlurDistance(), m_blurDistance, m_unitsBlurDistance, m_useBlurDistance,
|
|
& units);
|
|
wxRichTextFormattingDialog::SetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetOpacity(), m_opacity, NULL, m_useShadowOpacity,
|
|
& percentUnits);
|
|
|
|
if (!attr->GetTextBoxAttr().GetShadow().HasColour() || !attr->GetTextBoxAttr().GetShadow().IsValid())
|
|
{
|
|
m_shadowColourCheckBox->SetValue(false);
|
|
m_shadowColourSwatch->SetColour(*wxWHITE);
|
|
}
|
|
else
|
|
{
|
|
m_shadowColourCheckBox->SetValue(true);
|
|
m_shadowColourSwatch->SetColour(attr->GetTextBoxAttr().GetShadow().GetColour());
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool wxRichTextBackgroundPage::TransferDataFromWindow()
|
|
{
|
|
wxRichTextAttr* attr = GetAttributes();
|
|
if (m_backgroundColourCheckBox->GetValue())
|
|
{
|
|
attr->SetBackgroundColour(m_backgroundColourSwatch->GetColour());
|
|
}
|
|
else
|
|
{
|
|
attr->SetFlags(attr->GetFlags() & ~wxTEXT_ATTR_BACKGROUND_COLOUR);
|
|
}
|
|
|
|
if (!m_useShadow->GetValue())
|
|
attr->GetTextBoxAttr().GetShadow().Reset();
|
|
else
|
|
{
|
|
attr->GetTextBoxAttr().GetShadow().SetValid(true);
|
|
|
|
wxArrayInt units;
|
|
units.Add(wxTEXT_ATTR_UNITS_PIXELS);
|
|
units.Add(wxTEXT_ATTR_UNITS_TENTHS_MM);
|
|
units.Add(wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT);
|
|
|
|
wxArrayInt percentUnits;
|
|
percentUnits.Add(wxTEXT_ATTR_UNITS_PERCENTAGE);
|
|
|
|
wxRichTextFormattingDialog::GetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetOffsetX(), m_offsetX, m_unitsHorizontalOffset, NULL,
|
|
& units);
|
|
wxRichTextFormattingDialog::GetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetOffsetY(), m_offsetY, m_unitsVerticalOffset, NULL,
|
|
& units);
|
|
wxRichTextFormattingDialog::GetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetSpread(), m_spread, m_unitsShadowSpread, m_useShadowSpread,
|
|
& units);
|
|
wxRichTextFormattingDialog::GetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetBlurDistance(), m_blurDistance, m_unitsBlurDistance, m_useBlurDistance,
|
|
& units);
|
|
wxRichTextFormattingDialog::GetDimensionValue(attr->GetTextBoxAttr().GetShadow().GetOpacity(), m_opacity, NULL, m_useShadowOpacity,
|
|
& percentUnits);
|
|
|
|
if (m_shadowColourCheckBox->GetValue())
|
|
{
|
|
attr->GetTextBoxAttr().GetShadow().SetColour(m_shadowColourSwatch->GetColour());
|
|
}
|
|
else
|
|
{
|
|
attr->GetTextBoxAttr().GetShadow().SetFlags(attr->GetTextBoxAttr().GetShadow().GetFlags() & ~wxTEXT_BOX_ATTR_BORDER_COLOUR);
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Respond to colour swatch click
|
|
void wxRichTextBackgroundPage::OnColourSwatch(wxCommandEvent& event)
|
|
{
|
|
m_backgroundColourCheckBox->SetValue(true);
|
|
event.Skip();
|
|
}
|
|
|
|
bool wxRichTextBackgroundPage::ShowToolTips()
|
|
{
|
|
return wxRichTextFormattingDialog::ShowToolTips();
|
|
}
|
|
|
|
/*!
|
|
* Get bitmap resources
|
|
*/
|
|
|
|
wxBitmap wxRichTextBackgroundPage::GetBitmapResource( const wxString& name )
|
|
{
|
|
// Bitmap retrieval
|
|
////@begin wxRichTextBackgroundPage bitmap retrieval
|
|
wxUnusedVar(name);
|
|
return wxNullBitmap;
|
|
////@end wxRichTextBackgroundPage bitmap retrieval
|
|
}
|
|
|
|
/*!
|
|
* Get icon resources
|
|
*/
|
|
|
|
wxIcon wxRichTextBackgroundPage::GetIconResource( const wxString& name )
|
|
{
|
|
// Icon retrieval
|
|
////@begin wxRichTextBackgroundPage icon retrieval
|
|
wxUnusedVar(name);
|
|
return wxNullIcon;
|
|
////@end wxRichTextBackgroundPage icon retrieval
|
|
}
|
|
|
|
/*!
|
|
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::OnRichtextShadowUpdate( wxUpdateUIEvent& event )
|
|
{
|
|
event.Enable(m_useShadow->GetValue());
|
|
}
|
|
|
|
/*!
|
|
* wxEVT_UPDATE_UI event handler for ID_RICHTEXTSHADOWCOLOURSWATCHCTRL
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::OnRichtextshadowcolourswatchctrlUpdate( wxUpdateUIEvent& WXUNUSED(event) )
|
|
{
|
|
// For now don't disable because of ugly disabled border on Windows
|
|
}
|
|
|
|
/*!
|
|
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_SPREAD
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::OnRichtextShadowSpreadUpdate( wxUpdateUIEvent& event )
|
|
{
|
|
event.Enable(m_useShadow->GetValue() && m_useShadowSpread->GetValue());
|
|
}
|
|
|
|
/*!
|
|
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_BLUR_DISTANCE
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::OnRichtextShadowBlurUpdate( wxUpdateUIEvent& event )
|
|
{
|
|
event.Enable(m_useShadow->GetValue() && m_useBlurDistance->GetValue());
|
|
}
|
|
|
|
/*!
|
|
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_OPACITY
|
|
*/
|
|
|
|
void wxRichTextBackgroundPage::OnRichtextShadowOpacityUpdate( wxUpdateUIEvent& event )
|
|
{
|
|
event.Enable(m_useShadow->GetValue() && m_useShadowOpacity->GetValue());
|
|
}
|