X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dadd4f5523e6ab9b489632f478958cd6dc8d03aa..64ea838d8f4d1853b7d850db93ee565e901d099a:/src/richtext/richtextstylepage.cpp diff --git a/src/richtext/richtextstylepage.cpp b/src/richtext/richtextstylepage.cpp index 7951dc02af..372ef36040 100644 --- a/src/richtext/richtextstylepage.cpp +++ b/src/richtext/richtextstylepage.cpp @@ -17,13 +17,13 @@ * wxRichTextStylePage type definition */ -IMPLEMENT_DYNAMIC_CLASS( wxRichTextStylePage, wxPanel ) +IMPLEMENT_DYNAMIC_CLASS( wxRichTextStylePage, wxRichTextDialogPage ) /*! * wxRichTextStylePage event table definition */ -BEGIN_EVENT_TABLE( wxRichTextStylePage, wxPanel ) +BEGIN_EVENT_TABLE( wxRichTextStylePage, wxRichTextDialogPage ) ////@begin wxRichTextStylePage event table entries EVT_UPDATE_UI( ID_RICHTEXTSTYLEPAGE_NEXT_STYLE, wxRichTextStylePage::OnNextStyleUpdate ) @@ -32,6 +32,8 @@ BEGIN_EVENT_TABLE( wxRichTextStylePage, wxPanel ) END_EVENT_TABLE() +IMPLEMENT_HELP_PROVISION(wxRichTextStylePage) + /*! * wxRichTextStylePage constructors */ @@ -67,7 +69,7 @@ void wxRichTextStylePage::Init() bool wxRichTextStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) { ////@begin wxRichTextStylePage creation - wxPanel::Create( parent, id, pos, size, style ); + wxRichTextDialogPage::Create( parent, id, pos, size, style ); CreateControls(); if (GetSizer()) @@ -86,46 +88,46 @@ bool wxRichTextStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint void wxRichTextStylePage::CreateControls() { ////@begin wxRichTextStylePage content construction - wxRichTextStylePage* itemPanel1 = this; + wxRichTextStylePage* itemRichTextDialogPage1 = this; wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); - itemPanel1->SetSizer(itemBoxSizer2); + itemRichTextDialogPage1->SetSizer(itemBoxSizer2); wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL); itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5); wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL, 5); + itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5); wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5); + itemBoxSizer4->Add(itemBoxSizer5, 1, wxGROW, 5); - wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Style:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5); + wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Style:"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5); - m_styleName = new wxTextCtrl( itemPanel1, ID_RICHTEXTSTYLEPAGE_STYLE_NAME, _T(""), wxDefaultPosition, wxSize(300, -1), wxTE_READONLY ); + m_styleName = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTSTYLEPAGE_STYLE_NAME, wxEmptyString, wxDefaultPosition, wxSize(300, -1), wxTE_READONLY ); m_styleName->SetHelpText(_("The style name.")); - if (ShowToolTips()) + if (wxRichTextStylePage::ShowToolTips()) m_styleName->SetToolTip(_("The style name.")); itemBoxSizer5->Add(m_styleName, 0, wxGROW|wxALL, 5); - wxStaticText* itemStaticText8 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Based on:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer5->Add(itemStaticText8, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5); + wxStaticText* itemStaticText8 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Based on:"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer5->Add(itemStaticText8, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5); - wxString* m_basedOnStrings = NULL; - m_basedOn = new wxComboBox( itemPanel1, ID_RICHTEXTSTYLEPAGE_BASED_ON, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_basedOnStrings, wxCB_DROPDOWN ); + wxArrayString m_basedOnStrings; + m_basedOn = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTSTYLEPAGE_BASED_ON, wxEmptyString, wxDefaultPosition, wxSize(300, -1), m_basedOnStrings, wxCB_DROPDOWN ); m_basedOn->SetHelpText(_("The style on which this style is based.")); - if (ShowToolTips()) + if (wxRichTextStylePage::ShowToolTips()) m_basedOn->SetToolTip(_("The style on which this style is based.")); itemBoxSizer5->Add(m_basedOn, 0, wxGROW|wxALL, 5); - wxStaticText* itemStaticText10 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Next style:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer5->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5); + wxStaticText* itemStaticText10 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Next style:"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer5->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5); - wxString* m_nextStyleStrings = NULL; - m_nextStyle = new wxComboBox( itemPanel1, ID_RICHTEXTSTYLEPAGE_NEXT_STYLE, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_nextStyleStrings, wxCB_DROPDOWN ); + wxArrayString m_nextStyleStrings; + m_nextStyle = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTSTYLEPAGE_NEXT_STYLE, wxEmptyString, wxDefaultPosition, wxSize(300, -1), m_nextStyleStrings, wxCB_DROPDOWN ); m_nextStyle->SetHelpText(_("The default style for the next paragraph.")); - if (ShowToolTips()) + if (wxRichTextStylePage::ShowToolTips()) m_nextStyle->SetToolTip(_("The default style for the next paragraph.")); itemBoxSizer5->Add(m_nextStyle, 0, wxGROW|wxALL, 5); @@ -145,7 +147,7 @@ bool wxRichTextStylePage::TransferDataFromWindow() wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition); if (paraDef) paraDef->SetNextStyle(m_nextStyle->GetValue()); - + def->SetName(m_styleName->GetValue()); def->SetBaseStyle(m_basedOn->GetValue()); } @@ -160,13 +162,17 @@ bool wxRichTextStylePage::TransferDataToWindow() wxRichTextStyleDefinition* def = wxRichTextFormattingDialog::GetDialogStyleDefinition(this); if (def) { + m_basedOn->Freeze(); + m_nextStyle->Freeze(); + wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition); wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition); - // wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(def, wxRichTextCharacterStyleDefinition); + wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(def, wxRichTextCharacterStyleDefinition); wxRichTextStyleSheet* sheet = wxRichTextFormattingDialog::GetDialog(this)->GetStyleSheet(); - + wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition); + m_styleName->SetValue(def->GetName()); - + if (listDef) { if (m_nextStyle->GetCount() == 0) @@ -201,7 +207,7 @@ bool wxRichTextStylePage::TransferDataToWindow() } m_nextStyle->SetValue(paraDef->GetNextStyle()); } - + if (m_basedOn->GetCount() == 0) { if (sheet) @@ -226,7 +232,17 @@ bool wxRichTextStylePage::TransferDataToWindow() m_basedOn->Append(p->GetName()); } } - else + else if (boxDef) + { + size_t i; + for (i = 0; i < sheet->GetBoxStyleCount(); i++) + { + wxRichTextBoxStyleDefinition* p = wxDynamicCast(sheet->GetBoxStyle(i), wxRichTextBoxStyleDefinition); + if (p) + m_basedOn->Append(p->GetName()); + } + } + else if (charDef) { size_t i; for (i = 0; i < sheet->GetCharacterStyleCount(); i++) @@ -238,14 +254,17 @@ bool wxRichTextStylePage::TransferDataToWindow() } } } - + m_basedOn->SetValue(def->GetBaseStyle()); + + m_nextStyle->Thaw(); + m_basedOn->Thaw(); } return true; } -wxTextAttrEx* wxRichTextStylePage::GetAttributes() +wxRichTextAttr* wxRichTextStylePage::GetAttributes() { return wxRichTextFormattingDialog::GetDialogAttributes(this); } @@ -291,7 +310,7 @@ wxIcon wxRichTextStylePage::GetIconResource( const wxString& name ) void wxRichTextStylePage::OnNextStyleUpdate( wxUpdateUIEvent& event ) { wxRichTextStyleDefinition* def = wxRichTextFormattingDialog::GetDialogStyleDefinition(this); - event.Enable(def->IsKindOf(CLASSINFO(wxRichTextParagraphStyleDefinition))); + event.Enable(wxDynamicCast(def, wxRichTextParagraphStyleDefinition) != NULL); } #endif // wxUSE_RICHTEXT