Ticket #17680: stcdocs-part2.patch

File stcdocs-part2.patch, 188.8 KB (added by NewPagodi, 3 years ago)
  • interface/wx/stc/stc.h

    diff --git a/interface/wx/stc/stc.h b/interface/wx/stc/stc.h
    index 82eff8b..d059b6b 100644
    a b  
    27722772
    27732773    Links for quick access to the various categories of wxStyledTextCtrl functions:
    27742774    - @ref_member_group{ctor, Constructors and related methods}
    2775     - @ref_member_group{scintilla_functions, Scintilla methods}
     2775    - @ref_member_group{TextRetrievalAndModification, Text retrieval and modification}
     2776    - @ref_member_group{Searching, Searching and replacing}
     2777    - @ref_member_group{Overtype, Overtype}
     2778    - @ref_member_group{CutCopyAndPaste, Cut copy and paste}
     2779    - @ref_member_group{ErrorHandling, Error handling}
     2780    - @ref_member_group{UndoAndRedo, Undo and Redo}
     2781    - @ref_member_group{SelectionAndInformation, Selection and information}
     2782    - @ref_member_group{MultipleSelectionAndVirtualSpace, Multiple Selection and Virtual Space}
     2783    - @ref_member_group{ScrollingAndAutomaticScrolling, Scrolling and automatic scrolling}
     2784    - @ref_member_group{WhiteSpace, White space}
     2785    - @ref_member_group{Cursor, Cursor}
     2786    - @ref_member_group{MouseCapture, Mouse capture}
     2787    - @ref_member_group{LineEndings, Line endings}
     2788    - @ref_member_group{Words, Words}
     2789    - @ref_member_group{Styling, Styling}
     2790    - @ref_member_group{StyleDefinition, Style definition}
     2791    - @ref_member_group{CaretAndSelectionStyles, Caret selection and hotspot styles}
     2792    - @ref_member_group{CharacterRepresentations, Character representations}
     2793    - @ref_member_group{Margins, Margins}
     2794    - @ref_member_group{Annotations, Annotations}
     2795    - @ref_member_group{OtherSettings, Other settings}
     2796    - @ref_member_group{BraceHighlighting, Brace highlighting}
     2797    - @ref_member_group{TabsAndIndentationGuides, Tabs and Indentation Guides}
     2798    - @ref_member_group{Markers, Markers}
     2799    - @ref_member_group{Indicators, Indicators}
     2800    - @ref_member_group{Autocompletion, Autocompletion}
     2801    - @ref_member_group{UserLists, User lists}
     2802    - @ref_member_group{CallTips, Call tips}
     2803    - @ref_member_group{KeyboardCommands, Keyboard commands}
     2804    - @ref_member_group{KeyBindings, Key bindings}
     2805    - @ref_member_group{PopupEditMenu, Popup edit menu}
     2806    - @ref_member_group{MacroRecording, Macro recording}
     2807    - @ref_member_group{Printing, Printing}
     2808    - @ref_member_group{DirectAccess, Direct access}
     2809    - @ref_member_group{MultipleViews, Multiple views}
     2810    - @ref_member_group{BackgroundLoadSave, Background loading and saving}
     2811    - @ref_member_group{Folding, Folding}
     2812    - @ref_member_group{LineWrapping, Line wrapping}
     2813    - @ref_member_group{Zooming, Zooming}
     2814    - @ref_member_group{LongLines, Long lines}
     2815    - @ref_member_group{Lexer, Lexer}
     2816    - @ref_member_group{Notifications, Event related items}
     2817    - @ref_member_group{DeprecatedMessages, Deprecated items}
    27762818    - @ref_member_group{additional_methods, Additional wxStyledTextCtrl methods}
    27772819    - @ref_member_group{raw_variants , Raw variants}
    27782820    - @ref_member_group{text_entry, Text entry methods}
    public: 
    29032945
    29042946    // Scintilla methods (generated by gen_iface.py)
    29052947    // ----------------------------------------------
    2906     ///@member_group_name{scintilla_functions, Scintilla methods}
    2907     //@{
    29082948
    29092949    // **** Generated methods {{{
    29102950
    29112951
    29122952    /**
     2953        @member_group_name{TextRetrievalAndModification, Text retrieval and modification}
     2954    */
     2955    //@{
     2956
     2957    /**
    29132958        Add text to the document at current position.
    29142959    */
    29152960    void AddText(const wxString& text);
    public: 
    29252970    void InsertText(int pos, const wxString& text);
    29262971
    29272972    /**
    2928         Change the text that is being inserted in response to SC_MOD_INSERTCHECK
     2973        Change the text that is being inserted in response to wxSTC_MOD_INSERTCHECK
     2974
     2975        @since 3.1.0
    29292976    */
    29302977    void ChangeInsertion(int length, const wxString& text);
    29312978
    public: 
    29452992    void ClearDocumentStyle();
    29462993
    29472994    /**
    2948         Returns the number of bytes in the document.
    2949     */
    2950     int GetLength() const;
    2951 
    2952     /**
    29532995        Returns the character byte at the position.
    29542996    */
    29552997    int GetCharAt(int pos) const;
    29562998
    29572999    /**
    2958         Returns the position of the caret.
    2959     */
    2960     int GetCurrentPos() const;
    2961 
    2962     /**
    2963         Returns the position of the opposite end of the selection to the caret.
    2964     */
    2965     int GetAnchor() const;
    2966 
    2967     /**
    29683000        Returns the style byte at the position.
    29693001    */
    29703002    int GetStyleAt(int pos) const;
    29713003
    29723004    /**
    2973         Redoes the next action on the undo history.
    2974     */
    2975     void Redo();
    2976 
    2977     /**
    2978         Choose between collecting actions into the undo
    2979         history and discarding them.
    2980     */
    2981     void SetUndoCollection(bool collectUndo);
    2982 
    2983     /**
    2984         Select all the text in the document.
    2985     */
    2986     void SelectAll();
    2987 
    2988     /**
    29893005        Remember the current position in the undo history as the position
    29903006        at which the document was saved.
    29913007    */
    public: 
    29973013    wxMemoryBuffer GetStyledText(int startPos, int endPos);
    29983014
    29993015    /**
    3000         Are there any redoable actions in the undo history?
     3016        In read-only mode?
    30013017    */
    3002     bool CanRedo() const;
     3018    bool GetReadOnly() const;
    30033019
    30043020    /**
    3005         Retrieve the line number at which a particular marker is located.
     3021        Retrieve the contents of a line.
    30063022    */
    3007     int MarkerLineFromHandle(int markerHandle);
     3023    wxString GetLine(int line) const;
    30083024
    30093025    /**
    3010         Delete a marker.
     3026        Retrieve a range of text.
    30113027    */
    3012     void MarkerDeleteHandle(int markerHandle);
     3028    wxString GetTextRange(int startPos, int endPos);
    30133029
    30143030    /**
    3015         Is undo history being collected?
     3031        Replace the selected text with the argument text.
    30163032    */
    3017     bool GetUndoCollection() const;
     3033    void ReplaceSelection(const wxString& text);
    30183034
    30193035    /**
    3020         Are white space characters currently visible?
    3021         Returns one of SCWS_* constants.
     3036        Set to read only or read write.
    30223037    */
    3023     int GetViewWhiteSpace() const;
     3038    void SetReadOnly(bool readOnly);
    30243039
    30253040    /**
    3026         Make white space characters invisible, always visible or visible outside indentation.
     3041        Replace the contents of the document with the argument text.
    30273042    */
    3028     void SetViewWhiteSpace(int viewWS);
     3043    void SetText(const wxString& text);
    30293044
    30303045    /**
    3031         Retrieve the current tab draw mode.
    3032         Returns one of SCTD_* constants.
     3046        Retrieve all the text in the document.
    30333047    */
    3034     int GetTabDrawMode() const;
     3048    wxString GetText() const;
    30353049
    30363050    /**
    3037         Set how tabs are drawn when visible.
     3051        Append a string to the end of the document without changing the selection.
    30383052    */
    3039     void SetTabDrawMode(int tabDrawMode);
     3053    void AppendText(const wxString& text);
    30403054
    30413055    /**
    3042         Find the position from a point within the window.
     3056        Enlarge the document to a particular size of text bytes.
    30433057    */
    3044     int PositionFromPoint(wxPoint pt) const;
     3058    void Allocate(int bytes);
    30453059
    30463060    /**
    3047         Find the position from a point within the window but return
    3048         INVALID_POSITION if not close to text.
     3061        Release all extended (>255) style numbers
     3062
     3063        @since 3.1.0
    30493064    */
    3050     int PositionFromPointClose(int x, int y);
     3065    void ReleaseAllExtendedStyles();
    30513066
    30523067    /**
    3053         Set caret to start of a line and ensure it is visible.
     3068        Allocate some extended (>255) style numbers and return the start of the range
     3069
     3070        @since 3.1.0
    30543071    */
    3055     void GotoLine(int line);
     3072    int AllocateExtendedStyles(int numberStyles);
     3073
     3074    //@}
    30563075
    30573076    /**
    3058         Set caret to a position and ensure it is visible.
     3077        @member_group_name{Searching, Searching and replacing}
    30593078    */
    3060     void GotoPos(int caret);
     3079    //@{
    30613080
    30623081    /**
    3063         Set the selection anchor to a position. The anchor is the opposite
    3064         end of the selection from the caret.
     3082        Find some text in the document.
     3083
     3084        The fourth argument should be a bit list containing one or more of the
     3085        @link wxStyledTextCtrl::wxSTC_FIND_WHOLEWORD wxSTC_FIND_* @endlink constants.
    30653086    */
    3066     void SetAnchor(int anchor);
     3087    int FindText(int minPos, int maxPos, const wxString& text, int flags=0);
    30673088
    30683089    /**
    3069         Retrieve the text of the line containing the caret.
    3070         Returns the index of the caret on the line.
    3071         Result is NUL-terminated.
     3090        Sets the position that starts the target which is used for updating the
     3091        document without affecting the scroll position.
    30723092    */
    3073     wxString GetCurLine(int* linePos=NULL);
     3093    void SetTargetStart(int start);
    30743094
    30753095    /**
    3076         Retrieve the position of the last correctly styled character.
     3096        Get the position that starts the target.
    30773097    */
    3078     int GetEndStyled() const;
     3098    int GetTargetStart() const;
    30793099
    30803100    /**
    3081         Convert all line endings in the document to one mode.
     3101        Sets the position that ends the target which is used for updating the
     3102        document without affecting the scroll position.
    30823103    */
    3083     void ConvertEOLs(int eolMode);
     3104    void SetTargetEnd(int end);
    30843105
    30853106    /**
    3086         Retrieve the current end of line mode - one of CRLF, CR, or LF.
     3107        Get the position that ends the target.
    30873108    */
    3088     int GetEOLMode() const;
     3109    int GetTargetEnd() const;
    30893110
    30903111    /**
    3091         Set the current end of line mode.
     3112        Sets both the start and end of the target in one call.
     3113
     3114        @since 3.1.0
    30923115    */
    3093     void SetEOLMode(int eolMode);
     3116    void SetTargetRange(int start, int end);
    30943117
    30953118    /**
    3096         Set the current styling position to start.
    3097         The unused parameter is no longer used and should be set to 0.
     3119        Retrieve the text in the target.
     3120
     3121        @since 3.1.0
    30983122    */
    3099     void StartStyling(int start, int unused=0);
     3123    wxString GetTargetText() const;
    31003124
    31013125    /**
    3102         Change style from current styling position for length characters to a style
    3103         and move the current styling position to after this newly styled segment.
     3126        Make the target range start and end be the same as the selection range start and end.
    31043127    */
    3105     void SetStyling(int length, int style);
     3128    void TargetFromSelection();
    31063129
    31073130    /**
    3108         Is drawing done first into a buffer or direct to the screen?
     3131        Sets the target to the whole document.
     3132
     3133        @since 3.1.1
    31093134    */
    3110     bool GetBufferedDraw() const;
     3135    void TargetWholeDocument();
    31113136
    31123137    /**
    3113         If drawing is buffered then each line of text is drawn into a bitmap buffer
    3114         before drawing it to the screen to avoid flicker.
     3138        Replace the target text with the argument text.
     3139        Text is counted so it can contain NULs.
     3140        Returns the length of the replacement text.
    31153141    */
    3116     void SetBufferedDraw(bool buffered);
     3142    int ReplaceTarget(const wxString& text);
    31173143
    31183144    /**
    3119         Change the visible size of a tab to be a multiple of the width of a space character.
     3145        Replace the target text with the argument text after \\d processing.
     3146        Text is counted so it can contain NULs.
     3147        Looks for \\d where d is between 1 and 9 and replaces these with the strings
     3148        matched in the last search operation which were surrounded by \\( and \\).
     3149        Returns the length of the replacement text including any change
     3150        caused by processing the \\d patterns.
    31203151    */
    3121     void SetTabWidth(int tabWidth);
     3152    int ReplaceTargetRE(const wxString& text);
    31223153
    31233154    /**
    3124         Retrieve the visible size of a tab.
     3155        Search for a counted string in the target and set the target to the found
     3156        range. Text is counted so it can contain NULs.
     3157        Returns length of range or -1 for failure in which case target is not moved.
    31253158    */
    3126     int GetTabWidth() const;
     3159    int SearchInTarget(const wxString& text);
    31273160
    31283161    /**
    3129         Clear explicit tabstops on a line.
     3162        Set the search flags used by SearchInTarget.
     3163
     3164        The input should be a bit list containing one or more of the
     3165        @link wxStyledTextCtrl::wxSTC_FIND_WHOLEWORD wxSTC_FIND_* @endlink constants.
    31303166    */
    3131     void ClearTabStops(int line);
     3167    void SetSearchFlags(int searchFlags);
    31323168
    31333169    /**
    3134         Add an explicit tab stop for a line.
     3170        Get the search flags used by SearchInTarget.
     3171
     3172        The return value will be a bit list containing one or more of the
     3173        @link wxStyledTextCtrl::wxSTC_FIND_WHOLEWORD wxSTC_FIND_* @endlink constants.
    31353174    */
    3136     void AddTabStop(int line, int x);
     3175    int GetSearchFlags() const;
    31373176
    31383177    /**
    3139         Find the next explicit tab stop position on a line after a position.
     3178        Retrieve the value of a tag from a regular expression search.
    31403179    */
    3141     int GetNextTabStop(int line, int x);
     3180    wxString GetTag(int tagNumber) const;
    31423181
    31433182    /**
    3144         Set the code page used to interpret the bytes of the document as characters.
     3183        Sets the current caret position to be the search anchor.
    31453184    */
    3146     void SetCodePage(int codePage);
     3185    void SearchAnchor();
    31473186
    31483187    /**
    3149         Is the IME displayed in a window or inline?
     3188        Find some text starting at the search anchor.
     3189        Does not ensure the selection is visible.
    31503190    */
    3151     int GetIMEInteraction() const;
     3191    int SearchNext(int searchFlags, const wxString& text);
    31523192
    31533193    /**
    3154         Choose to display the the IME in a winow or inline.
     3194        Find some text starting at the search anchor and moving backwards.
     3195        Does not ensure the selection is visible.
    31553196    */
    3156     void SetIMEInteraction(int imeInteraction);
     3197    int SearchPrev(int searchFlags, const wxString& text);
     3198
     3199    //@}
    31573200
    31583201    /**
    3159         Set the symbol used for a particular marker number,
    3160         and optionally the fore and background colours.
     3202        @member_group_name{Overtype, Overtype}
    31613203    */
    3162     void MarkerDefine(int markerNumber, int markerSymbol,
    3163                 const wxColour& foreground = wxNullColour,
    3164                 const wxColour& background = wxNullColour);
     3204    //@{
    31653205
    31663206    /**
    3167         Set the foreground colour used for a particular marker number.
     3207        Set to overtype (true) or insert mode.
    31683208    */
    3169     void MarkerSetForeground(int markerNumber, const wxColour& fore);
     3209    void SetOvertype(bool overType);
    31703210
    31713211    /**
    3172         Set the background colour used for a particular marker number.
     3212        Returns true if overtype mode is active otherwise false is returned.
    31733213    */
    3174     void MarkerSetBackground(int markerNumber, const wxColour& back);
     3214    bool GetOvertype() const;
     3215
     3216    //@}
    31753217
    31763218    /**
    3177         Set the background colour used for a particular marker number when its folding block is selected.
     3219        @member_group_name{CutCopyAndPaste, Cut copy and paste}
    31783220    */
    3179     void MarkerSetBackgroundSelected(int markerNumber, const wxColour& back);
     3221    //@{
    31803222
    31813223    /**
    3182         Enable/disable highlight for current folding bloc (smallest one that contains the caret)
     3224        Will a paste succeed?
    31833225    */
    3184     void MarkerEnableHighlight(bool enabled);
     3226    bool CanPaste() const;
    31853227
    31863228    /**
    3187         Add a marker to a line, returning an ID which can be used to find or delete the marker.
     3229        Cut the selection to the clipboard.
    31883230    */
    3189     int MarkerAdd(int line, int markerNumber);
     3231    void Cut();
    31903232
    31913233    /**
    3192         Delete a marker from a line.
     3234        Copy the selection to the clipboard.
    31933235    */
    3194     void MarkerDelete(int line, int markerNumber);
     3236    void Copy();
    31953237
    31963238    /**
    3197         Delete all markers with a particular number from all lines.
     3239        Paste the contents of the clipboard into the document replacing the selection.
    31983240    */
    3199     void MarkerDeleteAll(int markerNumber);
     3241    void Paste();
    32003242
    32013243    /**
    3202         Get a bit mask of all the markers set on a line.
     3244        Clear the selection.
    32033245    */
    3204     int MarkerGet(int line);
     3246    void Clear();
    32053247
    32063248    /**
    3207         Find the next line at or after lineStart that includes a marker in mask.
    3208         Return -1 when no more lines.
     3249        Copy a range of text to the clipboard. Positions are clipped into the document.
    32093250    */
    3210     int MarkerNext(int lineStart, int markerMask);
     3251    void CopyRange(int start, int end);
    32113252
    32123253    /**
    3213         Find the previous line before lineStart that includes a marker in mask.
     3254        Copy argument text to the clipboard.
    32143255    */
    3215     int MarkerPrevious(int lineStart, int markerMask);
     3256    void CopyText(int length, const wxString& text);
    32163257
    32173258    /**
    3218         Define a marker from a bitmap
     3259        Enable/Disable convert-on-paste for line endings
    32193260    */
    3220     void MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp);
     3261    void SetPasteConvertEndings(bool convert);
    32213262
    32223263    /**
    3223         Add a set of markers to a line.
     3264        Get convert-on-paste setting
    32243265    */
    3225     void MarkerAddSet(int line, int markerSet);
     3266    bool GetPasteConvertEndings() const;
    32263267
    32273268    /**
    3228         Set the alpha used for a marker that is drawn in the text area, not the margin.
     3269        Copy the selection, if selection empty copy the line with the caret
    32293270    */
    3230     void MarkerSetAlpha(int markerNumber, int alpha);
     3271    void CopyAllowLine();
     3272
     3273    //@}
    32313274
    32323275    /**
    3233         Set a margin to be either numeric or symbolic.
     3276        @member_group_name{ErrorHandling, Error handling}
    32343277    */
    3235     void SetMarginType(int margin, int marginType);
     3278    //@{
    32363279
    32373280    /**
    3238         Retrieve the type of a margin.
    3239     */
    3240     int GetMarginType(int margin) const;
     3281        Change error status - 0 = OK.
    32413282
    3242     /**
    3243         Set the width of a margin to a width expressed in pixels.
     3283        The input should be one of the
     3284        @link wxStyledTextCtrl::wxSTC_STATUS_OK wxSTC_STATUS_* @endlink constants.
    32443285    */
    3245     void SetMarginWidth(int margin, int pixelWidth);
     3286    void SetStatus(int status);
    32463287
    32473288    /**
    3248         Retrieve the width of a margin in pixels.
     3289        Get error status.
     3290
     3291        The return value will be one of the
     3292        @link wxStyledTextCtrl::wxSTC_STATUS_OK wxSTC_STATUS_* @endlink constants.
    32493293    */
    3250     int GetMarginWidth(int margin) const;
     3294    int GetStatus() const;
     3295
     3296    //@}
    32513297
    32523298    /**
    3253         Set a mask that determines which markers are displayed in a margin.
     3299        @member_group_name{UndoAndRedo, Undo and Redo}
    32543300    */
    3255     void SetMarginMask(int margin, int mask);
     3301    //@{
    32563302
    32573303    /**
    3258         Retrieve the marker mask of a margin.
     3304        Redoes the next action on the undo history.
    32593305    */
    3260     int GetMarginMask(int margin) const;
     3306    void Redo();
    32613307
    32623308    /**
    3263         Make a margin sensitive or insensitive to mouse clicks.
     3309        Choose between collecting actions into the undo
     3310        history and discarding them.
    32643311    */
    3265     void SetMarginSensitive(int margin, bool sensitive);
     3312    void SetUndoCollection(bool collectUndo);
    32663313
    32673314    /**
    3268         Retrieve the mouse click sensitivity of a margin.
     3315        Are there any redoable actions in the undo history?
    32693316    */
    3270     bool GetMarginSensitive(int margin) const;
     3317    bool CanRedo() const;
    32713318
    32723319    /**
    3273         Set the cursor shown when the mouse is inside a margin.
     3320        Is undo history being collected?
    32743321    */
    3275     void SetMarginCursor(int margin, int cursor);
     3322    bool GetUndoCollection() const;
    32763323
    32773324    /**
    3278         Retrieve the cursor shown in a margin.
     3325        Start a sequence of actions that is undone and redone as a unit.
     3326        May be nested.
    32793327    */
    3280     int GetMarginCursor(int margin) const;
     3328    void BeginUndoAction();
    32813329
    32823330    /**
    3283         Set the background colour of a margin. Only visible for SC_MARGIN_COLOUR.
     3331        End a sequence of actions that is undone and redone as a unit.
    32843332    */
    3285     void SetMarginBackground(int margin, const wxColour& back);
     3333    void EndUndoAction();
    32863334
    32873335    /**
    3288         Retrieve the background colour of a margin
     3336        Are there any undoable actions in the undo history?
    32893337    */
    3290     wxColour GetMarginBackground(int margin) const;
     3338    bool CanUndo() const;
    32913339
    32923340    /**
    3293         Allocate a non-standard number of margins.
     3341        Delete the undo history.
    32943342    */
    3295     void SetMarginCount(int margins);
     3343    void EmptyUndoBuffer();
    32963344
    32973345    /**
    3298         How many margins are there?.
     3346        Undo one action in the undo history.
    32993347    */
    3300     int GetMarginCount() const;
     3348    void Undo();
    33013349
    33023350    /**
    3303         Clear all the styles and make equivalent to the global default style.
     3351        Add a container action to the undo stack
     3352
     3353        The flags argument can be either 0 or wxSTC_UNDO_MAY_COALESCE.
    33043354    */
    3305     void StyleClearAll();
     3355    void AddUndoAction(int token, int flags);
     3356
     3357    //@}
    33063358
    33073359    /**
    3308         Set the foreground colour of a style.
     3360        @member_group_name{SelectionAndInformation, Selection and information}
    33093361    */
    3310     void StyleSetForeground(int style, const wxColour& fore);
     3362    //@{
    33113363
    33123364    /**
    3313         Set the background colour of a style.
     3365        Returns the number of bytes in the document.
    33143366    */
    3315     void StyleSetBackground(int style, const wxColour& back);
     3367    int GetLength() const;
    33163368
    33173369    /**
    3318         Set a style to be bold or not.
     3370        Returns the position of the caret.
    33193371    */
    3320     void StyleSetBold(int style, bool bold);
     3372    int GetCurrentPos() const;
    33213373
    33223374    /**
    3323         Set a style to be italic or not.
     3375        Returns the position of the opposite end of the selection to the caret.
    33243376    */
    3325     void StyleSetItalic(int style, bool italic);
     3377    int GetAnchor() const;
    33263378
    33273379    /**
    3328         Set the size of characters of a style.
     3380        Select all the text in the document.
    33293381    */
    3330     void StyleSetSize(int style, int sizePoints);
     3382    void SelectAll();
    33313383
    33323384    /**
    3333         Set the font of a style.
     3385        Find the position from a point within the window.
    33343386    */
    3335     void StyleSetFaceName(int style, const wxString& fontName);
     3387    int PositionFromPoint(wxPoint pt) const;
    33363388
    33373389    /**
    3338         Set a style to have its end of line filled or not.
     3390        Find the position from a point within the window but return
     3391        wxSTC_INVALID_POSITION if not close to text.
    33393392    */
    3340     void StyleSetEOLFilled(int style, bool eolFilled);
     3393    int PositionFromPointClose(int x, int y);
    33413394
    33423395    /**
    3343         Reset the default style to its state at startup
     3396        Set caret to start of a line and ensure it is visible.
    33443397    */
    3345     void StyleResetDefault();
     3398    void GotoLine(int line);
    33463399
    33473400    /**
    3348         Set a style to be underlined or not.
     3401        Set caret to a position and ensure it is visible.
    33493402    */
    3350     void StyleSetUnderline(int style, bool underline);
     3403    void GotoPos(int caret);
    33513404
    33523405    /**
    3353         Get the foreground colour of a style.
     3406        Set the selection anchor to a position. The anchor is the opposite
     3407        end of the selection from the caret.
    33543408    */
    3355     wxColour StyleGetForeground(int style) const;
     3409    void SetAnchor(int anchor);
    33563410
    33573411    /**
    3358         Get the background colour of a style.
     3412        Retrieve the text of the line containing the caret.
     3413
     3414        linePos can optionally be passed in to receive the index of the
     3415        caret on the line.
    33593416    */
    3360     wxColour StyleGetBackground(int style) const;
     3417    wxString GetCurLine(int* linePos=NULL);
    33613418
    33623419    /**
    3363         Get is a style bold or not.
     3420        Retrieve the column number of a position, taking tab width into account.
    33643421    */
    3365     bool StyleGetBold(int style) const;
     3422    int GetColumn(int pos) const;
    33663423
    33673424    /**
    3368         Get is a style italic or not.
     3425        Count characters between two positions.
    33693426    */
    3370     bool StyleGetItalic(int style) const;
     3427    int CountCharacters(int start, int end);
    33713428
    33723429    /**
    3373         Get the size of characters of a style.
     3430        Get the position after the last visible characters on a line.
    33743431    */
    3375     int StyleGetSize(int style) const;
     3432    int GetLineEndPosition(int line) const;
    33763433
    33773434    /**
    3378         Get the font facename of a style
     3435        Sets the position of the caret.
    33793436    */
    3380     wxString StyleGetFaceName(int style);
     3437    void SetCurrentPos(int caret);
    33813438
    33823439    /**
    3383         Get is a style to have its end of line filled or not.
     3440        Sets the position that starts the selection - this becomes the anchor.
    33843441    */
    3385     bool StyleGetEOLFilled(int style) const;
     3442    void SetSelectionStart(int anchor);
    33863443
    33873444    /**
    3388         Get is a style underlined or not.
     3445        Returns the position at the start of the selection.
    33893446    */
    3390     bool StyleGetUnderline(int style) const;
     3447    int GetSelectionStart() const;
    33913448
    33923449    /**
    3393         Get is a style mixed case, or to force upper or lower case.
     3450        Sets the position that ends the selection - this becomes the caret.
    33943451    */
    3395     int StyleGetCase(int style) const;
     3452    void SetSelectionEnd(int caret);
    33963453
    33973454    /**
    3398         Get the character get of the font in a style.
     3455        Returns the position at the end of the selection.
    33993456    */
    3400     int StyleGetCharacterSet(int style) const;
     3457    int GetSelectionEnd() const;
    34013458
    34023459    /**
    3403         Get is a style visible or not.
     3460        Set caret to a position, while removing any existing selection.
    34043461    */
    3405     bool StyleGetVisible(int style) const;
     3462    void SetEmptySelection(int caret);
    34063463
    34073464    /**
    3408         Get is a style changeable or not (read only).
    3409         Experimental feature, currently buggy.
     3465        Returns the number of lines in the document. There is always at least one.
    34103466    */
    3411     bool StyleGetChangeable(int style) const;
     3467    int GetLineCount() const;
    34123468
    34133469    /**
    3414         Get is a style a hotspot or not.
     3470        Is the document different from when it was last saved?
    34153471    */
    3416     bool StyleGetHotSpot(int style) const;
     3472    bool GetModify() const;
    34173473
    34183474    /**
    3419         Set a style to be mixed case, or to force upper or lower case.
     3475        Retrieve the selected text.
    34203476    */
    3421     void StyleSetCase(int style, int caseVisible);
     3477    wxString GetSelectedText();
    34223478
    34233479    /**
    3424         Set the size of characters of a style. Size is in points multiplied by 100.
     3480        Draw the selection in normal style or with selection highlighted.
    34253481    */
    3426     void StyleSetSizeFractional(int style, int sizeHundredthPoints);
     3482    void HideSelection(bool hide);
    34273483
    34283484    /**
    3429         Get the size of characters of a style in points multiplied by 100
     3485        Retrieve the point in the window where a position is displayed.
    34303486    */
    3431     int StyleGetSizeFractional(int style) const;
     3487    wxPoint PointFromPosition(int pos);
    34323488
    34333489    /**
    3434         Set the weight of characters of a style.
     3490        Retrieve the line containing a position.
    34353491    */
    3436     void StyleSetWeight(int style, int weight);
     3492    int LineFromPosition(int pos) const;
    34373493
    34383494    /**
    3439         Get the weight of characters of a style.
     3495        Retrieve the position at the start of a line.
    34403496    */
    3441     int StyleGetWeight(int style) const;
     3497    int PositionFromLine(int line) const;
    34423498
    34433499    /**
    3444         Set the character set of the font in a style.
    3445         Converts the Scintilla character set values to a wxFontEncoding.
     3500        Retrieve the number of characters in the document.
    34463501    */
    3447     void StyleSetCharacterSet(int style, int characterSet);
     3502    int GetTextLength() const;
    34483503
    34493504    /**
    3450         Set a style to be a hotspot or not.
     3505        Measure the pixel width of some text in a particular style.
     3506        Does not handle tab or control characters.
    34513507    */
    3452     void StyleSetHotSpot(int style, bool hotspot);
     3508    int TextWidth(int style, const wxString& text);
    34533509
    34543510    /**
    3455         Set the foreground colour of the main and additional selections and whether to use this setting.
     3511        Retrieve the height of a particular line of text in pixels.
    34563512    */
    3457     void SetSelForeground(bool useSetting, const wxColour& fore);
     3513    int TextHeight(int line);
    34583514
    34593515    /**
    3460         Set the background colour of the main and additional selections and whether to use this setting.
     3516        Move the caret inside current view if it's not there already.
    34613517    */
    3462     void SetSelBackground(bool useSetting, const wxColour& back);
     3518    void MoveCaretInsideView();
    34633519
    34643520    /**
    3465         Get the alpha of the selection.
     3521        How many characters are on a line, including end of line characters?
    34663522    */
    3467     int GetSelAlpha() const;
     3523    int LineLength(int line) const;
    34683524
    34693525    /**
    3470         Set the alpha of the selection.
     3526        Retrieves the number of lines completely visible.
    34713527    */
    3472     void SetSelAlpha(int alpha);
     3528    int LinesOnScreen() const;
    34733529
    34743530    /**
    3475         Is the selection end of line filled?
     3531        Is the selection rectangular? The alternative is the more common stream selection.
    34763532    */
    3477     bool GetSelEOLFilled() const;
     3533    bool SelectionIsRectangle() const;
    34783534
    34793535    /**
    3480         Set the selection to have its end of line filled or not.
     3536        Set the last x chosen value to be the caret x position.
    34813537    */
    3482     void SetSelEOLFilled(bool filled);
     3538    void ChooseCaretX();
    34833539
    34843540    /**
    3485         Set the foreground colour of the caret.
     3541        Given a valid document position, return the previous position taking code
     3542        page into account. Returns 0 if passed 0.
    34863543    */
    3487     void SetCaretForeground(const wxColour& fore);
     3544    int PositionBefore(int pos);
    34883545
    34893546    /**
    3490         When key+modifier combination keyDefinition is pressed perform sciCommand.
     3547        Given a valid document position, return the next position taking code
     3548        page into account. Maximum value returned is the last position in the document.
    34913549    */
    3492     void CmdKeyAssign(int key, int modifiers, int cmd);
     3550    int PositionAfter(int pos);
    34933551
    34943552    /**
    3495         When key+modifier combination keyDefinition is pressed do nothing.
     3553        Given a valid document position, return a position that differs in a number
     3554        of characters. Returned value is always between 0 and last position in document.
     3555
     3556        @since 3.1.0
    34963557    */
    3497     void CmdKeyClear(int key, int modifiers);
     3558    int PositionRelative(int pos, int relative);
    34983559
    34993560    /**
    3500         Drop all key mappings.
     3561        Set the selection mode to stream (wxSTC_SEL_STREAM) or rectangular (wxSTC_SEL_RECTANGLE/wxSTC_SEL_THIN) or
     3562        by lines (wxSTC_SEL_LINES).
    35013563    */
    3502     void CmdKeyClearAll();
     3564    void SetSelectionMode(int selectionMode);
    35033565
    35043566    /**
    3505         Set the styles for a segment of the document.
     3567        Get the mode of the current selection.
     3568
     3569        The return value will be one of the
     3570        @link wxStyledTextCtrl::wxSTC_SEL_STREAM wxSTC_SEL_* @endlink constants.
    35063571    */
    3507     void SetStyleBytes(int length, char* styleBytes);
     3572    int GetSelectionMode() const;
    35083573
    35093574    /**
    3510         Set a style to be visible or not.
     3575        Retrieve the position of the start of the selection at the given line (wxSTC_INVALID_POSITION if no selection on this line).
    35113576    */
    3512     void StyleSetVisible(int style, bool visible);
     3577    int GetLineSelStartPosition(int line);
    35133578
    35143579    /**
    3515         Get the time in milliseconds that the caret is on and off.
     3580        Retrieve the position of the end of the selection at the given line (wxSTC_INVALID_POSITION if no selection on this line).
    35163581    */
    3517     int GetCaretPeriod() const;
     3582    int GetLineSelEndPosition(int line);
    35183583
    35193584    /**
    3520         Get the time in milliseconds that the caret is on and off. 0 = steady on.
     3585        Find the position of a column on a line taking into account tabs and
     3586        multi-byte characters. If beyond end of line, return line end position.
    35213587    */
    3522     void SetCaretPeriod(int periodMilliseconds);
     3588    int FindColumn(int line, int column);
    35233589
    35243590    /**
    3525         Set the set of characters making up words for when moving or selecting by word.
    3526         First sets defaults like SetCharsDefault.
     3591        Find the position of a character from a point within the window.
    35273592    */
    3528     void SetWordChars(const wxString& characters);
     3593    int CharPositionFromPoint(int x, int y);
    35293594
    35303595    /**
    3531         Get the set of characters making up words for when moving or selecting by word.
     3596        Find the position of a character from a point within the window.
     3597        Return wxSTC_INVALID_POSITION if not close to text.
    35323598    */
    3533     wxString GetWordChars() const;
     3599    int CharPositionFromPointClose(int x, int y);
    35343600
    35353601    /**
    3536         Start a sequence of actions that is undone and redone as a unit.
    3537         May be nested.
     3602        Set whether switching to rectangular mode while selecting with the mouse is allowed.
     3603
     3604        @since 3.1.0
    35383605    */
    3539     void BeginUndoAction();
     3606    void SetMouseSelectionRectangularSwitch(bool mouseSelectionRectangularSwitch);
    35403607
    35413608    /**
    3542         End a sequence of actions that is undone and redone as a unit.
    3543     */
    3544     void EndUndoAction();
     3609        Whether switching to rectangular mode while selecting with the mouse is allowed.
    35453610
    3546     /**
    3547         Set an indicator to plain, squiggle or TT.
     3611        @since 3.1.0
    35483612    */
    3549     void IndicatorSetStyle(int indicator, int indicatorStyle);
     3613    bool GetMouseSelectionRectangularSwitch() const;
    35503614
    35513615    /**
    3552         Retrieve the style of an indicator.
     3616        Move the selected lines up one line, shifting the line above after the selection
    35533617    */
    3554     int IndicatorGetStyle(int indicator) const;
     3618    void MoveSelectedLinesUp();
    35553619
    35563620    /**
    3557         Set the foreground colour of an indicator.
     3621        Move the selected lines down one line, shifting the line below before the selection
    35583622    */
    3559     void IndicatorSetForeground(int indicator, const wxColour& fore);
     3623    void MoveSelectedLinesDown();
    35603624
    3561     /**
    3562         Retrieve the foreground colour of an indicator.
    3563     */
    3564     wxColour IndicatorGetForeground(int indicator) const;
     3625    //@}
    35653626
    35663627    /**
    3567         Set an indicator to draw under text or over(default).
     3628        @member_group_name{MultipleSelectionAndVirtualSpace, Multiple Selection and Virtual Space}
    35683629    */
    3569     void IndicatorSetUnder(int indicator, bool under);
     3630    //@{
    35703631
    35713632    /**
    3572         Retrieve whether indicator drawn under or over text.
    3573     */
    3574     bool IndicatorGetUnder(int indicator) const;
     3633        Change the effect of pasting when there are multiple selections.
    35753634
    3576     /**
    3577         Set a hover indicator to plain, squiggle or TT.
     3635        The input should be one of the
     3636        @link wxStyledTextCtrl::wxSTC_MULTIPASTE_ONCE wxSTC_MULTIPASTE_* @endlink constants.
    35783637    */
    3579     void IndicatorSetHoverStyle(int indicator, int indicatorStyle);
     3638    void SetMultiPaste(int multiPaste);
    35803639
    35813640    /**
    3582         Retrieve the hover style of an indicator.
    3583     */
    3584     int IndicatorGetHoverStyle(int indicator) const;
     3641        Retrieve the effect of pasting when there are multiple selections.
    35853642
    3586     /**
    3587         Set the foreground hover colour of an indicator.
     3643        The return value will be one of the
     3644        @link wxStyledTextCtrl::wxSTC_MULTIPASTE_ONCE wxSTC_MULTIPASTE_* @endlink constants.
    35883645    */
    3589     void IndicatorSetHoverForeground(int indicator, const wxColour& fore);
     3646    int GetMultiPaste() const;
    35903647
    35913648    /**
    3592         Retrieve the foreground hover colour of an indicator.
     3649        Set whether multiple selections can be made
    35933650    */
    3594     wxColour IndicatorGetHoverForeground(int indicator) const;
     3651    void SetMultipleSelection(bool multipleSelection);
    35953652
    35963653    /**
    3597         Set the attributes of an indicator.
     3654        Whether multiple selections can be made
    35983655    */
    3599     void IndicatorSetFlags(int indicator, int flags);
     3656    bool GetMultipleSelection() const;
    36003657
    36013658    /**
    3602         Retrieve the attributes of an indicator.
     3659        Set whether typing can be performed into multiple selections
    36033660    */
    3604     int IndicatorGetFlags(int indicator) const;
     3661    void SetAdditionalSelectionTyping(bool additionalSelectionTyping);
    36053662
    36063663    /**
    3607         Set the foreground colour of all whitespace and whether to use this setting.
     3664        Whether typing can be performed into multiple selections
    36083665    */
    3609     void SetWhitespaceForeground(bool useSetting, const wxColour& fore);
     3666    bool GetAdditionalSelectionTyping() const;
    36103667
    36113668    /**
    3612         Set the background colour of all whitespace and whether to use this setting.
     3669        Set whether additional carets will blink
    36133670    */
    3614     void SetWhitespaceBackground(bool useSetting, const wxColour& back);
     3671    void SetAdditionalCaretsBlink(bool additionalCaretsBlink);
    36153672
    36163673    /**
    3617         Set the size of the dots used to mark space characters.
     3674        Whether additional carets will blink
    36183675    */
    3619     void SetWhitespaceSize(int size);
     3676    bool GetAdditionalCaretsBlink() const;
    36203677
    36213678    /**
    3622         Get the size of the dots used to mark space characters.
     3679        Set whether additional carets are visible
    36233680    */
    3624     int GetWhitespaceSize() const;
     3681    void SetAdditionalCaretsVisible(bool additionalCaretsVisible);
    36253682
    36263683    /**
    3627         Divide each styling byte into lexical class bits (default: 5) and indicator
    3628         bits (default: 3). If a lexer requires more than 32 lexical states, then this
    3629         is used to expand the possible states.
     3684        Whether additional carets are visible
    36303685    */
    3631     void SetStyleBits(int bits);
     3686    bool GetAdditionalCaretsVisible() const;
    36323687
    36333688    /**
    3634         Retrieve number of bits in style bytes used to hold the lexical state.
     3689        How many selections are there?
    36353690    */
    3636     int GetStyleBits() const;
     3691    int GetSelections() const;
    36373692
    36383693    /**
    3639         Used to hold extra styling information for each line.
    3640     */
    3641     void SetLineState(int line, int state);
     3694        Is every selected range empty?
    36423695
    3643     /**
    3644         Retrieve the extra styling information for a line.
     3696        @since 3.1.0
    36453697    */
    3646     int GetLineState(int line) const;
     3698    bool GetSelectionEmpty() const;
    36473699
    36483700    /**
    3649         Retrieve the last line number that has line state.
     3701        Clear selections to a single empty stream selection
    36503702    */
    3651     int GetMaxLineState() const;
     3703    void ClearSelections();
    36523704
    36533705    /**
    3654         Is the background of the line containing the caret in a different colour?
     3706        Add a selection
    36553707    */
    3656     bool GetCaretLineVisible() const;
     3708    int AddSelection(int caret, int anchor);
    36573709
    36583710    /**
    3659         Display the background of the line containing the caret in a different colour.
     3711        Drop one selection
     3712
     3713        @since 3.1.0
    36603714    */
    3661     void SetCaretLineVisible(bool show);
     3715    void DropSelectionN(int selection);
    36623716
    36633717    /**
    3664         Get the colour of the background of the line containing the caret.
     3718        Set the main selection
    36653719    */
    3666     wxColour GetCaretLineBackground() const;
     3720    void SetMainSelection(int selection);
    36673721
    36683722    /**
    3669         Set the colour of the background of the line containing the caret.
     3723        Which selection is the main selection
    36703724    */
    3671     void SetCaretLineBackground(const wxColour& back);
     3725    int GetMainSelection() const;
    36723726
    36733727    /**
    3674         Set a style to be changeable or not (read only).
    3675         Experimental feature, currently buggy.
     3728        Set the caret position of the nth selection.
    36763729    */
    3677     void StyleSetChangeable(int style, bool changeable);
     3730    void SetSelectionNCaret(int selection, int caret);
    36783731
    36793732    /**
    3680         Display a auto-completion list.
    3681         The lengthEntered parameter indicates how many characters before
    3682         the caret should be used to provide context.
     3733        Return the caret position of the nth selection.
    36833734    */
    3684     void AutoCompShow(int lengthEntered, const wxString& itemList);
     3735    int GetSelectionNCaret(int selection) const;
    36853736
    36863737    /**
    3687         Remove the auto-completion list from the screen.
     3738        Set the anchor position of the nth selection.
    36883739    */
    3689     void AutoCompCancel();
     3740    void SetSelectionNAnchor(int selection, int anchor);
    36903741
    36913742    /**
    3692         Is there an auto-completion list visible?
     3743        Return the anchor position of the nth selection.
    36933744    */
    3694     bool AutoCompActive();
     3745    int GetSelectionNAnchor(int selection) const;
    36953746
    36963747    /**
    3697         Retrieve the position of the caret when the auto-completion list was displayed.
     3748        Set the virtual space of the caret of the nth selection.
    36983749    */
    3699     int AutoCompPosStart();
     3750    void SetSelectionNCaretVirtualSpace(int selection, int space);
    37003751
    37013752    /**
    3702         User has selected an item so remove the list and insert the selection.
     3753        Return the virtual space of the caret of the nth selection.
    37033754    */
    3704     void AutoCompComplete();
     3755    int GetSelectionNCaretVirtualSpace(int selection) const;
    37053756
    37063757    /**
    3707         Define a set of character that when typed cancel the auto-completion list.
     3758        Set the virtual space of the anchor of the nth selection.
    37083759    */
    3709     void AutoCompStops(const wxString& characterSet);
     3760    void SetSelectionNAnchorVirtualSpace(int selection, int space);
    37103761
    37113762    /**
    3712         Change the separator character in the string setting up an auto-completion list.
    3713         Default is space but can be changed if items contain space.
     3763        Return the virtual space of the anchor of the nth selection.
    37143764    */
    3715     void AutoCompSetSeparator(int separatorCharacter);
     3765    int GetSelectionNAnchorVirtualSpace(int selection) const;
    37163766
    37173767    /**
    3718         Retrieve the auto-completion list separator character.
     3768        Sets the position that starts the selection - this becomes the anchor.
    37193769    */
    3720     int AutoCompGetSeparator() const;
     3770    void SetSelectionNStart(int selection, int anchor);
    37213771
    37223772    /**
    3723         Select the item in the auto-completion list that starts with a string.
     3773        Returns the position at the start of the selection.
    37243774    */
    3725     void AutoCompSelect(const wxString& select);
     3775    int GetSelectionNStart(int selection) const;
    37263776
    37273777    /**
    3728         Should the auto-completion list be cancelled if the user backspaces to a
    3729         position before where the box was created.
     3778        Sets the position that ends the selection - this becomes the currentPosition.
    37303779    */
    3731     void AutoCompSetCancelAtStart(bool cancel);
     3780    void SetSelectionNEnd(int selection, int caret);
    37323781
    37333782    /**
    3734         Retrieve whether auto-completion cancelled by backspacing before start.
     3783        Returns the position at the end of the selection.
    37353784    */
    3736     bool AutoCompGetCancelAtStart() const;
     3785    int GetSelectionNEnd(int selection) const;
    37373786
    37383787    /**
    3739         Define a set of characters that when typed will cause the autocompletion to
    3740         choose the selected item.
     3788        Set the caret position of the rectangular selection.
    37413789    */
    3742     void AutoCompSetFillUps(const wxString& characterSet);
     3790    void SetRectangularSelectionCaret(int caret);
    37433791
    37443792    /**
    3745         Should a single item auto-completion list automatically choose the item.
     3793        Return the caret position of the rectangular selection.
    37463794    */
    3747     void AutoCompSetChooseSingle(bool chooseSingle);
     3795    int GetRectangularSelectionCaret() const;
    37483796
    37493797    /**
    3750         Retrieve whether a single item auto-completion list automatically choose the item.
     3798        Set the anchor position of the rectangular selection.
    37513799    */
    3752     bool AutoCompGetChooseSingle() const;
     3800    void SetRectangularSelectionAnchor(int anchor);
    37533801
    37543802    /**
    3755         Set whether case is significant when performing auto-completion searches.
     3803        Return the anchor position of the rectangular selection.
    37563804    */
    3757     void AutoCompSetIgnoreCase(bool ignoreCase);
     3805    int GetRectangularSelectionAnchor() const;
    37583806
    37593807    /**
    3760         Retrieve state of ignore case flag.
     3808        Set the virtual space of the caret of the rectangular selection.
    37613809    */
    3762     bool AutoCompGetIgnoreCase() const;
     3810    void SetRectangularSelectionCaretVirtualSpace(int space);
    37633811
    37643812    /**
    3765         Display a list of strings and send notification when user chooses one.
     3813        Return the virtual space of the caret of the rectangular selection.
    37663814    */
    3767     void UserListShow(int listType, const wxString& itemList);
     3815    int GetRectangularSelectionCaretVirtualSpace() const;
    37683816
    37693817    /**
    3770         Set whether or not autocompletion is hidden automatically when nothing matches.
     3818        Set the virtual space of the anchor of the rectangular selection.
    37713819    */
    3772     void AutoCompSetAutoHide(bool autoHide);
     3820    void SetRectangularSelectionAnchorVirtualSpace(int space);
    37733821
    37743822    /**
    3775         Retrieve whether or not autocompletion is hidden automatically when nothing matches.
     3823        Return the virtual space of the anchor of the rectangular selection.
    37763824    */
    3777     bool AutoCompGetAutoHide() const;
     3825    int GetRectangularSelectionAnchorVirtualSpace() const;
    37783826
    37793827    /**
    3780         Set whether or not autocompletion deletes any word characters
    3781         after the inserted text upon completion.
     3828        Set options for virtual space behaviour.
     3829
     3830        The input should be one of the
     3831        @link wxStyledTextCtrl::wxSTC_VS_NONE wxSTC_VS_* @endlink constants.
    37823832    */
    3783     void AutoCompSetDropRestOfWord(bool dropRestOfWord);
     3833    void SetVirtualSpaceOptions(int virtualSpaceOptions);
    37843834
    37853835    /**
    3786         Retrieve whether or not autocompletion deletes any word characters
    3787         after the inserted text upon completion.
     3836        Return options for virtual space behaviour.
     3837
     3838        The return value will be one of the
     3839        @link wxStyledTextCtrl::wxSTC_VS_NONE wxSTC_VS_* @endlink constants.
    37883840    */
    3789     bool AutoCompGetDropRestOfWord() const;
     3841    int GetVirtualSpaceOptions() const;
    37903842
    37913843    /**
    3792         Register an image for use in autocompletion lists.
     3844        On GTK+, allow selecting the modifier key to use for mouse-based
     3845        rectangular selection. Often the window manager requires Alt+Mouse Drag
     3846        for moving windows.
     3847        Valid values are wxSTC_KEYMOD_CTRL (default), wxSTC_KEYMOD_ALT, or wxSTC_KEYMOD_SUPER.
    37933848    */
    3794     void RegisterImage(int type, const wxBitmap& bmp);
     3849    void SetRectangularSelectionModifier(int modifier);
    37953850
    37963851    /**
    3797         Clear all the registered images.
     3852        Get the modifier key used for rectangular selection.
     3853
     3854        The return value will be a bit list containing one or more of the
     3855        @link wxStyledTextCtrl::wxSTC_KEYMOD_NORM wxSTC_KEYMOD_* @endlink constants.
    37983856    */
    3799     void ClearRegisteredImages();
     3857    int GetRectangularSelectionModifier() const;
    38003858
    38013859    /**
    3802         Retrieve the auto-completion list type-separator character.
     3860        Set the foreground colour of additional selections.
     3861        Must have previously called SetSelFore with non-zero first argument for this to have an effect.
    38033862    */
    3804     int AutoCompGetTypeSeparator() const;
     3863    void SetAdditionalSelForeground(const wxColour& fore);
    38053864
    38063865    /**
    3807         Change the type-separator character in the string setting up an auto-completion list.
    3808         Default is '?' but can be changed if items contain '?'.
     3866        Set the background colour of additional selections.
     3867        Must have previously called SetSelBack with non-zero first argument for this to have an effect.
    38093868    */
    3810     void AutoCompSetTypeSeparator(int separatorCharacter);
     3869    void SetAdditionalSelBackground(const wxColour& back);
    38113870
    38123871    /**
    3813         Set the maximum width, in characters, of auto-completion and user lists.
    3814         Set to 0 to autosize to fit longest item, which is the default.
     3872        Set the alpha of the selection.
    38153873    */
    3816     void AutoCompSetMaxWidth(int characterCount);
     3874    void SetAdditionalSelAlpha(int alpha);
    38173875
    38183876    /**
    3819         Get the maximum width, in characters, of auto-completion and user lists.
     3877        Get the alpha of the selection.
    38203878    */
    3821     int AutoCompGetMaxWidth() const;
     3879    int GetAdditionalSelAlpha() const;
    38223880
    38233881    /**
    3824         Set the maximum height, in rows, of auto-completion and user lists.
    3825         The default is 5 rows.
     3882        Set the foreground colour of additional carets.
    38263883    */
    3827     void AutoCompSetMaxHeight(int rowCount);
     3884    void SetAdditionalCaretForeground(const wxColour& fore);
    38283885
    38293886    /**
    3830         Set the maximum height, in rows, of auto-completion and user lists.
     3887        Get the foreground colour of additional carets.
    38313888    */
    3832     int AutoCompGetMaxHeight() const;
     3889    wxColour GetAdditionalCaretForeground() const;
    38333890
    38343891    /**
    3835         Set the number of spaces used for one level of indentation.
     3892        Set the main selection to the next selection.
    38363893    */
    3837     void SetIndent(int indentSize);
     3894    void RotateSelection();
    38383895
    38393896    /**
    3840         Retrieve indentation size.
     3897        Swap that caret and anchor of the main selection.
    38413898    */
    3842     int GetIndent() const;
     3899    void SwapMainAnchorCaret();
    38433900
    38443901    /**
    3845         Indentation will only use space characters if useTabs is false, otherwise
    3846         it will use a combination of tabs and spaces.
    3847     */
    3848     void SetUseTabs(bool useTabs);
    3849 
    3850     /**
    3851         Retrieve whether tabs will be used in indentation.
    3852     */
    3853     bool GetUseTabs() const;
     3902        Add the next occurrence of the main selection to the set of selections as main.
     3903        If the current selection is empty then select word around caret.
    38543904
    3855     /**
    3856         Change the indentation of a line to a number of columns.
     3905        @since 3.1.1
    38573906    */
    3858     void SetLineIndentation(int line, int indentation);
     3907    void MultipleSelectAddNext();
    38593908
    38603909    /**
    3861         Retrieve the number of columns that a line is indented.
    3862     */
    3863     int GetLineIndentation(int line) const;
     3910        Add each occurrence of the main selection in the target to the set of selections.
     3911        If the current selection is empty then select word around caret.
    38643912
    3865     /**
    3866         Retrieve the position before the first non indentation character on a line.
     3913        @since 3.1.1
    38673914    */
    3868     int GetLineIndentPosition(int line) const;
     3915    void MultipleSelectAddEach();
    38693916
    3870     /**
    3871         Retrieve the column number of a position, taking tab width into account.
    3872     */
    3873     int GetColumn(int pos) const;
     3917    //@}
    38743918
    38753919    /**
    3876         Count characters between two positions.
     3920        @member_group_name{ScrollingAndAutomaticScrolling, Scrolling and automatic scrolling}
    38773921    */
    3878     int CountCharacters(int start, int end);
     3922    //@{
    38793923
    38803924    /**
    38813925        Show or hide the horizontal scroll bar.
    public: 
    38883932    bool GetUseHorizontalScrollBar() const;
    38893933
    38903934    /**
    3891         Show or hide indentation guides.
     3935        Retrieve the display line at the top of the display.
    38923936    */
    3893     void SetIndentationGuides(int indentView);
     3937    int GetFirstVisibleLine() const;
    38943938
    38953939    /**
    3896         Are the indentation guides visible?
     3940        Scroll horizontally and vertically.
    38973941    */
    3898     int GetIndentationGuides() const;
     3942    void LineScroll(int columns, int lines);
    38993943
    39003944    /**
    3901         Set the highlighted indentation guide column.
    3902         0 = no highlighted guide.
     3945        Ensure the caret is visible.
    39033946    */
    3904     void SetHighlightGuide(int column);
     3947    void EnsureCaretVisible();
    39053948
    39063949    /**
    3907         Get the highlighted indentation guide column.
    3908     */
    3909     int GetHighlightGuide() const;
     3950        Scroll the argument positions and the range between them into view giving
     3951        priority to the primary position then the secondary position.
     3952        This may be used to make a search match visible.
    39103953
    3911     /**
    3912         Get the position after the last visible characters on a line.
     3954        @since 3.1.0
    39133955    */
    3914     int GetLineEndPosition(int line) const;
     3956    void ScrollRange(int secondary, int primary);
    39153957
    39163958    /**
    3917         Get the code page used to interpret the bytes of the document as characters.
     3959        Sets the document width assumed for scrolling.
    39183960    */
    3919     int GetCodePage() const;
     3961    void SetScrollWidth(int pixelWidth);
    39203962
    39213963    /**
    3922         Get the foreground colour of the caret.
     3964        Retrieve the document width assumed for scrolling.
    39233965    */
    3924     wxColour GetCaretForeground() const;
     3966    int GetScrollWidth() const;
    39253967
    39263968    /**
    3927         In read-only mode?
     3969        Sets whether the maximum width line displayed is used to set scroll width.
    39283970    */
    3929     bool GetReadOnly() const;
     3971    void SetScrollWidthTracking(bool tracking);
    39303972
    39313973    /**
    3932         Sets the position of the caret.
     3974        Retrieve whether the scroll width tracks wide lines.
    39333975    */
    3934     void SetCurrentPos(int caret);
     3976    bool GetScrollWidthTracking() const;
    39353977
    39363978    /**
    3937         Sets the position that starts the selection - this becomes the anchor.
     3979        Sets the scroll range so that maximum scroll position has
     3980        the last line at the bottom of the view (default).
     3981        Setting this to false allows scrolling one page below the last line.
    39383982    */
    3939     void SetSelectionStart(int anchor);
     3983    void SetEndAtLastLine(bool endAtLastLine);
    39403984
    39413985    /**
    3942         Returns the position at the start of the selection.
     3986        Retrieve whether the maximum scroll position has the last
     3987        line at the bottom of the view.
    39433988    */
    3944     int GetSelectionStart() const;
     3989    bool GetEndAtLastLine() const;
    39453990
    39463991    /**
    3947         Sets the position that ends the selection - this becomes the caret.
     3992        Show or hide the vertical scroll bar.
    39483993    */
    3949     void SetSelectionEnd(int caret);
     3994    void SetUseVerticalScrollBar(bool visible);
    39503995
    39513996    /**
    3952         Returns the position at the end of the selection.
     3997        Is the vertical scroll bar visible?
    39533998    */
    3954     int GetSelectionEnd() const;
     3999    bool GetUseVerticalScrollBar() const;
    39554000
    39564001    /**
    3957         Set caret to a position, while removing any existing selection.
     4002        Scroll so that a display line is at the top of the display.
    39584003    */
    3959     void SetEmptySelection(int caret);
     4004    void SetFirstVisibleLine(int displayLine);
    39604005
    39614006    /**
    3962         Sets the print magnification added to the point size of each style for printing.
     4007        Set the way the display area is determined when a particular line
     4008        is to be moved to by Find, FindNext, GotoLine, etc.
     4009
     4010        The first argument should be a bit list containing one or more of the
     4011        @link wxStyledTextCtrl::wxSTC_VISIBLE_SLOP wxSTC_VISIBLE_* @endlink constants.
    39634012    */
    3964     void SetPrintMagnification(int magnification);
     4013    void SetVisiblePolicy(int visiblePolicy, int visibleSlop);
    39654014
    39664015    /**
    3967         Returns the print magnification.
     4016        Set the xOffset (ie, horizontal scroll position).
    39684017    */
    3969     int GetPrintMagnification() const;
     4018    void SetXOffset(int xOffset);
    39704019
    39714020    /**
    3972         Modify colours when printing for clearer printed text.
     4021        Get the xOffset (ie, horizontal scroll position).
    39734022    */
    3974     void SetPrintColourMode(int mode);
     4023    int GetXOffset() const;
    39754024
    39764025    /**
    3977         Returns the print colour mode.
     4026        Set the way the caret is kept visible when going sideways.
     4027        The exclusion zone is given in pixels.
     4028
     4029        The first argument should be a bit list containing one or more of the
     4030        @link wxStyledTextCtrl::wxSTC_CARET_SLOP wxSTC_CARET_* @endlink constants.
    39784031    */
    3979     int GetPrintColourMode() const;
     4032    void SetXCaretPolicy(int caretPolicy, int caretSlop);
    39804033
    39814034    /**
    3982         Find some text in the document.
     4035        Set the way the line the caret is on is kept visible.
     4036        The exclusion zone is given in lines.
     4037
     4038        The first argument should be a bit list containing one or more of the
     4039        @link wxStyledTextCtrl::wxSTC_CARET_SLOP wxSTC_CARET_* @endlink constants.
    39834040    */
    3984     int FindText(int minPos, int maxPos, const wxString& text, int flags=0);
     4041    void SetYCaretPolicy(int caretPolicy, int caretSlop);
     4042
     4043    //@}
    39854044
    39864045    /**
    3987         On Windows, will draw the document into a display context such as a printer.
     4046        @member_group_name{WhiteSpace, White space}
    39884047    */
    3989     int FormatRange(bool   doDraw,
    3990                int    startPos,
    3991                int    endPos,
    3992                wxDC*  draw,
    3993                wxDC*  target,
    3994                wxRect renderRect,
    3995                wxRect pageRect);
     4048    //@{
    39964049
    39974050    /**
    3998         Retrieve the display line at the top of the display.
     4051        Are white space characters currently visible?
     4052        Returns one of wxSTC_WS_* constants.
    39994053    */
    4000     int GetFirstVisibleLine() const;
     4054    int GetViewWhiteSpace() const;
    40014055
    40024056    /**
    4003         Retrieve the contents of a line.
     4057        Make white space characters invisible, always visible or visible outside indentation.
     4058
     4059        The input should be one of the
     4060        @link wxStyledTextCtrl::wxSTC_WS_INVISIBLE wxSTC_WS_* @endlink  constants.
    40044061    */
    4005     wxString GetLine(int line) const;
     4062    void SetViewWhiteSpace(int viewWS);
    40064063
    40074064    /**
    4008         Returns the number of lines in the document. There is always at least one.
     4065        Retrieve the current tab draw mode.
     4066        Returns one of wxSTC_TD_* constants.
     4067
     4068        @since 3.1.1
    40094069    */
    4010     int GetLineCount() const;
     4070    int GetTabDrawMode() const;
    40114071
    40124072    /**
    4013         Sets the size in pixels of the left margin.
     4073        Set how tabs are drawn when visible.
     4074
     4075        The input should be one of the
     4076        @link wxStyledTextCtrl::wxSTC_TD_LONGARROW wxSTC_TD_* @endlink constants.
     4077        @since 3.1.1
    40144078    */
    4015     void SetMarginLeft(int pixelWidth);
     4079    void SetTabDrawMode(int tabDrawMode);
    40164080
    40174081    /**
    4018         Returns the size in pixels of the left margin.
     4082        Set the foreground colour of all whitespace and whether to use this setting.
    40194083    */
    4020     int GetMarginLeft() const;
     4084    void SetWhitespaceForeground(bool useSetting, const wxColour& fore);
    40214085
    40224086    /**
    4023         Sets the size in pixels of the right margin.
     4087        Set the background colour of all whitespace and whether to use this setting.
    40244088    */
    4025     void SetMarginRight(int pixelWidth);
     4089    void SetWhitespaceBackground(bool useSetting, const wxColour& back);
    40264090
    40274091    /**
    4028         Returns the size in pixels of the right margin.
     4092        Set the size of the dots used to mark space characters.
    40294093    */
    4030     int GetMarginRight() const;
     4094    void SetWhitespaceSize(int size);
    40314095
    40324096    /**
    4033         Is the document different from when it was last saved?
     4097        Get the size of the dots used to mark space characters.
    40344098    */
    4035     bool GetModify() const;
     4099    int GetWhitespaceSize() const;
    40364100
    40374101    /**
    4038         Retrieve the selected text.
     4102        Set extra ascent for each line
    40394103    */
    4040     wxString GetSelectedText();
     4104    void SetExtraAscent(int extraAscent);
    40414105
    40424106    /**
    4043         Retrieve a range of text.
     4107        Get extra ascent for each line
    40444108    */
    4045     wxString GetTextRange(int startPos, int endPos);
     4109    int GetExtraAscent() const;
    40464110
    40474111    /**
    4048         Draw the selection in normal style or with selection highlighted.
     4112        Set extra descent for each line
    40494113    */
    4050     void HideSelection(bool hide);
     4114    void SetExtraDescent(int extraDescent);
    40514115
    40524116    /**
    4053         Retrieve the point in the window where a position is displayed.
     4117        Get extra descent for each line
    40544118    */
    4055     wxPoint PointFromPosition(int pos);
     4119    int GetExtraDescent() const;
     4120
     4121    //@}
    40564122
    40574123    /**
    4058         Retrieve the line containing a position.
     4124        @member_group_name{Cursor, Cursor}
    40594125    */
    4060     int LineFromPosition(int pos) const;
     4126    //@{
    40614127
    40624128    /**
    4063         Retrieve the position at the start of a line.
     4129        Sets the cursor to one of the wxSTC_CURSOR* values.
    40644130    */
    4065     int PositionFromLine(int line) const;
     4131    void SetSTCCursor(int cursorType);
    40664132
    40674133    /**
    4068         Scroll horizontally and vertically.
     4134        Get cursor type.
     4135
     4136        The return value will be one of the
     4137        @link wxStyledTextCtrl::wxSTC_CURSORNORMAL wxSTC_CURSOR* @endlink constants.
    40694138    */
    4070     void LineScroll(int columns, int lines);
     4139    int GetSTCCursor() const;
     4140
     4141    //@}
    40714142
    40724143    /**
    4073         Ensure the caret is visible.
     4144        @member_group_name{MouseCapture, Mouse capture}
    40744145    */
    4075     void EnsureCaretVisible();
     4146    //@{
    40764147
    40774148    /**
    4078         Scroll the argument positions and the range between them into view giving
    4079         priority to the primary position then the secondary position.
    4080         This may be used to make a search match visible.
     4149        Set whether the mouse is captured when its button is pressed.
    40814150    */
    4082     void ScrollRange(int secondary, int primary);
     4151    void SetMouseDownCaptures(bool captures);
    40834152
    40844153    /**
    4085         Replace the selected text with the argument text.
     4154        Get whether mouse gets captured.
    40864155    */
    4087     void ReplaceSelection(const wxString& text);
     4156    bool GetMouseDownCaptures() const;
    40884157
    40894158    /**
    4090         Set to read only or read write.
     4159        Set whether the mouse wheel can be active outside the window.
     4160
     4161        @since 3.1.1
    40914162    */
    4092     void SetReadOnly(bool readOnly);
     4163    void SetMouseWheelCaptures(bool captures);
    40934164
    40944165    /**
    4095         Will a paste succeed?
     4166        Get whether mouse wheel can be active outside the window.
     4167
     4168        @since 3.1.1
    40964169    */
    4097     bool CanPaste() const;
     4170    bool GetMouseWheelCaptures() const;
     4171
     4172    //@}
    40984173
    40994174    /**
    4100         Are there any undoable actions in the undo history?
     4175        @member_group_name{LineEndings, Line endings}
    41014176    */
    4102     bool CanUndo() const;
     4177    //@{
    41034178
    41044179    /**
    4105         Delete the undo history.
     4180        Convert all line endings in the document to one mode.
    41064181    */
    4107     void EmptyUndoBuffer();
     4182    void ConvertEOLs(int eolMode);
    41084183
    41094184    /**
    4110         Undo one action in the undo history.
     4185        Retrieve the current end of line mode - one of wxSTC_EOL_CRLF, wxSTC_EOL_CR, or wxSTC_EOL_LF.
    41114186    */
    4112     void Undo();
     4187    int GetEOLMode() const;
    41134188
    41144189    /**
    4115         Cut the selection to the clipboard.
     4190        Set the current end of line mode.
     4191
     4192        The input should be one of the
     4193        @link wxStyledTextCtrl::wxSTC_EOL_CRLF wxSTC_EOL_* @endlink  constants.
    41164194    */
    4117     void Cut();
     4195    void SetEOLMode(int eolMode);
    41184196
    41194197    /**
    4120         Copy the selection to the clipboard.
     4198        Are the end of line characters visible?
    41214199    */
    4122     void Copy();
     4200    bool GetViewEOL() const;
    41234201
    41244202    /**
    4125         Paste the contents of the clipboard into the document replacing the selection.
     4203        Make the end of line characters visible or invisible.
    41264204    */
    4127     void Paste();
     4205    void SetViewEOL(bool visible);
    41284206
    41294207    /**
    4130         Clear the selection.
     4208        Set the line end types that the application wants to use. May not be used if incompatible with lexer or encoding.
     4209
     4210        The input should be one of the
     4211        @link wxStyledTextCtrl::wxSTC_LINE_END_TYPE_DEFAULT wxSTC_LINE_END_TYPE_* @endlink constants.
     4212        @since 3.1.0
    41314213    */
    4132     void Clear();
     4214    void SetLineEndTypesAllowed(int lineEndBitSet);
    41334215
    41344216    /**
    4135         Replace the contents of the document with the argument text.
     4217        Get the line end types currently allowed.
     4218
     4219        The return value will be one of the
     4220        @link wxStyledTextCtrl::wxSTC_LINE_END_TYPE_DEFAULT wxSTC_LINE_END_TYPE_* @endlink constants.
     4221        @since 3.1.0
    41364222    */
    4137     void SetText(const wxString& text);
     4223    int GetLineEndTypesAllowed() const;
    41384224
    41394225    /**
    4140         Retrieve all the text in the document.
     4226        Get the line end types currently recognised. May be a subset of the allowed types due to lexer limitation.
     4227
     4228        The return value will be one of the
     4229        @link wxStyledTextCtrl::wxSTC_LINE_END_TYPE_DEFAULT wxSTC_LINE_END_TYPE_* @endlink constants.
     4230        @since 3.1.0
    41414231    */
    4142     wxString GetText() const;
     4232    int GetLineEndTypesActive() const;
    41434233
    41444234    /**
    4145         Retrieve the number of characters in the document.
     4235        Bit set of LineEndType enumertion for which line ends beyond the standard
     4236        LF, CR, and CRLF are supported by the lexer.
     4237
     4238        The return value will be a bit list containing one or more of the
     4239        @link wxStyledTextCtrl::wxSTC_LINE_END_TYPE_DEFAULT wxSTC_LINE_END_TYPE_* @endlink constants.
     4240        @since 3.1.0
    41464241    */
    4147     int GetTextLength() const;
     4242    int GetLineEndTypesSupported() const;
     4243
     4244    //@}
    41484245
    41494246    /**
    4150         Retrieve a pointer to a function that processes messages for this Scintilla.
     4247        @member_group_name{Words, Words}
    41514248    */
    4152     void* GetDirectFunction() const;
     4249    //@{
    41534250
    41544251    /**
    4155         Retrieve a pointer value to use as the first argument when calling
    4156         the function returned by GetDirectFunction.
     4252        Set the set of characters making up words for when moving or selecting by word.
     4253        First sets defaults like SetCharsDefault.
    41574254    */
    4158     void* GetDirectPointer() const;
     4255    void SetWordChars(const wxString& characters);
    41594256
    41604257    /**
    4161         Set to overtype (true) or insert mode.
     4258        Get the set of characters making up words for when moving or selecting by word.
    41624259    */
    4163     void SetOvertype(bool overType);
     4260    wxString GetWordChars() const;
    41644261
    41654262    /**
    4166         Returns true if overtype mode is active otherwise false is returned.
     4263        Get position of start of word.
    41674264    */
    4168     bool GetOvertype() const;
     4265    int WordStartPosition(int pos, bool onlyWordCharacters);
    41694266
    41704267    /**
    4171         Set the width of the insert mode caret.
     4268        Get position of end of word.
    41724269    */
    4173     void SetCaretWidth(int pixelWidth);
     4270    int WordEndPosition(int pos, bool onlyWordCharacters);
    41744271
    41754272    /**
    4176         Returns the width of the insert mode caret.
     4273        Is the range start..end considered a word?
     4274
     4275        @since 3.1.1
    41774276    */
    4178     int GetCaretWidth() const;
     4277    bool IsRangeWord(int start, int end);
    41794278
    41804279    /**
    4181         Sets the position that starts the target which is used for updating the
    4182         document without affecting the scroll position.
     4280        Set the set of characters making up whitespace for when moving or selecting by word.
     4281        Should be called after SetWordChars.
    41834282    */
    4184     void SetTargetStart(int start);
     4283    void SetWhitespaceChars(const wxString& characters);
    41854284
    41864285    /**
    4187         Get the position that starts the target.
     4286        Get the set of characters making up whitespace for when moving or selecting by word.
    41884287    */
    4189     int GetTargetStart() const;
     4288    wxString GetWhitespaceChars() const;
    41904289
    41914290    /**
    4192         Sets the position that ends the target which is used for updating the
    4193         document without affecting the scroll position.
     4291        Set the set of characters making up punctuation characters
     4292        Should be called after SetWordChars.
    41944293    */
    4195     void SetTargetEnd(int end);
     4294    void SetPunctuationChars(const wxString& characters);
    41964295
    41974296    /**
    4198         Get the position that ends the target.
     4297        Get the set of characters making up punctuation characters
    41994298    */
    4200     int GetTargetEnd() const;
     4299    wxString GetPunctuationChars() const;
    42014300
    42024301    /**
    4203         Sets both the start and end of the target in one call.
     4302        Reset the set of characters for whitespace and word characters to the defaults.
    42044303    */
    4205     void SetTargetRange(int start, int end);
     4304    void SetCharsDefault();
     4305
     4306    //@}
    42064307
    42074308    /**
    4208         Retrieve the text in the target.
     4309        @member_group_name{Styling, Styling}
    42094310    */
    4210     wxString GetTargetText() const;
     4311    //@{
    42114312
    42124313    /**
    4213         Make the target range start and end be the same as the selection range start and end.
     4314        Retrieve the position of the last correctly styled character.
    42144315    */
    4215     void TargetFromSelection();
     4316    int GetEndStyled() const;
    42164317
    42174318    /**
    4218         Sets the target to the whole document.
     4319        Set the current styling position to start.
     4320        The unused parameter is no longer used and should be set to 0.
    42194321    */
    4220     void TargetWholeDocument();
     4322    void StartStyling(int start, int unused=0);
    42214323
    42224324    /**
    4223         Replace the target text with the argument text.
    4224         Text is counted so it can contain NULs.
    4225         Returns the length of the replacement text.
     4325        Change style from current styling position for length characters to a style
     4326        and move the current styling position to after this newly styled segment.
    42264327    */
    4227     int ReplaceTarget(const wxString& text);
     4328    void SetStyling(int length, int style);
    42284329
    42294330    /**
    4230         Replace the target text with the argument text after \\d processing.
    4231         Text is counted so it can contain NULs.
    4232         Looks for \\d where d is between 1 and 9 and replaces these with the strings
    4233         matched in the last search operation which were surrounded by \( and \).
    4234         Returns the length of the replacement text including any change
    4235         caused by processing the \\d patterns.
     4331        Set the styles for a segment of the document.
    42364332    */
    4237     int ReplaceTargetRE(const wxString& text);
     4333    void SetStyleBytes(int length, char* styleBytes);
    42384334
    42394335    /**
    4240         Search for a counted string in the target and set the target to the found
    4241         range. Text is counted so it can contain NULs.
    4242         Returns length of range or -1 for failure in which case target is not moved.
     4336        Used to hold extra styling information for each line.
    42434337    */
    4244     int SearchInTarget(const wxString& text);
     4338    void SetLineState(int line, int state);
    42454339
    42464340    /**
    4247         Set the search flags used by SearchInTarget.
     4341        Retrieve the extra styling information for a line.
    42484342    */
    4249     void SetSearchFlags(int searchFlags);
     4343    int GetLineState(int line) const;
    42504344
    42514345    /**
    4252         Get the search flags used by SearchInTarget.
     4346        Retrieve the last line number that has line state.
    42534347    */
    4254     int GetSearchFlags() const;
     4348    int GetMaxLineState() const;
    42554349
    42564350    /**
    4257         Show a call tip containing a definition near position pos.
     4351        Sets limits to idle styling.
     4352
     4353        The input should be one of the
     4354        @link wxStyledTextCtrl::wxSTC_IDLESTYLING_NONE wxSTC_IDLESTYLING_* @endlink constants.
     4355        @since 3.1.1
    42584356    */
    4259     void CallTipShow(int pos, const wxString& definition);
     4357    void SetIdleStyling(int idleStyling);
    42604358
    42614359    /**
    4262         Remove the call tip from the screen.
     4360        Retrieve the limits to idle styling.
     4361
     4362        The return value will be one of the
     4363        @link wxStyledTextCtrl::wxSTC_IDLESTYLING_NONE wxSTC_IDLESTYLING_* @endlink constants.
     4364        @since 3.1.1
    42634365    */
    4264     void CallTipCancel();
     4366    int GetIdleStyling() const;
     4367
     4368    //@}
    42654369
    42664370    /**
    4267         Is there an active call tip?
     4371        @member_group_name{StyleDefinition, Style definition}
    42684372    */
    4269     bool CallTipActive();
     4373    //@{
    42704374
    42714375    /**
    4272         Retrieve the position where the caret was before displaying the call tip.
     4376        Clear all the styles and make equivalent to the global default style.
    42734377    */
    4274     int CallTipPosAtStart();
     4378    void StyleClearAll();
    42754379
    42764380    /**
    4277         Set the start position in order to change when backspacing removes the calltip.
     4381        Set the foreground colour of a style.
    42784382    */
    4279     void CallTipSetPosAtStart(int posStart);
     4383    void StyleSetForeground(int style, const wxColour& fore);
    42804384
    42814385    /**
    4282         Highlight a segment of the definition.
     4386        Set the background colour of a style.
    42834387    */
    4284     void CallTipSetHighlight(int highlightStart, int highlightEnd);
     4388    void StyleSetBackground(int style, const wxColour& back);
    42854389
    42864390    /**
    4287         Set the background colour for the call tip.
     4391        Set a style to be bold or not.
    42884392    */
    4289     void CallTipSetBackground(const wxColour& back);
     4393    void StyleSetBold(int style, bool bold);
    42904394
    42914395    /**
    4292         Set the foreground colour for the call tip.
     4396        Set a style to be italic or not.
    42934397    */
    4294     void CallTipSetForeground(const wxColour& fore);
     4398    void StyleSetItalic(int style, bool italic);
    42954399
    42964400    /**
    4297         Set the foreground colour for the highlighted part of the call tip.
     4401        Set the size of characters of a style.
    42984402    */
    4299     void CallTipSetForegroundHighlight(const wxColour& fore);
     4403    void StyleSetSize(int style, int sizePoints);
    43004404
    43014405    /**
    4302         Enable use of STYLE_CALLTIP and set call tip tab size in pixels.
     4406        Set the font of a style.
    43034407    */
    4304     void CallTipUseStyle(int tabSize);
     4408    void StyleSetFaceName(int style, const wxString& fontName);
    43054409
    43064410    /**
    4307         Set position of calltip, above or below text.
     4411        Set a style to have its end of line filled or not.
    43084412    */
    4309     void CallTipSetPosition(bool above);
     4413    void StyleSetEOLFilled(int style, bool eolFilled);
    43104414
    43114415    /**
    4312         Find the display line of a document line taking hidden lines into account.
     4416        Reset the default style to its state at startup
    43134417    */
    4314     int VisibleFromDocLine(int docLine);
     4418    void StyleResetDefault();
    43154419
    43164420    /**
    4317         Find the document line of a display line taking hidden lines into account.
     4421        Set a style to be underlined or not.
    43184422    */
    4319     int DocLineFromVisible(int displayLine);
     4423    void StyleSetUnderline(int style, bool underline);
    43204424
    43214425    /**
    4322         The number of display lines needed to wrap a document line
     4426        Get the foreground colour of a style.
    43234427    */
    4324     int WrapCount(int docLine);
     4428    wxColour StyleGetForeground(int style) const;
    43254429
    43264430    /**
    4327         Set the fold level of a line.
    4328         This encodes an integer level along with flags indicating whether the
    4329         line is a header and whether it is effectively white space.
     4431        Get the background colour of a style.
    43304432    */
    4331     void SetFoldLevel(int line, int level);
     4433    wxColour StyleGetBackground(int style) const;
    43324434
    43334435    /**
    4334         Retrieve the fold level of a line.
     4436        Get is a style bold or not.
    43354437    */
    4336     int GetFoldLevel(int line) const;
     4438    bool StyleGetBold(int style) const;
    43374439
    43384440    /**
    4339         Find the last child line of a header line.
     4441        Get is a style italic or not.
    43404442    */
    4341     int GetLastChild(int line, int level) const;
     4443    bool StyleGetItalic(int style) const;
    43424444
    43434445    /**
    4344         Find the parent line of a child line.
     4446        Get the size of characters of a style.
    43454447    */
    4346     int GetFoldParent(int line) const;
     4448    int StyleGetSize(int style) const;
    43474449
    43484450    /**
    4349         Make a range of lines visible.
     4451        Get the font facename of a style
    43504452    */
    4351     void ShowLines(int lineStart, int lineEnd);
     4453    wxString StyleGetFaceName(int style);
    43524454
    43534455    /**
    4354         Make a range of lines invisible.
     4456        Get is a style to have its end of line filled or not.
    43554457    */
    4356     void HideLines(int lineStart, int lineEnd);
     4458    bool StyleGetEOLFilled(int style) const;
    43574459
    43584460    /**
    4359         Is a line visible?
     4461        Get is a style underlined or not.
    43604462    */
    4361     bool GetLineVisible(int line) const;
     4463    bool StyleGetUnderline(int style) const;
    43624464
    43634465    /**
    4364         Are all lines visible?
     4466        Get is a style mixed case, or to force upper or lower case.
     4467
     4468        The return value will be one of the
     4469        @link wxStyledTextCtrl::wxSTC_CASE_MIXED wxSTC_CASE_* @endlink constants.
    43654470    */
    4366     bool GetAllLinesVisible() const;
     4471    int StyleGetCase(int style) const;
    43674472
    43684473    /**
    4369         Show the children of a header line.
     4474        Get the character get of the font in a style.
    43704475    */
    4371     void SetFoldExpanded(int line, bool expanded);
     4476    int StyleGetCharacterSet(int style) const;
    43724477
    43734478    /**
    4374         Is a header line expanded?
     4479        Get is a style visible or not.
    43754480    */
    4376     bool GetFoldExpanded(int line) const;
     4481    bool StyleGetVisible(int style) const;
    43774482
    43784483    /**
    4379         Switch a header line between expanded and contracted.
     4484        Get is a style changeable or not (read only).
     4485        Experimental feature, currently buggy.
    43804486    */
    4381     void ToggleFold(int line);
     4487    bool StyleGetChangeable(int style) const;
    43824488
    43834489    /**
    4384         Switch a header line between expanded and contracted and show some text after the line.
     4490        Get is a style a hotspot or not.
    43854491    */
    4386     void ToggleFoldShowText(int line, const wxString& text);
     4492    bool StyleGetHotSpot(int style) const;
    43874493
    43884494    /**
    4389         Set the style of fold display text
     4495        Set a style to be mixed case, or to force upper or lower case.
     4496
     4497        The second argument should be one of the
     4498        @link wxStyledTextCtrl::wxSTC_CASE_MIXED wxSTC_CASE_* @endlink constants.
    43904499    */
    4391     void FoldDisplayTextSetStyle(int style);
     4500    void StyleSetCase(int style, int caseVisible);
    43924501
    43934502    /**
    4394         Expand or contract a fold header.
     4503        Set the size of characters of a style. Size is in points multiplied by 100.
    43954504    */
    4396     void FoldLine(int line, int action);
     4505    void StyleSetSizeFractional(int style, int sizeHundredthPoints);
    43974506
    43984507    /**
    4399         Expand or contract a fold header and its children.
     4508        Get the size of characters of a style in points multiplied by 100
    44004509    */
    4401     void FoldChildren(int line, int action);
     4510    int StyleGetSizeFractional(int style) const;
    44024511
    44034512    /**
    4404         Expand a fold header and all children. Use the level argument instead of the line's current level.
     4513        Set the weight of characters of a style.
     4514
     4515        The second argument can be an integer or one of the
     4516        @link wxStyledTextCtrl::wxSTC_WEIGHT_NORMAL wxSTC_WEIGHT_* @endlink constants.
    44054517    */
    4406     void ExpandChildren(int line, int level);
     4518    void StyleSetWeight(int style, int weight);
    44074519
    44084520    /**
    4409         Expand or contract all fold headers.
     4521        Get the weight of characters of a style.
     4522
     4523        The return value will be an integer that is possibly one of the
     4524        @link wxStyledTextCtrl::wxSTC_WEIGHT_NORMAL wxSTC_WEIGHT_* @endlink constants.
    44104525    */
    4411     void FoldAll(int action);
     4526    int StyleGetWeight(int style) const;
    44124527
    44134528    /**
    4414         Ensure a particular line is visible by expanding any header line hiding it.
     4529        Set the character set of the font in a style.
     4530
     4531        Converts the Scintilla character set values to a wxFontEncoding.
    44154532    */
    4416     void EnsureVisible(int line);
     4533    void StyleSetCharacterSet(int style, int characterSet);
    44174534
    44184535    /**
    4419         Set automatic folding behaviours.
     4536        Set a style to be a hotspot or not.
    44204537    */
    4421     void SetAutomaticFold(int automaticFold);
     4538    void StyleSetHotSpot(int style, bool hotspot);
    44224539
    44234540    /**
    4424         Get automatic folding behaviours.
     4541        Set a style to be visible or not.
    44254542    */
    4426     int GetAutomaticFold() const;
     4543    void StyleSetVisible(int style, bool visible);
    44274544
    44284545    /**
    4429         Set some style options for folding.
     4546        Set a style to be changeable or not (read only).
     4547        Experimental feature, currently buggy.
    44304548    */
    4431     void SetFoldFlags(int flags);
     4549    void StyleSetChangeable(int style, bool changeable);
    44324550
    4433     /**
    4434         Ensure a particular line is visible by expanding any header line hiding it.
    4435         Use the currently set visibility policy to determine which range to display.
    4436     */
    4437     void EnsureVisibleEnforcePolicy(int line);
     4551    //@}
    44384552
    44394553    /**
    4440         Sets whether a tab pressed when caret is within indentation indents.
     4554        @member_group_name{CaretAndSelectionStyles, Caret selection and hotspot styles}
    44414555    */
    4442     void SetTabIndents(bool tabIndents);
     4556    //@{
    44434557
    44444558    /**
    4445         Does a tab pressed when caret is within indentation indent?
     4559        Set the foreground colour of the main and additional selections and whether to use this setting.
    44464560    */
    4447     bool GetTabIndents() const;
     4561    void SetSelForeground(bool useSetting, const wxColour& fore);
    44484562
    44494563    /**
    4450         Sets whether a backspace pressed when caret is within indentation unindents.
     4564        Set the background colour of the main and additional selections and whether to use this setting.
    44514565    */
    4452     void SetBackSpaceUnIndents(bool bsUnIndents);
     4566    void SetSelBackground(bool useSetting, const wxColour& back);
    44534567
    44544568    /**
    4455         Does a backspace pressed when caret is within indentation unindent?
     4569        Get the alpha of the selection.
    44564570    */
    4457     bool GetBackSpaceUnIndents() const;
     4571    int GetSelAlpha() const;
    44584572
    44594573    /**
    4460         Sets the time the mouse must sit still to generate a mouse dwell event.
     4574        Set the alpha of the selection.
    44614575    */
    4462     void SetMouseDwellTime(int periodMilliseconds);
     4576    void SetSelAlpha(int alpha);
    44634577
    44644578    /**
    4465         Retrieve the time the mouse must sit still to generate a mouse dwell event.
     4579        Is the selection end of line filled?
    44664580    */
    4467     int GetMouseDwellTime() const;
     4581    bool GetSelEOLFilled() const;
    44684582
    44694583    /**
    4470         Get position of start of word.
     4584        Set the selection to have its end of line filled or not.
    44714585    */
    4472     int WordStartPosition(int pos, bool onlyWordCharacters);
     4586    void SetSelEOLFilled(bool filled);
    44734587
    44744588    /**
    4475         Get position of end of word.
     4589        Set the foreground colour of the caret.
    44764590    */
    4477     int WordEndPosition(int pos, bool onlyWordCharacters);
     4591    void SetCaretForeground(const wxColour& fore);
    44784592
    44794593    /**
    4480         Is the range start..end considered a word?
     4594        Get the time in milliseconds that the caret is on and off.
    44814595    */
    4482     bool IsRangeWord(int start, int end);
     4596    int GetCaretPeriod() const;
    44834597
    44844598    /**
    4485         Sets limits to idle styling.
     4599        Get the time in milliseconds that the caret is on and off. 0 = steady on.
    44864600    */
    4487     void SetIdleStyling(int idleStyling);
     4601    void SetCaretPeriod(int periodMilliseconds);
    44884602
    44894603    /**
    4490         Retrieve the limits to idle styling.
     4604        Is the background of the line containing the caret in a different colour?
    44914605    */
    4492     int GetIdleStyling() const;
     4606    bool GetCaretLineVisible() const;
    44934607
    44944608    /**
    4495         Sets whether text is word wrapped.
     4609        Display the background of the line containing the caret in a different colour.
    44964610    */
    4497     void SetWrapMode(int wrapMode);
     4611    void SetCaretLineVisible(bool show);
    44984612
    44994613    /**
    4500         Retrieve whether text is word wrapped.
     4614        Get the colour of the background of the line containing the caret.
    45014615    */
    4502     int GetWrapMode() const;
     4616    wxColour GetCaretLineBackground() const;
    45034617
    45044618    /**
    4505         Set the display mode of visual flags for wrapped lines.
     4619        Set the colour of the background of the line containing the caret.
    45064620    */
    4507     void SetWrapVisualFlags(int wrapVisualFlags);
     4621    void SetCaretLineBackground(const wxColour& back);
    45084622
    45094623    /**
    4510         Retrive the display mode of visual flags for wrapped lines.
     4624        Get the foreground colour of the caret.
    45114625    */
    4512     int GetWrapVisualFlags() const;
     4626    wxColour GetCaretForeground() const;
    45134627
    45144628    /**
    4515         Set the location of visual flags for wrapped lines.
     4629        Set the width of the insert mode caret.
    45164630    */
    4517     void SetWrapVisualFlagsLocation(int wrapVisualFlagsLocation);
     4631    void SetCaretWidth(int pixelWidth);
    45184632
    45194633    /**
    4520         Retrive the location of visual flags for wrapped lines.
     4634        Returns the width of the insert mode caret.
    45214635    */
    4522     int GetWrapVisualFlagsLocation() const;
     4636    int GetCaretWidth() const;
    45234637
    45244638    /**
    4525         Set the start indent for wrapped lines.
     4639        Set a fore colour for active hotspots.
    45264640    */
    4527     void SetWrapStartIndent(int indent);
     4641    void SetHotspotActiveForeground(bool useSetting, const wxColour& fore);
    45284642
    45294643    /**
    4530         Retrive the start indent for wrapped lines.
     4644        Get the fore colour for active hotspots.
    45314645    */
    4532     int GetWrapStartIndent() const;
     4646    wxColour GetHotspotActiveForeground() const;
    45334647
    45344648    /**
    4535         Sets how wrapped sublines are placed. Default is fixed.
     4649        Set a back colour for active hotspots.
    45364650    */
    4537     void SetWrapIndentMode(int wrapIndentMode);
     4651    void SetHotspotActiveBackground(bool useSetting, const wxColour& back);
    45384652
    45394653    /**
    4540         Retrieve how wrapped sublines are placed. Default is fixed.
     4654        Get the back colour for active hotspots.
    45414655    */
    4542     int GetWrapIndentMode() const;
     4656    wxColour GetHotspotActiveBackground() const;
    45434657
    45444658    /**
    4545         Sets the degree of caching of layout information.
     4659        Enable / Disable underlining active hotspots.
    45464660    */
    4547     void SetLayoutCache(int cacheMode);
     4661    void SetHotspotActiveUnderline(bool underline);
    45484662
    45494663    /**
    4550         Retrieve the degree of caching of layout information.
     4664        Get whether underlining for active hotspots.
    45514665    */
    4552     int GetLayoutCache() const;
     4666    bool GetHotspotActiveUnderline() const;
    45534667
    45544668    /**
    4555         Sets the document width assumed for scrolling.
     4669        Limit hotspots to single line so hotspots on two lines don't merge.
    45564670    */
    4557     void SetScrollWidth(int pixelWidth);
     4671    void SetHotspotSingleLine(bool singleLine);
    45584672
    45594673    /**
    4560         Retrieve the document width assumed for scrolling.
     4674        Get the HotspotSingleLine property
    45614675    */
    4562     int GetScrollWidth() const;
     4676    bool GetHotspotSingleLine() const;
    45634677
    45644678    /**
    4565         Sets whether the maximum width line displayed is used to set scroll width.
     4679        Can the caret preferred x position only be changed by explicit movement commands?
     4680
     4681        The return value will be one of the
     4682        @link wxStyledTextCtrl::wxSTC_CARETSTICKY_OFF wxSTC_CARETSTICKY_* @endlink constants.
    45664683    */
    4567     void SetScrollWidthTracking(bool tracking);
     4684    int GetCaretSticky() const;
    45684685
    45694686    /**
    4570         Retrieve whether the scroll width tracks wide lines.
     4687        Stop the caret preferred x position changing when the user types.
     4688
     4689        The input should be one of the
     4690        @link wxStyledTextCtrl::wxSTC_CARETSTICKY_OFF wxSTC_CARETSTICKY_* @endlink constants.
    45714691    */
    4572     bool GetScrollWidthTracking() const;
     4692    void SetCaretSticky(int useCaretStickyBehaviour);
    45734693
    45744694    /**
    4575         Measure the pixel width of some text in a particular style.
    4576         NUL terminated text argument.
    4577         Does not handle tab or control characters.
     4695        Switch between sticky and non-sticky: meant to be bound to a key.
    45784696    */
    4579     int TextWidth(int style, const wxString& text);
     4697    void ToggleCaretSticky();
    45804698
    45814699    /**
    4582         Sets the scroll range so that maximum scroll position has
    4583         the last line at the bottom of the view (default).
    4584         Setting this to false allows scrolling one page below the last line.
     4700        Set background alpha of the caret line.
    45854701    */
    4586     void SetEndAtLastLine(bool endAtLastLine);
     4702    void SetCaretLineBackAlpha(int alpha);
    45874703
    45884704    /**
    4589         Retrieve whether the maximum scroll position has the last
    4590         line at the bottom of the view.
     4705        Get the background alpha of the caret line.
    45914706    */
    4592     bool GetEndAtLastLine() const;
     4707    int GetCaretLineBackAlpha() const;
    45934708
    45944709    /**
    4595         Retrieve the height of a particular line of text in pixels.
     4710        Set the style of the caret to be drawn.
     4711
     4712        The input should be one of the
     4713        @link wxStyledTextCtrl::wxSTC_CARETSTYLE_INVISIBLE wxSTC_CARETSTYLE_* @endlink constants.
    45964714    */
    4597     int TextHeight(int line);
     4715    void SetCaretStyle(int caretStyle);
    45984716
    45994717    /**
    4600         Show or hide the vertical scroll bar.
     4718        Returns the current style of the caret.
     4719
     4720        The return value will be one of the
     4721        @link wxStyledTextCtrl::wxSTC_CARETSTYLE_INVISIBLE wxSTC_CARETSTYLE_* @endlink constants.
    46014722    */
    4602     void SetUseVerticalScrollBar(bool visible);
     4723    int GetCaretStyle() const;
    46034724
    46044725    /**
    4605         Is the vertical scroll bar visible?
     4726        Is the caret line always visible?
     4727
     4728        @since 3.1.0
    46064729    */
    4607     bool GetUseVerticalScrollBar() const;
     4730    bool GetCaretLineVisibleAlways() const;
    46084731
    46094732    /**
    4610         Append a string to the end of the document without changing the selection.
     4733        Sets the caret line to always visible.
     4734
     4735        @since 3.1.0
    46114736    */
    4612     void AppendText(const wxString& text);
     4737    void SetCaretLineVisibleAlways(bool alwaysVisible);
     4738
     4739    //@}
    46134740
    46144741    /**
    4615         Is drawing done in two phases with backgrounds drawn before foregrounds?
     4742        @member_group_name{CharacterRepresentations, Character representations}
    46164743    */
    4617     bool GetTwoPhaseDraw() const;
     4744    //@{
    46184745
    46194746    /**
    4620         In twoPhaseDraw mode, drawing is performed in two phases, first the background
    4621         and then the foreground. This avoids chopping off characters that overlap the next run.
     4747        Change the way control characters are displayed:
     4748        If symbol is < 32, keep the drawn way, else, use the given character.
    46224749    */
    4623     void SetTwoPhaseDraw(bool twoPhase);
     4750    void SetControlCharSymbol(int symbol);
    46244751
    46254752    /**
    4626         How many phases is drawing done in?
     4753        Get the way control characters are displayed.
    46274754    */
    4628     int GetPhasesDraw() const;
     4755    int GetControlCharSymbol() const;
    46294756
    46304757    /**
    4631         In one phase draw, text is drawn in a series of rectangular blocks with no overlap.
    4632         In two phase draw, text is drawn in a series of lines allowing runs to overlap horizontally.
    4633         In multiple phase draw, each element is drawn over the whole drawing area, allowing text
    4634         to overlap from one line to the next.
     4758        Set the way a character is drawn.
     4759
     4760        @since 3.1.0
    46354761    */
    4636     void SetPhasesDraw(int phases);
     4762    void SetRepresentation(const wxString& encodedCharacter, const wxString& representation);
    46374763
    46384764    /**
    4639         Scroll so that a display line is at the top of the display.
     4765        Set the way a character is drawn.
     4766
     4767        @since 3.1.0
    46404768    */
    4641     void SetFirstVisibleLine(int displayLine);
     4769    wxString GetRepresentation(const wxString& encodedCharacter) const;
    46424770
    46434771    /**
    4644         Change the effect of pasting when there are multiple selections.
     4772        Remove a character representation.
     4773
     4774        @since 3.1.0
    46454775    */
    4646     void SetMultiPaste(int multiPaste);
     4776    void ClearRepresentation(const wxString& encodedCharacter);
     4777
     4778    //@}
    46474779
    46484780    /**
    4649         Retrieve the effect of pasting when there are multiple selections.
     4781        @member_group_name{Margins, Margins}
    46504782    */
    4651     int GetMultiPaste() const;
     4783    //@{
    46524784
    46534785    /**
    4654         Retrieve the value of a tag from a regular expression search.
    4655         Result is NUL-terminated.
     4786        Set a margin to be either numeric or symbolic.
     4787
     4788        The second argument should be one of the
     4789        @link wxStyledTextCtrl::wxSTC_MARGIN_SYMBOL wxSTC_MARGIN_* @endlink constants.
    46564790    */
    4657     wxString GetTag(int tagNumber) const;
     4791    void SetMarginType(int margin, int marginType);
    46584792
    46594793    /**
    4660         Join the lines in the target.
     4794        Retrieve the type of a margin.
     4795
     4796        The return value will be one of the
     4797        @link wxStyledTextCtrl::wxSTC_MARGIN_SYMBOL wxSTC_MARGIN_* @endlink constants.
    46614798    */
    4662     void LinesJoin();
     4799    int GetMarginType(int margin) const;
    46634800
    46644801    /**
    4665         Split the lines in the target into lines that are less wide than pixelWidth
    4666         where possible.
     4802        Set the width of a margin to a width expressed in pixels.
    46674803    */
    4668     void LinesSplit(int pixelWidth);
     4804    void SetMarginWidth(int margin, int pixelWidth);
    46694805
    46704806    /**
    4671         Set one of the colours used as a chequerboard pattern in the fold margin
     4807        Retrieve the width of a margin in pixels.
    46724808    */
    4673     void SetFoldMarginColour(bool useSetting, const wxColour& back);
     4809    int GetMarginWidth(int margin) const;
    46744810
    46754811    /**
    4676         Set the other colour used as a chequerboard pattern in the fold margin
     4812        Set a mask that determines which markers are displayed in a margin.
    46774813    */
    4678     void SetFoldMarginHiColour(bool useSetting, const wxColour& fore);
     4814    void SetMarginMask(int margin, int mask);
    46794815
    46804816    /**
    4681         Move caret down one line.
     4817        Retrieve the marker mask of a margin.
    46824818    */
    4683     void LineDown();
     4819    int GetMarginMask(int margin) const;
    46844820
    46854821    /**
    4686         Move caret down one line extending selection to new caret position.
     4822        Make a margin sensitive or insensitive to mouse clicks.
    46874823    */
    4688     void LineDownExtend();
     4824    void SetMarginSensitive(int margin, bool sensitive);
    46894825
    46904826    /**
    4691         Move caret up one line.
     4827        Retrieve the mouse click sensitivity of a margin.
    46924828    */
    4693     void LineUp();
     4829    bool GetMarginSensitive(int margin) const;
    46944830
    46954831    /**
    4696         Move caret up one line extending selection to new caret position.
     4832        Set the cursor shown when the mouse is inside a margin.
     4833
     4834        The second argument should be one of the
     4835        @link wxStyledTextCtrl::wxSTC_CURSORNORMAL wxSTC_CURSOR* @endlink constants.
    46974836    */
    4698     void LineUpExtend();
     4837    void SetMarginCursor(int margin, int cursor);
    46994838
    47004839    /**
    4701         Move caret left one character.
     4840        Retrieve the cursor shown in a margin.
     4841
     4842        The return value will be one of the
     4843        @link wxStyledTextCtrl::wxSTC_CURSORNORMAL wxSTC_CURSOR* @endlink constants.
    47024844    */
    4703     void CharLeft();
     4845    int GetMarginCursor(int margin) const;
    47044846
    47054847    /**
    4706         Move caret left one character extending selection to new caret position.
     4848        Set the background colour of a margin. Only visible for wxSTC_MARGIN_COLOUR.
     4849
     4850        @since 3.1.1
    47074851    */
    4708     void CharLeftExtend();
     4852    void SetMarginBackground(int margin, const wxColour& back);
    47094853
    47104854    /**
    4711         Move caret right one character.
    4712     */
    4713     void CharRight();
     4855        Retrieve the background colour of a margin
    47144856
    4715     /**
    4716         Move caret right one character extending selection to new caret position.
     4857        @since 3.1.1
    47174858    */
    4718     void CharRightExtend();
     4859    wxColour GetMarginBackground(int margin) const;
    47194860
    47204861    /**
    4721         Move caret left one word.
    4722     */
    4723     void WordLeft();
     4862        Allocate a non-standard number of margins.
    47244863
    4725     /**
    4726         Move caret left one word extending selection to new caret position.
     4864        @since 3.1.1
    47274865    */
    4728     void WordLeftExtend();
     4866    void SetMarginCount(int margins);
    47294867
    47304868    /**
    4731         Move caret right one word.
    4732     */
    4733     void WordRight();
     4869        How many margins are there?.
    47344870
    4735     /**
    4736         Move caret right one word extending selection to new caret position.
     4871        @since 3.1.1
    47374872    */
    4738     void WordRightExtend();
     4873    int GetMarginCount() const;
    47394874
    47404875    /**
    4741         Move caret to first position on line.
     4876        Sets the size in pixels of the left margin.
    47424877    */
    4743     void Home();
     4878    void SetMarginLeft(int pixelWidth);
    47444879
    47454880    /**
    4746         Move caret to first position on line extending selection to new caret position.
     4881        Returns the size in pixels of the left margin.
    47474882    */
    4748     void HomeExtend();
     4883    int GetMarginLeft() const;
    47494884
    47504885    /**
    4751         Move caret to last position on line.
     4886        Sets the size in pixels of the right margin.
    47524887    */
    4753     void LineEnd();
     4888    void SetMarginRight(int pixelWidth);
    47544889
    47554890    /**
    4756         Move caret to last position on line extending selection to new caret position.
     4891        Returns the size in pixels of the right margin.
    47574892    */
    4758     void LineEndExtend();
     4893    int GetMarginRight() const;
    47594894
    47604895    /**
    4761         Move caret to first position in document.
     4896        Set one of the colours used as a chequerboard pattern in the fold margin
    47624897    */
    4763     void DocumentStart();
     4898    void SetFoldMarginColour(bool useSetting, const wxColour& back);
    47644899
    47654900    /**
    4766         Move caret to first position in document extending selection to new caret position.
     4901        Set the other colour used as a chequerboard pattern in the fold margin
    47674902    */
    4768     void DocumentStartExtend();
     4903    void SetFoldMarginHiColour(bool useSetting, const wxColour& fore);
    47694904
    47704905    /**
    4771         Move caret to last position in document.
     4906        Set the text in the text margin for a line
    47724907    */
    4773     void DocumentEnd();
     4908    void MarginSetText(int line, const wxString& text);
    47744909
    47754910    /**
    4776         Move caret to last position in document extending selection to new caret position.
     4911        Get the text in the text margin for a line
    47774912    */
    4778     void DocumentEndExtend();
     4913    wxString MarginGetText(int line) const;
    47794914
    47804915    /**
    4781         Move caret one page up.
     4916        Set the style number for the text margin for a line
    47824917    */
    4783     void PageUp();
     4918    void MarginSetStyle(int line, int style);
    47844919
    47854920    /**
    4786         Move caret one page up extending selection to new caret position.
     4921        Get the style number for the text margin for a line
    47874922    */
    4788     void PageUpExtend();
     4923    int MarginGetStyle(int line) const;
    47894924
    47904925    /**
    4791         Move caret one page down.
     4926        Set the style in the text margin for a line
    47924927    */
    4793     void PageDown();
     4928    void MarginSetStyles(int line, const wxString& styles);
    47944929
    47954930    /**
    4796         Move caret one page down extending selection to new caret position.
     4931        Get the styles in the text margin for a line
    47974932    */
    4798     void PageDownExtend();
     4933    wxString MarginGetStyles(int line) const;
    47994934
    48004935    /**
    4801         Switch from insert to overtype mode or the reverse.
     4936        Clear the margin text on all lines
    48024937    */
    4803     void EditToggleOvertype();
     4938    void MarginTextClearAll();
    48044939
    48054940    /**
    4806         Cancel any modes such as call tip or auto-completion list display.
     4941        Get the start of the range of style numbers used for margin text
    48074942    */
    4808     void Cancel();
     4943    void MarginSetStyleOffset(int style);
    48094944
    48104945    /**
    4811         Delete the selection or if no selection, the character before the caret.
     4946        Get the start of the range of style numbers used for margin text
    48124947    */
    4813     void DeleteBack();
     4948    int MarginGetStyleOffset() const;
    48144949
    48154950    /**
    4816         If selection is empty or all on one line replace the selection with a tab character.
    4817         If more than one line selected, indent the lines.
    4818     */
    4819     void Tab();
     4951        Set the margin options.
    48204952
    4821     /**
    4822         Dedent the selected lines.
     4953        The input should be one of the
     4954        @link wxStyledTextCtrl::wxSTC_MARGINOPTION_NONE wxSTC_MARGINOPTION_* @endlink constants.
    48234955    */
    4824     void BackTab();
     4956    void SetMarginOptions(int marginOptions);
    48254957
    48264958    /**
    4827         Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
     4959        Get the margin options.
     4960
     4961        The return value will be one of the
     4962        @link wxStyledTextCtrl::wxSTC_MARGINOPTION_NONE wxSTC_MARGINOPTION_* @endlink constants.
    48284963    */
    4829     void NewLine();
     4964    int GetMarginOptions() const;
     4965
     4966    //@}
    48304967
    48314968    /**
    4832         Insert a Form Feed character.
     4969        @member_group_name{Annotations, Annotations}
    48334970    */
    4834     void FormFeed();
     4971    //@{
    48354972
    48364973    /**
    4837         Move caret to before first visible character on line.
    4838         If already there move to first character on line.
     4974        Set the annotation text for a line
    48394975    */
    4840     void VCHome();
     4976    void AnnotationSetText(int line, const wxString& text);
    48414977
    48424978    /**
    4843         Like VCHome but extending selection to new caret position.
     4979        Get the annotation text for a line
    48444980    */
    4845     void VCHomeExtend();
     4981    wxString AnnotationGetText(int line) const;
    48464982
    48474983    /**
    4848         Magnify the displayed text by increasing the sizes by 1 point.
     4984        Set the style number for the annotations for a line
    48494985    */
    4850     void ZoomIn();
     4986    void AnnotationSetStyle(int line, int style);
    48514987
    48524988    /**
    4853         Make the displayed text smaller by decreasing the sizes by 1 point.
     4989        Get the style number for the annotations for a line
    48544990    */
    4855     void ZoomOut();
     4991    int AnnotationGetStyle(int line) const;
    48564992
    48574993    /**
    4858         Delete the word to the left of the caret.
     4994        Set the annotation styles for a line
    48594995    */
    4860     void DelWordLeft();
     4996    void AnnotationSetStyles(int line, const wxString& styles);
    48614997
    48624998    /**
    4863         Delete the word to the right of the caret.
     4999        Get the annotation styles for a line
    48645000    */
    4865     void DelWordRight();
     5001    wxString AnnotationGetStyles(int line) const;
    48665002
    48675003    /**
    4868         Delete the word to the right of the caret, but not the trailing non-word characters.
     5004        Get the number of annotation lines for a line
    48695005    */
    4870     void DelWordRightEnd();
     5006    int AnnotationGetLines(int line) const;
    48715007
    48725008    /**
    4873         Cut the line containing the caret.
     5009        Clear the annotations from all lines
    48745010    */
    4875     void LineCut();
     5011    void AnnotationClearAll();
    48765012
    48775013    /**
    4878         Delete the line containing the caret.
     5014        Set the visibility for the annotations for a view
     5015
     5016        The input should be one of the
     5017        @link wxStyledTextCtrl::wxSTC_ANNOTATION_HIDDEN wxSTC_ANNOTATION_* @endlink constants.
    48795018    */
    4880     void LineDelete();
     5019    void AnnotationSetVisible(int visible);
    48815020
    48825021    /**
    4883         Switch the current line with the previous.
     5022        Get the visibility for the annotations for a view
     5023
     5024        The return value will be one of the
     5025        @link wxStyledTextCtrl::wxSTC_ANNOTATION_HIDDEN wxSTC_ANNOTATION_* @endlink constants.
    48845026    */
    4885     void LineTranspose();
     5027    int AnnotationGetVisible() const;
    48865028
    48875029    /**
    4888         Duplicate the current line.
     5030        Get the start of the range of style numbers used for annotations
    48895031    */
    4890     void LineDuplicate();
     5032    void AnnotationSetStyleOffset(int style);
    48915033
    48925034    /**
    4893         Transform the selection to lower case.
     5035        Get the start of the range of style numbers used for annotations
    48945036    */
    4895     void LowerCase();
     5037    int AnnotationGetStyleOffset() const;
     5038
     5039    //@}
    48965040
    48975041    /**
    4898         Transform the selection to upper case.
     5042        @member_group_name{OtherSettings, Other settings}
    48995043    */
    4900     void UpperCase();
     5044    //@{
    49015045
    49025046    /**
    4903         Scroll the document down, keeping the caret visible.
     5047        Is drawing done first into a buffer or direct to the screen?
    49045048    */
    4905     void LineScrollDown();
     5049    bool GetBufferedDraw() const;
    49065050
    49075051    /**
    4908         Scroll the document up, keeping the caret visible.
     5052        If drawing is buffered then each line of text is drawn into a bitmap buffer
     5053        before drawing it to the screen to avoid flicker.
    49095054    */
    4910     void LineScrollUp();
     5055    void SetBufferedDraw(bool buffered);
    49115056
    49125057    /**
    4913         Delete the selection or if no selection, the character before the caret.
    4914         Will not delete the character before at the start of a line.
     5058        Set the code page used to interpret the bytes of the document as characters.
    49155059    */
    4916     void DeleteBackNotLine();
     5060    void SetCodePage(int codePage);
    49175061
    49185062    /**
    4919         Move caret to first position on display line.
     5063        Is the IME displayed in a window or inline?
     5064
     5065        The return value will be one of the
     5066        @link wxStyledTextCtrl::wxSTC_IME_WINDOWED wxSTC_IME_* @endlink constants.
     5067        @since 3.1.0
    49205068    */
    4921     void HomeDisplay();
     5069    int GetIMEInteraction() const;
    49225070
    49235071    /**
    4924         Move caret to first position on display line extending selection to
    4925         new caret position.
     5072        Choose to display the the IME in a winow or inline.
     5073
     5074        The input should be one of the
     5075        @link wxStyledTextCtrl::wxSTC_IME_WINDOWED wxSTC_IME_* @endlink constants.
     5076        @since 3.1.0
    49265077    */
    4927     void HomeDisplayExtend();
     5078    void SetIMEInteraction(int imeInteraction);
    49285079
    49295080    /**
    4930         Move caret to last position on display line.
     5081        Get the code page used to interpret the bytes of the document as characters.
    49315082    */
    4932     void LineEndDisplay();
     5083    int GetCodePage() const;
    49335084
    49345085    /**
    4935         Move caret to last position on display line extending selection to new
    4936         caret position.
     5086        Sets the degree of caching of layout information.
     5087
     5088        The input should be one of the
     5089        @link wxStyledTextCtrl::wxSTC_CACHE_NONE wxSTC_CACHE_* @endlink constants.
    49375090    */
    4938     void LineEndDisplayExtend();
     5091    void SetLayoutCache(int cacheMode);
    49395092
    49405093    /**
    4941         Like Home but when word-wrap is enabled goes first to start of display line
    4942         HomeDisplay, then to start of document line Home.
     5094        Is drawing done in two phases with backgrounds drawn before foregrounds?
    49435095    */
    4944     void HomeWrap();
     5096    bool GetTwoPhaseDraw() const;
    49455097
    49465098    /**
    4947         Like HomeExtend but when word-wrap is enabled extends first to start of display line
    4948         HomeDisplayExtend, then to start of document line HomeExtend.
     5099        In twoPhaseDraw mode, drawing is performed in two phases, first the background
     5100        and then the foreground. This avoids chopping off characters that overlap the next run.
    49495101    */
    4950     void HomeWrapExtend();
     5102    void SetTwoPhaseDraw(bool twoPhase);
    49515103
    49525104    /**
    4953         Like LineEnd but when word-wrap is enabled goes first to end of display line
    4954         LineEndDisplay, then to start of document line LineEnd.
     5105        How many phases is drawing done in?
     5106
     5107        The return value will be one of the
     5108        @link wxStyledTextCtrl::wxSTC_PHASES_ONE wxSTC_PHASES_* @endlink constants.
     5109        @since 3.1.0
    49555110    */
    4956     void LineEndWrap();
     5111    int GetPhasesDraw() const;
    49575112
    49585113    /**
    4959         Like LineEndExtend but when word-wrap is enabled extends first to end of display line
    4960         LineEndDisplayExtend, then to start of document line LineEndExtend.
     5114        In one phase draw, text is drawn in a series of rectangular blocks with no overlap.
     5115        In two phase draw, text is drawn in a series of lines allowing runs to overlap horizontally.
     5116        In multiple phase draw, each element is drawn over the whole drawing area, allowing text
     5117        to overlap from one line to the next.
     5118
     5119        The input should be one of the
     5120        @link wxStyledTextCtrl::wxSTC_PHASES_ONE wxSTC_PHASES_* @endlink constants.
     5121        @since 3.1.0
    49615122    */
    4962     void LineEndWrapExtend();
     5123    void SetPhasesDraw(int phases);
    49635124
    49645125    /**
    4965         Like VCHome but when word-wrap is enabled goes first to start of display line
    4966         VCHomeDisplay, then behaves like VCHome.
     5126        Change internal focus flag.
    49675127    */
    4968     void VCHomeWrap();
     5128    void SetSTCFocus(bool focus);
    49695129
    49705130    /**
    4971         Like VCHomeExtend but when word-wrap is enabled extends first to start of display line
    4972         VCHomeDisplayExtend, then behaves like VCHomeExtend.
     5131        Get internal focus flag.
    49735132    */
    4974     void VCHomeWrapExtend();
     5133    bool GetSTCFocus() const;
    49755134
    49765135    /**
    4977         Copy the line containing the caret.
     5136        Set the technology used.
     5137
     5138        The input should be one of the
     5139        @link wxStyledTextCtrl::wxSTC_TECHNOLOGY_DEFAULT wxSTC_TECHNOLOGY_* @endlink constants.
    49785140    */
    4979     void LineCopy();
     5141    void SetTechnology(int technology);
    49805142
    49815143    /**
    4982         Move the caret inside current view if it's not there already.
     5144        Get the tech.
     5145
     5146        The return value will be one of the
     5147        @link wxStyledTextCtrl::wxSTC_TECHNOLOGY_DEFAULT wxSTC_TECHNOLOGY_* @endlink constants.
    49835148    */
    4984     void MoveCaretInsideView();
     5149    int GetTechnology() const;
     5150
     5151    //@}
    49855152
    49865153    /**
    4987         How many characters are on a line, including end of line characters?
     5154        @member_group_name{BraceHighlighting, Brace highlighting}
    49885155    */
    4989     int LineLength(int line) const;
     5156    //@{
    49905157
    49915158    /**
    49925159        Highlight the characters at two positions.
    public: 
    50095176    void BraceBadLightIndicator(bool useSetting, int indicator);
    50105177
    50115178    /**
    5012         Find the position of a matching brace or INVALID_POSITION if no match.
     5179        Find the position of a matching brace or wxSTC_INVALID_POSITION if no match.
    50135180        The maxReStyle must be 0 for now. It may be defined in a future release.
    50145181    */
    50155182    int BraceMatch(int pos, int maxReStyle=0);
    50165183
     5184    //@}
     5185
    50175186    /**
    5018         Are the end of line characters visible?
     5187        @member_group_name{TabsAndIndentationGuides, Tabs and Indentation Guides}
    50195188    */
    5020     bool GetViewEOL() const;
     5189    //@{
    50215190
    50225191    /**
    5023         Make the end of line characters visible or invisible.
     5192        Change the visible size of a tab to be a multiple of the width of a space character.
    50245193    */
    5025     void SetViewEOL(bool visible);
     5194    void SetTabWidth(int tabWidth);
    50265195
    50275196    /**
    5028         Retrieve a pointer to the document object.
     5197        Retrieve the visible size of a tab.
    50295198    */
    5030     void* GetDocPointer();
     5199    int GetTabWidth() const;
    50315200
    50325201    /**
    5033         Change the document object used.
    5034     */
    5035     void SetDocPointer(void* docPointer);
     5202        Clear explicit tabstops on a line.
    50365203
    5037     /**
    5038         Set which document modification events are sent to the container.
     5204        @since 3.1.0
    50395205    */
    5040     void SetModEventMask(int eventMask);
     5206    void ClearTabStops(int line);
    50415207
    50425208    /**
    5043         Retrieve the column number which text should be kept within.
     5209        Add an explicit tab stop for a line.
     5210
     5211        @since 3.1.0
    50445212    */
    5045     int GetEdgeColumn() const;
     5213    void AddTabStop(int line, int x);
    50465214
    50475215    /**
    5048         Set the column number of the edge.
    5049         If text goes past the edge then it is highlighted.
     5216        Find the next explicit tab stop position on a line after a position.
     5217
     5218        @since 3.1.0
    50505219    */
    5051     void SetEdgeColumn(int column);
     5220    int GetNextTabStop(int line, int x);
    50525221
    50535222    /**
    5054         Retrieve the edge highlight mode.
     5223        Set the number of spaces used for one level of indentation.
    50555224    */
    5056     int GetEdgeMode() const;
     5225    void SetIndent(int indentSize);
    50575226
    50585227    /**
    5059         The edge may be displayed by a line (EDGE_LINE/EDGE_MULTILINE) or by highlighting text that
    5060         goes beyond it (EDGE_BACKGROUND) or not displayed at all (EDGE_NONE).
     5228        Retrieve indentation size.
    50615229    */
    5062     void SetEdgeMode(int edgeMode);
     5230    int GetIndent() const;
    50635231
    50645232    /**
    5065         Retrieve the colour used in edge indication.
     5233        Indentation will only use space characters if useTabs is false, otherwise
     5234        it will use a combination of tabs and spaces.
    50665235    */
    5067     wxColour GetEdgeColour() const;
     5236    void SetUseTabs(bool useTabs);
    50685237
    50695238    /**
    5070         Change the colour used in edge indication.
     5239        Retrieve whether tabs will be used in indentation.
    50715240    */
    5072     void SetEdgeColour(const wxColour& edgeColour);
     5241    bool GetUseTabs() const;
    50735242
    50745243    /**
    5075         Add a new vertical edge to the view.
     5244        Change the indentation of a line to a number of columns.
    50765245    */
    5077     void MultiEdgeAddLine(int column, const wxColour& edgeColour);
     5246    void SetLineIndentation(int line, int indentation);
    50785247
    50795248    /**
    5080         Clear all vertical edges.
     5249        Retrieve the number of columns that a line is indented.
    50815250    */
    5082     void MultiEdgeClearAll();
     5251    int GetLineIndentation(int line) const;
    50835252
    50845253    /**
    5085         Sets the current caret position to be the search anchor.
     5254        Retrieve the position before the first non indentation character on a line.
    50865255    */
    5087     void SearchAnchor();
     5256    int GetLineIndentPosition(int line) const;
    50885257
    50895258    /**
    5090         Find some text starting at the search anchor.
    5091         Does not ensure the selection is visible.
     5259        Show or hide indentation guides.
     5260
     5261        The input should be one of the
     5262        @link wxStyledTextCtrl::wxSTC_IV_NONE wxSTC_IV_* @endlink constants.
    50925263    */
    5093     int SearchNext(int searchFlags, const wxString& text);
     5264    void SetIndentationGuides(int indentView);
    50945265
    50955266    /**
    5096         Find some text starting at the search anchor and moving backwards.
    5097         Does not ensure the selection is visible.
     5267        Are the indentation guides visible?
     5268
     5269        The return value will be one of the
     5270        @link wxStyledTextCtrl::wxSTC_IV_NONE wxSTC_IV_* @endlink constants.
    50985271    */
    5099     int SearchPrev(int searchFlags, const wxString& text);
     5272    int GetIndentationGuides() const;
    51005273
    51015274    /**
    5102         Retrieves the number of lines completely visible.
     5275        Set the highlighted indentation guide column.
     5276        0 = no highlighted guide.
    51035277    */
    5104     int LinesOnScreen() const;
     5278    void SetHighlightGuide(int column);
    51055279
    51065280    /**
    5107         Set whether a pop up menu is displayed automatically when the user presses
    5108         the wrong mouse button on certain areas.
     5281        Get the highlighted indentation guide column.
    51095282    */
    5110     void UsePopUp(int popUpMode);
     5283    int GetHighlightGuide() const;
    51115284
    51125285    /**
    5113         Is the selection rectangular? The alternative is the more common stream selection.
     5286        Sets whether a tab pressed when caret is within indentation indents.
    51145287    */
    5115     bool SelectionIsRectangle() const;
     5288    void SetTabIndents(bool tabIndents);
    51165289
    51175290    /**
    5118         Set the zoom level. This number of points is added to the size of all fonts.
    5119         It may be positive to magnify or negative to reduce.
     5291        Does a tab pressed when caret is within indentation indent?
    51205292    */
    5121     void SetZoom(int zoomInPoints);
     5293    bool GetTabIndents() const;
    51225294
    51235295    /**
    5124         Retrieve the zoom level.
     5296        Sets whether a backspace pressed when caret is within indentation unindents.
    51255297    */
    5126     int GetZoom() const;
     5298    void SetBackSpaceUnIndents(bool bsUnIndents);
    51275299
    51285300    /**
    5129         Create a new document object.
    5130         Starts with reference count of 1 and not selected into editor.
     5301        Does a backspace pressed when caret is within indentation unindent?
    51315302    */
    5132     void* CreateDocument();
     5303    bool GetBackSpaceUnIndents() const;
     5304
     5305    //@}
    51335306
    51345307    /**
    5135         Extend life of document.
     5308        @member_group_name{Markers, Markers}
    51365309    */
    5137     void AddRefDocument(void* docPointer);
     5310    //@{
    51385311
    51395312    /**
    5140         Release a reference to the document, deleting document if it fades to black.
     5313        Retrieve the line number at which a particular marker is located.
    51415314    */
    5142     void ReleaseDocument(void* docPointer);
     5315    int MarkerLineFromHandle(int markerHandle);
    51435316
    51445317    /**
    5145         Get which document modification events are sent to the container.
     5318        Delete a marker.
    51465319    */
    5147     int GetModEventMask() const;
     5320    void MarkerDeleteHandle(int markerHandle);
    51485321
    51495322    /**
    5150         Change internal focus flag.
     5323        Set the symbol used for a particular marker number,
     5324        and optionally the fore and background colours.
     5325
     5326        The second argument should be one of the
     5327        @link wxStyledTextCtrl::wxSTC_MARK_CIRCLE wxSTC_MARK_* @endlink constants.
    51515328    */
    5152     void SetSTCFocus(bool focus);
     5329    void MarkerDefine(int markerNumber, int markerSymbol,
     5330                const wxColour& foreground = wxNullColour,
     5331                const wxColour& background = wxNullColour);
    51535332
    51545333    /**
    5155         Get internal focus flag.
     5334        Set the foreground colour used for a particular marker number.
    51565335    */
    5157     bool GetSTCFocus() const;
     5336    void MarkerSetForeground(int markerNumber, const wxColour& fore);
    51585337
    51595338    /**
    5160         Change error status - 0 = OK.
     5339        Set the background colour used for a particular marker number.
    51615340    */
    5162     void SetStatus(int status);
     5341    void MarkerSetBackground(int markerNumber, const wxColour& back);
    51635342
    51645343    /**
    5165         Get error status.
     5344        Set the background colour used for a particular marker number when its folding block is selected.
    51665345    */
    5167     int GetStatus() const;
     5346    void MarkerSetBackgroundSelected(int markerNumber, const wxColour& back);
    51685347
    51695348    /**
    5170         Set whether the mouse is captured when its button is pressed.
     5349        Enable/disable highlight for current folding bloc (smallest one that contains the caret)
    51715350    */
    5172     void SetMouseDownCaptures(bool captures);
     5351    void MarkerEnableHighlight(bool enabled);
    51735352
    51745353    /**
    5175         Get whether mouse gets captured.
     5354        Add a marker to a line, returning an ID which can be used to find or delete the marker.
    51765355    */
    5177     bool GetMouseDownCaptures() const;
     5356    int MarkerAdd(int line, int markerNumber);
    51785357
    51795358    /**
    5180         Set whether the mouse wheel can be active outside the window.
     5359        Delete a marker from a line.
    51815360    */
    5182     void SetMouseWheelCaptures(bool captures);
     5361    void MarkerDelete(int line, int markerNumber);
    51835362
    51845363    /**
    5185         Get whether mouse wheel can be active outside the window.
     5364        Delete all markers with a particular number from all lines.
    51865365    */
    5187     bool GetMouseWheelCaptures() const;
     5366    void MarkerDeleteAll(int markerNumber);
    51885367
    51895368    /**
    5190         Sets the cursor to one of the SC_CURSOR* values.
     5369        Get a bit mask of all the markers set on a line.
    51915370    */
    5192     void SetSTCCursor(int cursorType);
     5371    int MarkerGet(int line);
    51935372
    51945373    /**
    5195         Get cursor type.
     5374        Find the next line at or after lineStart that includes a marker in mask.
     5375        Return -1 when no more lines.
    51965376    */
    5197     int GetSTCCursor() const;
     5377    int MarkerNext(int lineStart, int markerMask);
    51985378
    51995379    /**
    5200         Change the way control characters are displayed:
    5201         If symbol is < 32, keep the drawn way, else, use the given character.
     5380        Find the previous line before lineStart that includes a marker in mask.
    52025381    */
    5203     void SetControlCharSymbol(int symbol);
     5382    int MarkerPrevious(int lineStart, int markerMask);
    52045383
    52055384    /**
    5206         Get the way control characters are displayed.
     5385        Define a marker from a bitmap
    52075386    */
    5208     int GetControlCharSymbol() const;
     5387    void MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp);
    52095388
    52105389    /**
    5211         Move to the previous change in capitalisation.
     5390        Add a set of markers to a line.
    52125391    */
    5213     void WordPartLeft();
     5392    void MarkerAddSet(int line, int markerSet);
    52145393
    52155394    /**
    5216         Move to the previous change in capitalisation extending selection
    5217         to new caret position.
     5395        Set the alpha used for a marker that is drawn in the text area, not the margin.
    52185396    */
    5219     void WordPartLeftExtend();
     5397    void MarkerSetAlpha(int markerNumber, int alpha);
    52205398
    52215399    /**
    5222         Move to the change next in capitalisation.
     5400        Which symbol was defined for markerNumber with MarkerDefine
     5401
     5402        The return value will be one of the
     5403        @link wxStyledTextCtrl::wxSTC_MARK_CIRCLE wxSTC_MARK_* @endlink constants.
    52235404    */
    5224     void WordPartRight();
     5405    int GetMarkerSymbolDefined(int markerNumber);
    52255406
    52265407    /**
    5227         Move to the next change in capitalisation extending selection
    5228         to new caret position.
     5408        Set the width for future RGBA image data.
    52295409    */
    5230     void WordPartRightExtend();
     5410    void RGBAImageSetWidth(int width);
    52315411
    52325412    /**
    5233         Set the way the display area is determined when a particular line
    5234         is to be moved to by Find, FindNext, GotoLine, etc.
     5413        Set the height for future RGBA image data.
    52355414    */
    5236     void SetVisiblePolicy(int visiblePolicy, int visibleSlop);
     5415    void RGBAImageSetHeight(int height);
    52375416
    52385417    /**
    5239         Delete back from the current position to the start of the line.
     5418        Set the scale factor in percent for future RGBA image data.
     5419
     5420        @since 3.1.0
    52405421    */
    5241     void DelLineLeft();
     5422    void RGBAImageSetScale(int scalePercent);
    52425423
    52435424    /**
    5244         Delete forwards from the current position to the end of the line.
     5425        Define a marker from RGBA data.
     5426        It has the width and height from RGBAImageSetWidth/Height
    52455427    */
    5246     void DelLineRight();
     5428    void MarkerDefineRGBAImage(int markerNumber, const unsigned char* pixels);
     5429
     5430    //@}
    52475431
    52485432    /**
    5249         Get and Set the xOffset (ie, horizontal scroll position).
     5433        @member_group_name{Indicators, Indicators}
    52505434    */
    5251     void SetXOffset(int xOffset);
    5252     int GetXOffset() const;
     5435    //@{
    52535436
    52545437    /**
    5255         Set the last x chosen value to be the caret x position.
     5438        Set an indicator to plain, squiggle or TT.
     5439
     5440        The second argument should be one of the
     5441        @link wxStyledTextCtrl::wxSTC_INDIC_PLAIN wxSTC_INDIC_* @endlink constants.
    52565442    */
    5257     void ChooseCaretX();
     5443    void IndicatorSetStyle(int indicator, int indicatorStyle);
    52585444
    52595445    /**
    5260         Set the way the caret is kept visible when going sideways.
    5261         The exclusion zone is given in pixels.
     5446        Retrieve the style of an indicator.
     5447
     5448        The return value will be one of the
     5449        @link wxStyledTextCtrl::wxSTC_INDIC_PLAIN wxSTC_INDIC_* @endlink constants.
    52625450    */
    5263     void SetXCaretPolicy(int caretPolicy, int caretSlop);
     5451    int IndicatorGetStyle(int indicator) const;
    52645452
    52655453    /**
    5266         Set the way the line the caret is on is kept visible.
    5267         The exclusion zone is given in lines.
     5454        Set the foreground colour of an indicator.
    52685455    */
    5269     void SetYCaretPolicy(int caretPolicy, int caretSlop);
     5456    void IndicatorSetForeground(int indicator, const wxColour& fore);
    52705457
    52715458    /**
    5272         Set printing to line wrapped (SC_WRAP_WORD) or not line wrapped (SC_WRAP_NONE).
     5459        Retrieve the foreground colour of an indicator.
    52735460    */
    5274     void SetPrintWrapMode(int wrapMode);
     5461    wxColour IndicatorGetForeground(int indicator) const;
    52755462
    52765463    /**
    5277         Is printing line wrapped?
     5464        Set an indicator to draw under text or over(default).
    52785465    */
    5279     int GetPrintWrapMode() const;
     5466    void IndicatorSetUnder(int indicator, bool under);
    52805467
    52815468    /**
    5282         Set a fore colour for active hotspots.
     5469        Retrieve whether indicator drawn under or over text.
    52835470    */
    5284     void SetHotspotActiveForeground(bool useSetting, const wxColour& fore);
     5471    bool IndicatorGetUnder(int indicator) const;
    52855472
    52865473    /**
    5287         Get the fore colour for active hotspots.
     5474        Set a hover indicator to plain, squiggle or TT.
     5475
     5476        @since 3.1.0
    52885477    */
    5289     wxColour GetHotspotActiveForeground() const;
     5478    void IndicatorSetHoverStyle(int indicator, int indicatorStyle);
    52905479
    52915480    /**
    5292         Set a back colour for active hotspots.
     5481        Retrieve the hover style of an indicator.
     5482
     5483        @since 3.1.0
    52935484    */
    5294     void SetHotspotActiveBackground(bool useSetting, const wxColour& back);
     5485    int IndicatorGetHoverStyle(int indicator) const;
    52955486
    52965487    /**
    5297         Get the back colour for active hotspots.
     5488        Set the foreground hover colour of an indicator.
     5489
     5490        @since 3.1.0
    52985491    */
    5299     wxColour GetHotspotActiveBackground() const;
     5492    void IndicatorSetHoverForeground(int indicator, const wxColour& fore);
    53005493
    53015494    /**
    5302         Enable / Disable underlining active hotspots.
     5495        Retrieve the foreground hover colour of an indicator.
     5496
     5497        @since 3.1.0
    53035498    */
    5304     void SetHotspotActiveUnderline(bool underline);
     5499    wxColour IndicatorGetHoverForeground(int indicator) const;
    53055500
    53065501    /**
    5307         Get whether underlining for active hotspots.
     5502        Set the attributes of an indicator.
     5503
     5504        The second argument should be a bit list containing one or more of the
     5505        @link wxStyledTextCtrl::wxSTC_INDICFLAG_VALUEFORE wxSTC_INDICFLAG_* @endlink constants.
     5506        @since 3.1.0
    53085507    */
    5309     bool GetHotspotActiveUnderline() const;
     5508    void IndicatorSetFlags(int indicator, int flags);
    53105509
    53115510    /**
    5312         Limit hotspots to single line so hotspots on two lines don't merge.
     5511        Retrieve the attributes of an indicator.
     5512
     5513        The return value will be a bit list containing one or more of the
     5514        @link wxStyledTextCtrl::wxSTC_INDICFLAG_VALUEFORE wxSTC_INDICFLAG_* @endlink constants.
     5515        @since 3.1.0
    53135516    */
    5314     void SetHotspotSingleLine(bool singleLine);
     5517    int IndicatorGetFlags(int indicator) const;
    53155518
    53165519    /**
    5317         Get the HotspotSingleLine property
     5520        Set the indicator used for IndicatorFillRange and IndicatorClearRange
    53185521    */
    5319     bool GetHotspotSingleLine() const;
     5522    void SetIndicatorCurrent(int indicator);
    53205523
    53215524    /**
    5322         Move caret down one paragraph (delimited by empty lines).
     5525        Get the current indicator
    53235526    */
    5324     void ParaDown();
     5527    int GetIndicatorCurrent() const;
    53255528
    53265529    /**
    5327         Extend selection down one paragraph (delimited by empty lines).
     5530        Set the value used for IndicatorFillRange
    53285531    */
    5329     void ParaDownExtend();
     5532    void SetIndicatorValue(int value);
    53305533
    53315534    /**
    5332         Move caret up one paragraph (delimited by empty lines).
     5535        Get the current indicator value
    53335536    */
    5334     void ParaUp();
     5537    int GetIndicatorValue() const;
    53355538
    53365539    /**
    5337         Extend selection up one paragraph (delimited by empty lines).
     5540        Turn a indicator on over a range.
    53385541    */
    5339     void ParaUpExtend();
     5542    void IndicatorFillRange(int start, int lengthFill);
    53405543
    53415544    /**
    5342         Given a valid document position, return the previous position taking code
    5343         page into account. Returns 0 if passed 0.
     5545        Turn a indicator off over a range.
    53445546    */
    5345     int PositionBefore(int pos);
     5547    void IndicatorClearRange(int start, int lengthClear);
    53465548
    53475549    /**
    5348         Given a valid document position, return the next position taking code
    5349         page into account. Maximum value returned is the last position in the document.
     5550        Are any indicators present at pos?
    53505551    */
    5351     int PositionAfter(int pos);
     5552    int IndicatorAllOnFor(int pos);
    53525553
    53535554    /**
    5354         Given a valid document position, return a position that differs in a number
    5355         of characters. Returned value is always between 0 and last position in document.
     5555        What value does a particular indicator have at a position?
    53565556    */
    5357     int PositionRelative(int pos, int relative);
     5557    int IndicatorValueAt(int indicator, int pos);
    53585558
    53595559    /**
    5360         Copy a range of text to the clipboard. Positions are clipped into the document.
     5560        Where does a particular indicator start?
    53615561    */
    5362     void CopyRange(int start, int end);
     5562    int IndicatorStart(int indicator, int pos);
    53635563
    53645564    /**
    5365         Copy argument text to the clipboard.
     5565        Where does a particular indicator end?
    53665566    */
    5367     void CopyText(int length, const wxString& text);
     5567    int IndicatorEnd(int indicator, int pos);
    53685568
    53695569    /**
    5370         Set the selection mode to stream (SC_SEL_STREAM) or rectangular (SC_SEL_RECTANGLE/SC_SEL_THIN) or
    5371         by lines (SC_SEL_LINES).
     5570        Set the alpha fill colour of the given indicator.
    53725571    */
    5373     void SetSelectionMode(int selectionMode);
     5572    void IndicatorSetAlpha(int indicator, int alpha);
    53745573
    53755574    /**
    5376         Get the mode of the current selection.
     5575        Get the alpha fill colour of the given indicator.
    53775576    */
    5378     int GetSelectionMode() const;
     5577    int IndicatorGetAlpha(int indicator) const;
    53795578
    53805579    /**
    5381         Retrieve the position of the start of the selection at the given line (INVALID_POSITION if no selection on this line).
     5580        Set the alpha outline colour of the given indicator.
    53825581    */
    5383     int GetLineSelStartPosition(int line);
     5582    void IndicatorSetOutlineAlpha(int indicator, int alpha);
    53845583
    53855584    /**
    5386         Retrieve the position of the end of the selection at the given line (INVALID_POSITION if no selection on this line).
     5585        Get the alpha outline colour of the given indicator.
    53875586    */
    5388     int GetLineSelEndPosition(int line);
     5587    int IndicatorGetOutlineAlpha(int indicator) const;
     5588
     5589    //@}
    53895590
    53905591    /**
    5391         Move caret down one line, extending rectangular selection to new caret position.
     5592        @member_group_name{Autocompletion, Autocompletion}
    53925593    */
    5393     void LineDownRectExtend();
     5594    //@{
    53945595
    53955596    /**
    5396         Move caret up one line, extending rectangular selection to new caret position.
     5597        Display a auto-completion list.
     5598        The lengthEntered parameter indicates how many characters before
     5599        the caret should be used to provide context.
    53975600    */
    5398     void LineUpRectExtend();
     5601    void AutoCompShow(int lengthEntered, const wxString& itemList);
    53995602
    54005603    /**
    5401         Move caret left one character, extending rectangular selection to new caret position.
     5604        Remove the auto-completion list from the screen.
    54025605    */
    5403     void CharLeftRectExtend();
     5606    void AutoCompCancel();
    54045607
    54055608    /**
    5406         Move caret right one character, extending rectangular selection to new caret position.
     5609        Is there an auto-completion list visible?
    54075610    */
    5408     void CharRightRectExtend();
     5611    bool AutoCompActive();
    54095612
    54105613    /**
    5411         Move caret to first position on line, extending rectangular selection to new caret position.
     5614        Retrieve the position of the caret when the auto-completion list was displayed.
    54125615    */
    5413     void HomeRectExtend();
     5616    int AutoCompPosStart();
    54145617
    54155618    /**
    5416         Move caret to before first visible character on line.
    5417         If already there move to first character on line.
    5418         In either case, extend rectangular selection to new caret position.
     5619        User has selected an item so remove the list and insert the selection.
    54195620    */
    5420     void VCHomeRectExtend();
     5621    void AutoCompComplete();
    54215622
    54225623    /**
    5423         Move caret to last position on line, extending rectangular selection to new caret position.
     5624        Define a set of character that when typed cancel the auto-completion list.
    54245625    */
    5425     void LineEndRectExtend();
     5626    void AutoCompStops(const wxString& characterSet);
    54265627
    54275628    /**
    5428         Move caret one page up, extending rectangular selection to new caret position.
     5629        Change the separator character in the string setting up an auto-completion list.
     5630        Default is space but can be changed if items contain space.
    54295631    */
    5430     void PageUpRectExtend();
     5632    void AutoCompSetSeparator(int separatorCharacter);
    54315633
    54325634    /**
    5433         Move caret one page down, extending rectangular selection to new caret position.
     5635        Retrieve the auto-completion list separator character.
    54345636    */
    5435     void PageDownRectExtend();
     5637    int AutoCompGetSeparator() const;
    54365638
    54375639    /**
    5438         Move caret to top of page, or one page up if already at top of page.
     5640        Select the item in the auto-completion list that starts with a string.
    54395641    */
    5440     void StutteredPageUp();
     5642    void AutoCompSelect(const wxString& select);
    54415643
    54425644    /**
    5443         Move caret to top of page, or one page up if already at top of page, extending selection to new caret position.
     5645        Should the auto-completion list be cancelled if the user backspaces to a
     5646        position before where the box was created.
    54445647    */
    5445     void StutteredPageUpExtend();
     5648    void AutoCompSetCancelAtStart(bool cancel);
    54465649
    54475650    /**
    5448         Move caret to bottom of page, or one page down if already at bottom of page.
     5651        Retrieve whether auto-completion cancelled by backspacing before start.
    54495652    */
    5450     void StutteredPageDown();
     5653    bool AutoCompGetCancelAtStart() const;
    54515654
    54525655    /**
    5453         Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position.
     5656        Define a set of characters that when typed will cause the autocompletion to
     5657        choose the selected item.
    54545658    */
    5455     void StutteredPageDownExtend();
     5659    void AutoCompSetFillUps(const wxString& characterSet);
    54565660
    54575661    /**
    5458         Move caret left one word, position cursor at end of word.
     5662        Should a single item auto-completion list automatically choose the item.
    54595663    */
    5460     void WordLeftEnd();
     5664    void AutoCompSetChooseSingle(bool chooseSingle);
    54615665
    54625666    /**
    5463         Move caret left one word, position cursor at end of word, extending selection to new caret position.
     5667        Retrieve whether a single item auto-completion list automatically choose the item.
    54645668    */
    5465     void WordLeftEndExtend();
     5669    bool AutoCompGetChooseSingle() const;
    54665670
    54675671    /**
    5468         Move caret right one word, position cursor at end of word.
     5672        Set whether case is significant when performing auto-completion searches.
    54695673    */
    5470     void WordRightEnd();
     5674    void AutoCompSetIgnoreCase(bool ignoreCase);
    54715675
    54725676    /**
    5473         Move caret right one word, position cursor at end of word, extending selection to new caret position.
     5677        Retrieve state of ignore case flag.
    54745678    */
    5475     void WordRightEndExtend();
     5679    bool AutoCompGetIgnoreCase() const;
    54765680
    54775681    /**
    5478         Set the set of characters making up whitespace for when moving or selecting by word.
    5479         Should be called after SetWordChars.
     5682        Set whether or not autocompletion is hidden automatically when nothing matches.
    54805683    */
    5481     void SetWhitespaceChars(const wxString& characters);
     5684    void AutoCompSetAutoHide(bool autoHide);
    54825685
    54835686    /**
    5484         Get the set of characters making up whitespace for when moving or selecting by word.
     5687        Retrieve whether or not autocompletion is hidden automatically when nothing matches.
    54855688    */
    5486     wxString GetWhitespaceChars() const;
     5689    bool AutoCompGetAutoHide() const;
    54875690
    54885691    /**
    5489         Set the set of characters making up punctuation characters
    5490         Should be called after SetWordChars.
     5692        Set whether or not autocompletion deletes any word characters
     5693        after the inserted text upon completion.
    54915694    */
    5492     void SetPunctuationChars(const wxString& characters);
     5695    void AutoCompSetDropRestOfWord(bool dropRestOfWord);
    54935696
    54945697    /**
    5495         Get the set of characters making up punctuation characters
     5698        Retrieve whether or not autocompletion deletes any word characters
     5699        after the inserted text upon completion.
    54965700    */
    5497     wxString GetPunctuationChars() const;
     5701    bool AutoCompGetDropRestOfWord() const;
    54985702
    54995703    /**
    5500         Reset the set of characters for whitespace and word characters to the defaults.
     5704        Register an image for use in autocompletion lists.
    55015705    */
    5502     void SetCharsDefault();
     5706    void RegisterImage(int type, const wxBitmap& bmp);
     5707
     5708    /**
     5709        Clear all the registered images.
     5710    */
     5711    void ClearRegisteredImages();
     5712
     5713    /**
     5714        Retrieve the auto-completion list type-separator character.
     5715    */
     5716    int AutoCompGetTypeSeparator() const;
     5717
     5718    /**
     5719        Change the type-separator character in the string setting up an auto-completion list.
     5720        Default is '?' but can be changed if items contain '?'.
     5721    */
     5722    void AutoCompSetTypeSeparator(int separatorCharacter);
     5723
     5724    /**
     5725        Set the maximum width, in characters, of auto-completion and user lists.
     5726        Set to 0 to autosize to fit longest item, which is the default.
     5727    */
     5728    void AutoCompSetMaxWidth(int characterCount);
     5729
     5730    /**
     5731        Get the maximum width, in characters, of auto-completion and user lists.
     5732    */
     5733    int AutoCompGetMaxWidth() const;
     5734
     5735    /**
     5736        Set the maximum height, in rows, of auto-completion and user lists.
     5737        The default is 5 rows.
     5738    */
     5739    void AutoCompSetMaxHeight(int rowCount);
     5740
     5741    /**
     5742        Set the maximum height, in rows, of auto-completion and user lists.
     5743    */
     5744    int AutoCompGetMaxHeight() const;
    55035745
    55045746    /**
    55055747        Get currently selected item position in the auto-completion list
    public: 
    55085750
    55095751    /**
    55105752        Set auto-completion case insensitive behaviour to either prefer case-sensitive matches or have no preference.
     5753
     5754        The input should be one of the
     5755        @link wxStyledTextCtrl::wxSTC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE wxSTC_CASEINSENSITIVEBEHAVIOUR_* @endlink constants.
    55115756    */
    55125757    void AutoCompSetCaseInsensitiveBehaviour(int behaviour);
    55135758
    55145759    /**
    55155760        Get auto-completion case insensitive behaviour.
     5761
     5762        The return value will be one of the
     5763        @link wxStyledTextCtrl::wxSTC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE wxSTC_CASEINSENSITIVEBEHAVIOUR_* @endlink constants.
    55165764    */
    55175765    int AutoCompGetCaseInsensitiveBehaviour() const;
    55185766
    55195767    /**
    55205768        Change the effect of autocompleting when there are multiple selections.
     5769
     5770        The input should be one of the
     5771        @link wxStyledTextCtrl::wxSTC_MULTIAUTOC_ONCE wxSTC_MULTIAUTOC_* @endlink constants.
     5772        @since 3.1.0
    55215773    */
    55225774    void AutoCompSetMulti(int multi);
    55235775
    55245776    /**
    55255777        Retrieve the effect of autocompleting when there are multiple selections.
     5778
     5779        The return value will be one of the
     5780        @link wxStyledTextCtrl::wxSTC_MULTIAUTOC_ONCE wxSTC_MULTIAUTOC_* @endlink constants.
     5781        @since 3.1.0
    55265782    */
    55275783    int AutoCompGetMulti() const;
    55285784
    55295785    /**
    55305786        Set the way autocompletion lists are ordered.
     5787
     5788        The input should be one of the
     5789        @link wxStyledTextCtrl::wxSTC_ORDER_PRESORTED wxSTC_ORDER_* @endlink constants.
     5790        @since 3.1.0
    55315791    */
    55325792    void AutoCompSetOrder(int order);
    55335793
    55345794    /**
    55355795        Get the way autocompletion lists are ordered.
     5796
     5797        The return value will be one of the
     5798        @link wxStyledTextCtrl::wxSTC_ORDER_PRESORTED wxSTC_ORDER_* @endlink constants.
     5799        @since 3.1.0
    55365800    */
    55375801    int AutoCompGetOrder() const;
    55385802
    55395803    /**
    5540         Enlarge the document to a particular size of text bytes.
     5804        Register an RGBA image for use in autocompletion lists.
     5805        It has the width and height from RGBAImageSetWidth/Height
    55415806    */
    5542     void Allocate(int bytes);
     5807    void RegisterRGBAImage(int type, const unsigned char* pixels);
    55435808
    5544     /**
    5545         Find the position of a column on a line taking into account tabs and
    5546         multi-byte characters. If beyond end of line, return line end position.
    5547     */
    5548     int FindColumn(int line, int column);
     5809    //@}
    55495810
    55505811    /**
    5551         Can the caret preferred x position only be changed by explicit movement commands?
     5812        @member_group_name{UserLists, User lists}
    55525813    */
    5553     int GetCaretSticky() const;
     5814    //@{
    55545815
    55555816    /**
    5556         Stop the caret preferred x position changing when the user types.
     5817        Display a list of strings and send notification when user chooses one.
    55575818    */
    5558     void SetCaretSticky(int useCaretStickyBehaviour);
     5819    void UserListShow(int listType, const wxString& itemList);
     5820
     5821    //@}
    55595822
    55605823    /**
    5561         Switch between sticky and non-sticky: meant to be bound to a key.
     5824        @member_group_name{CallTips, Call tips}
    55625825    */
    5563     void ToggleCaretSticky();
     5826    //@{
    55645827
    55655828    /**
    5566         Enable/Disable convert-on-paste for line endings
     5829        Show a call tip containing a definition near position pos.
    55675830    */
    5568     void SetPasteConvertEndings(bool convert);
     5831    void CallTipShow(int pos, const wxString& definition);
    55695832
    55705833    /**
    5571         Get convert-on-paste setting
     5834        Remove the call tip from the screen.
    55725835    */
    5573     bool GetPasteConvertEndings() const;
     5836    void CallTipCancel();
    55745837
    55755838    /**
    5576         Duplicate the selection. If selection empty duplicate the line containing the caret.
     5839        Is there an active call tip?
    55775840    */
    5578     void SelectionDuplicate();
     5841    bool CallTipActive();
    55795842
    55805843    /**
    5581         Set background alpha of the caret line.
     5844        Retrieve the position where the caret was before displaying the call tip.
     5845
     5846        @since 3.1.0
    55825847    */
    5583     void SetCaretLineBackAlpha(int alpha);
     5848    int CallTipPosAtStart();
    55845849
    55855850    /**
    5586         Get the background alpha of the caret line.
     5851        Set the start position in order to change when backspacing removes the calltip.
    55875852    */
    5588     int GetCaretLineBackAlpha() const;
     5853    void CallTipSetPosAtStart(int posStart);
    55895854
    55905855    /**
    5591         Set the style of the caret to be drawn.
     5856        Highlight a segment of the definition.
    55925857    */
    5593     void SetCaretStyle(int caretStyle);
     5858    void CallTipSetHighlight(int highlightStart, int highlightEnd);
    55945859
    55955860    /**
    5596         Returns the current style of the caret.
     5861        Set the background colour for the call tip.
    55975862    */
    5598     int GetCaretStyle() const;
     5863    void CallTipSetBackground(const wxColour& back);
    55995864
    56005865    /**
    5601         Set the indicator used for IndicatorFillRange and IndicatorClearRange
     5866        Set the foreground colour for the call tip.
    56025867    */
    5603     void SetIndicatorCurrent(int indicator);
     5868    void CallTipSetForeground(const wxColour& fore);
    56045869
    56055870    /**
    5606         Get the current indicator
     5871        Set the foreground colour for the highlighted part of the call tip.
    56075872    */
    5608     int GetIndicatorCurrent() const;
     5873    void CallTipSetForegroundHighlight(const wxColour& fore);
    56095874
    56105875    /**
    5611         Set the value used for IndicatorFillRange
     5876        Enable use of wxSTC_STYLE_CALLTIP and set call tip tab size in pixels.
    56125877    */
    5613     void SetIndicatorValue(int value);
     5878    void CallTipUseStyle(int tabSize);
    56145879
    56155880    /**
    5616         Get the current indicator value
     5881        Set position of calltip, above or below text.
    56175882    */
    5618     int GetIndicatorValue() const;
     5883    void CallTipSetPosition(bool above);
    56195884
    5620     /**
    5621         Turn a indicator on over a range.
    5622     */
    5623     void IndicatorFillRange(int start, int lengthFill);
     5885    //@}
    56245886
    56255887    /**
    5626         Turn a indicator off over a range.
     5888        @member_group_name{KeyboardCommands, Keyboard commands}
    56275889    */
    5628     void IndicatorClearRange(int start, int lengthClear);
     5890    //@{
    56295891
    56305892    /**
    5631         Are any indicators present at pos?
     5893        Move caret down one line.
    56325894    */
    5633     int IndicatorAllOnFor(int pos);
     5895    void LineDown();
    56345896
    56355897    /**
    5636         What value does a particular indicator have at a position?
     5898        Move caret down one line extending selection to new caret position.
    56375899    */
    5638     int IndicatorValueAt(int indicator, int pos);
     5900    void LineDownExtend();
    56395901
    56405902    /**
    5641         Where does a particular indicator start?
     5903        Move caret up one line.
    56425904    */
    5643     int IndicatorStart(int indicator, int pos);
     5905    void LineUp();
    56445906
    56455907    /**
    5646         Where does a particular indicator end?
     5908        Move caret up one line extending selection to new caret position.
    56475909    */
    5648     int IndicatorEnd(int indicator, int pos);
     5910    void LineUpExtend();
    56495911
    56505912    /**
    5651         Set number of entries in position cache
     5913        Move caret left one character.
    56525914    */
    5653     void SetPositionCacheSize(int size);
     5915    void CharLeft();
    56545916
    56555917    /**
    5656         How many entries are allocated to the position cache?
     5918        Move caret left one character extending selection to new caret position.
    56575919    */
    5658     int GetPositionCacheSize() const;
     5920    void CharLeftExtend();
    56595921
    56605922    /**
    5661         Copy the selection, if selection empty copy the line with the caret
     5923        Move caret right one character.
    56625924    */
    5663     void CopyAllowLine();
     5925    void CharRight();
    56645926
    56655927    /**
    5666         Compact the document buffer and return a read-only pointer to the
    5667         characters in the document.
     5928        Move caret right one character extending selection to new caret position.
    56685929    */
    5669     const char* GetCharacterPointer() const;
     5930    void CharRightExtend();
    56705931
    56715932    /**
    5672         Return a read-only pointer to a range of characters in the document.
    5673         May move the gap so that the range is contiguous, but will only move up
    5674         to lengthRange bytes.
     5933        Move caret left one word.
    56755934    */
    5676     const char* GetRangePointer(int position, int rangeLength) const;
     5935    void WordLeft();
    56775936
    56785937    /**
    5679         Return a position which, to avoid performance costs, should not be within
    5680         the range of a call to GetRangePointer.
     5938        Move caret left one word extending selection to new caret position.
    56815939    */
    5682     int GetGapPosition() const;
     5940    void WordLeftExtend();
    56835941
    56845942    /**
    5685         Set the alpha fill colour of the given indicator.
     5943        Move caret right one word.
    56865944    */
    5687     void IndicatorSetAlpha(int indicator, int alpha);
     5945    void WordRight();
    56885946
    56895947    /**
    5690         Get the alpha fill colour of the given indicator.
     5948        Move caret right one word extending selection to new caret position.
    56915949    */
    5692     int IndicatorGetAlpha(int indicator) const;
     5950    void WordRightExtend();
    56935951
    56945952    /**
    5695         Set the alpha outline colour of the given indicator.
     5953        Move caret to first position on line.
    56965954    */
    5697     void IndicatorSetOutlineAlpha(int indicator, int alpha);
     5955    void Home();
    56985956
    56995957    /**
    5700         Get the alpha outline colour of the given indicator.
     5958        Move caret to first position on line extending selection to new caret position.
    57015959    */
    5702     int IndicatorGetOutlineAlpha(int indicator) const;
     5960    void HomeExtend();
    57035961
    57045962    /**
    5705         Set extra ascent for each line
     5963        Move caret to last position on line.
    57065964    */
    5707     void SetExtraAscent(int extraAscent);
     5965    void LineEnd();
    57085966
    57095967    /**
    5710         Get extra ascent for each line
     5968        Move caret to last position on line extending selection to new caret position.
    57115969    */
    5712     int GetExtraAscent() const;
     5970    void LineEndExtend();
    57135971
    57145972    /**
    5715         Set extra descent for each line
     5973        Move caret to first position in document.
    57165974    */
    5717     void SetExtraDescent(int extraDescent);
     5975    void DocumentStart();
    57185976
    57195977    /**
    5720         Get extra descent for each line
     5978        Move caret to first position in document extending selection to new caret position.
    57215979    */
    5722     int GetExtraDescent() const;
     5980    void DocumentStartExtend();
    57235981
    57245982    /**
    5725         Which symbol was defined for markerNumber with MarkerDefine
     5983        Move caret to last position in document.
    57265984    */
    5727     int GetMarkerSymbolDefined(int markerNumber);
     5985    void DocumentEnd();
    57285986
    57295987    /**
    5730         Set the text in the text margin for a line
     5988        Move caret to last position in document extending selection to new caret position.
    57315989    */
    5732     void MarginSetText(int line, const wxString& text);
     5990    void DocumentEndExtend();
    57335991
    57345992    /**
    5735         Get the text in the text margin for a line
     5993        Move caret one page up.
    57365994    */
    5737     wxString MarginGetText(int line) const;
     5995    void PageUp();
    57385996
    57395997    /**
    5740         Set the style number for the text margin for a line
     5998        Move caret one page up extending selection to new caret position.
    57415999    */
    5742     void MarginSetStyle(int line, int style);
     6000    void PageUpExtend();
    57436001
    57446002    /**
    5745         Get the style number for the text margin for a line
     6003        Move caret one page down.
    57466004    */
    5747     int MarginGetStyle(int line) const;
     6005    void PageDown();
    57486006
    57496007    /**
    5750         Set the style in the text margin for a line
     6008        Move caret one page down extending selection to new caret position.
    57516009    */
    5752     void MarginSetStyles(int line, const wxString& styles);
     6010    void PageDownExtend();
    57536011
    57546012    /**
    5755         Get the styles in the text margin for a line
     6013        Switch from insert to overtype mode or the reverse.
    57566014    */
    5757     wxString MarginGetStyles(int line) const;
     6015    void EditToggleOvertype();
    57586016
    57596017    /**
    5760         Clear the margin text on all lines
     6018        Cancel any modes such as call tip or auto-completion list display.
    57616019    */
    5762     void MarginTextClearAll();
     6020    void Cancel();
    57636021
    57646022    /**
    5765         Get the start of the range of style numbers used for margin text
     6023        Delete the selection or if no selection, the character before the caret.
    57666024    */
    5767     void MarginSetStyleOffset(int style);
     6025    void DeleteBack();
    57686026
    57696027    /**
    5770         Get the start of the range of style numbers used for margin text
     6028        If selection is empty or all on one line replace the selection with a tab character.
     6029        If more than one line selected, indent the lines.
    57716030    */
    5772     int MarginGetStyleOffset() const;
     6031    void Tab();
    57736032
    57746033    /**
    5775         Set the margin options.
     6034        Dedent the selected lines.
    57766035    */
    5777     void SetMarginOptions(int marginOptions);
     6036    void BackTab();
    57786037
    57796038    /**
    5780         Get the margin options.
     6039        Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
    57816040    */
    5782     int GetMarginOptions() const;
     6041    void NewLine();
    57836042
    57846043    /**
    5785         Set the annotation text for a line
     6044        Insert a Form Feed character.
    57866045    */
    5787     void AnnotationSetText(int line, const wxString& text);
     6046    void FormFeed();
    57886047
    57896048    /**
    5790         Get the annotation text for a line
     6049        Move caret to before first visible character on line.
     6050        If already there move to first character on line.
    57916051    */
    5792     wxString AnnotationGetText(int line) const;
     6052    void VCHome();
    57936053
    57946054    /**
    5795         Set the style number for the annotations for a line
     6055        Like VCHome but extending selection to new caret position.
    57966056    */
    5797     void AnnotationSetStyle(int line, int style);
     6057    void VCHomeExtend();
    57986058
    57996059    /**
    5800         Get the style number for the annotations for a line
     6060        Delete the word to the left of the caret.
    58016061    */
    5802     int AnnotationGetStyle(int line) const;
     6062    void DelWordLeft();
    58036063
    58046064    /**
    5805         Set the annotation styles for a line
     6065        Delete the word to the right of the caret.
    58066066    */
    5807     void AnnotationSetStyles(int line, const wxString& styles);
     6067    void DelWordRight();
    58086068
    58096069    /**
    5810         Get the annotation styles for a line
     6070        Delete the word to the right of the caret, but not the trailing non-word characters.
    58116071    */
    5812     wxString AnnotationGetStyles(int line) const;
     6072    void DelWordRightEnd();
    58136073
    58146074    /**
    5815         Get the number of annotation lines for a line
     6075        Cut the line containing the caret.
    58166076    */
    5817     int AnnotationGetLines(int line) const;
     6077    void LineCut();
    58186078
    58196079    /**
    5820         Clear the annotations from all lines
     6080        Delete the line containing the caret.
    58216081    */
    5822     void AnnotationClearAll();
     6082    void LineDelete();
    58236083
    58246084    /**
    5825         Set the visibility for the annotations for a view
     6085        Switch the current line with the previous.
    58266086    */
    5827     void AnnotationSetVisible(int visible);
     6087    void LineTranspose();
    58286088
    58296089    /**
    5830         Get the visibility for the annotations for a view
     6090        Duplicate the current line.
    58316091    */
    5832     int AnnotationGetVisible() const;
     6092    void LineDuplicate();
    58336093
    58346094    /**
    5835         Get the start of the range of style numbers used for annotations
     6095        Transform the selection to lower case.
    58366096    */
    5837     void AnnotationSetStyleOffset(int style);
     6097    void LowerCase();
    58386098
    58396099    /**
    5840         Get the start of the range of style numbers used for annotations
     6100        Transform the selection to upper case.
    58416101    */
    5842     int AnnotationGetStyleOffset() const;
     6102    void UpperCase();
    58436103
    58446104    /**
    5845         Release all extended (>255) style numbers
     6105        Scroll the document down, keeping the caret visible.
    58466106    */
    5847     void ReleaseAllExtendedStyles();
     6107    void LineScrollDown();
    58486108
    58496109    /**
    5850         Allocate some extended (>255) style numbers and return the start of the range
     6110        Scroll the document up, keeping the caret visible.
    58516111    */
    5852     int AllocateExtendedStyles(int numberStyles);
     6112    void LineScrollUp();
    58536113
    58546114    /**
    5855         Add a container action to the undo stack
     6115        Delete the selection or if no selection, the character before the caret.
     6116        Will not delete the character before at the start of a line.
    58566117    */
    5857     void AddUndoAction(int token, int flags);
     6118    void DeleteBackNotLine();
    58586119
    58596120    /**
    5860         Find the position of a character from a point within the window.
     6121        Move caret to first position on display line.
    58616122    */
    5862     int CharPositionFromPoint(int x, int y);
     6123    void HomeDisplay();
    58636124
    58646125    /**
    5865         Find the position of a character from a point within the window.
    5866         Return INVALID_POSITION if not close to text.
     6126        Move caret to first position on display line extending selection to
     6127        new caret position.
    58676128    */
    5868     int CharPositionFromPointClose(int x, int y);
     6129    void HomeDisplayExtend();
    58696130
    58706131    /**
    5871         Set whether switching to rectangular mode while selecting with the mouse is allowed.
     6132        Move caret to last position on display line.
    58726133    */
    5873     void SetMouseSelectionRectangularSwitch(bool mouseSelectionRectangularSwitch);
     6134    void LineEndDisplay();
    58746135
    58756136    /**
    5876         Whether switching to rectangular mode while selecting with the mouse is allowed.
     6137        Move caret to last position on display line extending selection to new
     6138        caret position.
    58776139    */
    5878     bool GetMouseSelectionRectangularSwitch() const;
     6140    void LineEndDisplayExtend();
    58796141
    58806142    /**
    5881         Set whether multiple selections can be made
     6143        Like Home but when word-wrap is enabled goes first to start of display line
     6144        HomeDisplay, then to start of document line Home.
    58826145    */
    5883     void SetMultipleSelection(bool multipleSelection);
     6146    void HomeWrap();
    58846147
    58856148    /**
    5886         Whether multiple selections can be made
     6149        Like HomeExtend but when word-wrap is enabled extends first to start of display line
     6150        HomeDisplayExtend, then to start of document line HomeExtend.
    58876151    */
    5888     bool GetMultipleSelection() const;
     6152    void HomeWrapExtend();
    58896153
    58906154    /**
    5891         Set whether typing can be performed into multiple selections
     6155        Like LineEnd but when word-wrap is enabled goes first to end of display line
     6156        LineEndDisplay, then to start of document line LineEnd.
    58926157    */
    5893     void SetAdditionalSelectionTyping(bool additionalSelectionTyping);
     6158    void LineEndWrap();
    58946159
    58956160    /**
    5896         Whether typing can be performed into multiple selections
     6161        Like LineEndExtend but when word-wrap is enabled extends first to end of display line
     6162        LineEndDisplayExtend, then to start of document line LineEndExtend.
    58976163    */
    5898     bool GetAdditionalSelectionTyping() const;
     6164    void LineEndWrapExtend();
    58996165
    59006166    /**
    5901         Set whether additional carets will blink
     6167        Like VCHome but when word-wrap is enabled goes first to start of display line
     6168        VCHomeDisplay, then behaves like VCHome.
    59026169    */
    5903     void SetAdditionalCaretsBlink(bool additionalCaretsBlink);
     6170    void VCHomeWrap();
    59046171
    59056172    /**
    5906         Whether additional carets will blink
     6173        Like VCHomeExtend but when word-wrap is enabled extends first to start of display line
     6174        VCHomeDisplayExtend, then behaves like VCHomeExtend.
    59076175    */
    5908     bool GetAdditionalCaretsBlink() const;
     6176    void VCHomeWrapExtend();
    59096177
    59106178    /**
    5911         Set whether additional carets are visible
     6179        Copy the line containing the caret.
    59126180    */
    5913     void SetAdditionalCaretsVisible(bool additionalCaretsVisible);
     6181    void LineCopy();
    59146182
    59156183    /**
    5916         Whether additional carets are visible
     6184        Move to the previous change in capitalisation.
    59176185    */
    5918     bool GetAdditionalCaretsVisible() const;
     6186    void WordPartLeft();
    59196187
    59206188    /**
    5921         How many selections are there?
     6189        Move to the previous change in capitalisation extending selection
     6190        to new caret position.
    59226191    */
    5923     int GetSelections() const;
     6192    void WordPartLeftExtend();
    59246193
    59256194    /**
    5926         Is every selected range empty?
     6195        Move to the change next in capitalisation.
    59276196    */
    5928     bool GetSelectionEmpty() const;
     6197    void WordPartRight();
    59296198
    59306199    /**
    5931         Clear selections to a single empty stream selection
     6200        Move to the next change in capitalisation extending selection
     6201        to new caret position.
    59326202    */
    5933     void ClearSelections();
     6203    void WordPartRightExtend();
    59346204
    59356205    /**
    5936         Add a selection
     6206        Delete back from the current position to the start of the line.
    59376207    */
    5938     int AddSelection(int caret, int anchor);
     6208    void DelLineLeft();
    59396209
    59406210    /**
    5941         Drop one selection
     6211        Delete forwards from the current position to the end of the line.
    59426212    */
    5943     void DropSelectionN(int selection);
     6213    void DelLineRight();
    59446214
    59456215    /**
    5946         Set the main selection
     6216        Move caret down one paragraph (delimited by empty lines).
    59476217    */
    5948     void SetMainSelection(int selection);
     6218    void ParaDown();
    59496219
    59506220    /**
    5951         Which selection is the main selection
     6221        Extend selection down one paragraph (delimited by empty lines).
    59526222    */
    5953     int GetMainSelection() const;
     6223    void ParaDownExtend();
    59546224
    59556225    /**
    5956         Set the caret position of the nth selection.
     6226        Move caret up one paragraph (delimited by empty lines).
    59576227    */
    5958     void SetSelectionNCaret(int selection, int caret);
     6228    void ParaUp();
    59596229
    59606230    /**
    5961         Return the caret position of the nth selection.
     6231        Extend selection up one paragraph (delimited by empty lines).
    59626232    */
    5963     int GetSelectionNCaret(int selection) const;
     6233    void ParaUpExtend();
    59646234
    59656235    /**
    5966         Set the anchor position of the nth selection.
     6236        Move caret down one line, extending rectangular selection to new caret position.
    59676237    */
    5968     void SetSelectionNAnchor(int selection, int anchor);
     6238    void LineDownRectExtend();
    59696239
    59706240    /**
    5971         Return the anchor position of the nth selection.
     6241        Move caret up one line, extending rectangular selection to new caret position.
    59726242    */
    5973     int GetSelectionNAnchor(int selection) const;
     6243    void LineUpRectExtend();
    59746244
    59756245    /**
    5976         Set the virtual space of the caret of the nth selection.
     6246        Move caret left one character, extending rectangular selection to new caret position.
    59776247    */
    5978     void SetSelectionNCaretVirtualSpace(int selection, int space);
     6248    void CharLeftRectExtend();
    59796249
    59806250    /**
    5981         Return the virtual space of the caret of the nth selection.
     6251        Move caret right one character, extending rectangular selection to new caret position.
    59826252    */
    5983     int GetSelectionNCaretVirtualSpace(int selection) const;
     6253    void CharRightRectExtend();
    59846254
    59856255    /**
    5986         Set the virtual space of the anchor of the nth selection.
     6256        Move caret to first position on line, extending rectangular selection to new caret position.
    59876257    */
    5988     void SetSelectionNAnchorVirtualSpace(int selection, int space);
     6258    void HomeRectExtend();
    59896259
    59906260    /**
    5991         Return the virtual space of the anchor of the nth selection.
     6261        Move caret to before first visible character on line.
     6262        If already there move to first character on line.
     6263        In either case, extend rectangular selection to new caret position.
    59926264    */
    5993     int GetSelectionNAnchorVirtualSpace(int selection) const;
     6265    void VCHomeRectExtend();
    59946266
    59956267    /**
    5996         Sets the position that starts the selection - this becomes the anchor.
     6268        Move caret to last position on line, extending rectangular selection to new caret position.
    59976269    */
    5998     void SetSelectionNStart(int selection, int anchor);
     6270    void LineEndRectExtend();
    59996271
    60006272    /**
    6001         Returns the position at the start of the selection.
     6273        Move caret one page up, extending rectangular selection to new caret position.
    60026274    */
    6003     int GetSelectionNStart(int selection) const;
     6275    void PageUpRectExtend();
    60046276
    60056277    /**
    6006         Sets the position that ends the selection - this becomes the currentPosition.
     6278        Move caret one page down, extending rectangular selection to new caret position.
    60076279    */
    6008     void SetSelectionNEnd(int selection, int caret);
     6280    void PageDownRectExtend();
    60096281
    60106282    /**
    6011         Returns the position at the end of the selection.
     6283        Move caret to top of page, or one page up if already at top of page.
    60126284    */
    6013     int GetSelectionNEnd(int selection) const;
     6285    void StutteredPageUp();
    60146286
    60156287    /**
    6016         Set the caret position of the rectangular selection.
     6288        Move caret to top of page, or one page up if already at top of page, extending selection to new caret position.
    60176289    */
    6018     void SetRectangularSelectionCaret(int caret);
     6290    void StutteredPageUpExtend();
    60196291
    60206292    /**
    6021         Return the caret position of the rectangular selection.
     6293        Move caret to bottom of page, or one page down if already at bottom of page.
    60226294    */
    6023     int GetRectangularSelectionCaret() const;
     6295    void StutteredPageDown();
    60246296
    60256297    /**
    6026         Set the anchor position of the rectangular selection.
     6298        Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position.
    60276299    */
    6028     void SetRectangularSelectionAnchor(int anchor);
     6300    void StutteredPageDownExtend();
    60296301
    60306302    /**
    6031         Return the anchor position of the rectangular selection.
     6303        Move caret left one word, position cursor at end of word.
    60326304    */
    6033     int GetRectangularSelectionAnchor() const;
     6305    void WordLeftEnd();
    60346306
    60356307    /**
    6036         Set the virtual space of the caret of the rectangular selection.
     6308        Move caret left one word, position cursor at end of word, extending selection to new caret position.
    60376309    */
    6038     void SetRectangularSelectionCaretVirtualSpace(int space);
     6310    void WordLeftEndExtend();
    60396311
    60406312    /**
    6041         Return the virtual space of the caret of the rectangular selection.
     6313        Move caret right one word, position cursor at end of word.
    60426314    */
    6043     int GetRectangularSelectionCaretVirtualSpace() const;
     6315    void WordRightEnd();
    60446316
    60456317    /**
    6046         Set the virtual space of the anchor of the rectangular selection.
     6318        Move caret right one word, position cursor at end of word, extending selection to new caret position.
    60476319    */
    6048     void SetRectangularSelectionAnchorVirtualSpace(int space);
     6320    void WordRightEndExtend();
    60496321
    60506322    /**
    6051         Return the virtual space of the anchor of the rectangular selection.
     6323        Duplicate the selection. If selection empty duplicate the line containing the caret.
    60526324    */
    6053     int GetRectangularSelectionAnchorVirtualSpace() const;
     6325    void SelectionDuplicate();
    60546326
    60556327    /**
    6056         Set options for virtual space behaviour.
     6328        Centre current line in window.
    60576329    */
    6058     void SetVirtualSpaceOptions(int virtualSpaceOptions);
     6330    void VerticalCentreCaret();
    60596331
    60606332    /**
    6061         Return options for virtual space behaviour.
     6333        Scroll to start of document.
    60626334    */
    6063     int GetVirtualSpaceOptions() const;
     6335    void ScrollToStart();
    60646336
    60656337    /**
    6066         On GTK+, allow selecting the modifier key to use for mouse-based
    6067         rectangular selection. Often the window manager requires Alt+Mouse Drag
    6068         for moving windows.
    6069         Valid values are SCMOD_CTRL(default), SCMOD_ALT, or SCMOD_SUPER.
     6338        Scroll to end of document.
    60706339    */
    6071     void SetRectangularSelectionModifier(int modifier);
     6340    void ScrollToEnd();
    60726341
    60736342    /**
    6074         Get the modifier key used for rectangular selection.
     6343        Move caret to before first visible character on display line.
     6344        If already there move to first character on display line.
     6345
     6346        @since 3.1.0
    60756347    */
    6076     int GetRectangularSelectionModifier() const;
     6348    void VCHomeDisplay();
    60776349
    60786350    /**
    6079         Set the foreground colour of additional selections.
    6080         Must have previously called SetSelFore with non-zero first argument for this to have an effect.
     6351        Like VCHomeDisplay but extending selection to new caret position.
     6352
     6353        @since 3.1.0
    60816354    */
    6082     void SetAdditionalSelForeground(const wxColour& fore);
     6355    void VCHomeDisplayExtend();
     6356
     6357    //@}
    60836358
    60846359    /**
    6085         Set the background colour of additional selections.
    6086         Must have previously called SetSelBack with non-zero first argument for this to have an effect.
     6360        @member_group_name{KeyBindings, Key bindings}
    60876361    */
    6088     void SetAdditionalSelBackground(const wxColour& back);
     6362    //@{
    60896363
    60906364    /**
    6091         Set the alpha of the selection.
     6365        When key+modifier combination keyDefinition is pressed perform sciCommand.
     6366
     6367        The second argument should be a bit list containing one or more of the
     6368        @link wxStyledTextCtrl::wxSTC_KEYMOD_NORM wxSTC_KEYMOD_* @endlink constants
     6369        and the third argument should be one of the
     6370        @link wxStyledTextCtrl::wxSTC_CMD_BACKTAB wxSTC_CMD_* @endlink constants.
    60926371    */
    6093     void SetAdditionalSelAlpha(int alpha);
     6372    void CmdKeyAssign(int key, int modifiers, int cmd);
    60946373
    60956374    /**
    6096         Get the alpha of the selection.
     6375        When key+modifier combination keyDefinition is pressed do nothing.
     6376
     6377        The second argument should be a bit list containing one or more of the
     6378        @link wxStyledTextCtrl::wxSTC_KEYMOD_NORM wxSTC_KEYMOD_* @endlink constants.
    60976379    */
    6098     int GetAdditionalSelAlpha() const;
     6380    void CmdKeyClear(int key, int modifiers);
    60996381
    61006382    /**
    6101         Set the foreground colour of additional carets.
     6383        Drop all key mappings.
    61026384    */
    6103     void SetAdditionalCaretForeground(const wxColour& fore);
     6385    void CmdKeyClearAll();
     6386
     6387    //@}
    61046388
    61056389    /**
    6106         Get the foreground colour of additional carets.
     6390        @member_group_name{PopupEditMenu, Popup edit menu}
    61076391    */
    6108     wxColour GetAdditionalCaretForeground() const;
     6392    //@{
    61096393
    61106394    /**
    6111         Set the main selection to the next selection.
     6395        Set whether a pop up menu is displayed automatically when the user presses
     6396        the wrong mouse button on certain areas.
     6397
     6398        The input should be one of the
     6399        @link wxStyledTextCtrl::wxSTC_POPUP_NEVER wxSTC_POPUP_* @endlink constants.
    61126400    */
    6113     void RotateSelection();
     6401    void UsePopUp(int popUpMode);
     6402
     6403    //@}
    61146404
    61156405    /**
    6116         Swap that caret and anchor of the main selection.
     6406        @member_group_name{MacroRecording, Macro recording}
    61176407    */
    6118     void SwapMainAnchorCaret();
     6408    //@{
    61196409
    61206410    /**
    6121         Add the next occurrence of the main selection to the set of selections as main.
    6122         If the current selection is empty then select word around caret.
     6411        Start notifying the container of all key presses and commands.
     6412    */
     6413    void StartRecord();
     6414
     6415    /**
     6416        Stop notifying the container of all key presses and commands.
     6417    */
     6418    void StopRecord();
     6419
     6420    //@}
     6421
     6422    /**
     6423        @member_group_name{Printing, Printing}
     6424    */
     6425    //@{
     6426
     6427    /**
     6428        Sets the print magnification added to the point size of each style for printing.
     6429    */
     6430    void SetPrintMagnification(int magnification);
     6431
     6432    /**
     6433        Returns the print magnification.
     6434    */
     6435    int GetPrintMagnification() const;
     6436
     6437    /**
     6438        Modify colours when printing for clearer printed text.
     6439
     6440        The input should be one of the
     6441        @link wxStyledTextCtrl::wxSTC_PRINT_NORMAL wxSTC_PRINT_* @endlink constants.
     6442    */
     6443    void SetPrintColourMode(int mode);
     6444
     6445    /**
     6446        Returns the print colour mode.
     6447
     6448        The return value will be one of the
     6449        @link wxStyledTextCtrl::wxSTC_PRINT_NORMAL wxSTC_PRINT_* @endlink constants.
     6450    */
     6451    int GetPrintColourMode() const;
     6452
     6453    /**
     6454        On Windows, will draw the document into a display context such as a printer.
     6455    */
     6456    int FormatRange(bool   doDraw,
     6457               int    startPos,
     6458               int    endPos,
     6459               wxDC*  draw,
     6460               wxDC*  target,
     6461               wxRect renderRect,
     6462               wxRect pageRect);
     6463
     6464    /**
     6465        Set printing to line wrapped (wxSTC_WRAP_WORD) or not line wrapped (wxSTC_WRAP_NONE).
     6466    */
     6467    void SetPrintWrapMode(int wrapMode);
     6468
     6469    /**
     6470        Is printing line wrapped?
     6471
     6472        The return value will be one of the
     6473        @link wxStyledTextCtrl::wxSTC_WRAP_NONE wxSTC_WRAP_* @endlink constants.
     6474    */
     6475    int GetPrintWrapMode() const;
     6476
     6477    //@}
     6478
     6479    /**
     6480        @member_group_name{DirectAccess, Direct access}
     6481    */
     6482    //@{
     6483
     6484    /**
     6485        Retrieve a pointer to a function that processes messages for this Scintilla.
     6486
     6487        @since 3.1.1
     6488    */
     6489    void* GetDirectFunction() const;
     6490
     6491    /**
     6492        Retrieve a pointer value to use as the first argument when calling
     6493        the function returned by GetDirectFunction.
     6494
     6495        @since 3.1.1
     6496    */
     6497    void* GetDirectPointer() const;
     6498
     6499    /**
     6500        Compact the document buffer and return a read-only pointer to the
     6501        characters in the document.
     6502    */
     6503    const char* GetCharacterPointer() const;
     6504
     6505    /**
     6506        Return a read-only pointer to a range of characters in the document.
     6507        May move the gap so that the range is contiguous, but will only move up
     6508        to lengthRange bytes.
     6509    */
     6510    const char* GetRangePointer(int position, int rangeLength) const;
     6511
     6512    /**
     6513        Return a position which, to avoid performance costs, should not be within
     6514        the range of a call to GetRangePointer.
     6515    */
     6516    int GetGapPosition() const;
     6517
     6518    //@}
     6519
     6520    /**
     6521        @member_group_name{MultipleViews, Multiple views}
     6522    */
     6523    //@{
     6524
     6525    /**
     6526        Retrieve a pointer to the document object.
     6527    */
     6528    void* GetDocPointer();
     6529
     6530    /**
     6531        Change the document object used.
     6532    */
     6533    void SetDocPointer(void* docPointer);
     6534
     6535    /**
     6536        Create a new document object.
     6537        Starts with reference count of 1 and not selected into editor.
     6538    */
     6539    void* CreateDocument();
     6540
     6541    /**
     6542        Extend life of document.
     6543    */
     6544    void AddRefDocument(void* docPointer);
     6545
     6546    /**
     6547        Release a reference to the document, deleting document if it fades to black.
     6548    */
     6549    void ReleaseDocument(void* docPointer);
     6550
     6551    //@}
     6552
     6553    /**
     6554        @member_group_name{BackgroundLoadSave, Background loading and saving}
     6555    */
     6556    //@{
     6557
     6558    /**
     6559        Create an ILoader*.
     6560    */
     6561    void* CreateLoader(int bytes) const;
     6562
     6563    //@}
     6564
     6565    /**
     6566        @member_group_name{Folding, Folding}
     6567    */
     6568    //@{
     6569
     6570    /**
     6571        Find the display line of a document line taking hidden lines into account.
     6572    */
     6573    int VisibleFromDocLine(int docLine);
     6574
     6575    /**
     6576        Find the document line of a display line taking hidden lines into account.
     6577    */
     6578    int DocLineFromVisible(int displayLine);
     6579
     6580    /**
     6581        Set the fold level of a line.
     6582        This encodes an integer level along with flags indicating whether the
     6583        line is a header and whether it is effectively white space.
     6584    */
     6585    void SetFoldLevel(int line, int level);
     6586
     6587    /**
     6588        Retrieve the fold level of a line.
     6589    */
     6590    int GetFoldLevel(int line) const;
     6591
     6592    /**
     6593        Find the last child line of a header line.
     6594    */
     6595    int GetLastChild(int line, int level) const;
     6596
     6597    /**
     6598        Find the parent line of a child line.
     6599    */
     6600    int GetFoldParent(int line) const;
     6601
     6602    /**
     6603        Make a range of lines visible.
     6604    */
     6605    void ShowLines(int lineStart, int lineEnd);
     6606
     6607    /**
     6608        Make a range of lines invisible.
     6609    */
     6610    void HideLines(int lineStart, int lineEnd);
     6611
     6612    /**
     6613        Is a line visible?
     6614    */
     6615    bool GetLineVisible(int line) const;
     6616
     6617    /**
     6618        Are all lines visible?
     6619    */
     6620    bool GetAllLinesVisible() const;
     6621
     6622    /**
     6623        Show the children of a header line.
     6624    */
     6625    void SetFoldExpanded(int line, bool expanded);
     6626
     6627    /**
     6628        Is a header line expanded?
     6629    */
     6630    bool GetFoldExpanded(int line) const;
     6631
     6632    /**
     6633        Switch a header line between expanded and contracted.
     6634    */
     6635    void ToggleFold(int line);
     6636
     6637    /**
     6638        Switch a header line between expanded and contracted and show some text after the line.
     6639
     6640        @since 3.1.1
     6641    */
     6642    void ToggleFoldShowText(int line, const wxString& text);
     6643
     6644    /**
     6645        Set the style of fold display text
     6646
     6647        The input should be one of the
     6648        @link wxStyledTextCtrl::wxSTC_FOLDDISPLAYTEXT_HIDDEN wxSTC_FOLDDISPLAYTEXT_* @endlink constants.
     6649        @since 3.1.1
     6650    */
     6651    void FoldDisplayTextSetStyle(int style);
     6652
     6653    /**
     6654        Expand or contract a fold header.
     6655
     6656        The second argument should be one of the
     6657        @link wxStyledTextCtrl::wxSTC_FOLDACTION_CONTRACT wxSTC_FOLDACTION_* @endlink constants.
     6658        @since 3.1.0
     6659    */
     6660    void FoldLine(int line, int action);
     6661
     6662    /**
     6663        Expand or contract a fold header and its children.
     6664
     6665        The second argument should be one of the
     6666        @link wxStyledTextCtrl::wxSTC_FOLDACTION_CONTRACT wxSTC_FOLDACTION_* @endlink constants.
     6667        @since 3.1.0
     6668    */
     6669    void FoldChildren(int line, int action);
     6670
     6671    /**
     6672        Expand a fold header and all children. Use the level argument instead of the line's current level.
     6673
     6674        @since 3.1.0
     6675    */
     6676    void ExpandChildren(int line, int level);
     6677
     6678    /**
     6679        Expand or contract all fold headers.
     6680
     6681        The input should be one of the
     6682        @link wxStyledTextCtrl::wxSTC_FOLDACTION_CONTRACT wxSTC_FOLDACTION_* @endlink constants.
     6683        @since 3.1.0
     6684    */
     6685    void FoldAll(int action);
     6686
     6687    /**
     6688        Ensure a particular line is visible by expanding any header line hiding it.
     6689    */
     6690    void EnsureVisible(int line);
     6691
     6692    /**
     6693        Set automatic folding behaviours.
     6694
     6695        The input should be a bit list containing one or more of the
     6696        @link wxStyledTextCtrl::wxSTC_AUTOMATICFOLD_SHOW wxSTC_AUTOMATICFOLD_* @endlink constants.
     6697        @since 3.1.0
     6698    */
     6699    void SetAutomaticFold(int automaticFold);
     6700
     6701    /**
     6702        Get automatic folding behaviours.
     6703
     6704        The return value will be a bit list containing one or more of the
     6705        @link wxStyledTextCtrl::wxSTC_AUTOMATICFOLD_SHOW wxSTC_AUTOMATICFOLD_* @endlink constants.
     6706        @since 3.1.0
     6707    */
     6708    int GetAutomaticFold() const;
     6709
     6710    /**
     6711        Set some style options for folding.
     6712
     6713        The second argument should be a bit list containing one or more of the
     6714        @link wxStyledTextCtrl::wxSTC_FOLDFLAG_LINEBEFORE_EXPANDED wxSTC_FOLDFLAG_* @endlink constants.
     6715    */
     6716    void SetFoldFlags(int flags);
     6717
     6718    /**
     6719        Ensure a particular line is visible by expanding any header line hiding it.
     6720        Use the currently set visibility policy to determine which range to display.
     6721    */
     6722    void EnsureVisibleEnforcePolicy(int line);
     6723
     6724    /**
     6725        Find the next line at or after lineStart that is a contracted fold header line.
     6726        Return -1 when no more lines.
     6727    */
     6728    int ContractedFoldNext(int lineStart);
     6729
     6730    //@}
     6731
     6732    /**
     6733        @member_group_name{LineWrapping, Line wrapping}
     6734    */
     6735    //@{
     6736
     6737    /**
     6738        The number of display lines needed to wrap a document line
     6739    */
     6740    int WrapCount(int docLine);
     6741
     6742    /**
     6743        Sets whether text is word wrapped.
     6744
     6745        The input should be one of the
     6746        @link wxStyledTextCtrl::wxSTC_WRAP_NONE wxSTC_WRAP_* @endlink constants.
    61236747    */
    6124     void MultipleSelectAddNext();
     6748    void SetWrapMode(int wrapMode);
    61256749
    61266750    /**
    6127         Add each occurrence of the main selection in the target to the set of selections.
    6128         If the current selection is empty then select word around caret.
     6751        Retrieve whether text is word wrapped.
     6752
     6753        The return value will be one of the
     6754        @link wxStyledTextCtrl::wxSTC_WRAP_NONE wxSTC_WRAP_* @endlink constants.
    61296755    */
    6130     void MultipleSelectAddEach();
     6756    int GetWrapMode() const;
    61316757
    61326758    /**
    6133         Indicate that the internal state of a lexer has changed over a range and therefore
    6134         there may be a need to redraw.
     6759        Set the display mode of visual flags for wrapped lines.
     6760
     6761        The input should be a bit list containing one or more of the
     6762        @link wxStyledTextCtrl::wxSTC_WRAPVISUALFLAG_NONE wxSTC_WRAPVISUALFLAG_* @endlink constants.
    61356763    */
    6136     int ChangeLexerState(int start, int end);
     6764    void SetWrapVisualFlags(int wrapVisualFlags);
    61376765
    61386766    /**
    6139         Find the next line at or after lineStart that is a contracted fold header line.
    6140         Return -1 when no more lines.
     6767        Retrive the display mode of visual flags for wrapped lines.
     6768
     6769        The return value will be a bit list containing one or more of the
     6770        @link wxStyledTextCtrl::wxSTC_WRAPVISUALFLAG_NONE wxSTC_WRAPVISUALFLAG_* @endlink constants.
    61416771    */
    6142     int ContractedFoldNext(int lineStart);
     6772    int GetWrapVisualFlags() const;
    61436773
    61446774    /**
    6145         Centre current line in window.
     6775        Set the location of visual flags for wrapped lines.
     6776
     6777        The input should be a bit list containing one or more of the
     6778        @link wxStyledTextCtrl::wxSTC_WRAPVISUALFLAGLOC_DEFAULT wxSTC_WRAPVISUALFLAGLOC_* @endlink constants.
    61466779    */
    6147     void VerticalCentreCaret();
     6780    void SetWrapVisualFlagsLocation(int wrapVisualFlagsLocation);
    61486781
    61496782    /**
    6150         Move the selected lines up one line, shifting the line above after the selection
     6783        Retrive the location of visual flags for wrapped lines.
     6784
     6785        The return value will be a bit list containing one or more of the
     6786        @link wxStyledTextCtrl::wxSTC_WRAPVISUALFLAGLOC_DEFAULT wxSTC_WRAPVISUALFLAGLOC_* @endlink constants.
    61516787    */
    6152     void MoveSelectedLinesUp();
     6788    int GetWrapVisualFlagsLocation() const;