]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/richtext/richtextctrl.h
using explicit fixes #12689
[wxWidgets.git] / interface / wx / richtext / richtextctrl.h
index 11a5b60b08d2babdc0468adc5524f42cc1fb4771..d682329896d231f6f1ec28079dceded515a89498 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxRichTextCtrl and wxRichTextEvent
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 
     @beginEventTable{wxRichTextEvent}
     @event{EVT_RICHTEXT_CHARACTER(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_CHARACTER event, generated when the user
+        Process a @c wxEVT_COMMAND_RICHTEXT_CHARACTER event, generated when the user
         presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter.
     @event{EVT_RICHTEXT_DELETE(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_DELETE event, generated when the user
+        Process a @c wxEVT_COMMAND_RICHTEXT_DELETE event, generated when the user
         presses the backspace or delete key. Valid event functions: GetFlags, GetPosition.
     @event{EVT_RICHTEXT_RETURN(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_RETURN event, generated when the user
+        Process a @c wxEVT_COMMAND_RICHTEXT_RETURN event, generated when the user
         presses the return key. Valid event functions: GetFlags, GetPosition.
     @event{EVT_RICHTEXT_STYLE_CHANGED(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED event, generated when
+        Process a @c wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED event, generated when
         styling has been applied to the control. Valid event functions: GetPosition, GetRange.
     @event{EVT_RICHTEXT_STYLESHEET_CHANGED(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING event, generated
+        Process a @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING event, generated
         when the control's stylesheet has changed, for example the user added,
         edited or deleted a style. Valid event functions: GetRange, GetPosition.
     @event{EVT_RICHTEXT_STYLESHEET_REPLACING(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING event, generated
+        Process a @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING event, generated
         when the control's stylesheet is about to be replaced, for example when
         a file is loaded into the control.
         Valid event functions: Veto, GetOldStyleSheet, GetNewStyleSheet.
     @event{EVT_RICHTEXT_STYLESHEET_REPLACED(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED event, generated
+        Process a @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED event, generated
         when the control's stylesheet has been replaced, for example when a file
         is loaded into the control.
         Valid event functions: GetOldStyleSheet, GetNewStyleSheet.
     @event{EVT_RICHTEXT_CONTENT_INSERTED(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED event, generated when
+        Process a @c wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED event, generated when
         content has been inserted into the control.
         Valid event functions: GetPosition, GetRange.
     @event{EVT_RICHTEXT_CONTENT_DELETED(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED event, generated when
+        Process a @c wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED event, generated when
         content has been deleted from the control.
         Valid event functions: GetPosition, GetRange.
     @event{EVT_RICHTEXT_BUFFER_RESET(id, func)}
-        Process a wxEVT_COMMAND_RICHTEXT_BUFFER_RESET event, generated when the
+        Process a @c wxEVT_COMMAND_RICHTEXT_BUFFER_RESET event, generated when the
         buffer has been reset by deleting all content.
         You can use this to set a default style for the first new paragraph.
     @endEventTable
@@ -74,30 +74,30 @@ public:
     wxRichTextEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
 
     /**
-        Returns the character pressed, within a wxEVT_COMMAND_RICHTEXT_CHARACTER event.
+        Returns the character pressed, within a @c wxEVT_COMMAND_RICHTEXT_CHARACTER event.
     */
     wxChar GetCharacter() const;
 
     /**
         Returns flags indicating modifier keys pressed.
 
-        Possible values are wxRICHTEXT_CTRL_DOWN, wxRICHTEXT_SHIFT_DOWN, and wxRICHTEXT_ALT_DOWN.
+        Possible values are @c wxRICHTEXT_CTRL_DOWN, @c wxRICHTEXT_SHIFT_DOWN, and @c wxRICHTEXT_ALT_DOWN.
     */
     int GetFlags() const;
 
     /**
         Returns the new style sheet.
 
-        Can be used in a wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING or
-        wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED event handler.
+        Can be used in a @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING or
+        @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED event handler.
     */
     wxRichTextStyleSheet* GetNewStyleSheet() const;
 
     /**
         Returns the old style sheet.
 
-        Can be used in a wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING or
-        wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED event handler.
+        Can be used in a @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING or
+        @c wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED event handler.
     */
     wxRichTextStyleSheet* GetOldStyleSheet() const;
 
@@ -119,7 +119,7 @@ public:
     /**
         Sets flags indicating modifier keys pressed.
 
-        Possible values are wxRICHTEXT_CTRL_DOWN, wxRICHTEXT_SHIFT_DOWN, and wxRICHTEXT_ALT_DOWN.
+        Possible values are @c wxRICHTEXT_CTRL_DOWN, @c wxRICHTEXT_SHIFT_DOWN, and @c wxRICHTEXT_ALT_DOWN.
     */
     void SetFlags(int flags);
 
@@ -154,11 +154,21 @@ public:
 
     wxRichTextCtrl sends notification events: see wxRichTextEvent.
 
-    It also sends the standard wxTextCtrl events wxEVT_COMMAND_TEXT_ENTER and
-    wxEVT_COMMAND_TEXT_UPDATED, and wxTextUrlEvent when URL content is clicked.
+    It also sends the standard wxTextCtrl events @c wxEVT_COMMAND_TEXT_ENTER and
+    @c wxEVT_COMMAND_TEXT_UPDATED, and wxTextUrlEvent when URL content is clicked.
 
     For more information, see the @ref overview_richtextctrl.
 
+    @beginStyleTable
+    @style{wxRE_CENTRE_CARET}
+           The control will try to keep the caret line centred vertically while editing.
+           wxRE_CENTER_CARET is a synonym for this style.
+    @style{wxRE_MULTILINE}
+           The control will be multiline (mandatory).
+    @style{wxRE_READONLY}
+           The control will not be editable.
+    @endStyleTable
+
     @library{wxrichtext}
     @category{richtext}
     @appearance{richtextctrl.png}
@@ -452,7 +462,7 @@ public:
 
         @see SetListStyle(), PromoteList(), NumberList().
     */
-    bool ClearListStyle(const wxRichTextRange& range,
+    virtual bool ClearListStyle(const wxRichTextRange& range,
                         int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
 
     /**
@@ -491,6 +501,11 @@ public:
         Deletes content if there is a selection, e.g. when pressing a key.
         Returns the new caret position in @e newPos, or leaves it if there
         was no action. This is undoable.
+
+        @beginWxPerlOnly
+        In wxPerl this method takes no arguments and returns a 2-element
+        list (ok, newPos).
+        @endWxPerlOnly
     */
     bool DeleteSelectedContent(long* newPos = NULL);
 
@@ -653,6 +668,12 @@ public:
 
     /**
         Returns the caret height and position for the given character position.
+
+        @beginWxPerlOnly
+        In wxPerl this method is implemented as
+        GetCaretPositionForIndex(@a position) returning a
+        2-element list (ok, rect).
+        @endWxPerlOnly
     */
     bool GetCaretPositionForIndex(long position, wxRect& rect);
 
@@ -757,6 +778,11 @@ public:
         style attributes.
 
         To get the character or paragraph style alone, use GetUncombinedStyle().
+
+        @beginWxPerlOnly
+        In wxPerl this method is implemented as GetStyle(@a position)
+        returning a 2-element list (ok, attr).
+        @endWxPerlOnly
     */
     virtual bool GetStyle(long position, wxTextAttr& style);
 
@@ -764,6 +790,11 @@ public:
         Gets the attributes common to the specified range.
         Attributes that differ in value within the range will not be included
         in @a style flags.
+
+        @beginWxPerlOnly
+        In wxPerl this method is implemented as GetStyleForRange(@a position)
+        returning a 2-element list (ok, attr).
+        @endWxPerlOnly
     */
     virtual bool GetStyleForRange(const wxRichTextRange& range,
                                   wxTextAttr& style);
@@ -784,6 +815,11 @@ public:
         If you specify (any) paragraph attribute in @e style's flags, this function
         will fetch the paragraph attributes.
         Otherwise, it will return the character attributes.
+
+        @beginWxPerlOnly
+        In wxPerl this method is implemented as GetUncombinedStyle(@a position)
+        returning a 2-element list (ok, attr).
+        @endWxPerlOnly
     */
     virtual bool GetUncombinedStyle(long position, wxTextAttr& style);
 
@@ -943,6 +979,9 @@ public:
 
     /**
         Move the caret to the given character position.
+
+        Please note that this does not update the current editing style
+        from the new position; to do that, call wxRichTextCtrl::SetInsertionPoint instead.
     */
     virtual bool MoveCaret(long pos, bool showAtLineStart = false);
 
@@ -1086,7 +1125,7 @@ public:
     void OnSelectAll(wxCommandEvent& event);
 
     /**
-        Standard handler for the wxID_PASTE command.
+        Standard handler for the wxID_UNDO command.
     */
     void OnUndo(wxCommandEvent& event);
 
@@ -1140,6 +1179,13 @@ public:
     */
     virtual void PaintBackground(wxDC& dc);
 
+    /**
+        Other user defined painting after everything else (i.e. all text) is painted.
+
+        @since 2.9.1
+    */
+    virtual void PaintAboveContent(wxDC& dc);
+
     /**
         Pastes content from the clipboard to the buffer.
     */
@@ -1244,8 +1290,13 @@ public:
     virtual void SetBasicStyle(const wxTextAttr& style);
 
     /**
+        Sets the caret position.
+
         The caret position is the character position just before the caret.
         A value of -1 means the caret is at the start of the buffer.
+        Please note that this does not update the current editing style
+        from the new position or cause the actual caret to be refreshed; to do that,
+        call wxRichTextCtrl::SetInsertionPoint instead.
     */
     void SetCaretPosition(long position,
                           bool showAtLineStart = false);
@@ -1292,7 +1343,8 @@ public:
     void SetHandlerFlags(int flags);
 
     /**
-        Sets the insertion point.
+        Sets the insertion point and causes the current editing style to be taken from
+        the new position (unlike wxRichTextCtrl::SetCaretPosition).
     */
     virtual void SetInsertionPoint(long pos);
 
@@ -1363,7 +1415,6 @@ public:
     bool SetStyle(long start, long end, const wxTextAttr& style);
     //@}
 
-    //@{
     /**
         Sets the attributes for the given range, passing flags to determine how the
         attributes are set.
@@ -1391,13 +1442,9 @@ public:
         - wxRICHTEXT_SETSTYLE_REMOVE: removes the specified style. Only the style flags
           are used in this operation.
     */
-    bool SetStyleEx(const wxRichTextRange& range,
-                    const wxTextAttr& style,
-                    int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
-    bool SetStyleEx(long start, long end,
+    virtual bool SetStyleEx(const wxRichTextRange& range,
                     const wxTextAttr& style,
                     int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
-    //@}
 
     /**
         Sets the style sheet associated with the control.