// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-////@begin includes
-////@end includes
-
-#include "../../include/wx/richtext/richtextfontpage.h"
-
-////@begin XPM images
-////@end XPM images
+#include "wx/richtext/richtextfontpage.h"
/*!
* wxRichTextFontPage type definition
EVT_COMBOBOX( ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, wxRichTextFontPage::OnUnderliningCtrlSelected )
+ EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL, wxRichTextFontPage::OnStrikethroughctrlClick )
+
+ EVT_CHECKBOX( ID_RICHTEXTFONTPAGE_CAPSCTRL, wxRichTextFontPage::OnCapsctrlClick )
+
////@end wxRichTextFontPage event table entries
END_EVENT_TABLE()
/*!
* Initialise members
*/
-
+
void wxRichTextFontPage::Init()
{
m_dontUpdate = false;
m_weightCtrl = NULL;
m_underliningCtrl = NULL;
m_colourCtrl = NULL;
+ m_strikethroughCtrl = NULL;
+ m_capitalsCtrl = NULL;
m_previewCtrl = NULL;
////@end wxRichTextFontPage member initialisation
}
itemBoxSizer4->Add(itemBoxSizer5, 1, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Font:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
+ itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_faceTextCtrl = new wxTextCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_FACETEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
m_faceTextCtrl->SetHelpText(_("Type a font name."));
itemBoxSizer4->Add(itemBoxSizer9, 0, wxGROW, 5);
wxStaticText* itemStaticText10 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer9->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
+ itemBoxSizer9->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_sizeTextCtrl = new wxTextCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_SIZETEXTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_sizeTextCtrl->SetHelpText(_("Type a size in points."));
itemBoxSizer13->Add(itemBoxSizer14, 1, wxGROW, 5);
wxStaticText* itemStaticText15 = new wxStaticText( itemPanel1, wxID_STATIC, _("Font st&yle:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
+ itemBoxSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxString* m_styleCtrlStrings = NULL;
m_styleCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_STYLECTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_styleCtrlStrings, wxCB_READONLY );
itemBoxSizer13->Add(itemBoxSizer17, 1, wxGROW, 5);
wxStaticText* itemStaticText18 = new wxStaticText( itemPanel1, wxID_STATIC, _("Font &weight:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
+ itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxString* m_weightCtrlStrings = NULL;
m_weightCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_WEIGHTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_weightCtrlStrings, wxCB_READONLY );
itemBoxSizer13->Add(itemBoxSizer20, 1, wxGROW, 5);
wxStaticText* itemStaticText21 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Underlining:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer20->Add(itemStaticText21, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
+ itemBoxSizer20->Add(itemStaticText21, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxString* m_underliningCtrlStrings = NULL;
m_underliningCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_underliningCtrlStrings, wxCB_READONLY );
itemBoxSizer13->Add(itemBoxSizer23, 0, wxGROW, 5);
wxStaticText* itemStaticText24 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Colour:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer23->Add(itemStaticText24, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
+ itemBoxSizer23->Add(itemStaticText24, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_colourCtrl = new wxRichTextColourSwatchCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_COLOURCTRL, wxDefaultPosition, wxSize(40, 20), wxSIMPLE_BORDER );
m_colourCtrl->SetHelpText(_("Click to change the text colour."));
m_colourCtrl->SetToolTip(_("Click to change the text colour."));
itemBoxSizer23->Add(m_colourCtrl, 0, wxALIGN_LEFT|wxALL, 5);
+ wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxHORIZONTAL);
+ itemBoxSizer3->Add(itemBoxSizer26, 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 (ShowToolTips())
+ m_strikethroughCtrl->SetToolTip(_("Check to show a line through the text."));
+ itemBoxSizer26->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 (ShowToolTips())
+ m_capitalsCtrl->SetToolTip(_("Check to show the text in capitals."));
+ itemBoxSizer26->Add(m_capitalsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
m_previewCtrl = new wxRichTextFontPreviewCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_PREVIEWCTRL, wxDefaultPosition, wxSize(100, 80), wxSIMPLE_BORDER );
}
else
attr->SetFlags(attr->GetFlags() & (~ wxTEXT_ATTR_TEXT_COLOUR));
+
+ if (m_strikethroughCtrl->Get3StateValue() != wxCHK_UNDETERMINED)
+ {
+ attr->SetTextEffectFlags(attr->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_STRIKETHROUGH);
+
+ if (m_strikethroughCtrl->Get3StateValue() == wxCHK_CHECKED)
+ attr->SetTextEffects(attr->GetTextEffects() | wxTEXT_ATTR_EFFECT_STRIKETHROUGH);
+ else
+ attr->SetTextEffects(attr->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_STRIKETHROUGH);
+ }
+
+ if (m_capitalsCtrl->Get3StateValue() != wxCHK_UNDETERMINED)
+ {
+ attr->SetTextEffectFlags(attr->GetTextEffectFlags() | wxTEXT_ATTR_EFFECT_CAPITALS);
+
+ if (m_capitalsCtrl->Get3StateValue() == wxCHK_CHECKED)
+ attr->SetTextEffects(attr->GetTextEffects() | wxTEXT_ATTR_EFFECT_CAPITALS);
+ else
+ attr->SetTextEffects(attr->GetTextEffects() & ~wxTEXT_ATTR_EFFECT_CAPITALS);
+ }
return true;
}
m_dontUpdate = true;
wxTextAttrEx* attr = GetAttributes();
- if (attr->HasFont() && attr->HasFaceName())
+ if (attr->HasFont() && attr->HasFontFaceName())
{
m_faceTextCtrl->SetValue(attr->GetFont().GetFaceName());
m_faceListBox->SetFaceNameSelection(attr->GetFont().GetFaceName());
m_faceListBox->SetFaceNameSelection(wxEmptyString);
}
- if (attr->HasFont() && attr->HasSize())
+ if (attr->HasFont() && attr->HasFontSize())
{
wxString strSize = wxString::Format(wxT("%d"), attr->GetFont().GetPointSize());
m_sizeTextCtrl->SetValue(strSize);
m_sizeListBox->SetSelection(wxNOT_FOUND);
}
- if (attr->HasFont() && attr->HasWeight())
+ if (attr->HasFont() && attr->HasFontWeight())
{
if (attr->GetFont().GetWeight() == wxBOLD)
m_weightCtrl->SetSelection(1);
m_weightCtrl->SetSelection(wxNOT_FOUND);
}
- if (attr->HasFont() && attr->HasItalic())
+ if (attr->HasFont() && attr->HasFontItalic())
{
if (attr->GetFont().GetStyle() == wxITALIC)
m_styleCtrl->SetSelection(1);
m_styleCtrl->SetSelection(wxNOT_FOUND);
}
- if (attr->HasFont() && attr->HasUnderlined())
+ if (attr->HasFont() && attr->HasFontUnderlined())
{
if (attr->GetFont().GetUnderlined())
m_underliningCtrl->SetSelection(1);
m_colourPresent = true;
}
+ if (attr->HasTextEffects())
+ {
+ if (attr->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_STRIKETHROUGH)
+ {
+ if (attr->GetTextEffects() & wxTEXT_ATTR_EFFECT_STRIKETHROUGH)
+ m_strikethroughCtrl->Set3StateValue(wxCHK_CHECKED);
+ else
+ m_strikethroughCtrl->Set3StateValue(wxCHK_UNCHECKED);
+ }
+ else
+ m_strikethroughCtrl->Set3StateValue(wxCHK_UNDETERMINED);
+
+ if (attr->GetTextEffectFlags() & wxTEXT_ATTR_EFFECT_CAPITALS)
+ {
+ if (attr->GetTextEffects() & wxTEXT_ATTR_EFFECT_CAPITALS)
+ m_capitalsCtrl->Set3StateValue(wxCHK_CHECKED);
+ else
+ m_capitalsCtrl->Set3StateValue(wxCHK_UNCHECKED);
+ }
+ else
+ m_capitalsCtrl->Set3StateValue(wxCHK_UNDETERMINED);
+ }
+ else
+ {
+ m_strikethroughCtrl->Set3StateValue(wxCHK_UNDETERMINED);
+ m_capitalsCtrl->Set3StateValue(wxCHK_UNDETERMINED);
+ }
+
UpdatePreview();
m_dontUpdate = false;
font.SetUnderlined(underlined);
}
+
+ int textEffects = 0;
+
+ if (m_strikethroughCtrl->Get3StateValue() == wxCHK_CHECKED)
+ {
+ textEffects |= wxTEXT_ATTR_EFFECT_STRIKETHROUGH;
+ }
+
+ if (m_capitalsCtrl->Get3StateValue() == wxCHK_CHECKED)
+ {
+ textEffects |= wxTEXT_ATTR_EFFECT_CAPITALS;
+ }
m_previewCtrl->SetFont(font);
+ m_previewCtrl->SetTextEffects(textEffects);
m_previewCtrl->Refresh();
}
bool wxRichTextFontPage::ShowToolTips()
{
- return true;
+ return wxRichTextFormattingDialog::ShowToolTips();
}
/*!
UpdatePreview();
}
+/*!
+ * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL
+ */
+
+void wxRichTextFontPage::OnStrikethroughctrlClick( wxCommandEvent& WXUNUSED(event) )
+{
+ UpdatePreview();
+}
+
+/*!
+ * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_CAPSCTRL
+ */
+
+void wxRichTextFontPage::OnCapsctrlClick( wxCommandEvent& WXUNUSED(event) )
+{
+ UpdatePreview();
+}
+
+