]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/richtext/richtextstyles.h
Fix keyboard navigation in wxGrid with reordered columns.
[wxWidgets.git] / include / wx / richtext / richtextstyles.h
index b15ee9f94a793a1598d1c296389b68d9af943e65..e639144f7c69e69d1522f4065761bbd4156b6eed 100644 (file)
@@ -36,8 +36,8 @@
  * Forward declarations
  */
 
-class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl;
-class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer;
+class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextCtrl;
+class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextBuffer;
 
 /*!
  * wxRichTextStyleDefinition class declaration
@@ -240,6 +240,40 @@ protected:
     wxRichTextAttr m_levelStyles[10];
 };
 
+/*!
+ * wxRichTextBoxStyleDefinition class declaration, for box attributes in objects such as wxRichTextBox.
+ */
+
+class WXDLLIMPEXP_RICHTEXT wxRichTextBoxStyleDefinition: public wxRichTextStyleDefinition
+{
+    DECLARE_DYNAMIC_CLASS(wxRichTextBoxStyleDefinition)
+public:
+
+    /// Copy constructor
+    wxRichTextBoxStyleDefinition(const wxRichTextBoxStyleDefinition& def): wxRichTextStyleDefinition(def) { Copy(def); }
+
+    /// Default constructor
+    wxRichTextBoxStyleDefinition(const wxString& name = wxEmptyString):
+        wxRichTextStyleDefinition(name) {}
+
+    // Destructor
+    virtual ~wxRichTextBoxStyleDefinition() {}
+
+    /// Copies from def
+    void Copy(const wxRichTextBoxStyleDefinition& def);
+
+    /// Assignment operator
+    void operator =(const wxRichTextBoxStyleDefinition& def) { Copy(def); }
+
+    /// Equality operator
+    bool operator ==(const wxRichTextBoxStyleDefinition& def) const;
+
+    /// Clones the object
+    virtual wxRichTextStyleDefinition* Clone() const { return new wxRichTextBoxStyleDefinition(*this); }
+
+protected:
+};
+
 /*!
  * The style sheet
  */
@@ -253,6 +287,7 @@ public:
     wxRichTextStyleSheet(const wxRichTextStyleSheet& sheet)
     : wxObject()
     {
+        Init();
         Copy(sheet);
     }
     wxRichTextStyleSheet() { Init(); }
@@ -279,6 +314,9 @@ public:
     /// Add a definition to the list style list
     bool AddListStyle(wxRichTextListStyleDefinition* def);
 
+    /// Add a definition to the box style list
+    bool AddBoxStyle(wxRichTextBoxStyleDefinition* def);
+
     /// Add a definition to the appropriate style list
     bool AddStyle(wxRichTextStyleDefinition* def);
 
@@ -291,6 +329,9 @@ public:
     /// Remove a list style
     bool RemoveListStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_listStyleDefinitions, def, deleteStyle); }
 
+    /// Remove a box style
+    bool RemoveBoxStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_boxStyleDefinitions, def, deleteStyle); }
+
     /// Remove a style
     bool RemoveStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false);
 
@@ -303,6 +344,9 @@ public:
     /// Find a list definition by name
     wxRichTextListStyleDefinition* FindListStyle(const wxString& name, bool recurse = true) const { return (wxRichTextListStyleDefinition*) FindStyle(m_listStyleDefinitions, name, recurse); }
 
+    /// Find a box definition by name
+    wxRichTextBoxStyleDefinition* FindBoxStyle(const wxString& name, bool recurse = true) const { return (wxRichTextBoxStyleDefinition*) FindStyle(m_boxStyleDefinitions, name, recurse); }
+
     /// Find any definition by name
     wxRichTextStyleDefinition* FindStyle(const wxString& name, bool recurse = true) const;
 
@@ -315,6 +359,9 @@ public:
     /// Return the number of list styles
     size_t GetListStyleCount() const { return m_listStyleDefinitions.GetCount(); }
 
+    /// Return the number of box styles
+    size_t GetBoxStyleCount() const { return m_boxStyleDefinitions.GetCount(); }
+
     /// Return the nth character style
     wxRichTextCharacterStyleDefinition* GetCharacterStyle(size_t n) const { return (wxRichTextCharacterStyleDefinition*) m_characterStyleDefinitions.Item(n)->GetData(); }
 
@@ -324,6 +371,9 @@ public:
     /// Return the nth list style
     wxRichTextListStyleDefinition* GetListStyle(size_t n) const { return (wxRichTextListStyleDefinition*) m_listStyleDefinitions.Item(n)->GetData(); }
 
+    /// Return the nth box style
+    wxRichTextBoxStyleDefinition* GetBoxStyle(size_t n) const { return (wxRichTextBoxStyleDefinition*) m_boxStyleDefinitions.Item(n)->GetData(); }
+
     /// Delete all styles
     void DeleteStyles();
 
@@ -371,6 +421,7 @@ protected:
     wxList                  m_characterStyleDefinitions;
     wxList                  m_paragraphStyleDefinitions;
     wxList                  m_listStyleDefinitions;
+    wxList                  m_boxStyleDefinitions;
 
     wxRichTextStyleSheet*   m_previousSheet;
     wxRichTextStyleSheet*   m_nextSheet;
@@ -394,7 +445,8 @@ public:
         wxRICHTEXT_STYLE_ALL,
         wxRICHTEXT_STYLE_PARAGRAPH,
         wxRICHTEXT_STYLE_CHARACTER,
-        wxRICHTEXT_STYLE_LIST
+        wxRICHTEXT_STYLE_LIST,
+        wxRICHTEXT_STYLE_BOX
     };
 
     wxRichTextStyleListBox()
@@ -482,6 +534,7 @@ private:
     bool                    m_applyOnSelection; // if true, applies style on selection
     wxRichTextStyleType     m_styleType; // style type to display
     bool                    m_autoSetSelection;
+    wxArrayString           m_styleNames;
 };
 
 /*!
@@ -578,12 +631,7 @@ public:
         m_value = -1;
     }
 
-    virtual bool Create( wxWindow* parent )
-    {
-        return wxRichTextStyleListBox::Create(parent, wxID_ANY,
-                                  wxPoint(0,0), wxDefaultSize,
-                                  wxSIMPLE_BORDER);
-    }
+    virtual bool Create( wxWindow* parent );
 
     virtual wxWindow *GetControl() { return this; }