]> git.saurik.com Git - wxWidgets.git/blobdiff - src/richtext/richtextstylepage.cpp
missing commit
[wxWidgets.git] / src / richtext / richtextstylepage.cpp
index 7951dc02af41dfc56381903940e2e935b334c993..372ef360409f390cd45f1966b95acddc88a0e5bd 100644 (file)
  * wxRichTextStylePage type definition
  */
 
  * wxRichTextStylePage type definition
  */
 
-IMPLEMENT_DYNAMIC_CLASS( wxRichTextStylePage, wxPanel )
+IMPLEMENT_DYNAMIC_CLASS( wxRichTextStylePage, wxRichTextDialogPage )
 
 /*!
  * wxRichTextStylePage event table definition
  */
 
 
 /*!
  * 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 )
 
 ////@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()
 
 
 END_EVENT_TABLE()
 
+IMPLEMENT_HELP_PROVISION(wxRichTextStylePage)
+
 /*!
  * wxRichTextStylePage constructors
  */
 /*!
  * 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
 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())
 
     CreateControls();
     if (GetSizer())
@@ -86,46 +88,46 @@ bool wxRichTextStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint
 void wxRichTextStylePage::CreateControls()
 {
 ////@begin wxRichTextStylePage content construction
 void wxRichTextStylePage::CreateControls()
 {
 ////@begin wxRichTextStylePage content construction
-    wxRichTextStylePage* itemPanel1 = this;
+    wxRichTextStylePage* itemRichTextDialogPage1 = this;
 
     wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
 
     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);
 
     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);
 
     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."));
     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);
 
         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."));
     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);
 
         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."));
     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);
 
         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());
         wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition);
         if (paraDef)
             paraDef->SetNextStyle(m_nextStyle->GetValue());
-        
+
         def->SetName(m_styleName->GetValue());
         def->SetBaseStyle(m_basedOn->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)
     {
     wxRichTextStyleDefinition* def = wxRichTextFormattingDialog::GetDialogStyleDefinition(this);
     if (def)
     {
+        m_basedOn->Freeze();
+        m_nextStyle->Freeze();
+
         wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition);
         wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition);
         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();
         wxRichTextStyleSheet* sheet = wxRichTextFormattingDialog::GetDialog(this)->GetStyleSheet();
-        
+        wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
+
         m_styleName->SetValue(def->GetName());
         m_styleName->SetValue(def->GetName());
-        
+
         if (listDef)
         {
             if (m_nextStyle->GetCount() == 0)
         if (listDef)
         {
             if (m_nextStyle->GetCount() == 0)
@@ -201,7 +207,7 @@ bool wxRichTextStylePage::TransferDataToWindow()
             }
             m_nextStyle->SetValue(paraDef->GetNextStyle());
         }
             }
             m_nextStyle->SetValue(paraDef->GetNextStyle());
         }
-        
+
         if (m_basedOn->GetCount() == 0)
         {
             if (sheet)
         if (m_basedOn->GetCount() == 0)
         {
             if (sheet)
@@ -226,7 +232,17 @@ bool wxRichTextStylePage::TransferDataToWindow()
                             m_basedOn->Append(p->GetName());
                     }
                 }
                             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++)
                 {
                     size_t i;
                     for (i = 0; i < sheet->GetCharacterStyleCount(); i++)
@@ -238,14 +254,17 @@ bool wxRichTextStylePage::TransferDataToWindow()
                 }
             }
         }
                 }
             }
         }
-        
+
         m_basedOn->SetValue(def->GetBaseStyle());
         m_basedOn->SetValue(def->GetBaseStyle());
+
+        m_nextStyle->Thaw();
+        m_basedOn->Thaw();
     }
 
     return true;
 }
 
     }
 
     return true;
 }
 
-wxTextAttrEx* wxRichTextStylePage::GetAttributes()
+wxRichTextAttr* wxRichTextStylePage::GetAttributes()
 {
     return wxRichTextFormattingDialog::GetDialogAttributes(this);
 }
 {
     return wxRichTextFormattingDialog::GetDialogAttributes(this);
 }
@@ -291,7 +310,7 @@ wxIcon wxRichTextStylePage::GetIconResource( const wxString& name )
 void wxRichTextStylePage::OnNextStyleUpdate( wxUpdateUIEvent& event )
 {
     wxRichTextStyleDefinition* def = wxRichTextFormattingDialog::GetDialogStyleDefinition(this);
 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
 }
 
 #endif // wxUSE_RICHTEXT