#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;
* 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()
// Accessors
virtual wxString GetValue() const;
- virtual void SetValue(const wxString& value);
virtual wxString GetRange(long from, long to) const;
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);
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);
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); }
/// 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; }
// 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
#endif
// _WX_RICHTEXTCTRL_H_
+