X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/41286fd1def19641be3ae5bb9666c84a1c0b5525..9c64071583c62026eb8f25638aec9f3843209d4d:/include/wx/stc/stc.h?ds=inline diff --git a/include/wx/stc/stc.h b/include/wx/stc/stc.h index 9eadfcd66a..193376418f 100644 --- a/include/wx/stc/stc.h +++ b/include/wx/stc/stc.h @@ -24,6 +24,37 @@ #include #include +#ifndef SWIG +/* + * If we're using wx in Dynamic Library format do we + * want wxStyledTextCtrl to be in DLL form as well? + */ +#if defined(WXUSINGDLL) && \ + (defined(WXMAKING_STC_DLL) || defined(WXUSING_STC_DLL)) + +#if defined(WXMAKING_STC_DLL) + // When building the DLL WXSTC_DECLSPEC exports classes +# define WXSTC_DECLSPEC WXEXPORT +#elif defined(WXUSING_STC_DLL) + // When using the DLL WXSTC_DECLSPEC imports classes +# define WXSTC_DECLSPEC WXIMPORT +#endif // defined(WXBUILD_STC_DLL) + +#else +// When building the static library nullify the effect of WXSTC_DECLSPEC +#define WXSTC_DECLSPEC +#endif // WXUSINGDLL && (WXMAKING_STC_DLL || WXUSING_STC_DLL) + +#endif // SWIG + + +//---------------------------------------------------------------------- + +// Should a wxPopupWindow be used for the call tips and autocomplete windows? +#ifndef wxSTC_USE_POPUP +#define wxSTC_USE_POPUP 1 +#endif + //---------------------------------------------------------------------- // BEGIN generated section. The following code is automatically generated // by gen_iface.py. Do not edit this file. Edit stc.h.in instead @@ -36,8 +67,6 @@ #define wxSTC_START 2000 #define wxSTC_OPTIONAL_START 3000 #define wxSTC_LEXER_START 4000 -#define wxSTC_CMD_REDO 2011 -#define wxSTC_CMD_SELECTALL 2013 #define wxSTC_WS_INVISIBLE 0 #define wxSTC_WS_VISIBLEALWAYS 1 #define wxSTC_WS_VISIBLEAFTERINDENT 2 @@ -48,6 +77,9 @@ // The SC_CP_UTF8 value can be used to enter Unicode mode. // This is the same value as CP_UTF8 in Windows #define wxSTC_CP_UTF8 65001 + +// The SC_CP_DBCS value can be used to indicate a DBCS mode for GTK+. +#define wxSTC_CP_DBCS 1 #define wxSTC_MARKER_MAX 31 #define wxSTC_MARK_CIRCLE 0 #define wxSTC_MARK_ROUNDRECT 1 @@ -59,7 +91,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 @@ -73,9 +105,15 @@ #define wxSTC_MARK_CIRCLEPLUSCONNECTED 19 #define wxSTC_MARK_CIRCLEMINUS 20 #define wxSTC_MARK_CIRCLEMINUSCONNECTED 21 + +// 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_PIXMAP 25 #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 @@ -83,6 +121,7 @@ #define wxSTC_MARKNUM_FOLDERSUB 29 #define wxSTC_MARKNUM_FOLDER 30 #define wxSTC_MARKNUM_FOLDEROPEN 31 +#define wxSTC_MASK_FOLDERS 0xFE000000 #define wxSTC_MARGIN_SYMBOL 0 #define wxSTC_MARGIN_NUMBER 1 @@ -127,10 +166,10 @@ #define wxSTC_INDIC_TT 2 #define wxSTC_INDIC_DIAGONAL 3 #define wxSTC_INDIC_STRIKE 4 -#define wxSTC_INDIC0_MASK 32 -#define wxSTC_INDIC1_MASK 64 -#define wxSTC_INDIC2_MASK 128 -#define wxSTC_INDICS_MASK 224 +#define wxSTC_INDIC0_MASK 0x20 +#define wxSTC_INDIC1_MASK 0x40 +#define wxSTC_INDIC2_MASK 0x80 +#define wxSTC_INDICS_MASK 0xE0 // PrintColourMode - use same colours as screen. #define wxSTC_PRINT_NORMAL 0 @@ -150,91 +189,66 @@ #define wxSTC_FIND_MATCHCASE 4 #define wxSTC_FIND_WORDSTART 0x00100000 #define wxSTC_FIND_REGEXP 0x00200000 -#define wxSTC_CMD_UNDO 2176 -#define wxSTC_CMD_CUT 2177 -#define wxSTC_CMD_COPY 2178 -#define wxSTC_CMD_PASTE 2179 +#define wxSTC_FIND_POSIX 0x00400000 #define wxSTC_FOLDLEVELBASE 0x400 #define wxSTC_FOLDLEVELWHITEFLAG 0x1000 #define wxSTC_FOLDLEVELHEADERFLAG 0x2000 +#define wxSTC_FOLDLEVELBOXHEADERFLAG 0x4000 +#define wxSTC_FOLDLEVELBOXFOOTERFLAG 0x8000 +#define wxSTC_FOLDLEVELCONTRACTED 0x10000 +#define wxSTC_FOLDLEVELUNINDENT 0x20000 #define wxSTC_FOLDLEVELNUMBERMASK 0x0FFF +#define wxSTC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 +#define wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 +#define wxSTC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 +#define wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 +#define wxSTC_FOLDFLAG_LEVELNUMBERS 0x0040 +#define wxSTC_FOLDFLAG_BOX 0x0001 #define wxSTC_TIME_FOREVER 10000000 -#define wxSTC_CMD_LINEDOWN 2300 -#define wxSTC_CMD_LINEDOWNEXTEND 2301 -#define wxSTC_CMD_LINEUP 2302 -#define wxSTC_CMD_LINEUPEXTEND 2303 -#define wxSTC_CMD_CHARLEFT 2304 -#define wxSTC_CMD_CHARLEFTEXTEND 2305 -#define wxSTC_CMD_CHARRIGHT 2306 -#define wxSTC_CMD_CHARRIGHTEXTEND 2307 -#define wxSTC_CMD_WORDLEFT 2308 -#define wxSTC_CMD_WORDLEFTEXTEND 2309 -#define wxSTC_CMD_WORDRIGHT 2310 -#define wxSTC_CMD_WORDRIGHTEXTEND 2311 -#define wxSTC_CMD_HOME 2312 -#define wxSTC_CMD_HOMEEXTEND 2313 -#define wxSTC_CMD_LINEEND 2314 -#define wxSTC_CMD_LINEENDEXTEND 2315 -#define wxSTC_CMD_DOCUMENTSTART 2316 -#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317 -#define wxSTC_CMD_DOCUMENTEND 2318 -#define wxSTC_CMD_DOCUMENTENDEXTEND 2319 -#define wxSTC_CMD_PAGEUP 2320 -#define wxSTC_CMD_PAGEUPEXTEND 2321 -#define wxSTC_CMD_PAGEDOWN 2322 -#define wxSTC_CMD_PAGEDOWNEXTEND 2323 -#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324 -#define wxSTC_CMD_CANCEL 2325 -#define wxSTC_CMD_DELETEBACK 2326 -#define wxSTC_CMD_TAB 2327 -#define wxSTC_CMD_BACKTAB 2328 -#define wxSTC_CMD_NEWLINE 2329 -#define wxSTC_CMD_FORMFEED 2330 -#define wxSTC_CMD_VCHOME 2331 -#define wxSTC_CMD_VCHOMEEXTEND 2332 -#define wxSTC_CMD_ZOOMIN 2333 -#define wxSTC_CMD_ZOOMOUT 2334 -#define wxSTC_CMD_DELWORDLEFT 2335 -#define wxSTC_CMD_DELWORDRIGHT 2336 -#define wxSTC_CMD_LINECUT 2337 -#define wxSTC_CMD_LINEDELETE 2338 -#define wxSTC_CMD_LINETRANSPOSE 2339 -#define wxSTC_CMD_LOWERCASE 2340 -#define wxSTC_CMD_UPPERCASE 2341 -#define wxSTC_CMD_LINESCROLLDOWN 2342 -#define wxSTC_CMD_LINESCROLLUP 2343 +#define wxSTC_WRAP_NONE 0 +#define wxSTC_WRAP_WORD 1 +#define wxSTC_CACHE_NONE 0 +#define wxSTC_CACHE_CARET 1 +#define wxSTC_CACHE_PAGE 2 +#define wxSTC_CACHE_DOCUMENT 3 #define wxSTC_EDGE_NONE 0 #define wxSTC_EDGE_LINE 1 #define wxSTC_EDGE_BACKGROUND 2 +#define wxSTC_CURSORNORMAL -1 +#define wxSTC_CURSORWAIT 4 -// 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 @@ -250,9 +264,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 @@ -302,6 +316,19 @@ #define wxSTC_LEX_EIFFELKW 24 #define wxSTC_LEX_TCL 25 #define wxSTC_LEX_NNCRONTAB 26 +#define wxSTC_LEX_BULLANT 27 +#define wxSTC_LEX_VBSCRIPT 28 +#define wxSTC_LEX_ASP 29 +#define wxSTC_LEX_PHP 30 +#define wxSTC_LEX_BAAN 31 +#define wxSTC_LEX_MATLAB 32 +#define wxSTC_LEX_SCRIPTOL 33 +#define wxSTC_LEX_ASM 34 +#define wxSTC_LEX_CPPNOCASE 35 +#define wxSTC_LEX_FORTRAN 36 +#define wxSTC_LEX_F77 37 +#define wxSTC_LEX_CSS 38 +#define wxSTC_LEX_POV 39 // When a lexer specifies its language as SCLEX_AUTOMATIC it receives a // value assigned in sequence from SCLEX_AUTOMATIC+1. @@ -323,7 +350,7 @@ #define wxSTC_P_COMMENTBLOCK 12 #define wxSTC_P_STRINGEOL 13 -// Lexical states for SCLEX_CPP, SCLEX_VB +// Lexical states for SCLEX_CPP #define wxSTC_C_DEFAULT 0 #define wxSTC_C_COMMENT 1 #define wxSTC_C_COMMENTLINE 2 @@ -510,6 +537,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 @@ -531,6 +576,11 @@ #define wxSTC_LUA_OPERATOR 10 #define wxSTC_LUA_IDENTIFIER 11 #define wxSTC_LUA_STRINGEOL 12 +#define wxSTC_LUA_WORD2 13 +#define wxSTC_LUA_WORD3 14 +#define wxSTC_LUA_WORD4 15 +#define wxSTC_LUA_WORD5 16 +#define wxSTC_LUA_WORD6 17 // Lexical states for SCLEX_ERRORLIST #define wxSTC_ERR_DEFAULT 0 @@ -542,10 +592,14 @@ #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 #define wxSTC_ERR_DIFF_MESSAGE 13 +#define wxSTC_ERR_PHP 14 +#define wxSTC_ERR_ELF 15 +#define wxSTC_ERR_IFC 16 // Lexical states for SCLEX_BATCH #define wxSTC_BAT_DEFAULT 0 @@ -566,7 +620,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 @@ -578,29 +641,49 @@ #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 #define wxSTC_AVE_WORD 3 -#define wxSTC_AVE_KEYWORD 4 -#define wxSTC_AVE_STATEMENT 5 #define wxSTC_AVE_STRING 6 #define wxSTC_AVE_ENUM 7 #define wxSTC_AVE_STRINGEOL 8 #define wxSTC_AVE_IDENTIFIER 9 #define wxSTC_AVE_OPERATOR 10 +#define wxSTC_AVE_WORD1 11 +#define wxSTC_AVE_WORD2 12 +#define wxSTC_AVE_WORD3 13 +#define wxSTC_AVE_WORD4 14 +#define wxSTC_AVE_WORD5 15 +#define wxSTC_AVE_WORD6 16 // Lexical states for SCLEX_ADA #define wxSTC_ADA_DEFAULT 0 -#define wxSTC_ADA_COMMENT 1 -#define wxSTC_ADA_NUMBER 2 -#define wxSTC_ADA_WORD 3 -#define wxSTC_ADA_STRING 4 +#define wxSTC_ADA_WORD 1 +#define wxSTC_ADA_IDENTIFIER 2 +#define wxSTC_ADA_NUMBER 3 +#define wxSTC_ADA_DELIMITER 4 #define wxSTC_ADA_CHARACTER 5 -#define wxSTC_ADA_OPERATOR 6 -#define wxSTC_ADA_IDENTIFIER 7 +#define wxSTC_ADA_CHARACTEREOL 6 +#define wxSTC_ADA_STRING 7 #define wxSTC_ADA_STRINGEOL 8 +#define wxSTC_ADA_LABEL 9 +#define wxSTC_ADA_COMMENTLINE 10 +#define wxSTC_ADA_ILLEGAL 11 + +// Lexical states for SCLEX_BAAN +#define wxSTC_BAAN_DEFAULT 0 +#define wxSTC_BAAN_COMMENT 1 +#define wxSTC_BAAN_COMMENTDOC 2 +#define wxSTC_BAAN_NUMBER 3 +#define wxSTC_BAAN_WORD 4 +#define wxSTC_BAAN_STRING 5 +#define wxSTC_BAAN_PREPROCESSOR 6 +#define wxSTC_BAAN_OPERATOR 7 +#define wxSTC_BAAN_IDENTIFIER 8 +#define wxSTC_BAAN_STRINGEOL 9 +#define wxSTC_BAAN_WORD2 10 // Lexical states for SCLEX_LISP #define wxSTC_LISP_DEFAULT 0 @@ -623,7 +706,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 @@ -636,22 +719,329 @@ #define wxSTC_NNCRONTAB_ENVIRONMENT 9 #define wxSTC_NNCRONTAB_IDENTIFIER 10 -// END of generated section -//---------------------------------------------------------------------- -// Others +// Lexical states for SCLEX_MATLAB +#define wxSTC_MATLAB_DEFAULT 0 +#define wxSTC_MATLAB_COMMENT 1 +#define wxSTC_MATLAB_COMMAND 2 +#define wxSTC_MATLAB_NUMBER 3 +#define wxSTC_MATLAB_KEYWORD 4 +#define wxSTC_MATLAB_STRING 5 +#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 + +// Lexical states for SCLEX_ASM +#define wxSTC_ASM_DEFAULT 0 +#define wxSTC_ASM_COMMENT 1 +#define wxSTC_ASM_NUMBER 2 +#define wxSTC_ASM_STRING 3 +#define wxSTC_ASM_OPERATOR 4 +#define wxSTC_ASM_IDENTIFIER 5 +#define wxSTC_ASM_CPUINSTRUCTION 6 +#define wxSTC_ASM_MATHINSTRUCTION 7 +#define wxSTC_ASM_REGISTER 8 +#define wxSTC_ASM_DIRECTIVE 9 +#define wxSTC_ASM_DIRECTIVEOPERAND 10 + +// Lexical states for SCLEX_FORTRAN +#define wxSTC_F_DEFAULT 0 +#define wxSTC_F_COMMENT 1 +#define wxSTC_F_NUMBER 2 +#define wxSTC_F_STRING1 3 +#define wxSTC_F_STRING2 4 +#define wxSTC_F_STRINGEOL 5 +#define wxSTC_F_OPERATOR 6 +#define wxSTC_F_IDENTIFIER 7 +#define wxSTC_F_WORD 8 +#define wxSTC_F_WORD2 9 +#define wxSTC_F_WORD3 10 +#define wxSTC_F_PREPROCESSOR 11 +#define wxSTC_F_OPERATOR2 12 +#define wxSTC_F_LABEL 13 +#define wxSTC_F_CONTINUATION 14 + +// Lexical states for SCLEX_CSS +#define wxSTC_CSS_DEFAULT 0 +#define wxSTC_CSS_TAG 1 +#define wxSTC_CSS_CLASS 2 +#define wxSTC_CSS_PSEUDOCLASS 3 +#define wxSTC_CSS_UNKNOWN_PSEUDOCLASS 4 +#define wxSTC_CSS_OPERATOR 5 +#define wxSTC_CSS_IDENTIFIER 6 +#define wxSTC_CSS_UNKNOWN_IDENTIFIER 7 +#define wxSTC_CSS_VALUE 8 +#define wxSTC_CSS_COMMENT 9 +#define wxSTC_CSS_ID 10 +#define wxSTC_CSS_IMPORTANT 11 +#define wxSTC_CSS_DIRECTIVE 12 +#define wxSTC_CSS_DOUBLESTRING 13 +#define wxSTC_CSS_SINGLESTRING 14 + +// Lexical states for SCLEX_POV +#define wxSTC_POV_DEFAULT 0 +#define wxSTC_POV_COMMENT 1 +#define wxSTC_POV_COMMENTLINE 2 +#define wxSTC_POV_COMMENTDOC 3 +#define wxSTC_POV_NUMBER 4 +#define wxSTC_POV_WORD 5 +#define wxSTC_POV_STRING 6 +#define wxSTC_POV_OPERATOR 7 +#define wxSTC_POV_IDENTIFIER 8 +#define wxSTC_POV_BRACE 9 +#define wxSTC_POV_WORD2 10 + + +//----------------------------------------- +// 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 -#define wxSTC_MASK_FOLDERS ((1 << wxSTC_MARKNUM_FOLDER) | (1 << wxSTC_MARKNUM_FOLDEROPEN)) +// 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 + +// Duplicate the current line. +#define wxSTC_CMD_LINEDUPLICATE 2404 + +// 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 + +// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)? +// except they behave differently when word-wrap is enabled: +// They go first to the start / end of the display line, like (Home|LineEnd)Display +// The difference is that, the cursor is already at the point, it goes on to the start +// or end of the document line, as appropriate for (Home|LineEnd|VCHome)Extend. +#define wxSTC_CMD_HOMEWRAP 2349 +#define wxSTC_CMD_HOMEWRAPEXTEND 2450 +#define wxSTC_CMD_LINEENDWRAP 2451 +#define wxSTC_CMD_LINEENDWRAPEXTEND 2452 +#define wxSTC_CMD_VCHOMEWRAP 2453 +#define wxSTC_CMD_VCHOMEWRAPEXTEND 2454 + +// 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 + +// Move caret between paragraphs (delimited by empty lines) +#define wxSTC_CMD_PARADOWN 2413 +#define wxSTC_CMD_PARADOWNEXTEND 2414 +#define wxSTC_CMD_PARAUP 2415 +#define wxSTC_CMD_PARAUPEXTEND 2416 + + +// END of generated section //---------------------------------------------------------------------- class ScintillaWX; // forward declare class WordList; struct SCNotification; - -extern const wxChar* wxSTCNameStr; +#ifndef SWIG +extern WXSTC_DECLSPEC const wxChar* wxSTCNameStr; +class WXSTC_DECLSPEC wxStyledTextCtrl; +class WXSTC_DECLSPEC wxStyledTextEvent; +#endif //---------------------------------------------------------------------- @@ -662,7 +1052,7 @@ public: wxStyledTextCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const char* name = "styledtext"); + const wxString& name = wxPySTCNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" #else @@ -683,37 +1073,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 - void AddStyledText(const wxString& text); + // 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 @@ -728,12 +1118,12 @@ public: void SetSavePoint(); // Retrieve a buffer of cells. - wxString GetStyledText(int startPos, int endPos); + 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. @@ -787,37 +1177,34 @@ 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. int GetTabWidth(); // Set the code page used to interpret the bytes of the document as characters. - // The SC_CP_UTF8 value can be used to enter Unicode mode. void SetCodePage(int codePage); // Set the symbol used for a particular marker number, - // and optionally the for and background colours. + // and optionally the fore and background colours. void MarkerDefine(int markerNumber, int markerSymbol, - const wxColour& foreground = wxNullColour, - const wxColour& background = wxNullColour); + const wxColour& foreground = wxNullColour, + const wxColour& background = wxNullColour); // Set the foreground colour used for a particular marker number. void MarkerSetForeground(int markerNumber, const wxColour& fore); @@ -825,13 +1212,13 @@ public: // Set the background colour used for a particular marker number. void MarkerSetBackground(int markerNumber, const wxColour& back); - // Add a marker to a line. - void MarkerAdd(int line, int markerNumber); + // 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. @@ -843,6 +1230,9 @@ public: // Find the previous line before lineStart that includes a marker in mask. int MarkerPrevious(int lineStart, int markerMask); + // Define a marker from a bitmap + void MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp); + // Set a margin to be either numeric or symbolic. void SetMarginType(int margin, int marginType); @@ -900,6 +1290,12 @@ public: // Set a style to be mixed case, or to force upper or lower case. void StyleSetCase(int style, int caseForce); + // Set the character set of the font in a style. + void StyleSetCharacterSet(int style, int characterSet); + + // Set a style to be a hotspot or not. + void StyleSetHotSpot(int style, bool hotspot); + // Set the foreground colour of the selection and whether to use this setting. void SetSelForeground(bool useSetting, const wxColour& fore); @@ -930,8 +1326,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. @@ -953,8 +1348,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); @@ -982,6 +1383,10 @@ public: // Set the colour of the background of the line containing the caret. void SetCaretLineBack(const wxColour& back); + // Set a style to be changeable or not (read only). + // Experimental feature, currently buggy. + void StyleSetChangeable(int style, bool changeable); + // Display a auto-completion list. // The lenEntered parameter indicates how many characters before // the caret should be used to provide context. @@ -993,8 +1398,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. @@ -1003,8 +1407,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. @@ -1020,7 +1424,8 @@ public: // Retrieve whether auto-completion cancelled by backspacing before start. bool AutoCompGetCancelAtStart(); - // Define a set of character that when typed fills up the selected word. + // Define a set of characters that when typed will cause the autocompletion to + // choose the selected item. void AutoCompSetFillUps(const wxString& characterSet); // Should a single item auto-completion list automatically choose the item. @@ -1038,12 +1443,33 @@ 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. + void AutoCompSetDropRestOfWord(bool dropRestOfWord); + + // Retrieve whether or not autocompletion deletes any word characters + // after the inserted text upon completion. + bool AutoCompGetDropRestOfWord(); + + // Register an image for use in autocompletion lists. + void RegisterImage(int type, const wxBitmap& bmp); + + // Clear all the registered images. + void ClearRegisteredImages(); + + // Retrieve the auto-completion list type-separator character. + int AutoCompGetTypeSeparator(); + + // Change the type-separator character in the string setting up an auto-completion list. + // Default is '?' but can be changed if items contain '?'. + void AutoCompSetTypeSeparator(int separatorCharacter); + // Set the number of spaces used for one level of indentation. void SetIndent(int indentSize); @@ -1128,20 +1554,18 @@ 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, - wxDC* draw, - wxDC* target, // Why does it use two? Can they be the same? - wxRect renderRect, - wxRect pageRect); - - // Retrieve the line at the top of the display. + int startPos, + int endPos, + wxDC* draw, + wxDC* target, // Why does it use two? Can they be the same? + wxRect renderRect, + wxRect pageRect); + + // Retrieve the display line at the top of the display. int GetFirstVisibleLine(); // Retrieve the contents of a line. @@ -1198,7 +1622,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. @@ -1228,16 +1652,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 @@ -1272,10 +1696,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. @@ -1296,6 +1720,12 @@ public: // Set the background colour for the call tip. void CallTipSetBackground(const wxColour& back); + // Set the foreground colour for the call tip. + void CallTipSetForeground(const wxColour& fore); + + // Set the foreground colour for the highlighted part of the call tip. + void CallTipSetForegroundHighlight(const wxColour& fore); + // Find the display line of a document line taking hidden lines into account. int VisibleFromDocLine(int line); @@ -1337,35 +1767,123 @@ 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 style 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(); - // Move the caret inside current view if it's not there already + // Get position of start of word. + int WordStartPosition(int pos, bool onlyWordCharacters); + + // Get position of end of word. + int WordEndPosition(int pos, bool onlyWordCharacters); + + // Sets whether text is word wrapped. + void SetWrapMode(int mode); + + // Retrieve whether text is word wrapped. + int GetWrapMode(); + + // Sets the degree of caching of layout information. + void SetLayoutCache(int mode); + + // Retrieve the degree of caching of layout information. + int GetLayoutCache(); + + // 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); + + // Show or hide the vertical scroll bar. + void SetUseVerticalScrollBar(bool show); + + // Is the vertical scroll bar visible? + bool GetUseVerticalScrollBar(); + + // Append a string to the end of the document without changing the selection. + void AppendText(int length, const wxString& text); + + // Is drawing done in two phases with backgrounds drawn before foregrounds? + bool GetTwoPhaseDraw(); + + // In twoPhaseDraw mode, drawing is performed in two phases, first the background + // and then the foreground. This avoids chopping off characters that overlap the next run. + void SetTwoPhaseDraw(bool twoPhase); + + // Make the target range start and end be the same as the selection range start and end. + void TargetFromSelection(); + + // Join the lines in the target. + void LinesJoin(); + + // Split the lines in the target into lines that are less wide than pixelWidth + // where possible. + void LinesSplit(int pixelWidth); + + // Set the colours used as a chequerboard pattern in the fold margin + void SetFoldMarginColour(bool useSetting, const wxColour& back); + void SetFoldMarginHiColour(bool useSetting, const wxColour& fore); + + // Duplicate the current line. + void LineDuplicate(); + + // 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. @@ -1377,10 +1895,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. @@ -1423,9 +1941,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(); @@ -1433,7 +1948,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. @@ -1456,51 +1971,91 @@ 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(); - // Move to the previous change in capitalistion + // Change the way control characters are displayed: + // If symbol is < 32, keep the drawn way, else, use the given character. + void SetControlCharSymbol(int symbol); + + // Get the way control characters are displayed. + int GetControlCharSymbol(); + + // 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). + void SetXOffset(int newOffset); + int GetXOffset(); + + // Set the last x chosen value to be the caret x position + void ChooseCaretX(); + + // 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); + + // Set printing to line wrapped (SC_WRAP_WORD) or not line wrapped (SC_WRAP_NONE). + void SetPrintWrapMode(int mode); + + // Is printing line wrapped. + int GetPrintWrapMode(); + + // Set a fore colour for active hotspots. + void SetHotspotActiveForeground(bool useSetting, const wxColour& fore); + + // Set a back colour for active hotspots. + void SetHotspotActiveBackground(bool useSetting, const wxColour& back); + + // Enable / Disable underlining active hotspots. + void SetHotspotActiveUnderline(bool underline); + // Start notifying the container of all key presses and commands. void StartRecord(); @@ -1594,6 +2149,25 @@ public: // Send a message to Scintilla long SendMsg(int msg, long wp=0, long lp=0); + + // Set the vertical scrollbar to use instead of the ont that's built-in. + void SetVScrollBar(wxScrollBar* bar) { m_vScrollBar = bar; } + + + // Set the horizontal scrollbar to use instead of the ont that's built-in. + void SetHScrollBar(wxScrollBar* bar) { m_hScrollBar = bar; } + + // Can be used to prevent the EVT_CHAR handler from adding the char + bool GetLastKeydownProcessed() { return m_lastKeyDownConsumed; } + void SetLastKeydownProcessed(bool val) { m_lastKeyDownConsumed = val; } + + // Write the contents of the editor to filename + bool SaveFile(const wxString& filename); + + // Load the contents of filename into the editor + bool LoadFile(const wxString& filename); + + //---------------------------------------------------------------------- @@ -1602,10 +2176,13 @@ private: // Event handlers void OnPaint(wxPaintEvent& evt); void OnScrollWin(wxScrollWinEvent& evt); + void OnScroll(wxScrollEvent& evt); void OnSize(wxSizeEvent& evt); void OnMouseLeftDown(wxMouseEvent& evt); 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); @@ -1622,13 +2199,15 @@ private: void NotifyChange(); void NotifyParent(SCNotification* scn); - -private: DECLARE_EVENT_TABLE() DECLARE_CLASS(wxStyledTextCtrl) +protected: + ScintillaWX* m_swx; wxStopWatch m_stopWatch; + wxScrollBar* m_vScrollBar; + wxScrollBar* m_hScrollBar; bool m_lastKeyDownConsumed; @@ -1639,17 +2218,28 @@ 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(const wxStyledTextEvent& event); wxStyledTextEvent(wxEventType commandType=0, int id=0); +#ifndef SWIG + wxStyledTextEvent(const wxStyledTextEvent& event); +#endif ~wxStyledTextEvent() {} void SetPosition(int pos) { m_position = pos; } void SetKey(int k) { m_key = k; } void SetModifiers(int m) { m_modifiers = m; } void SetModificationType(int t) { m_modificationType = t; } - void SetText(const char* t) { m_text = t; } + void SetText(const wxString& t) { m_text = t; } void SetLength(int len) { m_length = len; } void SetLinesAdded(int num) { m_linesAdded = num; } void SetLine(int val) { m_line = val; } @@ -1662,9 +2252,9 @@ public: void SetListType(int val) { m_listType = val; } void SetX(int val) { m_x = val; } void SetY(int val) { m_y = val; } -#ifndef __WXMAC__ // #if wxUSE_DRAG_AND_DROP 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 @@ -1685,9 +2275,9 @@ public: int GetListType() const { return m_listType; } int GetX() const { return m_x; } int GetY() const { return m_y; } -#ifndef __WXMAC__ // #if wxUSE_DRAG_AND_DROP wxString GetDragText() { return m_dragText; } bool GetDragAllowMove() { return m_dragAllowMove; } +#ifdef STC_USE_DND wxDragResult GetDragResult() { return m_dragResult; } #endif @@ -1695,7 +2285,6 @@ public: bool GetControl() const; bool GetAlt() const; -// void CopyObject(wxObject& obj) const; virtual wxEvent* Clone() const { return new wxStyledTextEvent(*this); } #ifndef SWIG @@ -1724,15 +2313,17 @@ private: int m_x; int m_y; -#ifndef __WXMAC__ // #if wxUSE_DRAG_AND_DROP 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 BEGIN_DECLARE_EVENT_TYPES() DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_CHANGE, 1650) @@ -1754,11 +2345,13 @@ BEGIN_DECLARE_EVENT_TYPES() DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_URIDROPPED, 1666) DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_DWELLSTART, 1667) DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_DWELLEND, 1668) -#if wxUSE_DRAG_AND_DROP 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) -#endif + DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_ZOOM, 1672) + DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_HOTSPOT_CLICK, 1673) + DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_HOTSPOT_DCLICK, 1674) + DECLARE_LOCAL_EVENT_TYPE(wxEVT_STC_CALLTIP_CLICK, 1675) END_DECLARE_EVENT_TYPES() #else enum { @@ -1781,11 +2374,13 @@ END_DECLARE_EVENT_TYPES() wxEVT_STC_URIDROPPED, wxEVT_STC_DWELLSTART, wxEVT_STC_DWELLEND, -#ifndef __WXMAC__ // #if wxUSE_DRAG_AND_DROP wxEVT_STC_START_DRAG, wxEVT_STC_DRAG_OVER, wxEVT_STC_DO_DROP, -#endif + wxEVT_STC_ZOOM, + wxEVT_STC_HOTSPOT_CLICK, + wxEVT_STC_HOTSPOT_DCLICK, + wxEVT_STC_CALLTIP_CLICK }; #endif @@ -1813,14 +2408,50 @@ typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&); #define EVT_STC_URIDROPPED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_URIDROPPED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), #define EVT_STC_DWELLSTART(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DWELLSTART, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), #define EVT_STC_DWELLEND(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DWELLEND, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), -#if wxUSE_DRAG_AND_DROP #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 ), -#endif +#define EVT_STC_ZOOM(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_ZOOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), +#define EVT_STC_HOTSPOT_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), +#define EVT_STC_HOTSPOT_DCLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_DCLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL ), +#define EVT_STC_CALLTIP_CLICK(id, fn)) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CALLTIP_CLICK 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