diff --git a/include/wx/richtext/richtextfontpage.h b/include/wx/richtext/richtextfontpage.h
index 20a95add1f..c7ac90cd2e 100644
--- a/include/wx/richtext/richtextfontpage.h
+++ b/include/wx/richtext/richtextfontpage.h
@@ -132,6 +132,7 @@ public:
wxComboBox* m_weightCtrl;
wxComboBox* m_underliningCtrl;
wxRichTextColourSwatchCtrl* m_colourCtrl;
+ wxRichTextColourSwatchCtrl* m_bgColourCtrl;
wxCheckBox* m_strikethroughCtrl;
wxCheckBox* m_capitalsCtrl;
wxCheckBox* m_superscriptCtrl;
@@ -148,6 +149,7 @@ public:
ID_RICHTEXTFONTPAGE_WEIGHTCTRL = 10004,
ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL = 10008,
ID_RICHTEXTFONTPAGE_COLOURCTRL = 10009,
+ ID_RICHTEXTFONTPAGE_BGCOLOURCTRL = 10014,
ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL = 10010,
ID_RICHTEXTFONTPAGE_CAPSCTRL = 10011,
ID_RICHTEXTFONTPAGE_SUPERSCRIPT = 10012,
@@ -158,6 +160,7 @@ public:
bool m_dontUpdate;
bool m_colourPresent;
+ bool m_bgColourPresent;
};
#endif
diff --git a/src/richtext/richtextdialogs.pjd b/src/richtext/richtextdialogs.pjd
index a3b5bf2eca..fa65086b72 100644
--- a/src/richtext/richtextdialogs.pjd
+++ b/src/richtext/richtextdialogs.pjd
@@ -897,7 +897,7 @@
""
"Centre"
"Expand"
- 1
+ 0
5
0
0
@@ -1026,7 +1026,7 @@
""
-1
-1
- -1
+ 110
-1
"Expand"
"Centre"
@@ -1058,7 +1058,7 @@
""
"Centre"
"Expand"
- 1
+ 0
5
0
0
@@ -1187,7 +1187,7 @@
""
-1
-1
- -1
+ 110
-1
"Expand"
"Centre"
@@ -1219,7 +1219,7 @@
""
"Centre"
"Expand"
- 1
+ 0
5
0
0
@@ -1348,7 +1348,7 @@
""
-1
-1
- -1
+ 110
-1
"Expand"
"Centre"
@@ -1365,6 +1365,31 @@
""
+
+ "Spacer"
+ "dialog-control-document"
+ ""
+ "spacer"
+ 0
+ 1
+ 0
+ 0
+ "wbSpacerProxy"
+ 0
+ 0
+ "Centre"
+ "Centre"
+ 1
+ 5
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ "<Any platform>"
+
"wxBoxSizer V"
"dialog-control-document"
@@ -1498,7 +1523,7 @@
""
""
0
- 1
+ 0
0
0
0
@@ -1515,6 +1540,101 @@
-1
40
20
+ "Expand"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ ""
+ ""
+ ""
+
+
+
+ "wxBoxSizer V"
+ "dialog-control-document"
+ ""
+ "sizer"
+ 0
+ 1
+ 0
+ 0
+ "wbBoxSizerProxy"
+ "Vertical"
+ ""
+ "Centre"
+ "Expand"
+ 0
+ 5
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ "<Any platform>"
+
+ "wxStaticText: wxID_STATIC"
+ "dialog-control-document"
+ ""
+ "statictext"
+ 0
+ 1
+ 0
+ 0
+ "wbStaticTextProxy"
+ "wxID_STATIC"
+ 5105
+ ""
+ "wxStaticText"
+ "wxStaticText"
+ 1
+ 0
+ ""
+ ""
+ ""
+ "&Bg colour:"
+ -1
+ ""
+ ""
+ ""
+ ""
+ ""
+ 0
+ 1
+ "<Any platform>"
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ""
+ -1
+ -1
+ -1
+ -1
"Left"
"Centre"
0
@@ -1522,6 +1642,74 @@
1
1
1
+ 0
+ 0
+ 0
+ 0
+ ""
+ ""
+
+
+ "wxRichTextColourSwatchCtrl: ID_RICHTEXTFONTPAGE_BGCOLOURCTRL"
+ "dialog-control-document"
+ ""
+ "foreign"
+ 0
+ 1
+ 0
+ 0
+ "wbForeignCtrlProxy"
+ "ID_RICHTEXTFONTPAGE_BGCOLOURCTRL"
+ 10014
+ ""
+ "wxRichTextColourSwatchCtrl"
+ "wxWindow"
+ 1
+ 0
+ ""
+ ""
+ "m_bgColourCtrl"
+ 1
+ "Click to change the text background colour."
+ ""
+ ""
+ ""
+ ""
+ 0
+ 1
+ "<Any platform>"
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ""
+ -1
+ -1
+ 40
+ 20
+ "Expand"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
1
0
0
@@ -2008,6 +2196,14 @@
"wbBoxSizerProxy"
"Vertical"
""
+ "Centre"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
0
0
0
@@ -4510,6 +4706,14 @@
"wbBoxSizerProxy"
"Vertical"
""
+ "Centre"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
0
0
0
@@ -5238,6 +5442,14 @@
"wbBoxSizerProxy"
"Vertical"
""
+ "Centre"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
0
0
0
@@ -6902,6 +7114,14 @@
"wbBoxSizerProxy"
"Vertical"
""
+ "Centre"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
0
0
0
@@ -10160,6 +10380,14 @@
"wbBoxSizerProxy"
"Vertical"
""
+ "Centre"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
0
0
0
@@ -10548,8 +10776,6 @@
""
""
""
- "Bullet style"
- ""
""
""
""
@@ -10602,6 +10828,8 @@
""
""
0
+ "Bullet style"
+ ""
"wxBoxSizer V"
"dialog-control-document"
@@ -11924,8 +12152,6 @@
""
""
""
- "Spacing"
- ""
""
""
""
@@ -11978,6 +12204,8 @@
""
""
0
+ "Spacing"
+ ""
"wxBoxSizer V"
"dialog-control-document"
diff --git a/src/richtext/richtextfontpage.cpp b/src/richtext/richtextfontpage.cpp
index 87a3fb7830..7cc12800a4 100644
--- a/src/richtext/richtextfontpage.cpp
+++ b/src/richtext/richtextfontpage.cpp
@@ -24,6 +24,7 @@ IMPLEMENT_DYNAMIC_CLASS( wxRichTextFontPage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextFontPage, wxPanel )
EVT_LISTBOX( ID_RICHTEXTFONTPAGE_FACELISTBOX, wxRichTextFontPage::OnFaceListBoxSelected )
EVT_BUTTON( ID_RICHTEXTFONTPAGE_COLOURCTRL, wxRichTextFontPage::OnColourClicked )
+ EVT_BUTTON( ID_RICHTEXTFONTPAGE_BGCOLOURCTRL, wxRichTextFontPage::OnColourClicked )
////@begin wxRichTextFontPage event table entries
EVT_TEXT( ID_RICHTEXTFONTPAGE_FACETEXTCTRL, wxRichTextFontPage::OnFaceTextCtrlUpdated )
@@ -73,6 +74,7 @@ void wxRichTextFontPage::Init()
{
m_dontUpdate = false;
m_colourPresent = false;
+ m_bgColourPresent = false;
////@begin wxRichTextFontPage member initialisation
m_faceTextCtrl = NULL;
@@ -83,6 +85,7 @@ void wxRichTextFontPage::Init()
m_weightCtrl = NULL;
m_underliningCtrl = NULL;
m_colourCtrl = NULL;
+ m_bgColourCtrl = NULL;
m_strikethroughCtrl = NULL;
m_capitalsCtrl = NULL;
m_superscriptCtrl = NULL;
@@ -169,86 +172,100 @@ void wxRichTextFontPage::CreateControls()
itemBoxSizer3->Add(itemBoxSizer13, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer14 = new wxBoxSizer(wxVERTICAL);
- itemBoxSizer13->Add(itemBoxSizer14, 1, wxGROW, 5);
+ itemBoxSizer13->Add(itemBoxSizer14, 0, wxGROW, 5);
wxStaticText* itemStaticText15 = new wxStaticText( itemPanel1, wxID_STATIC, _("Font st&yle:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_styleCtrlStrings;
- m_styleCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_STYLECTRL, _T(""), wxDefaultPosition, wxDefaultSize, m_styleCtrlStrings, wxCB_READONLY );
+ m_styleCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_STYLECTRL, _T(""), wxDefaultPosition, wxSize(110, -1), m_styleCtrlStrings, wxCB_READONLY );
m_styleCtrl->SetHelpText(_("Select regular or italic style."));
if (wxRichTextFontPage::ShowToolTips())
m_styleCtrl->SetToolTip(_("Select regular or italic style."));
itemBoxSizer14->Add(m_styleCtrl, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
- itemBoxSizer13->Add(itemBoxSizer17, 1, wxGROW, 5);
+ itemBoxSizer13->Add(itemBoxSizer17, 0, wxGROW, 5);
wxStaticText* itemStaticText18 = new wxStaticText( itemPanel1, wxID_STATIC, _("Font &weight:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_weightCtrlStrings;
- m_weightCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_WEIGHTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, m_weightCtrlStrings, wxCB_READONLY );
+ m_weightCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_WEIGHTCTRL, _T(""), wxDefaultPosition, wxSize(110, -1), m_weightCtrlStrings, wxCB_READONLY );
m_weightCtrl->SetHelpText(_("Select regular or bold."));
if (wxRichTextFontPage::ShowToolTips())
m_weightCtrl->SetToolTip(_("Select regular or bold."));
itemBoxSizer17->Add(m_weightCtrl, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxVERTICAL);
- itemBoxSizer13->Add(itemBoxSizer20, 1, wxGROW, 5);
+ itemBoxSizer13->Add(itemBoxSizer20, 0, wxGROW, 5);
wxStaticText* itemStaticText21 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Underlining:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer20->Add(itemStaticText21, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_underliningCtrlStrings;
- m_underliningCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, _T(""), wxDefaultPosition, wxDefaultSize, m_underliningCtrlStrings, wxCB_READONLY );
+ m_underliningCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, _T(""), wxDefaultPosition, wxSize(110, -1), m_underliningCtrlStrings, wxCB_READONLY );
m_underliningCtrl->SetHelpText(_("Select underlining or no underlining."));
if (wxRichTextFontPage::ShowToolTips())
m_underliningCtrl->SetToolTip(_("Select underlining or no underlining."));
itemBoxSizer20->Add(m_underliningCtrl, 0, wxGROW|wxALL, 5);
- wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxVERTICAL);
- itemBoxSizer13->Add(itemBoxSizer23, 0, wxGROW, 5);
+ itemBoxSizer13->Add(0, 0, 1, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5);
- wxStaticText* itemStaticText24 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Colour:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer23->Add(itemStaticText24, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
+ wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxVERTICAL);
+ itemBoxSizer13->Add(itemBoxSizer24, 0, wxGROW, 5);
- m_colourCtrl = new wxRichTextColourSwatchCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_COLOURCTRL, wxDefaultPosition, wxSize(40, 20), wxSIMPLE_BORDER );
+ wxStaticText* itemStaticText25 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Colour:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemBoxSizer24->Add(itemStaticText25, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
+
+ m_colourCtrl = new wxRichTextColourSwatchCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_COLOURCTRL, wxDefaultPosition, wxSize(40, 20), 0 );
m_colourCtrl->SetHelpText(_("Click to change the text colour."));
if (wxRichTextFontPage::ShowToolTips())
m_colourCtrl->SetToolTip(_("Click to change the text colour."));
- itemBoxSizer23->Add(m_colourCtrl, 0, wxALIGN_LEFT|wxALL, 5);
+ itemBoxSizer24->Add(m_colourCtrl, 0, wxGROW|wxALL, 5);
- wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxHORIZONTAL);
- itemBoxSizer3->Add(itemBoxSizer26, 0, wxGROW, 5);
+ wxBoxSizer* itemBoxSizer27 = new wxBoxSizer(wxVERTICAL);
+ itemBoxSizer13->Add(itemBoxSizer27, 0, wxGROW, 5);
+
+ wxStaticText* itemStaticText28 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Bg colour:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemBoxSizer27->Add(itemStaticText28, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
+
+ m_bgColourCtrl = new wxRichTextColourSwatchCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_BGCOLOURCTRL, wxDefaultPosition, wxSize(40, 20), 0 );
+ m_bgColourCtrl->SetHelpText(_("Click to change the text background colour."));
+ if (wxRichTextFontPage::ShowToolTips())
+ m_bgColourCtrl->SetToolTip(_("Click to change the text background colour."));
+ itemBoxSizer27->Add(m_bgColourCtrl, 0, wxGROW|wxALL, 5);
+
+ wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxHORIZONTAL);
+ itemBoxSizer3->Add(itemBoxSizer30, 0, wxGROW, 5);
m_strikethroughCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL, _("&Strikethrough"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_strikethroughCtrl->SetValue(false);
m_strikethroughCtrl->SetHelpText(_("Check to show a line through the text."));
if (wxRichTextFontPage::ShowToolTips())
m_strikethroughCtrl->SetToolTip(_("Check to show a line through the text."));
- itemBoxSizer26->Add(m_strikethroughCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemBoxSizer30->Add(m_strikethroughCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_capitalsCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_CAPSCTRL, _("Ca&pitals"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_capitalsCtrl->SetValue(false);
m_capitalsCtrl->SetHelpText(_("Check to show the text in capitals."));
if (wxRichTextFontPage::ShowToolTips())
m_capitalsCtrl->SetToolTip(_("Check to show the text in capitals."));
- itemBoxSizer26->Add(m_capitalsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemBoxSizer30->Add(m_capitalsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_superscriptCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_SUPERSCRIPT, _("Supe&rscript"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_superscriptCtrl->SetValue(false);
m_superscriptCtrl->SetHelpText(_("Check to show the text in superscript."));
if (wxRichTextFontPage::ShowToolTips())
m_superscriptCtrl->SetToolTip(_("Check to show the text in superscript."));
- itemBoxSizer26->Add(m_superscriptCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemBoxSizer30->Add(m_superscriptCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_subscriptCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_SUBSCRIPT, _("Subscrip&t"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_subscriptCtrl->SetValue(false);
m_subscriptCtrl->SetHelpText(_("Check to show the text in subscript."));
if (wxRichTextFontPage::ShowToolTips())
m_subscriptCtrl->SetToolTip(_("Check to show the text in subscript."));
- itemBoxSizer26->Add(m_subscriptCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemBoxSizer30->Add(m_subscriptCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
@@ -353,11 +370,18 @@ bool wxRichTextFontPage::TransferDataFromWindow()
if (m_colourPresent)
{
- attr->SetTextColour(m_colourCtrl->GetBackgroundColour());
+ attr->SetTextColour(m_colourCtrl->GetColour());
}
else
attr->SetFlags(attr->GetFlags() & (~ wxTEXT_ATTR_TEXT_COLOUR));
+ if (m_bgColourPresent)
+ {
+ attr->SetBackgroundColour(m_bgColourCtrl->GetColour());
+ }
+ else
+ attr->SetFlags(attr->GetFlags() & (~ wxTEXT_ATTR_BACKGROUND_COLOUR));
+
if (m_strikethroughCtrl->Get3StateValue() != wxCHK_UNDETERMINED)
{
attr->SetTextEffectFlags(attr->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_STRIKETHROUGH);
@@ -473,6 +497,12 @@ bool wxRichTextFontPage::TransferDataToWindow()
m_colourPresent = true;
}
+ if (attr->HasBackgroundColour())
+ {
+ m_bgColourCtrl->SetColour(attr->GetBackgroundColour());
+ m_bgColourPresent = true;
+ }
+
if (attr->HasTextEffects())
{
if (attr->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_STRIKETHROUGH)
@@ -547,6 +577,9 @@ void wxRichTextFontPage::UpdatePreview()
if (m_colourPresent)
m_previewCtrl->SetForegroundColour(m_colourCtrl->GetBackgroundColour());
+ if (m_bgColourPresent)
+ m_previewCtrl->SetBackgroundColour(m_bgColourCtrl->GetBackgroundColour());
+
if (m_faceListBox->GetSelection() != wxNOT_FOUND)
{
wxString faceName = m_faceListBox->GetFaceName(m_faceListBox->GetSelection());
@@ -761,9 +794,12 @@ void wxRichTextFontPage::OnWeightCtrlSelected( wxCommandEvent& WXUNUSED(event) )
UpdatePreview();
}
-void wxRichTextFontPage::OnColourClicked( wxCommandEvent& WXUNUSED(event) )
+void wxRichTextFontPage::OnColourClicked( wxCommandEvent& event )
{
- m_colourPresent = true;
+ if (event.GetId() == m_colourCtrl->GetId())
+ m_colourPresent = true;
+ else if (event.GetId() == m_bgColourCtrl->GetId())
+ m_bgColourPresent = true;
UpdatePreview();
}