In practice, almost everybody using validators also seems to use this style, so make it the default (this hadn't been done when it was originally introduced because of compatibility concerns, but now, 15+ years later, it's probably safe enough to change this).
543 lines
24 KiB
C++
543 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
|
|
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());
|
|
}
|