X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c46ea66472d59fe5fe623c456e540e47d922fcf..118cc185eb27b933439f3fb136b2b6ece5fe1bea:/contrib/include/wx/stc/stc.h diff --git a/contrib/include/wx/stc/stc.h b/contrib/include/wx/stc/stc.h index 62bc6db594..82cd6684ff 100644 --- a/contrib/include/wx/stc/stc.h +++ b/contrib/include/wx/stc/stc.h @@ -24,6 +24,12 @@ #include #include +#ifdef STCISDLL +#define STCDLLEXPORT WXDLLEXPORT +#else +#define STCDLLEXPORT +#endif + //---------------------------------------------------------------------- // Should a wxPopupWindow be used for the call tips and autocomplete windows? @@ -43,12 +49,6 @@ #define wxSTC_START 2000 #define wxSTC_OPTIONAL_START 3000 #define wxSTC_LEXER_START 4000 - -// Redoes the next action on the undo history -#define wxSTC_CMD_REDO 2011 - -// Select all the text in the document. -#define wxSTC_CMD_SELECTALL 2013 #define wxSTC_WS_INVISIBLE 0 #define wxSTC_WS_VISIBLEALWAYS 1 #define wxSTC_WS_VISIBLEAFTERINDENT 2 @@ -70,7 +70,7 @@ #define wxSTC_MARK_MINUS 7 #define wxSTC_MARK_PLUS 8 -// Shapes used for outlining column +// Shapes used for outlining column. #define wxSTC_MARK_VLINE 9 #define wxSTC_MARK_LCORNER 10 #define wxSTC_MARK_TCORNER 11 @@ -85,11 +85,13 @@ #define wxSTC_MARK_CIRCLEMINUS 20 #define wxSTC_MARK_CIRCLEMINUSCONNECTED 21 -// Invisible mark that only sets the line background color +// Invisible mark that only sets the line background color. #define wxSTC_MARK_BACKGROUND 22 +#define wxSTC_MARK_DOTDOTDOT 23 +#define wxSTC_MARK_ARROWS 24 #define wxSTC_MARK_CHARACTER 10000 -// Markers used for outlining column +// Markers used for outlining column. #define wxSTC_MARKNUM_FOLDEREND 25 #define wxSTC_MARKNUM_FOLDEROPENMID 26 #define wxSTC_MARKNUM_FOLDERMIDTAIL 27 @@ -165,18 +167,6 @@ #define wxSTC_FIND_MATCHCASE 4 #define wxSTC_FIND_WORDSTART 0x00100000 #define wxSTC_FIND_REGEXP 0x00200000 - -// Undo one action in the undo history. -#define wxSTC_CMD_UNDO 2176 - -// Cut the selection to the clipboard. -#define wxSTC_CMD_CUT 2177 - -// Copy the selection to the clipboard. -#define wxSTC_CMD_COPY 2178 - -// Paste the contents of the clipboard into the document replacing the selection. -#define wxSTC_CMD_PASTE 2179 #define wxSTC_FOLDLEVELBASE 0x400 #define wxSTC_FOLDLEVELWHITEFLAG 0x1000 #define wxSTC_FOLDLEVELHEADERFLAG 0x2000 @@ -188,177 +178,44 @@ #define wxSTC_CACHE_CARET 1 #define wxSTC_CACHE_PAGE 2 #define wxSTC_CACHE_DOCUMENT 3 - -// Move caret down one line. -#define wxSTC_CMD_LINEDOWN 2300 - -// Move caret down one line extending selection to new caret position. -#define wxSTC_CMD_LINEDOWNEXTEND 2301 - -// Move caret up one line. -#define wxSTC_CMD_LINEUP 2302 - -// Move caret up one line extending selection to new caret position. -#define wxSTC_CMD_LINEUPEXTEND 2303 - -// Move caret left one character. -#define wxSTC_CMD_CHARLEFT 2304 - -// Move caret left one character extending selection to new caret position. -#define wxSTC_CMD_CHARLEFTEXTEND 2305 - -// Move caret right one character. -#define wxSTC_CMD_CHARRIGHT 2306 - -// Move caret right one character extending selection to new caret position. -#define wxSTC_CMD_CHARRIGHTEXTEND 2307 - -// Move caret left one word. -#define wxSTC_CMD_WORDLEFT 2308 - -// Move caret left one word extending selection to new caret position. -#define wxSTC_CMD_WORDLEFTEXTEND 2309 - -// Move caret right one word. -#define wxSTC_CMD_WORDRIGHT 2310 - -// Move caret right one word extending selection to new caret position. -#define wxSTC_CMD_WORDRIGHTEXTEND 2311 - -// Move caret to first position on line. -#define wxSTC_CMD_HOME 2312 - -// Move caret to first position on line extending selection to new caret position. -#define wxSTC_CMD_HOMEEXTEND 2313 - -// Move caret to last position on line. -#define wxSTC_CMD_LINEEND 2314 - -// Move caret to last position on line extending selection to new caret position. -#define wxSTC_CMD_LINEENDEXTEND 2315 - -// Move caret to first position in document. -#define wxSTC_CMD_DOCUMENTSTART 2316 - -// Move caret to first position in document extending selection to new caret position. -#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317 - -// Move caret to last position in document. -#define wxSTC_CMD_DOCUMENTEND 2318 - -// Move caret to last position in document extending selection to new caret position. -#define wxSTC_CMD_DOCUMENTENDEXTEND 2319 - -// Move caret one page up. -#define wxSTC_CMD_PAGEUP 2320 - -// Move caret one page up extending selection to new caret position. -#define wxSTC_CMD_PAGEUPEXTEND 2321 - -// Move caret one page down. -#define wxSTC_CMD_PAGEDOWN 2322 - -// Move caret one page down extending selection to new caret position. -#define wxSTC_CMD_PAGEDOWNEXTEND 2323 - -// Switch from insert to overtype mode or the reverse. -#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324 - -// Cancel any modes such as call tip or auto-completion list display. -#define wxSTC_CMD_CANCEL 2325 - -// Delete the selection or if no selection, the character before the caret. -#define wxSTC_CMD_DELETEBACK 2326 - -// If selection is empty or all on one line replace the selection with a tab -// character. -// If more than one line selected, indent the lines. -#define wxSTC_CMD_TAB 2327 - -// Dedent the selected lines. -#define wxSTC_CMD_BACKTAB 2328 - -// Insert a new line, may use a CRLF, CR or LF depending on EOL mode. -#define wxSTC_CMD_NEWLINE 2329 - -// Insert a Form Feed character. -#define wxSTC_CMD_FORMFEED 2330 - -// Move caret to before first visible character on line. -// If already there move to first character on line. -#define wxSTC_CMD_VCHOME 2331 - -// Like VCHome but extending selection to new caret position. -#define wxSTC_CMD_VCHOMEEXTEND 2332 - -// Magnify the displayed text by increasing the sizes by 1 point. -#define wxSTC_CMD_ZOOMIN 2333 - -// Make the displayed text smaller by decreasing the sizes by 1 point. -#define wxSTC_CMD_ZOOMOUT 2334 - -// Delete the word to the left of the caret. -#define wxSTC_CMD_DELWORDLEFT 2335 - -// Delete the word to the right of the caret. -#define wxSTC_CMD_DELWORDRIGHT 2336 - -// Cut the line containing the caret. -#define wxSTC_CMD_LINECUT 2337 - -// Delete the line containing the caret. -#define wxSTC_CMD_LINEDELETE 2338 - -// Switch the current line with the previous. -#define wxSTC_CMD_LINETRANSPOSE 2339 - -// Transform the selection to lower case. -#define wxSTC_CMD_LOWERCASE 2340 - -// Transform the selection to upper case. -#define wxSTC_CMD_UPPERCASE 2341 - -// Scroll the document down, keeping the caret visible. -#define wxSTC_CMD_LINESCROLLDOWN 2342 - -// Scroll the document up, keeping the caret visible. -#define wxSTC_CMD_LINESCROLLUP 2343 - -// Delete the selection or if no selection, the character before the caret. -// Will not delete the chraacter before at the start of a line. -#define wxSTC_CMD_DELETEBACKNOTLINE 2344 #define wxSTC_EDGE_NONE 0 #define wxSTC_EDGE_LINE 1 #define wxSTC_EDGE_BACKGROUND 2 +#define wxSTC_CURSORNORMAL -1 +#define wxSTC_CURSORWAIT 3 -// Show caret within N lines of edge when it's scrolled to view -// If CARET_SLOP not set then centre caret on screen when it's -// scrolled to view -#define wxSTC_CARET_SLOP 0x01 +// Constants for use with SetVisiblePolicy, similar to SetCaretPolicy. +#define wxSTC_VISIBLE_SLOP 0x01 +#define wxSTC_VISIBLE_STRICT 0x04 -// Value not used -#define wxSTC_CARET_CENTER 0x02 +// Caret policy, used by SetXCaretPolicy and SetYCaretPolicy. +// If CARET_SLOP is set, we can define a slop value: caretSlop. +// This value defines an unwanted zone (UZ) where the caret is... unwanted. +// This zone is defined as a number of pixels near the vertical margins, +// and as a number of lines near the horizontal margins. +// By keeping the caret away from the edges, it is seen within its context, +// so it is likely that the identifier that the caret is on can be completely seen, +// and that the current line is seen with some of the lines following it which are +// often dependent on that line. +#define wxSTC_CARET_SLOP 0x01 -// If CARET_SLOP also set then reposition whenever outside slop border -// If CARET_SLOP not set then recentre even when visible +// If CARET_STRICT is set, the policy is enforced... strictly. +// The caret is centred on the display if slop is not set, +// and cannot go in the UZ if slop is set. #define wxSTC_CARET_STRICT 0x04 -// If CARET_XEVEN set then both left and right margins are given equal weight -// rather than favouring left following behaviour. -#define wxSTC_CARET_XEVEN 0x08 +// If CARET_JUMPS is set, the display is moved more energetically +// so the caret can move in the same direction longer before the policy is applied again. +#define wxSTC_CARET_JUMPS 0x10 -// If CARET_XJUMPS set then when caret reaches the margin the display jumps -// enough to leave the caret solidly within the display. -#define wxSTC_CARET_XJUMPS 0x10 -#define wxSTC_CURSORNORMAL -1 -#define wxSTC_CURSORWAIT 3 - -// Constants for use with SetVisiblePolicy, similar to SetCaretPolicy -#define wxSTC_VISIBLE_SLOP 0x01 -#define wxSTC_VISIBLE_STRICT 0x04 +// If CARET_EVEN is not set, instead of having symmetrical UZs, +// the left and bottom UZs are extended up to right and top UZs respectively. +// This way, we favour the displaying of useful information: the begining of lines, +// where most code reside, and the lines after the caret, eg. the body of a function. +#define wxSTC_CARET_EVEN 0x08 // Notifications -// Type of modification and the action which caused the modification +// Type of modification and the action which caused the modification. // These are defined as a bit mask to make it easy to specify which notifications are wanted. // One bit is set from each of SC_MOD_* and SC_PERFORMED_*. #define wxSTC_MOD_INSERTTEXT 0x1 @@ -374,9 +231,9 @@ #define wxSTC_MOD_BEFOREDELETE 0x800 #define wxSTC_MODEVENTMASKALL 0xF77 -// Symbolic key codes and modifier flags -// ASCII and other printable characters below 256 -// Extended keys above 300 +// Symbolic key codes and modifier flags. +// ASCII and other printable characters below 256. +// Extended keys above 300. #define wxSTC_KEY_DOWN 300 #define wxSTC_KEY_UP 301 #define wxSTC_KEY_LEFT 302 @@ -432,6 +289,7 @@ #define wxSTC_LEX_PHP 30 #define wxSTC_LEX_BAAN 31 #define wxSTC_LEX_MATLAB 32 +#define wxSTC_LEX_SCRIPTOL 33 // When a lexer specifies its language as SCLEX_AUTOMATIC it receives a // value assigned in sequence from SCLEX_AUTOMATIC+1. @@ -474,17 +332,6 @@ #define wxSTC_C_COMMENTDOCKEYWORD 17 #define wxSTC_C_COMMENTDOCKEYWORDERROR 18 -// Lexical states for SCLEX_VB, SCLEX_VBSCRIPT -#define wxSTC_B_DEFAULT 0 -#define wxSTC_B_COMMENT 1 -#define wxSTC_B_NUMBER 2 -#define wxSTC_B_KEYWORD 3 -#define wxSTC_B_STRING 4 -#define wxSTC_B_PREPROCESSOR 5 -#define wxSTC_B_OPERATOR 6 -#define wxSTC_B_IDENTIFIER 7 -#define wxSTC_B_DATE 8 - // Lexical states for SCLEX_HTML, SCLEX_XML #define wxSTC_H_DEFAULT 0 #define wxSTC_H_TAG 1 @@ -651,6 +498,24 @@ #define wxSTC_PL_STRING_QR 29 #define wxSTC_PL_STRING_QW 30 +// Lexical states for SCLEX_VB, SCLEX_VBSCRIPT +#define wxSTC_B_DEFAULT 0 +#define wxSTC_B_COMMENT 1 +#define wxSTC_B_NUMBER 2 +#define wxSTC_B_KEYWORD 3 +#define wxSTC_B_STRING 4 +#define wxSTC_B_PREPROCESSOR 5 +#define wxSTC_B_OPERATOR 6 +#define wxSTC_B_IDENTIFIER 7 +#define wxSTC_B_DATE 8 + +// Lexical states for SCLEX_PROPERTIES +#define wxSTC_PROPS_DEFAULT 0 +#define wxSTC_PROPS_COMMENT 1 +#define wxSTC_PROPS_SECTION 2 +#define wxSTC_PROPS_ASSIGNMENT 3 +#define wxSTC_PROPS_DEFVAL 4 + // Lexical states for SCLEX_LATEX #define wxSTC_L_DEFAULT 0 #define wxSTC_L_COMMAND 1 @@ -688,6 +553,7 @@ #define wxSTC_ERR_PERL 6 #define wxSTC_ERR_NET 7 #define wxSTC_ERR_LUA 8 +#define wxSTC_ERR_CTAG 9 #define wxSTC_ERR_DIFF_CHANGED 10 #define wxSTC_ERR_DIFF_ADDITION 11 #define wxSTC_ERR_DIFF_DELETION 12 @@ -712,7 +578,16 @@ #define wxSTC_MAKE_TARGET 5 #define wxSTC_MAKE_IDEOL 9 -// Lexical states for the SCLEX_CONF (Apache Configuration Files Lexer) +// Lexical states for SCLEX_DIFF +#define wxSTC_DIFF_DEFAULT 0 +#define wxSTC_DIFF_COMMENT 1 +#define wxSTC_DIFF_COMMAND 2 +#define wxSTC_DIFF_HEADER 3 +#define wxSTC_DIFF_POSITION 4 +#define wxSTC_DIFF_DELETED 5 +#define wxSTC_DIFF_ADDED 6 + +// Lexical states for SCLEX_CONF (Apache Configuration Files Lexer) #define wxSTC_CONF_DEFAULT 0 #define wxSTC_CONF_COMMENT 1 #define wxSTC_CONF_NUMBER 2 @@ -724,7 +599,7 @@ #define wxSTC_CONF_IP 8 #define wxSTC_CONF_DIRECTIVE 9 -// Avenue +// Lexical states for SCLEX_AVE, Avenue #define wxSTC_AVE_DEFAULT 0 #define wxSTC_AVE_COMMENT 1 #define wxSTC_AVE_NUMBER 2 @@ -782,7 +657,7 @@ #define wxSTC_EIFFEL_IDENTIFIER 7 #define wxSTC_EIFFEL_STRINGEOL 8 -// Lexical states for the SCLEX_NNCRONTAB (nnCron crontab Lexer) +// Lexical states for SCLEX_NNCRONTAB (nnCron crontab Lexer) #define wxSTC_NNCRONTAB_DEFAULT 0 #define wxSTC_NNCRONTAB_COMMENT 1 #define wxSTC_NNCRONTAB_TASK 2 @@ -805,6 +680,226 @@ #define wxSTC_MATLAB_OPERATOR 6 #define wxSTC_MATLAB_IDENTIFIER 7 +// Lexical states for SCLEX_SCRIPTOL +#define wxSTC_SCRIPTOL_DEFAULT 0 +#define wxSTC_SCRIPTOL_COMMENT 1 +#define wxSTC_SCRIPTOL_COMMENTLINE 2 +#define wxSTC_SCRIPTOL_COMMENTDOC 3 +#define wxSTC_SCRIPTOL_NUMBER 4 +#define wxSTC_SCRIPTOL_WORD 5 +#define wxSTC_SCRIPTOL_STRING 6 +#define wxSTC_SCRIPTOL_CHARACTER 7 +#define wxSTC_SCRIPTOL_UUID 8 +#define wxSTC_SCRIPTOL_PREPROCESSOR 9 +#define wxSTC_SCRIPTOL_OPERATOR 10 +#define wxSTC_SCRIPTOL_IDENTIFIER 11 +#define wxSTC_SCRIPTOL_STRINGEOL 12 +#define wxSTC_SCRIPTOL_VERBATIM 13 +#define wxSTC_SCRIPTOL_REGEX 14 +#define wxSTC_SCRIPTOL_COMMENTLINEDOC 15 +#define wxSTC_SCRIPTOL_WORD2 16 +#define wxSTC_SCRIPTOL_COMMENTDOCKEYWORD 17 +#define wxSTC_SCRIPTOL_COMMENTDOCKEYWORDERROR 18 +#define wxSTC_SCRIPTOL_COMMENTBASIC 19 + + +//----------------------------------------- +// Commands that can be bound to keystrokes + +// Redoes the next action on the undo history. +#define wxSTC_CMD_REDO 2011 + +// Select all the text in the document. +#define wxSTC_CMD_SELECTALL 2013 + +// Undo one action in the undo history. +#define wxSTC_CMD_UNDO 2176 + +// Cut the selection to the clipboard. +#define wxSTC_CMD_CUT 2177 + +// Copy the selection to the clipboard. +#define wxSTC_CMD_COPY 2178 + +// Paste the contents of the clipboard into the document replacing the selection. +#define wxSTC_CMD_PASTE 2179 + +// Clear the selection. +#define wxSTC_CMD_CLEAR 2180 + +// Move caret down one line. +#define wxSTC_CMD_LINEDOWN 2300 + +// Move caret down one line extending selection to new caret position. +#define wxSTC_CMD_LINEDOWNEXTEND 2301 + +// Move caret up one line. +#define wxSTC_CMD_LINEUP 2302 + +// Move caret up one line extending selection to new caret position. +#define wxSTC_CMD_LINEUPEXTEND 2303 + +// Move caret left one character. +#define wxSTC_CMD_CHARLEFT 2304 + +// Move caret left one character extending selection to new caret position. +#define wxSTC_CMD_CHARLEFTEXTEND 2305 + +// Move caret right one character. +#define wxSTC_CMD_CHARRIGHT 2306 + +// Move caret right one character extending selection to new caret position. +#define wxSTC_CMD_CHARRIGHTEXTEND 2307 + +// Move caret left one word. +#define wxSTC_CMD_WORDLEFT 2308 + +// Move caret left one word extending selection to new caret position. +#define wxSTC_CMD_WORDLEFTEXTEND 2309 + +// Move caret right one word. +#define wxSTC_CMD_WORDRIGHT 2310 + +// Move caret right one word extending selection to new caret position. +#define wxSTC_CMD_WORDRIGHTEXTEND 2311 + +// Move caret to first position on line. +#define wxSTC_CMD_HOME 2312 + +// Move caret to first position on line extending selection to new caret position. +#define wxSTC_CMD_HOMEEXTEND 2313 + +// Move caret to last position on line. +#define wxSTC_CMD_LINEEND 2314 + +// Move caret to last position on line extending selection to new caret position. +#define wxSTC_CMD_LINEENDEXTEND 2315 + +// Move caret to first position in document. +#define wxSTC_CMD_DOCUMENTSTART 2316 + +// Move caret to first position in document extending selection to new caret position. +#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317 + +// Move caret to last position in document. +#define wxSTC_CMD_DOCUMENTEND 2318 + +// Move caret to last position in document extending selection to new caret position. +#define wxSTC_CMD_DOCUMENTENDEXTEND 2319 + +// Move caret one page up. +#define wxSTC_CMD_PAGEUP 2320 + +// Move caret one page up extending selection to new caret position. +#define wxSTC_CMD_PAGEUPEXTEND 2321 + +// Move caret one page down. +#define wxSTC_CMD_PAGEDOWN 2322 + +// Move caret one page down extending selection to new caret position. +#define wxSTC_CMD_PAGEDOWNEXTEND 2323 + +// Switch from insert to overtype mode or the reverse. +#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324 + +// Cancel any modes such as call tip or auto-completion list display. +#define wxSTC_CMD_CANCEL 2325 + +// Delete the selection or if no selection, the character before the caret. +#define wxSTC_CMD_DELETEBACK 2326 + +// If selection is empty or all on one line replace the selection with a tab character. +// If more than one line selected, indent the lines. +#define wxSTC_CMD_TAB 2327 + +// Dedent the selected lines. +#define wxSTC_CMD_BACKTAB 2328 + +// Insert a new line, may use a CRLF, CR or LF depending on EOL mode. +#define wxSTC_CMD_NEWLINE 2329 + +// Insert a Form Feed character. +#define wxSTC_CMD_FORMFEED 2330 + +// Move caret to before first visible character on line. +// If already there move to first character on line. +#define wxSTC_CMD_VCHOME 2331 + +// Like VCHome but extending selection to new caret position. +#define wxSTC_CMD_VCHOMEEXTEND 2332 + +// Magnify the displayed text by increasing the sizes by 1 point. +#define wxSTC_CMD_ZOOMIN 2333 + +// Make the displayed text smaller by decreasing the sizes by 1 point. +#define wxSTC_CMD_ZOOMOUT 2334 + +// Delete the word to the left of the caret. +#define wxSTC_CMD_DELWORDLEFT 2335 + +// Delete the word to the right of the caret. +#define wxSTC_CMD_DELWORDRIGHT 2336 + +// Cut the line containing the caret. +#define wxSTC_CMD_LINECUT 2337 + +// Delete the line containing the caret. +#define wxSTC_CMD_LINEDELETE 2338 + +// Switch the current line with the previous. +#define wxSTC_CMD_LINETRANSPOSE 2339 + +// Transform the selection to lower case. +#define wxSTC_CMD_LOWERCASE 2340 + +// Transform the selection to upper case. +#define wxSTC_CMD_UPPERCASE 2341 + +// Scroll the document down, keeping the caret visible. +#define wxSTC_CMD_LINESCROLLDOWN 2342 + +// Scroll the document up, keeping the caret visible. +#define wxSTC_CMD_LINESCROLLUP 2343 + +// Delete the selection or if no selection, the character before the caret. +// Will not delete the character before at the start of a line. +#define wxSTC_CMD_DELETEBACKNOTLINE 2344 + +// Move caret to first position on display line. +#define wxSTC_CMD_HOMEDISPLAY 2345 + +// Move caret to first position on display line extending selection to +// new caret position. +#define wxSTC_CMD_HOMEDISPLAYEXTEND 2346 + +// Move caret to last position on display line. +#define wxSTC_CMD_LINEENDDISPLAY 2347 + +// Move caret to last position on display line extending selection to new +// caret position. +#define wxSTC_CMD_LINEENDDISPLAYEXTEND 2348 + +// Move to the previous change in capitalisation. +#define wxSTC_CMD_WORDPARTLEFT 2390 + +// Move to the previous change in capitalisation extending selection +// to new caret position. +#define wxSTC_CMD_WORDPARTLEFTEXTEND 2391 + +// Move to the change next in capitalisation. +#define wxSTC_CMD_WORDPARTRIGHT 2392 + +// Move to the next change in capitalisation extending selection +// to new caret position. +#define wxSTC_CMD_WORDPARTRIGHTEXTEND 2393 + +// Delete back from the current position to the start of the line. +#define wxSTC_CMD_DELLINELEFT 2395 + +// Delete forwards from the current position to the end of the line. +#define wxSTC_CMD_DELLINERIGHT 2396 + + // END of generated section //---------------------------------------------------------------------- @@ -812,8 +907,11 @@ class ScintillaWX; // forward declare class WordList; struct SCNotification; - -extern const wxChar* wxSTCNameStr; +#ifndef SWIG +extern STCDLLEXPORT const wxChar* wxSTCNameStr; +class STCDLLEXPORT wxStyledTextCtrl; +class STCDLLEXPORT wxStyledTextEvent; +#endif //---------------------------------------------------------------------- @@ -845,37 +943,37 @@ public: // and regenerate - // Add text to the document + // Add text to the document. void AddText(const wxString& text); - // Add array of cells to document + // Add array of cells to document. void AddStyledText(const wxMemoryBuffer& data); - // Insert string at a position + // Insert string at a position. void InsertText(int pos, const wxString& text); - // Delete all text in the document + // Delete all text in the document. void ClearAll(); - // Set all style bytes to 0, remove all folding information + // Set all style bytes to 0, remove all folding information. void ClearDocumentStyle(); - // The number of characters in the document + // The number of characters in the document. int GetLength(); - // Returns the character byte at the position + // Returns the character byte at the position. int GetCharAt(int pos); - // Returns the position of the caret + // Returns the position of the caret. int GetCurrentPos(); - // Returns the position of the opposite end of the selection to the caret + // Returns the position of the opposite end of the selection to the caret. int GetAnchor(); - // Returns the style byte at the position + // Returns the style byte at the position. int GetStyleAt(int pos); - // Redoes the next action on the undo history + // Redoes the next action on the undo history. void Redo(); // Choose between collecting actions into the undo @@ -892,10 +990,10 @@ public: // Retrieve a buffer of cells. wxMemoryBuffer GetStyledText(int startPos, int endPos); - // Are there any redoable actions in the undo history. + // Are there any redoable actions in the undo history? bool CanRedo(); - // Retrieve the line number at which a particular marker is located + // Retrieve the line number at which a particular marker is located. int MarkerLineFromHandle(int handle); // Delete a marker. @@ -949,23 +1047,21 @@ public: void SetEOLMode(int eolMode); // Set the current styling position to pos and the styling mask to mask. - // The styling mask can be used to protect some bits in each styling byte from - // modification. + // The styling mask can be used to protect some bits in each styling byte from modification. void StartStyling(int pos, int mask); // Change style from current styling position for length characters to a style // and move the current styling position to after this newly styled segment. void SetStyling(int length, int style); - // Is drawing done first into a buffer or direct to the screen. + // Is drawing done first into a buffer or direct to the screen? bool GetBufferedDraw(); // If drawing is buffered then each line of text is drawn into a bitmap buffer // before drawing it to the screen to avoid flicker. void SetBufferedDraw(bool buffered); - // Change the visible size of a tab to be a multiple of the width of a space - // character. + // Change the visible size of a tab to be a multiple of the width of a space character. void SetTabWidth(int tabWidth); // Retrieve the visible size of a tab. @@ -989,10 +1085,10 @@ public: // Add a marker to a line, returning an ID which can be used to find or delete the marker. int MarkerAdd(int line, int markerNumber); - // Delete a marker from a line + // Delete a marker from a line. void MarkerDelete(int line, int markerNumber); - // Delete all markers with a particular number from all lines + // Delete all markers with a particular number from all lines. void MarkerDeleteAll(int markerNumber); // Get a bit mask of all the markers set on a line. @@ -1094,8 +1190,7 @@ public: // Get the time in milliseconds that the caret is on and off. 0 = steady on. void SetCaretPeriod(int periodMilliseconds); - // Set the set of characters making up words for when moving or selecting - // by word. + // Set the set of characters making up words for when moving or selecting by word. void SetWordChars(const wxString& characters); // Start a sequence of actions that is undone and redone as a unit. @@ -1117,8 +1212,14 @@ public: // Retrieve the foreground colour of an indicator. wxColour IndicatorGetForeground(int indic); - // Divide each styling byte into lexical class bits (default:5) and indicator - // bits (default:3). If a lexer requires more than 32 lexical states, then this + // Set the foreground colour of all whitespace and whether to use this setting. + void SetWhitespaceForeground(bool useSetting, const wxColour& fore); + + // Set the background colour of all whitespace and whether to use this setting. + void SetWhitespaceBackground(bool useSetting, const wxColour& back); + + // Divide each styling byte into lexical class bits (default: 5) and indicator + // bits (default: 3). If a lexer requires more than 32 lexical states, then this // is used to expand the possible states. void SetStyleBits(int bits); @@ -1137,7 +1238,7 @@ public: // Is the background of the line containing the caret in a different colour? bool GetCaretLineVisible(); - // Dsplay the background of the line containing the caret in a different colour. + // Display the background of the line containing the caret in a different colour. void SetCaretLineVisible(bool show); // Get the colour of the background of the line containing the caret. @@ -1161,8 +1262,7 @@ public: // Is there an auto-completion list visible? bool AutoCompActive(); - // Retrieve the position of the caret when the auto-completion list was - // displayed. + // Retrieve the position of the caret when the auto-completion list was displayed. int AutoCompPosStart(); // User has selected an item so remove the list and insert the selection. @@ -1171,8 +1271,8 @@ public: // Define a set of character that when typed cancel the auto-completion list. void AutoCompStops(const wxString& characterSet); - // Change the separator character in the string setting up an auto-completion - // list. Default is space but can be changed if items contain space. + // Change the separator character in the string setting up an auto-completion list. + // Default is space but can be changed if items contain space. void AutoCompSetSeparator(int separatorCharacter); // Retrieve the auto-completion list separator character. @@ -1207,16 +1307,18 @@ public: // Display a list of strings and send notification when user chooses one. void UserListShow(int listType, const wxString& itemList); - // Set whether or not autocompletion is hidden automatically when nothing matches + // Set whether or not autocompletion is hidden automatically when nothing matches. void AutoCompSetAutoHide(bool autoHide); - // Retrieve whether or not autocompletion is hidden automatically when nothing matches + // Retrieve whether or not autocompletion is hidden automatically when nothing matches. bool AutoCompGetAutoHide(); - // Set whether or not autocompletion deletes any word characters after the inserted text upon completion + // Set whether or not autocompletion deletes any word characters + // after the inserted text upon completion. void AutoCompSetDropRestOfWord(bool dropRestOfWord); - // Retrieve whether or not autocompletion deletes any word characters after the inserted text upon completion + // Retrieve whether or not autocompletion deletes any word characters + // after the inserted text upon completion. bool AutoCompGetDropRestOfWord(); // Set the number of spaces used for one level of indentation. @@ -1303,11 +1405,9 @@ public: int GetPrintColourMode(); // Find some text in the document. - int FindText(int minPos, int maxPos, - const wxString& text, - bool caseSensitive, bool wholeWord); + int FindText(int minPos, int maxPos, const wxString& text, int flags=0); - // On Windows will draw the document into a display context such as a printer. + // On Windows, will draw the document into a display context such as a printer. int FormatRange(bool doDraw, int startPos, int endPos, @@ -1373,7 +1473,7 @@ public: // Will a paste succeed? bool CanPaste(); - // Are there any undoable actions in the undo history. + // Are there any undoable actions in the undo history? bool CanUndo(); // Delete the undo history. @@ -1403,16 +1503,16 @@ public: // Retrieve the number of characters in the document. int GetTextLength(); - // Set to overtype (true) or insert mode + // Set to overtype (true) or insert mode. void SetOvertype(bool overtype); // Returns true if overtype mode is active otherwise false is returned. bool GetOvertype(); - // Set the width of the insert mode caret + // Set the width of the insert mode caret. void SetCaretWidth(int pixelWidth); - // Returns the width of the insert mode caret + // Returns the width of the insert mode caret. int GetCaretWidth(); // Sets the position that starts the target which is used for updating the @@ -1447,10 +1547,10 @@ public: // Returns length of range or -1 for failure in which case target is not moved. int SearchInTarget(const wxString& text); - // Set the search flags used by SearchInTarget + // Set the search flags used by SearchInTarget. void SetSearchFlags(int flags); - // Get the search flags used by SearchInTarget + // Get the search flags used by SearchInTarget. int GetSearchFlags(); // Show a call tip containing a definition near position pos. @@ -1512,53 +1612,90 @@ public: // Ensure a particular line is visible by expanding any header line hiding it. void EnsureVisible(int line); - // Set some debugging options for folding + // Set some debugging options for folding. void SetFoldFlags(int flags); // Ensure a particular line is visible by expanding any header line hiding it. // Use the currently set visibility policy to determine which range to display. void EnsureVisibleEnforcePolicy(int line); - // Sets whether a tab pressed when caret is within indentation indents + // Sets whether a tab pressed when caret is within indentation indents. void SetTabIndents(bool tabIndents); // Does a tab pressed when caret is within indentation indent? bool GetTabIndents(); - // Sets whether a backspace pressed when caret is within indentation unindents + // Sets whether a backspace pressed when caret is within indentation unindents. void SetBackSpaceUnIndents(bool bsUnIndents); // Does a backspace pressed when caret is within indentation unindent? bool GetBackSpaceUnIndents(); - // Sets the time the mouse must sit still to generate a mouse dwell event + // Sets the time the mouse must sit still to generate a mouse dwell event. void SetMouseDwellTime(int periodMilliseconds); - // Retrieve the time the mouse must sit still to generate a mouse dwell event + // Retrieve the time the mouse must sit still to generate a mouse dwell event. int GetMouseDwellTime(); - // Get position of start of word + // Get position of start of word. int WordStartPosition(int pos, bool onlyWordCharacters); - // Get position of end of word + // Get position of end of word. int WordEndPosition(int pos, bool onlyWordCharacters); - // Sets whether text is word wrapped + // Sets whether text is word wrapped. void SetWrapMode(int mode); - // Retrieve whether text is word wrapped + // Retrieve whether text is word wrapped. int GetWrapMode(); - // Sets the degree of caching of layout information + // Sets the degree of caching of layout information. void SetLayoutCache(int mode); - // Retrieve the degree of caching of layout information + // Retrieve the degree of caching of layout information. int GetLayoutCache(); - // Move the caret inside current view if it's not there already + // Sets the document width assumed for scrolling. + void SetScrollWidth(int pixelWidth); + + // Retrieve the document width assumed for scrolling. + int GetScrollWidth(); + + // Measure the pixel width of some text in a particular style. + // Nul terminated text argument. + // Does not handle tab or control characters. + int TextWidth(int style, const wxString& text); + + // Sets the scroll range so that maximum scroll position has + // the last line at the bottom of the view (default). + // Setting this to false allows scrolling one page below the last line. + void SetEndAtLastLine(bool endAtLastLine); + + // Retrieve whether the maximum scroll position has the last + // line at the bottom of the view. + int GetEndAtLastLine(); + + // Retrieve the height of a particular line of text in pixels. + int TextHeight(int line); + + // Move caret to first position on display line. + void HomeDisplay(); + + // Move caret to first position on display line extending selection to + // new caret position. + void HomeDisplayExtend(); + + // Move caret to last position on display line. + void LineEndDisplay(); + + // Move caret to last position on display line extending selection to new + // caret position. + void LineEndDisplayExtend(); + + // Move the caret inside current view if it's not there already. void MoveCaretInsideView(); - // How many characters are on a line, not including end of line characters. + // How many characters are on a line, not including end of line characters? int LineLength(int line); // Highlight the characters at two positions. @@ -1570,10 +1707,10 @@ public: // Find the position of a matching brace or INVALID_POSITION if no match. int BraceMatch(int pos); - // Are the end of line characters visible. + // Are the end of line characters visible? bool GetViewEOL(); - // Make the end of line characters visible or invisible + // Make the end of line characters visible or invisible. void SetViewEOL(bool visible); // Retrieve a pointer to the document object. @@ -1616,9 +1753,6 @@ public: // Does not ensure the selection is visible. int SearchPrev(int flags, const wxString& text); - // Set the way the line the caret is on is kept visible. - void SetCaretPolicy(int caretPolicy, int caretSlop); - // Retrieves the number of lines completely visible. int LinesOnScreen(); @@ -1626,7 +1760,7 @@ public: // the wrong mouse button. void UsePopUp(bool allowPopUp); - // Is the selection a rectangular. The alternative is the more common stream selection. + // Is the selection rectangular? The alternative is the more common stream selection. bool SelectionIsRectangle(); // Set the zoom level. This number of points is added to the size of all fonts. @@ -1649,62 +1783,73 @@ public: // Get which document modification events are sent to the container. int GetModEventMask(); - // Change internal focus flag + // Change internal focus flag. void SetSTCFocus(bool focus); - // Get internal focus flag + // Get internal focus flag. bool GetSTCFocus(); - // Change error status - 0 = OK + // Change error status - 0 = OK. void SetStatus(int statusCode); - // Get error status + // Get error status. int GetStatus(); - // Set whether the mouse is captured when its button is pressed + // Set whether the mouse is captured when its button is pressed. void SetMouseDownCaptures(bool captures); - // Get whether mouse gets captured + // Get whether mouse gets captured. bool GetMouseDownCaptures(); - // Sets the cursor to one of the SC_CURSOR* values + // Sets the cursor to one of the SC_CURSOR* values. void SetCursor(int cursorType); - // Get cursor type + // Get cursor type. int GetCursor(); // Change the way control characters are displayed: - // If symbol is < 32, keep the drawn way, else, use the given character + // If symbol is < 32, keep the drawn way, else, use the given character. void SetControlCharSymbol(int symbol); - // Get the way control characters are displayed + // Get the way control characters are displayed. int GetControlCharSymbol(); - // Move to the previous change in capitalistion + // Move to the previous change in capitalisation. void WordPartLeft(); - // Move to the previous change in capitalistion extending selection to new caret position. + // Move to the previous change in capitalisation extending selection + // to new caret position. void WordPartLeftExtend(); - // Move to the change next in capitalistion + // Move to the change next in capitalisation. void WordPartRight(); - // Move to the next change in capitalistion extending selection to new caret position. + // Move to the next change in capitalisation extending selection + // to new caret position. void WordPartRightExtend(); - // Set the way the display area is determined when a particular line is to be moved to. + // Set the way the display area is determined when a particular line + // is to be moved to by Find, FindNext, GotoLine, etc. void SetVisiblePolicy(int visiblePolicy, int visibleSlop); - // Delete back from the current position to the start of the line + // Delete back from the current position to the start of the line. void DelLineLeft(); - // Delete forwards from the current position to the end of the line + // Delete forwards from the current position to the end of the line. void DelLineRight(); - // Get and Set the xOffset (ie, horizonal scroll position) + // Get and Set the xOffset (ie, horizonal scroll position). void SetXOffset(int newOffset); int GetXOffset(); + // Set the way the caret is kept visible when going sideway. + // The exclusion zone is given in pixels. + void SetXCaretPolicy(int caretPolicy, int caretSlop); + + // Set the way the line the caret is on is kept visible. + // The exclusion zone is given in lines. + void SetYCaretPolicy(int caretPolicy, int caretSlop); + // Start notifying the container of all key presses and commands. void StartRecord(); @@ -1825,6 +1970,7 @@ private: void OnMouseMove(wxMouseEvent& evt); void OnMouseLeftUp(wxMouseEvent& evt); void OnMouseRightUp(wxMouseEvent& evt); + void OnMouseMiddleUp(wxMouseEvent& evt); void OnContextMenu(wxContextMenuEvent& evt); void OnMouseWheel(wxMouseEvent& evt); void OnChar(wxKeyEvent& evt); @@ -1860,6 +2006,15 @@ private: //---------------------------------------------------------------------- +// SWIG can't handle "#if" type of conditionals, only "#ifdef" +#ifdef SWIG +#define STC_USE_DND 1 +#else +#if wxUSE_DRAG_AND_DROP +#define STC_USE_DND 1 +#endif +#endif + class wxStyledTextEvent : public wxCommandEvent { public: wxStyledTextEvent(wxEventType commandType=0, int id=0); @@ -1887,7 +2042,9 @@ public: void SetY(int val) { m_y = val; } void SetDragText(const wxString& val) { m_dragText = val; } void SetDragAllowMove(bool val) { m_dragAllowMove = val; } +#ifdef STC_USE_DND void SetDragResult(wxDragResult val) { m_dragResult = val; } +#endif int GetPosition() const { return m_position; } int GetKey() const { return m_key; } @@ -1908,7 +2065,9 @@ public: int GetY() const { return m_y; } wxString GetDragText() { return m_dragText; } bool GetDragAllowMove() { return m_dragAllowMove; } +#ifdef STC_USE_DND wxDragResult GetDragResult() { return m_dragResult; } +#endif bool GetShift() const; bool GetControl() const; @@ -1945,8 +2104,10 @@ private: wxString m_dragText; // wxEVT_STC_START_DRAG, wxEVT_STC_DO_DROP bool m_dragAllowMove; // wxEVT_STC_START_DRAG +#if wxUSE_DRAG_AND_DROP wxDragResult m_dragResult; // wxEVT_STC_DRAG_OVER,wxEVT_STC_DO_DROP #endif +#endif }; #ifndef SWIG @@ -1973,6 +2134,7 @@ BEGIN_DECLARE_EVENT_TYPES() DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_START_DRAG, 1669) DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_DRAG_OVER, 1670) DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_DO_DROP, 1671) + DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_ZOOM, 1672) END_DECLARE_EVENT_TYPES() #else enum { @@ -1998,6 +2160,7 @@ END_DECLARE_EVENT_TYPES() wxEVT_STC_START_DRAG, wxEVT_STC_DRAG_OVER, wxEVT_STC_DO_DROP, + wxEVT_STC_ZOOM, }; #endif @@ -2028,9 +2191,43 @@ typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&); #define EVT_STC_START_DRAG(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_START_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), #define EVT_STC_DRAG_OVER(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DRAG_OVER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), #define EVT_STC_DO_DROP(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DO_DROP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), +#define EVT_STC_ZOOM(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_ZOOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), #endif //---------------------------------------------------------------------- +// Utility functions used within wxSTC + +#ifndef SWIG + +inline wxString stc2wx(const char* str) { +#if wxUSE_UNICODE + return wxString(str, wxConvUTF8); +#else + return wxString(str); +#endif +} + +inline wxString stc2wx(const char* str, size_t len) { +#if wxUSE_UNICODE + return wxString(str, wxConvUTF8, len); +#else + return wxString(str, len); +#endif +} + +#if wxUSE_UNICODE +inline const wxWX2MBbuf wx2stc(const wxString& str) { + return str.mb_str(wxConvUTF8); +} +#else +inline const wxWX2MBbuf wx2stc(const wxString& str) { + return str.mbc_str(); +} +#endif + +#endif + + //---------------------------------------------------------------------- #endif