X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fe5aa22c174da89809b6c5d27e60300df0b879ac..05a98b6d5d201eb8edea04b1ab022e4a9a46e9f0:/include/wx/richtext/richtextctrl.h diff --git a/include/wx/richtext/richtextctrl.h b/include/wx/richtext/richtextctrl.h index bf1e62bafd..1e0e289712 100644 --- a/include/wx/richtext/richtextctrl.h +++ b/include/wx/richtext/richtextctrl.h @@ -19,14 +19,12 @@ #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); @@ -390,6 +385,9 @@ public: /// Clear the selection virtual void SelectNone(); + /// Select the word at the given character position + virtual bool SelectWord(long position); + /// Get/set the selection range in character positions. -1, -1 means no selection. /// The range is in API convention, i.e. a single character selection is denoted /// by (n, n+1) @@ -530,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); } @@ -616,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; } @@ -726,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 @@ -854,3 +840,4 @@ typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&); #endif // _WX_RICHTEXTCTRL_H_ +