]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/richtext/richtextstyles.h
added support for 2 extra mouse buttons (patch 1757630)
[wxWidgets.git] / include / wx / richtext / richtextstyles.h
index 30ec7fe3f9063722f29ac8a13cb809429a7d81de..96659e7f9d1034785988ce9c17c1339a34dc30d4 100644 (file)
@@ -36,8 +36,8 @@
  * Forward declarations
  */
 
  * Forward declarations
  */
 
-class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl;
-class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer;
+class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextCtrl;
+class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextBuffer;
 
 /*!
  * wxRichTextStyleDefinition class declaration
 
 /*!
  * wxRichTextStyleDefinition class declaration
@@ -93,11 +93,14 @@ public:
     void SetBaseStyle(const wxString& name) { m_baseStyle = name; }
     const wxString& GetBaseStyle() const { return m_baseStyle; }
 
     void SetBaseStyle(const wxString& name) { m_baseStyle = name; }
     const wxString& GetBaseStyle() const { return m_baseStyle; }
 
-    /// Sets the style
+    /// Sets and gets the style
     void SetStyle(const wxRichTextAttr& style) { m_style = style; }
     const wxRichTextAttr& GetStyle() const { return m_style; }
     wxRichTextAttr& GetStyle() { return m_style; }
 
     void SetStyle(const wxRichTextAttr& style) { m_style = style; }
     const wxRichTextAttr& GetStyle() const { return m_style; }
     wxRichTextAttr& GetStyle() { return m_style; }
 
+    /// Gets the style combined with the base style
+    virtual wxRichTextAttr GetStyleMergedWithBase(const wxRichTextStyleSheet* sheet) const;
+
 protected:
     wxString        m_name;
     wxString        m_baseStyle;
 protected:
     wxString        m_name;
     wxString        m_baseStyle;
@@ -215,15 +218,15 @@ public:
 
     /// Combine the base and list style with a paragraph style, using the given indent (from which
     /// an appropriate level is found)
 
     /// Combine the base and list style with a paragraph style, using the given indent (from which
     /// an appropriate level is found)
-    wxRichTextAttr CombineWithParagraphStyle(int indent, const wxRichTextAttr& paraStyle);
+    wxRichTextAttr CombineWithParagraphStyle(int indent, const wxRichTextAttr& paraStyle, wxRichTextStyleSheet* styleSheet = NULL);
 
     /// Combine the base and list style, using the given indent (from which
     /// an appropriate level is found)
 
     /// Combine the base and list style, using the given indent (from which
     /// an appropriate level is found)
-    wxRichTextAttr GetCombinedStyle(int indent);
+    wxRichTextAttr GetCombinedStyle(int indent, wxRichTextStyleSheet* styleSheet = NULL);
 
     /// Combine the base and list style, using the given level from which
     /// an appropriate level is found)
 
     /// Combine the base and list style, using the given level from which
     /// an appropriate level is found)
-    wxRichTextAttr GetCombinedStyleForLevel(int level);
+    wxRichTextAttr GetCombinedStyleForLevel(int level, wxRichTextStyleSheet* styleSheet = NULL);
 
     /// Gets the number of available levels
     int GetLevelCount() const { return 10; }
 
     /// Gets the number of available levels
     int GetLevelCount() const { return 10; }
@@ -250,6 +253,7 @@ public:
     wxRichTextStyleSheet(const wxRichTextStyleSheet& sheet)
     : wxObject()
     {
     wxRichTextStyleSheet(const wxRichTextStyleSheet& sheet)
     : wxObject()
     {
+               Init();
         Copy(sheet);
     }
     wxRichTextStyleSheet() { Init(); }
         Copy(sheet);
     }
     wxRichTextStyleSheet() { Init(); }
@@ -276,6 +280,9 @@ public:
     /// Add a definition to the list style list
     bool AddListStyle(wxRichTextListStyleDefinition* def);
 
     /// Add a definition to the list style list
     bool AddListStyle(wxRichTextListStyleDefinition* def);
 
+    /// Add a definition to the appropriate style list
+    bool AddStyle(wxRichTextStyleDefinition* def);
+
     /// Remove a character style
     bool RemoveCharacterStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_characterStyleDefinitions, def, deleteStyle); }
 
     /// Remove a character style
     bool RemoveCharacterStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_characterStyleDefinitions, def, deleteStyle); }
 
@@ -285,6 +292,9 @@ public:
     /// Remove a list style
     bool RemoveListStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_listStyleDefinitions, def, deleteStyle); }
 
     /// Remove a list style
     bool RemoveListStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_listStyleDefinitions, def, deleteStyle); }
 
+    /// Remove a style
+    bool RemoveStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false);
+
     /// Find a character definition by name
     wxRichTextCharacterStyleDefinition* FindCharacterStyle(const wxString& name, bool recurse = true) const { return (wxRichTextCharacterStyleDefinition*) FindStyle(m_characterStyleDefinitions, name, recurse); }
 
     /// Find a character definition by name
     wxRichTextCharacterStyleDefinition* FindCharacterStyle(const wxString& name, bool recurse = true) const { return (wxRichTextCharacterStyleDefinition*) FindStyle(m_characterStyleDefinitions, name, recurse); }
 
@@ -294,6 +304,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 list definition by name
     wxRichTextListStyleDefinition* FindListStyle(const wxString& name, bool recurse = true) const { return (wxRichTextListStyleDefinition*) FindStyle(m_listStyleDefinitions, name, recurse); }
 
+    /// Find any definition by name
+    wxRichTextStyleDefinition* FindStyle(const wxString& name, bool recurse = true) const;
+
     /// Return the number of character styles
     size_t GetCharacterStyleCount() const { return m_characterStyleDefinitions.GetCount(); }
 
     /// Return the number of character styles
     size_t GetCharacterStyleCount() const { return m_characterStyleDefinitions.GetCount(); }
 
@@ -408,7 +421,7 @@ public:
     /// Creates a suitable HTML fragment for a definition
     wxString CreateHTML(wxRichTextStyleDefinition* def) const;
 
     /// Creates a suitable HTML fragment for a definition
     wxString CreateHTML(wxRichTextStyleDefinition* def) const;
 
-    /// Associates the control with a style manager
+    /// Associates the control with a style sheet
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_styleSheet = styleSheet; }
     wxRichTextStyleSheet* GetStyleSheet() const { return m_styleSheet; }
 
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_styleSheet = styleSheet; }
     wxRichTextStyleSheet* GetStyleSheet() const { return m_styleSheet; }
 
@@ -470,6 +483,7 @@ private:
     bool                    m_applyOnSelection; // if true, applies style on selection
     wxRichTextStyleType     m_styleType; // style type to display
     bool                    m_autoSetSelection;
     bool                    m_applyOnSelection; // if true, applies style on selection
     wxRichTextStyleType     m_styleType; // style type to display
     bool                    m_autoSetSelection;
+    wxArrayString           m_styleNames;
 };
 
 /*!
 };
 
 /*!
@@ -514,7 +528,7 @@ public:
     /// Updates the style list box
     void UpdateStyles();
 
     /// Updates the style list box
     void UpdateStyles();
 
-    /// Associates the control with a style manager
+    /// Associates the control with a style sheet
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet);
     wxRichTextStyleSheet* GetStyleSheet() const;
 
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet);
     wxRichTextStyleSheet* GetStyleSheet() const;
 
@@ -638,7 +652,7 @@ public:
     /// Updates the list
     void UpdateStyles() { m_stylePopup->UpdateStyles(); }
 
     /// Updates the list
     void UpdateStyles() { m_stylePopup->UpdateStyles(); }
 
-    /// Associates the control with a style manager
+    /// Associates the control with a style sheet
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_stylePopup->SetStyleSheet(styleSheet); }
     wxRichTextStyleSheet* GetStyleSheet() const { return m_stylePopup->GetStyleSheet(); }
 
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_stylePopup->SetStyleSheet(styleSheet); }
     wxRichTextStyleSheet* GetStyleSheet() const { return m_stylePopup->GetStyleSheet(); }