]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/richtext/richtextstyles.h
assert if wxCAL_SEQUENTIAL_MONTH_SELECTION style is changed after creation as this...
[wxWidgets.git] / include / wx / richtext / richtextstyles.h
index f16a3b6cf1a509d47801ae52f67c6d63eb1fe849..729e5e3f341bf589205c8caf94ee992e57a8d48d 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Julian Smart
 // Modified by:
 // Created:     2005-09-30
-// RCS-ID:
+// RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -85,6 +85,10 @@ public:
     void SetName(const wxString& name) { m_name = name; }
     const wxString& GetName() const { return m_name; }
 
+    /// Sets and gets the style description
+    void SetDescription(const wxString& descr) { m_description = descr; }
+    const wxString& GetDescription() const { return m_description; }
+
     /// Sets and gets the name of the style that this style is based on
     void SetBaseStyle(const wxString& name) { m_baseStyle = name; }
     const wxString& GetBaseStyle() const { return m_baseStyle; }
@@ -97,6 +101,7 @@ public:
 protected:
     wxString        m_name;
     wxString        m_baseStyle;
+    wxString        m_description;
     wxRichTextAttr  m_style;
 };
 
@@ -198,9 +203,9 @@ public:
     virtual wxRichTextStyleDefinition* Clone() const { return new wxRichTextListStyleDefinition(*this); }
 
     /// Sets/gets the attributes for the given level
-    void SetLevelAttributes(int i, const wxTextAttrEx& attr);
-    wxTextAttrEx* GetLevelAttributes(int i);
-    const wxTextAttrEx* GetLevelAttributes(int i) const;
+    void SetLevelAttributes(int i, const wxRichTextAttr& attr);
+    wxRichTextAttr* GetLevelAttributes(int i);
+    const wxRichTextAttr* GetLevelAttributes(int i) const;
 
     /// Convenience function for setting the major attributes for a list level specification
     void SetAttributes(int i, int leftIndent, int leftSubIndent, int bulletStyle, const wxString& bulletSymbol = wxEmptyString);
@@ -210,15 +215,15 @@ public:
 
     /// Combine the base and list style with a paragraph style, using the given indent (from which
     /// an appropriate level is found)
-    wxTextAttrEx CombineWithParagraphStyle(int indent, const wxTextAttrEx& paraStyle);
+    wxRichTextAttr CombineWithParagraphStyle(int indent, const wxRichTextAttr& paraStyle);
 
     /// Combine the base and list style, using the given indent (from which
     /// an appropriate level is found)
-    wxTextAttrEx GetCombinedStyle(int indent);
+    wxRichTextAttr GetCombinedStyle(int indent);
 
     /// Combine the base and list style, using the given level from which
     /// an appropriate level is found)
-    wxTextAttrEx GetCombinedStyleForLevel(int level);
+    wxRichTextAttr GetCombinedStyleForLevel(int level);
 
     /// Gets the number of available levels
     int GetLevelCount() const { return 10; }
@@ -229,7 +234,7 @@ public:
 protected:
 
     /// The styles for each level (up to 10)
-    wxTextAttrEx m_levelStyles[10];
+    wxRichTextAttr m_levelStyles[10];
 };
 
 /*!
@@ -327,6 +332,14 @@ public:
     wxRichTextStyleSheet* GetPreviousSheet() const { return m_previousSheet; }
     void SetPreviousSheet(wxRichTextStyleSheet* sheet) { m_previousSheet = sheet; }
 
+    /// Sets and gets the name of the style sheet
+    void SetName(const wxString& name) { m_name = name; }
+    const wxString& GetName() const { return m_name; }
+
+    /// Sets and gets the style description
+    void SetDescription(const wxString& descr) { m_description = descr; }
+    const wxString& GetDescription() const { return m_description; }
+
 /// Implementation
 
     /// Add a definition to one of the style lists
@@ -340,12 +353,15 @@ public:
 
 protected:
 
-    wxList  m_characterStyleDefinitions;
-    wxList  m_paragraphStyleDefinitions;
-    wxList  m_listStyleDefinitions;
+    wxString                m_description;
+    wxString                m_name;
+
+    wxList                  m_characterStyleDefinitions;
+    wxList                  m_paragraphStyleDefinitions;
+    wxList                  m_listStyleDefinitions;
 
-    wxRichTextStyleSheet* m_previousSheet;
-    wxRichTextStyleSheet* m_nextSheet;
+    wxRichTextStyleSheet*   m_previousSheet;
+    wxRichTextStyleSheet*   m_nextSheet;
 };
 
 #if wxUSE_HTML
@@ -383,6 +399,7 @@ public:
         m_richTextCtrl = NULL;
         m_applyOnSelection = false;
         m_styleType = wxRICHTEXT_STYLE_PARAGRAPH;
+        m_autoSetSelection = true;
     }
 
     bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
@@ -391,7 +408,7 @@ public:
     /// 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; }
 
@@ -414,9 +431,6 @@ public:
     /// Apply the style
     void ApplyStyle(int i);
 
-    /// React to selection
-    void OnSelect(wxCommandEvent& event);
-
     /// Left click
     void OnLeftDown(wxMouseEvent& event);
 
@@ -431,7 +445,8 @@ public:
 
     /// Can we set the selection based on the editor caret position?
     /// Need to override this if being used in a combobox popup
-    virtual bool CanAutoSetSelection() { return true; }
+    virtual bool CanAutoSetSelection() { return m_autoSetSelection; }
+    virtual void SetAutoSetSelection(bool autoSet) { m_autoSetSelection = autoSet; }
 
     /// Set whether the style should be applied as soon as the item is selected (the default)
     void SetApplyOnSelection(bool applyOnSel) { m_applyOnSelection = applyOnSel; }
@@ -454,6 +469,7 @@ private:
     wxRichTextCtrl*         m_richTextCtrl;
     bool                    m_applyOnSelection; // if true, applies style on selection
     wxRichTextStyleType     m_styleType; // style type to display
+    bool                    m_autoSetSelection;
 };
 
 /*!
@@ -462,6 +478,8 @@ private:
  * style types.
  */
 
+#define wxRICHTEXTSTYLELIST_HIDE_TYPE_SELECTOR     0x1000
+
 class WXDLLIMPEXP_RICHTEXT wxRichTextStyleListCtrl: public wxControl
 {
     DECLARE_CLASS(wxRichTextStyleListCtrl)
@@ -493,7 +511,10 @@ public:
     bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize, long style = 0);
 
-    /// Associates the control with a style manager
+    /// Updates the style list box
+    void UpdateStyles();
+
+    /// Associates the control with a style sheet
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet);
     wxRichTextStyleSheet* GetStyleSheet() const;
 
@@ -501,9 +522,6 @@ public:
     void SetRichTextCtrl(wxRichTextCtrl* ctrl);
     wxRichTextCtrl* GetRichTextCtrl() const;
 
-    /// Updates the style list box
-    void UpdateStyles();
-
     /// Set/get the style type to display
     void SetStyleType(wxRichTextStyleListBox::wxRichTextStyleType styleType);
     wxRichTextStyleListBox::wxRichTextStyleType GetStyleType() const;
@@ -620,7 +638,7 @@ public:
     /// 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(); }