Added box style functionality to style manager dialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -51,6 +51,9 @@ BEGIN_EVENT_TABLE( wxRichTextStyleOrganiserDialog, wxDialog )
|
||||
EVT_BUTTON( ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST, wxRichTextStyleOrganiserDialog::OnNewListClick )
|
||||
EVT_UPDATE_UI( ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST, wxRichTextStyleOrganiserDialog::OnNewListUpdate )
|
||||
|
||||
EVT_BUTTON( ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX, wxRichTextStyleOrganiserDialog::OnNewBoxClick )
|
||||
EVT_UPDATE_UI( ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX, wxRichTextStyleOrganiserDialog::OnNewBoxUpdate )
|
||||
|
||||
EVT_BUTTON( ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY, wxRichTextStyleOrganiserDialog::OnApplyClick )
|
||||
EVT_UPDATE_UI( ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY, wxRichTextStyleOrganiserDialog::OnApplyUpdate )
|
||||
|
||||
@@ -105,6 +108,7 @@ void wxRichTextStyleOrganiserDialog::Init()
|
||||
m_newCharacter = NULL;
|
||||
m_newParagraph = NULL;
|
||||
m_newList = NULL;
|
||||
m_newBox = NULL;
|
||||
m_applyStyle = NULL;
|
||||
m_renameStyle = NULL;
|
||||
m_editStyle = NULL;
|
||||
@@ -161,6 +165,11 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
|
||||
typesToShow = wxRichTextStyleListBox::wxRICHTEXT_STYLE_PARAGRAPH;
|
||||
hideTypeSelector = true;
|
||||
}
|
||||
else if ((m_flags & wxRICHTEXT_ORGANISER_SHOW_BOX) != 0)
|
||||
{
|
||||
typesToShow = wxRichTextStyleListBox::wxRICHTEXT_STYLE_BOX;
|
||||
hideTypeSelector = true;
|
||||
}
|
||||
else if ((m_flags & wxRICHTEXT_ORGANISER_SHOW_LIST) != 0)
|
||||
{
|
||||
typesToShow = wxRichTextStyleListBox::wxRICHTEXT_STYLE_LIST;
|
||||
@@ -205,7 +214,7 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
|
||||
wxStaticText* itemStaticText9 = new wxStaticText( itemDialog1, ID_RICHTEXTSTYLEORGANISERDIALOG_CURRENT_STYLE, _(" "), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
itemBoxSizer8->Add(itemStaticText9, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
|
||||
|
||||
m_previewCtrl = new wxRichTextCtrl( itemDialog1, ID_RICHTEXTSTYLEORGANISERDIALOG_PREVIEW, wxEmptyString, wxDefaultPosition, wxSize(250, 200), wxVSCROLL|wxTE_READONLY );
|
||||
m_previewCtrl = new wxRichTextCtrl( itemDialog1, ID_RICHTEXTSTYLEORGANISERDIALOG_PREVIEW, wxEmptyString, wxDefaultPosition, wxSize(250, 200), wxBORDER_THEME|wxVSCROLL|wxTE_READONLY );
|
||||
m_previewCtrl->SetHelpText(_("The style preview."));
|
||||
if (wxRichTextStyleOrganiserDialog::ShowToolTips())
|
||||
m_previewCtrl->SetToolTip(_("The style preview."));
|
||||
@@ -235,6 +244,12 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
|
||||
m_newList->SetToolTip(_("Click to create a new list style."));
|
||||
m_buttonSizer->Add(m_newList, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_newBox = new wxButton( itemDialog1, ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX, _("New &Box Style..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_newBox->SetHelpText(_("Click to create a new box style."));
|
||||
if (wxRichTextStyleOrganiserDialog::ShowToolTips())
|
||||
m_newBox->SetToolTip(_("Click to create a new box style."));
|
||||
m_buttonSizer->Add(m_newBox, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
|
||||
|
||||
m_buttonSizer->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
|
||||
m_applyStyle = new wxButton( itemDialog1, ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY, _("&Apply Style"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
@@ -289,8 +304,8 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
|
||||
m_cancelButton = new wxButton( itemDialog1, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_stdButtonSizer->AddButton(m_cancelButton);
|
||||
|
||||
wxButton* itemButton28 = new wxButton( itemDialog1, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_stdButtonSizer->AddButton(itemButton28);
|
||||
wxButton* itemButton29 = new wxButton( itemDialog1, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_stdButtonSizer->AddButton(itemButton29);
|
||||
|
||||
m_stdButtonSizer->Realize();
|
||||
|
||||
@@ -308,6 +323,7 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
|
||||
m_buttonSizer->Show(m_newCharacter, false);
|
||||
m_buttonSizer->Show(m_newParagraph, false);
|
||||
m_buttonSizer->Show(m_newList, false);
|
||||
m_buttonSizer->Show(m_newBox, false);
|
||||
}
|
||||
if ((m_flags & wxRICHTEXT_ORGANISER_DELETE_STYLES) == 0)
|
||||
{
|
||||
@@ -432,8 +448,8 @@ iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
|
||||
}
|
||||
|
||||
wxRichTextStyleDefinition* def = m_stylesListBox->GetStyleListBox()->GetStyle(sel);
|
||||
|
||||
wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition);
|
||||
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
|
||||
|
||||
wxStaticText* labelCtrl = (wxStaticText*) FindWindow(ID_RICHTEXTSTYLEORGANISERDIALOG_CURRENT_STYLE);
|
||||
if (labelCtrl)
|
||||
@@ -456,10 +472,9 @@ iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
|
||||
m_previewCtrl->WriteText(s_para1);
|
||||
m_previewCtrl->EndStyle();
|
||||
|
||||
m_previewCtrl->BeginStyle(attr);
|
||||
|
||||
if (listDef)
|
||||
{
|
||||
m_previewCtrl->BeginStyle(attr);
|
||||
long listStart = m_previewCtrl->GetInsertionPoint() + 1;
|
||||
int i;
|
||||
for (i = 0; i < 10; i++)
|
||||
@@ -472,14 +487,32 @@ iaculis malesuada. Donec bibendum ipsum ut ante porta fringilla.\n");
|
||||
}
|
||||
long listEnd = m_previewCtrl->GetInsertionPoint();
|
||||
m_previewCtrl->NumberList(wxRichTextRange(listStart, listEnd), listDef);
|
||||
m_previewCtrl->EndStyle();
|
||||
}
|
||||
else if (boxDef)
|
||||
{
|
||||
wxRichTextAttr cellParaAttr;
|
||||
cellParaAttr.SetFont(font);
|
||||
cellParaAttr.SetTextColour(*wxBLACK);
|
||||
|
||||
wxRichTextBox* textBox = m_previewCtrl->WriteTextBox(attr);
|
||||
m_previewCtrl->SetFocusObject(textBox);
|
||||
m_previewCtrl->BeginStyle(cellParaAttr);
|
||||
wxString text(s_para2);
|
||||
text.Replace(wxT("\n"), wxEmptyString);
|
||||
m_previewCtrl->WriteText(text);
|
||||
m_previewCtrl->EndStyle();
|
||||
m_previewCtrl->SetFocusObject(NULL); // Set the focus back to the main buffer
|
||||
m_previewCtrl->SetInsertionPointEnd();
|
||||
m_previewCtrl->SetDefaultStyle(wxRichTextAttr());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_previewCtrl->BeginStyle(attr);
|
||||
m_previewCtrl->WriteText(s_para2);
|
||||
m_previewCtrl->EndStyle();
|
||||
}
|
||||
|
||||
m_previewCtrl->EndStyle();
|
||||
|
||||
m_previewCtrl->BeginStyle(normalParaAttr);
|
||||
m_previewCtrl->WriteText(s_para3);
|
||||
m_previewCtrl->EndStyle();
|
||||
@@ -511,12 +544,20 @@ bool wxRichTextStyleOrganiserDialog::ApplyStyle(wxRichTextCtrl* ctrl)
|
||||
|
||||
wxRichTextStyleDefinition* def = m_stylesListBox->GetStyleListBox()->GetStyle(sel);
|
||||
wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition);
|
||||
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
|
||||
|
||||
if (listDef && m_restartNumberingCtrl->GetValue())
|
||||
{
|
||||
wxRichTextRange range = ctrl->GetSelectionRange();
|
||||
return ctrl->SetListStyle(range, listDef, wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_RENUMBER);
|
||||
}
|
||||
else if (boxDef)
|
||||
{
|
||||
if (!ctrl->GetFocusObject() || (ctrl->GetFocusObject() && (ctrl->GetFocusObject() == & ctrl->GetBuffer())))
|
||||
return false;
|
||||
ctrl->SetStyle(ctrl->GetFocusObject(), def->GetStyleMergedWithBase(m_stylesListBox->GetStyleSheet()));
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ctrl->ApplyStyle(def);
|
||||
@@ -689,6 +730,10 @@ void wxRichTextStyleOrganiserDialog::OnEditClick( wxCommandEvent& WXUNUSED(event
|
||||
{
|
||||
pages |= wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_INDENTS_SPACING|wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS;
|
||||
}
|
||||
else if (def->IsKindOf(CLASSINFO(wxRichTextBoxStyleDefinition)))
|
||||
{
|
||||
pages |= wxRICHTEXT_FORMAT_MARGINS|wxRICHTEXT_FORMAT_SIZE|wxRICHTEXT_FORMAT_BORDERS|wxRICHTEXT_FORMAT_BACKGROUND;
|
||||
}
|
||||
|
||||
wxRichTextFormattingDialog formatDlg;
|
||||
formatDlg.SetStyleDefinition(*def, GetStyleSheet());
|
||||
@@ -699,6 +744,7 @@ void wxRichTextStyleOrganiserDialog::OnEditClick( wxCommandEvent& WXUNUSED(event
|
||||
wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(formatDlg.GetStyleDefinition(), wxRichTextParagraphStyleDefinition);
|
||||
wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(formatDlg.GetStyleDefinition(), wxRichTextCharacterStyleDefinition);
|
||||
wxRichTextListStyleDefinition* listDef = wxDynamicCast(formatDlg.GetStyleDefinition(), wxRichTextListStyleDefinition);
|
||||
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(formatDlg.GetStyleDefinition(), wxRichTextBoxStyleDefinition);
|
||||
|
||||
if (listDef)
|
||||
{
|
||||
@@ -708,6 +754,10 @@ void wxRichTextStyleOrganiserDialog::OnEditClick( wxCommandEvent& WXUNUSED(event
|
||||
{
|
||||
(*((wxRichTextParagraphStyleDefinition* ) def)) = (*paraDef);
|
||||
}
|
||||
else if (boxDef)
|
||||
{
|
||||
(*((wxRichTextBoxStyleDefinition* ) def)) = (*boxDef);
|
||||
}
|
||||
else
|
||||
{
|
||||
(*((wxRichTextCharacterStyleDefinition* ) def)) = (*charDef);
|
||||
@@ -751,6 +801,8 @@ void wxRichTextStyleOrganiserDialog::OnDeleteClick( wxCommandEvent& WXUNUSED(eve
|
||||
GetStyleSheet()->RemoveParagraphStyle((wxRichTextParagraphStyleDefinition*) def, true);
|
||||
else if (def->IsKindOf(CLASSINFO(wxRichTextCharacterStyleDefinition)))
|
||||
GetStyleSheet()->RemoveCharacterStyle((wxRichTextCharacterStyleDefinition*) def, true);
|
||||
else if (def->IsKindOf(CLASSINFO(wxRichTextBoxStyleDefinition)))
|
||||
GetStyleSheet()->RemoveBoxStyle((wxRichTextBoxStyleDefinition*) def, true);
|
||||
|
||||
m_stylesListBox->UpdateStyles();
|
||||
|
||||
@@ -856,7 +908,7 @@ void wxRichTextStyleOrganiserDialog::OnRenameClick( wxCommandEvent& WXUNUSED(eve
|
||||
if (styleName == def->GetName())
|
||||
return;
|
||||
|
||||
if (GetStyleSheet()->FindParagraphStyle(styleName) || GetStyleSheet()->FindCharacterStyle(styleName) || GetStyleSheet()->FindListStyle(styleName))
|
||||
if (GetStyleSheet()->FindParagraphStyle(styleName) || GetStyleSheet()->FindCharacterStyle(styleName) || GetStyleSheet()->FindListStyle(styleName) || GetStyleSheet()->FindBoxStyle(styleName))
|
||||
{
|
||||
wxMessageBox(_("Sorry, that name is taken. Please choose another."), _("New Style"), wxICON_EXCLAMATION|wxOK, this);
|
||||
return;
|
||||
@@ -885,6 +937,52 @@ void wxRichTextStyleOrganiserDialog::OnListSelection(wxCommandEvent& event)
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
/*!
|
||||
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX
|
||||
*/
|
||||
|
||||
void wxRichTextStyleOrganiserDialog::OnNewBoxClick( wxCommandEvent& WXUNUSED(event) )
|
||||
{
|
||||
wxString styleName = wxGetTextFromUser(_("Enter a box style name"), _("New Style"));
|
||||
if (!styleName.IsEmpty())
|
||||
{
|
||||
if (GetStyleSheet()->FindBoxStyle(styleName))
|
||||
{
|
||||
wxMessageBox(_("Sorry, that name is taken. Please choose another."), _("New Style"), wxICON_EXCLAMATION|wxOK, this);
|
||||
return;
|
||||
}
|
||||
|
||||
wxRichTextBoxStyleDefinition* style = new wxRichTextBoxStyleDefinition(styleName);
|
||||
|
||||
int pages = wxRICHTEXT_FORMAT_MARGINS|wxRICHTEXT_FORMAT_SIZE|wxRICHTEXT_FORMAT_BORDERS|wxRICHTEXT_FORMAT_BACKGROUND;
|
||||
wxRichTextFormattingDialog formatDlg;
|
||||
formatDlg.SetStyleDefinition(*style, GetStyleSheet());
|
||||
formatDlg.Create(pages, this);
|
||||
|
||||
if (formatDlg.ShowModal() == wxID_OK)
|
||||
{
|
||||
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(formatDlg.GetStyleDefinition(), wxRichTextBoxStyleDefinition);
|
||||
|
||||
(*((wxRichTextBoxStyleDefinition* ) style)) = (*boxDef);
|
||||
|
||||
GetStyleSheet()->AddBoxStyle(style);
|
||||
|
||||
m_stylesListBox->UpdateStyles();
|
||||
ShowPreview();
|
||||
}
|
||||
else
|
||||
delete style;
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
* wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX
|
||||
*/
|
||||
|
||||
void wxRichTextStyleOrganiserDialog::OnNewBoxUpdate( wxUpdateUIEvent& event )
|
||||
{
|
||||
event.Enable((GetFlags() & wxRICHTEXT_ORGANISER_CREATE_STYLES) != 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
// wxUSE_RICHTEXT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user