]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/richtext/richtextctrl.h
Fix part of [ 1570325 ] wxAnimationCtrl for wxAdv library
[wxWidgets.git] / include / wx / richtext / richtextctrl.h
index c17fbacfa67f29789fa00d7fed688f477f7718dc..1e0e289712675fb0e3ccc7ab5b3a7c2c0018624a 100644 (file)
 #include "wx/scrolwin.h"
 #include "wx/caret.h"
 
-#if wxCHECK_VERSION(2,7,0)
-#define wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE 1
-#else
-#define wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE 0
-#endif
-
-#if wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE
 #include "wx/textctrl.h"
+
+#if !defined(__WXGTK__) && !defined(__WXMAC__)
+#define wxRICHTEXT_BUFFERED_PAINTING 1
+#else
+#define wxRICHTEXT_BUFFERED_PAINTING 0
 #endif
 
 class WXDLLIMPEXP_RICHTEXT wxRichTextStyleDefinition;
@@ -86,12 +84,8 @@ class WXDLLIMPEXP_RICHTEXT wxRichTextStyleDefinition;
  * wxRichTextCtrl class declaration
  */
 
-class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl:
-#if wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE
- public wxTextCtrlBase, public wxScrollHelper
-#else
- public wxScrolledWindow
-#endif
+class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl : public wxTextCtrlBase,
+                                            public wxScrollHelper
 {
     DECLARE_CLASS( wxRichTextCtrl )
     DECLARE_EVENT_TABLE()
@@ -118,7 +112,6 @@ public:
 // Accessors
 
     virtual wxString GetValue() const;
-    virtual void SetValue(const wxString& value);
 
     virtual wxString GetRange(long from, long to) const;
 
@@ -157,11 +150,6 @@ public:
     virtual void Replace(long from, long to, const wxString& value);
     virtual void Remove(long from, long to);
 
-#if !wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE
-    bool LoadFile(const wxString& file, int fileType = wxRICHTEXT_TYPE_ANY);
-    bool SaveFile(const wxString& file = wxEmptyString, int fileType = wxRICHTEXT_TYPE_ANY);
-#endif
-
     // load/save the controls contents from/to the file
     virtual bool DoLoadFile(const wxString& file, int fileType);
     virtual bool DoSaveFile(const wxString& file = wxEmptyString, int fileType = wxRICHTEXT_TYPE_ANY);
@@ -189,6 +177,13 @@ public:
     virtual bool GetStyle(long position, wxTextAttrEx& style);
     virtual bool GetStyle(long position, wxRichTextAttr& style);
 
+    // extended style setting operation with flags including:
+    // wxRICHTEXT_SETSTYLE_WITH_UNDO, wxRICHTEXT_SETSTYLE_OPTIMIZE, wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY, wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY
+    // see richtextbuffer.h for more details.
+    virtual bool SetStyleEx(long start, long end, const wxTextAttrEx& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
+    virtual bool SetStyleEx(const wxRichTextRange& range, const wxTextAttrEx& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
+    virtual bool SetStyleEx(const wxRichTextRange& range, const wxRichTextAttr& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
+
     /// Get the content (uncombined) attributes for this position.
     virtual bool GetUncombinedStyle(long position, wxTextAttr& style);
     virtual bool GetUncombinedStyle(long position, wxTextAttrEx& style);
@@ -533,7 +528,7 @@ public:
     virtual bool ApplyAlignmentToSelection(wxTextAttrAlignment alignment);
 
     /// Apply a named style to the selection
-    virtual void ApplyStyle(wxRichTextStyleDefinition* def);
+    virtual bool ApplyStyle(wxRichTextStyleDefinition* def);
 
     /// Set style sheet, if any.
     void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { GetBuffer().SetStyleSheet(styleSheet); }
@@ -619,26 +614,16 @@ public:
     /// Paint the background
     virtual void PaintBackground(wxDC& dc);
 
+#if wxRICHTEXT_BUFFERED_PAINTING
     /// Recreate buffer bitmap if necessary
     virtual bool RecreateBuffer(const wxSize& size = wxDefaultSize);
+#endif
 
     /// Set the selection
     virtual void DoSetSelection(long from, long to, bool scrollCaret = true);
 
     /// Write text
-    virtual void DoWriteText(const wxString& value, bool selectionOnly = true);
-
-    /// Send an update event
-    virtual bool SendUpdateEvent();
-
-    /// Init command event
-    void InitCommandEvent(wxCommandEvent& event) const;
-
-    /// do the window-specific processing after processing the update event
-    //  (duplicated code from wxTextCtrlBase)
-#if !wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE
-    virtual void DoUpdateWindowUI(wxUpdateUIEvent& event);
-#endif
+    virtual void DoWriteText(const wxString& value, int flags = 0);
 
     /// Should we inherit colours?
     virtual bool ShouldInheritColours() const { return false; }
@@ -729,32 +714,30 @@ public:
 
 // Implementation
 
-#if wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE
      WX_FORWARD_TO_SCROLL_HELPER()
-#endif
 
 // Overrides
 protected:
 
     virtual wxSize DoGetBestSize() const ;
 
+    virtual void DoSetValue(const wxString& value, int flags = 0);
+
+
 // Data members
 private:
 
     /// Allows nested Freeze/Thaw
     int                     m_freezeCount;
 
+#if wxRICHTEXT_BUFFERED_PAINTING
     /// Buffer bitmap
     wxBitmap                m_bufferBitmap;
+#endif
 
     /// Text buffer
     wxRichTextBuffer        m_buffer;
 
-#if !wxRICHTEXT_DERIVES_FROM_TEXTCTRLBASE
-    /// Filename
-    wxString                m_filename;
-#endif
-
     wxMenu*                 m_contextMenu;
 
     /// Caret position (1 less than the character position, so -1 is the
@@ -857,3 +840,4 @@ typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&);
 
 #endif
     // _WX_RICHTEXTCTRL_H_
+