// 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
#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 colour.
#define wxSTC_MARK_BACKGROUND 22
#define wxSTC_MARK_DOTDOTDOT 23
#define wxSTC_MARK_ARROWS 24
#define wxSTC_MARK_LEFTRECT 27
#define wxSTC_MARK_AVAILABLE 28
#define wxSTC_MARK_UNDERLINE 29
+#define wxSTC_MARK_RGBAIMAGE 30
#define wxSTC_MARK_CHARACTER 10000
// Markers used for outlining column.
#define wxSTC_CASE_MIXED 0
#define wxSTC_CASE_UPPER 1
#define wxSTC_CASE_LOWER 2
+#define wxSTC_FONT_SIZE_MULTIPLIER 100
+#define wxSTC_WEIGHT_NORMAL 400
+#define wxSTC_WEIGHT_SEMIBOLD 600
+#define wxSTC_WEIGHT_BOLD 700
// Indicator style enumeration and some constants
#define wxSTC_INDIC_PLAIN 0
#define wxSTC_INDIC_HIDDEN 5
#define wxSTC_INDIC_BOX 6
#define wxSTC_INDIC_ROUNDBOX 7
+#define wxSTC_INDIC_STRAIGHTBOX 8
+#define wxSTC_INDIC_DASH 9
+#define wxSTC_INDIC_DOTS 10
+#define wxSTC_INDIC_SQUIGGLELOW 11
+#define wxSTC_INDIC_DOTBOX 12
#define wxSTC_INDIC_MAX 31
#define wxSTC_INDIC_CONTAINER 8
#define wxSTC_INDIC0_MASK 0x20
#define wxSTC_WRAPVISUALFLAG_NONE 0x0000
#define wxSTC_WRAPVISUALFLAG_END 0x0001
#define wxSTC_WRAPVISUALFLAG_START 0x0002
+#define wxSTC_WRAPVISUALFLAG_MARGIN 0x0004
#define wxSTC_WRAPVISUALFLAGLOC_DEFAULT 0x0000
#define wxSTC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001
#define wxSTC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002
#define wxSTC_EFF_QUALITY_NON_ANTIALIASED 1
#define wxSTC_EFF_QUALITY_ANTIALIASED 2
#define wxSTC_EFF_QUALITY_LCD_OPTIMIZED 3
+#define wxSTC_MULTIPASTE_ONCE 0
+#define wxSTC_MULTIPASTE_EACH 1
#define wxSTC_EDGE_NONE 0
#define wxSTC_EDGE_LINE 1
#define wxSTC_EDGE_BACKGROUND 2
#define wxSTC_STATUS_FAILURE 1
#define wxSTC_STATUS_BADALLOC 2
#define wxSTC_CURSORNORMAL -1
+#define wxSTC_CURSORARROW 2
#define wxSTC_CURSORWAIT 4
+#define wxSTC_CURSORREVERSEARROW 7
// Constants for use with SetVisiblePolicy, similar to SetCaretPolicy.
#define wxSTC_VISIBLE_SLOP 0x01
#define wxSTC_SEL_RECTANGLE 1
#define wxSTC_SEL_LINES 2
#define wxSTC_SEL_THIN 3
+#define wxSTC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE 0
+#define wxSTC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1
+#define wxSTC_CARETSTICKY_OFF 0
+#define wxSTC_CARETSTICKY_ON 1
+#define wxSTC_CARETSTICKY_WHITESPACE 2
#define wxSTC_ALPHA_TRANSPARENT 0
#define wxSTC_ALPHA_OPAQUE 255
#define wxSTC_ALPHA_NOALPHA 256
#define wxSTC_CARETSTYLE_INVISIBLE 0
#define wxSTC_CARETSTYLE_LINE 1
#define wxSTC_CARETSTYLE_BLOCK 2
+#define wxSTC_MARGINOPTION_NONE 0
+#define wxSTC_MARGINOPTION_SUBLINESELECT 1
#define wxSTC_ANNOTATION_HIDDEN 0
#define wxSTC_ANNOTATION_STANDARD 1
#define wxSTC_ANNOTATION_BOXED 2
#define wxSTC_SCVS_NONE 0
#define wxSTC_SCVS_RECTANGULARSELECTION 1
#define wxSTC_SCVS_USERACCESSIBLE 2
+#define wxSTC_TECHNOLOGY_DEFAULT 0
+#define wxSTC_TECHNOLOGY_DIRECTWRITE 1
// Maximum value of keywordSet parameter of SetKeyWords.
#define wxSTC_KEYWORDSET_MAX 8
+#define wxSTC_TYPE_BOOLEAN 0
+#define wxSTC_TYPE_INTEGER 1
+#define wxSTC_TYPE_STRING 2
// Notifications
// Type of modification and the action which caused the modification.
#define wxSTC_MOD_CHANGEMARGIN 0x10000
#define wxSTC_MOD_CHANGEANNOTATION 0x20000
#define wxSTC_MOD_CONTAINER 0x40000
-#define wxSTC_MODEVENTMASKALL 0x7FFFF
+#define wxSTC_MOD_LEXERSTATE 0x80000
+#define wxSTC_MODEVENTMASKALL 0xFFFFF
+#define wxSTC_UPDATE_CONTENT 0x1
+#define wxSTC_UPDATE_SELECTION 0x2
+#define wxSTC_UPDATE_V_SCROLL 0x4
+#define wxSTC_UPDATE_H_SCROLL 0x8
// Symbolic key codes and modifier flags.
// ASCII and other printable characters below 256.
#define wxSTC_SCMOD_CTRL 2
#define wxSTC_SCMOD_ALT 4
#define wxSTC_SCMOD_SUPER 8
+#define wxSTC_SCMOD_META 16
// For SciLexer.h
#define wxSTC_LEX_CONTAINER 0
#define wxSTC_LEX_NIMROD 96
#define wxSTC_LEX_SML 97
#define wxSTC_LEX_MARKDOWN 98
+#define wxSTC_LEX_TXT2TAGS 99
+#define wxSTC_LEX_A68K 100
+#define wxSTC_LEX_MODULA 101
+#define wxSTC_LEX_COFFEESCRIPT 102
+#define wxSTC_LEX_TCMD 103
+#define wxSTC_LEX_AVS 104
+#define wxSTC_LEX_ECL 105
+#define wxSTC_LEX_OSCRIPT 106
+#define wxSTC_LEX_VISUALPROLOG 107
// When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
// value assigned in sequence from SCLEX_AUTOMATIC+1.
#define wxSTC_C_COMMENTDOCKEYWORD 17
#define wxSTC_C_COMMENTDOCKEYWORDERROR 18
#define wxSTC_C_GLOBALCLASS 19
+#define wxSTC_C_STRINGRAW 20
+#define wxSTC_C_TRIPLEVERBATIM 21
+#define wxSTC_C_HASHQUOTEDSTRING 22
+#define wxSTC_C_PREPROCESSORCOMMENT 23
// Lexical states for SCLEX_D
#define wxSTC_D_DEFAULT 0
#define wxSTC_PL_SUB_PROTOTYPE 40
#define wxSTC_PL_FORMAT_IDENT 41
#define wxSTC_PL_FORMAT 42
+#define wxSTC_PL_STRING_VAR 43
+#define wxSTC_PL_XLAT 44
+#define wxSTC_PL_REGEX_VAR 54
+#define wxSTC_PL_REGSUBST_VAR 55
+#define wxSTC_PL_BACKTICKS_VAR 57
+#define wxSTC_PL_HERE_QQ_VAR 61
+#define wxSTC_PL_HERE_QX_VAR 62
+#define wxSTC_PL_STRING_QQ_VAR 64
+#define wxSTC_PL_STRING_QX_VAR 65
+#define wxSTC_PL_STRING_QR_VAR 66
// Lexical states for SCLEX_RUBY
#define wxSTC_RB_DEFAULT 0
#define wxSTC_L_TAG 2
#define wxSTC_L_MATH 3
#define wxSTC_L_COMMENT 4
+#define wxSTC_L_TAG2 5
+#define wxSTC_L_MATH2 6
+#define wxSTC_L_COMMENT2 7
+#define wxSTC_L_VERBATIM 8
+#define wxSTC_L_SHORTCMD 9
+#define wxSTC_L_SPECIAL 10
+#define wxSTC_L_CMDOPT 11
+#define wxSTC_L_ERROR 12
// Lexical states for SCLEX_LUA
#define wxSTC_LUA_DEFAULT 0
#define wxSTC_LUA_WORD6 17
#define wxSTC_LUA_WORD7 18
#define wxSTC_LUA_WORD8 19
+#define wxSTC_LUA_LABEL 20
// Lexical states for SCLEX_ERRORLIST
#define wxSTC_ERR_DEFAULT 0
#define wxSTC_BAT_IDENTIFIER 6
#define wxSTC_BAT_OPERATOR 7
+// Lexical states for SCLEX_TCMD
+#define wxSTC_TCMD_DEFAULT 0
+#define wxSTC_TCMD_COMMENT 1
+#define wxSTC_TCMD_WORD 2
+#define wxSTC_TCMD_LABEL 3
+#define wxSTC_TCMD_HIDE 4
+#define wxSTC_TCMD_COMMAND 5
+#define wxSTC_TCMD_IDENTIFIER 6
+#define wxSTC_TCMD_OPERATOR 7
+#define wxSTC_TCMD_ENVIRONMENT 8
+#define wxSTC_TCMD_EXPANSION 9
+#define wxSTC_TCMD_CLABEL 10
+
// Lexical states for SCLEX_MAKEFILE
#define wxSTC_MAKE_DEFAULT 0
#define wxSTC_MAKE_COMMENT 1
#define wxSTC_ASM_CHARACTER 12
#define wxSTC_ASM_STRINGEOL 13
#define wxSTC_ASM_EXTINSTRUCTION 14
+#define wxSTC_ASM_COMMENTDIRECTIVE 15
// Lexical states for SCLEX_FORTRAN
#define wxSTC_F_DEFAULT 0
#define wxSTC_CSS_EXTENDED_IDENTIFIER 19
#define wxSTC_CSS_EXTENDED_PSEUDOCLASS 20
#define wxSTC_CSS_EXTENDED_PSEUDOELEMENT 21
+#define wxSTC_CSS_MEDIA 22
+#define wxSTC_CSS_VARIABLE 23
// Lexical states for SCLEX_POV
#define wxSTC_POV_DEFAULT 0
#define wxSTC_FS_DATE 16
#define wxSTC_FS_STRINGEOL 17
#define wxSTC_FS_CONSTANT 18
-#define wxSTC_FS_ASM 19
-#define wxSTC_FS_LABEL 20
-#define wxSTC_FS_ERROR 21
-#define wxSTC_FS_HEXNUMBER 22
-#define wxSTC_FS_BINNUMBER 23
+#define wxSTC_FS_WORDOPERATOR 19
+#define wxSTC_FS_DISABLEDCODE 20
+#define wxSTC_FS_DEFAULT_C 21
+#define wxSTC_FS_COMMENTDOC_C 22
+#define wxSTC_FS_COMMENTLINEDOC_C 23
+#define wxSTC_FS_KEYWORD_C 24
+#define wxSTC_FS_KEYWORD2_C 25
+#define wxSTC_FS_NUMBER_C 26
+#define wxSTC_FS_STRING_C 27
+#define wxSTC_FS_PREPROCESSOR_C 28
+#define wxSTC_FS_OPERATOR_C 29
+#define wxSTC_FS_IDENTIFIER_C 30
+#define wxSTC_FS_STRINGEOL_C 31
// Lexical states for SCLEX_CSOUND
#define wxSTC_CSOUND_DEFAULT 0
#define wxSTC_POWERSHELL_KEYWORD 8
#define wxSTC_POWERSHELL_CMDLET 9
#define wxSTC_POWERSHELL_ALIAS 10
+#define wxSTC_POWERSHELL_FUNCTION 11
+#define wxSTC_POWERSHELL_USER1 12
+#define wxSTC_POWERSHELL_COMMENTSTREAM 13
// Lexical state for SCLEX_MYSQL
#define wxSTC_MYSQL_DEFAULT 0
#define wxSTC_MARKDOWN_CODE2 20
#define wxSTC_MARKDOWN_CODEBK 21
+// Lexical state for SCLEX_TXT2TAGS
+#define wxSTC_TXT2TAGS_DEFAULT 0
+#define wxSTC_TXT2TAGS_LINE_BEGIN 1
+#define wxSTC_TXT2TAGS_STRONG1 2
+#define wxSTC_TXT2TAGS_STRONG2 3
+#define wxSTC_TXT2TAGS_EM1 4
+#define wxSTC_TXT2TAGS_EM2 5
+#define wxSTC_TXT2TAGS_HEADER1 6
+#define wxSTC_TXT2TAGS_HEADER2 7
+#define wxSTC_TXT2TAGS_HEADER3 8
+#define wxSTC_TXT2TAGS_HEADER4 9
+#define wxSTC_TXT2TAGS_HEADER5 10
+#define wxSTC_TXT2TAGS_HEADER6 11
+#define wxSTC_TXT2TAGS_PRECHAR 12
+#define wxSTC_TXT2TAGS_ULIST_ITEM 13
+#define wxSTC_TXT2TAGS_OLIST_ITEM 14
+#define wxSTC_TXT2TAGS_BLOCKQUOTE 15
+#define wxSTC_TXT2TAGS_STRIKEOUT 16
+#define wxSTC_TXT2TAGS_HRULE 17
+#define wxSTC_TXT2TAGS_LINK 18
+#define wxSTC_TXT2TAGS_CODE 19
+#define wxSTC_TXT2TAGS_CODE2 20
+#define wxSTC_TXT2TAGS_CODEBK 21
+#define wxSTC_TXT2TAGS_COMMENT 22
+#define wxSTC_TXT2TAGS_OPTION 23
+#define wxSTC_TXT2TAGS_PREPROC 24
+#define wxSTC_TXT2TAGS_POSTPROC 25
+
+// Lexical states for SCLEX_A68K
+#define wxSTC_A68K_DEFAULT 0
+#define wxSTC_A68K_COMMENT 1
+#define wxSTC_A68K_NUMBER_DEC 2
+#define wxSTC_A68K_NUMBER_BIN 3
+#define wxSTC_A68K_NUMBER_HEX 4
+#define wxSTC_A68K_STRING1 5
+#define wxSTC_A68K_OPERATOR 6
+#define wxSTC_A68K_CPUINSTRUCTION 7
+#define wxSTC_A68K_EXTINSTRUCTION 8
+#define wxSTC_A68K_REGISTER 9
+#define wxSTC_A68K_DIRECTIVE 10
+#define wxSTC_A68K_MACRO_ARG 11
+#define wxSTC_A68K_LABEL 12
+#define wxSTC_A68K_STRING2 13
+#define wxSTC_A68K_IDENTIFIER 14
+#define wxSTC_A68K_MACRO_DECLARATION 15
+#define wxSTC_A68K_COMMENT_WORD 16
+#define wxSTC_A68K_COMMENT_SPECIAL 17
+#define wxSTC_A68K_COMMENT_DOXYGEN 18
+
+// Lexical states for SCLEX_MODULA
+#define wxSTC_MODULA_DEFAULT 0
+#define wxSTC_MODULA_COMMENT 1
+#define wxSTC_MODULA_DOXYCOMM 2
+#define wxSTC_MODULA_DOXYKEY 3
+#define wxSTC_MODULA_KEYWORD 4
+#define wxSTC_MODULA_RESERVED 5
+#define wxSTC_MODULA_NUMBER 6
+#define wxSTC_MODULA_BASENUM 7
+#define wxSTC_MODULA_FLOAT 8
+#define wxSTC_MODULA_STRING 9
+#define wxSTC_MODULA_STRSPEC 10
+#define wxSTC_MODULA_CHAR 11
+#define wxSTC_MODULA_CHARSPEC 12
+#define wxSTC_MODULA_PROC 13
+#define wxSTC_MODULA_PRAGMA 14
+#define wxSTC_MODULA_PRGKEY 15
+#define wxSTC_MODULA_OPERATOR 16
+#define wxSTC_MODULA_BADSTR 17
+
+// Lexical states for SCLEX_COFFEESCRIPT
+#define wxSTC_COFFEESCRIPT_DEFAULT 0
+#define wxSTC_COFFEESCRIPT_COMMENT 1
+#define wxSTC_COFFEESCRIPT_COMMENTLINE 2
+#define wxSTC_COFFEESCRIPT_COMMENTDOC 3
+#define wxSTC_COFFEESCRIPT_NUMBER 4
+#define wxSTC_COFFEESCRIPT_WORD 5
+#define wxSTC_COFFEESCRIPT_STRING 6
+#define wxSTC_COFFEESCRIPT_CHARACTER 7
+#define wxSTC_COFFEESCRIPT_UUID 8
+#define wxSTC_COFFEESCRIPT_PREPROCESSOR 9
+#define wxSTC_COFFEESCRIPT_OPERATOR 10
+#define wxSTC_COFFEESCRIPT_IDENTIFIER 11
+#define wxSTC_COFFEESCRIPT_STRINGEOL 12
+#define wxSTC_COFFEESCRIPT_VERBATIM 13
+#define wxSTC_COFFEESCRIPT_REGEX 14
+#define wxSTC_COFFEESCRIPT_COMMENTLINEDOC 15
+#define wxSTC_COFFEESCRIPT_WORD2 16
+#define wxSTC_COFFEESCRIPT_COMMENTDOCKEYWORD 17
+#define wxSTC_COFFEESCRIPT_COMMENTDOCKEYWORDERROR 18
+#define wxSTC_COFFEESCRIPT_GLOBALCLASS 19
+#define wxSTC_COFFEESCRIPT_STRINGRAW 20
+#define wxSTC_COFFEESCRIPT_TRIPLEVERBATIM 21
+#define wxSTC_COFFEESCRIPT_HASHQUOTEDSTRING 22
+#define wxSTC_COFFEESCRIPT_COMMENTBLOCK 22
+#define wxSTC_COFFEESCRIPT_VERBOSE_REGEX 23
+#define wxSTC_COFFEESCRIPT_VERBOSE_REGEX_COMMENT 24
+
+// Lexical states for SCLEX_AVS
+#define wxSTC_AVS_DEFAULT 0
+#define wxSTC_AVS_COMMENTBLOCK 1
+#define wxSTC_AVS_COMMENTBLOCKN 2
+#define wxSTC_AVS_COMMENTLINE 3
+#define wxSTC_AVS_NUMBER 4
+#define wxSTC_AVS_OPERATOR 5
+#define wxSTC_AVS_IDENTIFIER 6
+#define wxSTC_AVS_STRING 7
+#define wxSTC_AVS_TRIPLESTRING 8
+#define wxSTC_AVS_KEYWORD 9
+#define wxSTC_AVS_FILTER 10
+#define wxSTC_AVS_PLUGIN 11
+#define wxSTC_AVS_FUNCTION 12
+#define wxSTC_AVS_CLIPPROP 13
+#define wxSTC_AVS_USERDFN 14
+
+// Lexical states for SCLEX_ECL
+#define wxSTC_ECL_DEFAULT 0
+#define wxSTC_ECL_COMMENT 1
+#define wxSTC_ECL_COMMENTLINE 2
+#define wxSTC_ECL_NUMBER 3
+#define wxSTC_ECL_STRING 4
+#define wxSTC_ECL_WORD0 5
+#define wxSTC_ECL_OPERATOR 6
+#define wxSTC_ECL_CHARACTER 7
+#define wxSTC_ECL_UUID 8
+#define wxSTC_ECL_PREPROCESSOR 9
+#define wxSTC_ECL_UNKNOWN 10
+#define wxSTC_ECL_IDENTIFIER 11
+#define wxSTC_ECL_STRINGEOL 12
+#define wxSTC_ECL_VERBATIM 13
+#define wxSTC_ECL_REGEX 14
+#define wxSTC_ECL_COMMENTLINEDOC 15
+#define wxSTC_ECL_WORD1 16
+#define wxSTC_ECL_COMMENTDOCKEYWORD 17
+#define wxSTC_ECL_COMMENTDOCKEYWORDERROR 18
+#define wxSTC_ECL_WORD2 19
+#define wxSTC_ECL_WORD3 20
+#define wxSTC_ECL_WORD4 21
+#define wxSTC_ECL_WORD5 22
+#define wxSTC_ECL_COMMENTDOC 23
+#define wxSTC_ECL_ADDED 24
+#define wxSTC_ECL_DELETED 25
+#define wxSTC_ECL_CHANGED 26
+#define wxSTC_ECL_MOVED 27
+
+// Lexical states for SCLEX_OSCRIPT
+#define wxSTC_OSCRIPT_DEFAULT 0
+#define wxSTC_OSCRIPT_LINE_COMMENT 1
+#define wxSTC_OSCRIPT_BLOCK_COMMENT 2
+#define wxSTC_OSCRIPT_DOC_COMMENT 3
+#define wxSTC_OSCRIPT_PREPROCESSOR 4
+#define wxSTC_OSCRIPT_NUMBER 5
+#define wxSTC_OSCRIPT_SINGLEQUOTE_STRING 6
+#define wxSTC_OSCRIPT_DOUBLEQUOTE_STRING 7
+#define wxSTC_OSCRIPT_CONSTANT 8
+#define wxSTC_OSCRIPT_IDENTIFIER 9
+#define wxSTC_OSCRIPT_GLOBAL 10
+#define wxSTC_OSCRIPT_KEYWORD 11
+#define wxSTC_OSCRIPT_OPERATOR 12
+#define wxSTC_OSCRIPT_LABEL 13
+#define wxSTC_OSCRIPT_TYPE 14
+#define wxSTC_OSCRIPT_FUNCTION 15
+#define wxSTC_OSCRIPT_OBJECT 16
+#define wxSTC_OSCRIPT_PROPERTY 17
+#define wxSTC_OSCRIPT_METHOD 18
+
+// Lexical states for SCLEX_VISUALPROLOG
+#define wxSTC_VISUALPROLOG_DEFAULT 0
+#define wxSTC_VISUALPROLOG_KEY_MAJOR 1
+#define wxSTC_VISUALPROLOG_KEY_MINOR 2
+#define wxSTC_VISUALPROLOG_KEY_DIRECTIVE 3
+#define wxSTC_VISUALPROLOG_COMMENT_BLOCK 4
+#define wxSTC_VISUALPROLOG_COMMENT_LINE 5
+#define wxSTC_VISUALPROLOG_COMMENT_KEY 6
+#define wxSTC_VISUALPROLOG_COMMENT_KEY_ERROR 7
+#define wxSTC_VISUALPROLOG_IDENTIFIER 8
+#define wxSTC_VISUALPROLOG_VARIABLE 9
+#define wxSTC_VISUALPROLOG_ANONYMOUS 10
+#define wxSTC_VISUALPROLOG_NUMBER 11
+#define wxSTC_VISUALPROLOG_OPERATOR 12
+#define wxSTC_VISUALPROLOG_CHARACTER 13
+#define wxSTC_VISUALPROLOG_CHARACTER_TOO_MANY 14
+#define wxSTC_VISUALPROLOG_CHARACTER_ESCAPE_ERROR 15
+#define wxSTC_VISUALPROLOG_STRING 16
+#define wxSTC_VISUALPROLOG_STRING_ESCAPE 17
+#define wxSTC_VISUALPROLOG_STRING_ESCAPE_ERROR 18
+#define wxSTC_VISUALPROLOG_STRING_EOL_OPEN 19
+#define wxSTC_VISUALPROLOG_STRING_VERBATIM 20
+#define wxSTC_VISUALPROLOG_STRING_VERBATIM_SPECIAL 21
+#define wxSTC_VISUALPROLOG_STRING_VERBATIM_EOL 22
+
//}}}
//----------------------------------------------------------------------
// Delete all text in the document.
void ClearAll();
+ // Delete a range of text in the document.
+ void DeleteRange(int pos, int deleteLength);
+
// Set all style bytes to 0, remove all folding information.
void ClearDocumentStyle();
// Set the background colour used for a particular marker number.
void MarkerSetBackground(int markerNumber, const wxColour& back);
+ // Set the background colour used for a particular marker number when its folding block is selected.
+ void MarkerSetBackSelected(int markerNumber, const wxColour& back);
+
+ // Enable/disable highlight for current folding bloc (smallest one that contains the caret)
+ void MarkerEnableHighlight(bool enabled);
+
// 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);
// Get a bit mask of all the markers set on a line.
int MarkerGet(int line);
- // Find the next line after lineStart that includes a marker in mask.
+ // Find the next line at or after lineStart that includes a marker in mask.
+ // Return -1 when no more lines.
int MarkerNext(int lineStart, int markerMask);
// Find the previous line before lineStart that includes a marker in mask.
// Retrieve the mouse click sensitivity of a margin.
bool GetMarginSensitive(int margin) const;
+ // Set the cursor shown when the mouse is inside a margin.
+ void SetMarginCursorN(int margin, int cursor);
+
+ // Retrieve the cursor shown in a margin.
+ int GetMarginCursorN(int margin) const;
+
// Clear all the styles and make equivalent to the global default style.
void StyleClearAll();
// Set a style to be mixed case, or to force upper or lower case.
void StyleSetCase(int style, int caseForce);
+ // Set the size of characters of a style. Size is in points multiplied by 100.
+ void StyleSetSizeFractional(int style, int caseForce);
+
+ // Get the size of characters of a style in points multiplied by 100
+ int StyleGetSizeFractional(int style) const;
+
+ // Set the weight of characters of a style.
+ void StyleSetWeight(int style, int weight);
+
+ // Get the weight of characters of a style.
+ int StyleGetWeight(int style) const;
+
// Set a style to be a hotspot or not.
void StyleSetHotSpot(int style, bool hotspot);
// First sets defaults like SetCharsDefault.
void SetWordChars(const wxString& characters);
+ // Get the set of characters making up words for when moving or selecting by word.
+ wxString GetWordChars() const;
+
// Start a sequence of actions that is undone and redone as a unit.
// May be nested.
void BeginUndoAction();
// Retrieve the column number of a position, taking tab width into account.
int GetColumn(int pos) const;
+ // Count characters between two positions.
+ int CountCharacters(int startPos, int endPos);
+
// Show or hide the horizontal scroll bar.
void SetUseHorizontalScrollBar(bool show);
// Returns the position at the end of the selection.
int GetSelectionEnd() const;
+ // Set caret to a position, while removing any existing selection.
+ void SetEmptySelection(int pos);
+
// Sets the print magnification added to the point size of each style for printing.
void SetPrintMagnification(int magnification);
// Enable use of STYLE_CALLTIP and set call tip tab size in pixels.
void CallTipUseStyle(int tabSize);
+ // Set position of calltip, above or below text.
+ void CallTipSetPosition(bool above);
+
// Find the display line of a document line taking hidden lines into account.
int VisibleFromDocLine(int line);
// Is a line visible?
bool GetLineVisible(int line) const;
+ // Are all lines visible?
+ bool GetAllLinesVisible() const;
+
// Show the children of a header line.
void SetFoldExpanded(int line, bool expanded);
// Scroll so that a display line is at the top of the display.
void SetFirstVisibleLine(int lineDisplay);
+ // Change the effect of pasting when there are multiple selections.
+ void SetMultiPaste(int multiPaste);
+
+ // Retrieve the effect of pasting when there are multiple selections..
+ int GetMultiPaste() const;
+
+ // Retrieve the value of a tag from a regular expression search.
+ wxString GetTag(int tagNumber) const;
+
// Make the target range start and end be the same as the selection range start and end.
void TargetFromSelection();
// Highlight the characters at two positions.
void BraceHighlight(int pos1, int pos2);
+ // Use specified indicator to highlight matching braces instead of changing their style.
+ void BraceHighlightIndicator(bool useBraceHighlightIndicator, int indicator);
+
// Highlight the character at a position indicating there is no matching brace.
void BraceBadLight(int pos);
+ // Use specified indicator to highlight non matching brace instead of changing its style.
+ void BraceBadLightIndicator(bool useBraceBadLightIndicator, int indicator);
+
// Find the position of a matching brace or INVALID_POSITION if no match.
int BraceMatch(int pos);
// 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, horizontal scroll position).
void SetXOffset(int newOffset);
int GetXOffset() const;
// 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.
+ // Set the way the caret is kept visible when going sideways.
// The exclusion zone is given in pixels.
void SetXCaretPolicy(int caretPolicy, int caretSlop);
// Should be called after SetWordChars.
void SetWhitespaceChars(const wxString& characters);
+ // Get the set of characters making up whitespace for when moving or selecting by word.
+ wxString GetWhitespaceChars() const;
+
+ // Set the set of characters making up punctuation characters
+ // Should be called after SetWordChars.
+ void SetPunctuationChars(const wxString& characters);
+
+ // Get the set of characters making up punctuation characters
+ wxString GetPunctuationChars() const;
+
// Reset the set of characters for whitespace and word characters to the defaults.
void SetCharsDefault();
// Get currently selected item position in the auto-completion list
- int AutoCompGetCurrent();
+ int AutoCompGetCurrent() const;
+
+ // Set auto-completion case insensitive behaviour to either prefer case-sensitive matches or have no preference.
+ void AutoCSetCaseInsensitiveBehaviour(int behaviour);
+
+ // Get auto-completion case insensitive behaviour.
+ int AutoCGetCaseInsensitiveBehaviour() const;
// Enlarge the document to a particular size of text bytes.
void Allocate(int bytes);
int FindColumn(int line, int column);
// Can the caret preferred x position only be changed by explicit movement commands?
- bool GetCaretSticky() const;
+ int GetCaretSticky() const;
// Stop the caret preferred x position changing when the user types.
- void SetCaretSticky(bool useCaretStickyBehaviour);
+ void SetCaretSticky(int useCaretStickyBehaviour);
// Switch between sticky and non-sticky: meant to be bound to a key.
void ToggleCaretSticky();
// Set the value used for IndicatorFillRange
void SetIndicatorValue(int value);
- // Get the current indicator vaue
+ // Get the current indicator value
int GetIndicatorValue() const;
// Turn a indicator on over a range.
// characters in the document.
const char* GetCharacterPointer();
+ // Return a read-only pointer to a range of characters in the document.
+ // May move the gap so that the range is contiguous, but will only move up
+ // to rangeLength bytes.
+ int GetRangePointer(int position, int rangeLength) const;
+
+ // Return a position which, to avoid performance costs, should not be within
+ // the range of a call to GetRangePointer.
+ int GetGapPosition() const;
+
// Always interpret keyboard input as Unicode
void SetKeysUnicode(bool keysUnicode);
// Get the alpha fill colour of the given indicator.
int IndicatorGetAlpha(int indicator) const;
+ // Set the alpha outline colour of the given indicator.
+ void IndicSetOutlineAlpha(int indicator, int alpha);
+
+ // Get the alpha outline colour of the given indicator.
+ int IndicGetOutlineAlpha(int indicator) const;
+
// Set extra ascent for each line
void SetExtraAscent(int extraAscent);
// Get the start of the range of style numbers used for margin text
int MarginGetStyleOffset() const;
+ // Set the margin options.
+ void SetMarginOptions(int marginOptions);
+
+ // Get the margin options.
+ int GetMarginOptions() const;
+
// Set the annotation text for a line
void AnnotationSetText(int line, const wxString& text);
// Swap that caret and anchor of the main selection.
void SwapMainAnchorCaret();
+ // Indicate that the internal state of a lexer has changed over a range and therefore
+ // there may be a need to redraw.
+ int ChangeLexerState(int start, int end);
+
+ // Find the next line at or after lineStart that is a contracted fold header line.
+ // Return -1 when no more lines.
+ int ContractedFoldNext(int lineStart);
+
+ // Centre current line in window.
+ void VerticalCentreCaret();
+
+ // Move the selected lines up one line, shifting the line above after the selection
+ void MoveSelectedLinesUp();
+
+ // Move the selected lines down one line, shifting the line below before the selection
+ void MoveSelectedLinesDown();
+
+ // Set the identifier reported as idFrom in notification messages.
+ void SetIdentifier(int identifier);
+
+ // Get the identifier.
+ int GetIdentifier() const;
+
+ // Set the width for future RGBA image data.
+ void RGBAImageSetWidth(int width);
+
+ // Set the height for future RGBA image data.
+ void RGBAImageSetHeight(int height);
+
+ // Define a marker from RGBA data.
+ // It has the width and height from RGBAImageSetWidth/Height
+ void MarkerDefineRGBAImage(int markerNumber, const wxString& pixels);
+
+ // Register an RGBA image for use in autocompletion lists.
+ // It has the width and height from RGBAImageSetWidth/Height
+ void RegisterRGBAImage(int type, const wxString& pixels);
+
+ // Scroll to start of document.
+ void ScrollToStart();
+
+ // Scroll to end of document.
+ void ScrollToEnd();
+
+ // Set the technology used.
+ void SetTechnology(int technology);
+
+ // Get the tech.
+ int GetTechnology() const;
+
+ // Create an ILoader*.
+ int CreateLoader(int bytes);
+
+ // On OS X, show a find indicator.
+ void FindIndicatorShow(int start, int end);
+
+ // On OS X, flash a find indicator, then fade out.
+ void FindIndicatorFlash(int start, int end);
+
+ // On OS X, hide the find indicator.
+ void FindIndicatorHide();
+
// Start notifying the container of all key presses and commands.
void StartRecord();
// Retrieve the number of bits the current lexer needs for styling.
int GetStyleBitsNeeded() const;
+ // For private communication between an application and a known lexer.
+ int PrivateLexerCall(int operation, int pointer);
+
+ // Retrieve a '\n' separated list of properties understood by the current lexer.
+ wxString PropertyNames() const;
+
+ // Retrieve the type of a property.
+ int PropertyType(const wxString& name);
+
+ // Describe a property.
+ wxString DescribeProperty(const wxString& name) const;
+
+ // Retrieve a '\n' separated list of descriptions of the keyword sets understood by the current lexer.
+ wxString DescribeKeyWordSets() const;
+
//}}}
//----------------------------------------------------------------------
rc.GetRight()+1, rc.GetBottom()+1);
}
-wxColour wxColourFromCA(const ColourAllocated& ca) {
- ColourDesired cd(ca.AsLong());
+wxColour wxColourFromCD(ColourDesired& cd) {
return wxColour((unsigned char)cd.GetRed(),
(unsigned char)cd.GetGreen(),
(unsigned char)cd.GetBlue());
}
-wxColour wxColourFromCAandAlpha(const ColourAllocated& ca, int alpha) {
- ColourDesired cd(ca.AsLong());
+wxColour wxColourFromCDandAlpha(ColourDesired& cd, int alpha) {
return wxColour((unsigned char)cd.GetRed(),
(unsigned char)cd.GetGreen(),
(unsigned char)cd.GetBlue(),
(unsigned char)alpha);
}
-//----------------------------------------------------------------------
-
-Palette::Palette() {
- used = 0;
- allowRealization = false;
- size = 100;
- entries = new ColourPair[size];
-}
-
-Palette::~Palette() {
- Release();
- wxDELETEA(entries);
-}
-
-void Palette::Release() {
- used = 0;
- delete [] entries;
- size = 100;
- entries = new ColourPair[size];
-}
-
-// This method either adds a colour to the list of wanted colours (want==true)
-// or retrieves the allocated colour back to the ColourPair.
-// This is one method to make it easier to keep the code for wanting and retrieving in sync.
-void Palette::WantFind(ColourPair &cp, bool want) {
- if (want) {
- for (int i=0; i < used; i++) {
- if (entries[i].desired == cp.desired)
- return;
- }
-
- if (used >= size) {
- int sizeNew = size * 2;
- ColourPair *entriesNew = new ColourPair[sizeNew];
- for (int j=0; j<size; j++) {
- entriesNew[j] = entries[j];
- }
- delete []entries;
- entries = entriesNew;
- size = sizeNew;
- }
-
- entries[used].desired = cp.desired;
- entries[used].allocated.Set(cp.desired.AsLong());
- used++;
- } else {
- for (int i=0; i < used; i++) {
- if (entries[i].desired == cp.desired) {
- cp.allocated = entries[i].allocated;
- return;
- }
- }
- cp.allocated.Set(cp.desired.AsLong());
- }
-}
-
-void Palette::Allocate(Window &) {
- if (allowRealization) {
- }
-}
-
-
//----------------------------------------------------------------------
Font::Font() {
Font::~Font() {
}
-void Font::Create(const char *faceName, int characterSet,
- int size, bool bold, bool italic,
- int WXUNUSED(extraFontFlag)) {
+void Font::Create(const FontParameters &fp) {
Release();
- // The minus one is done because since Scintilla uses SC_SHARSET_DEFAULT
+ // The minus one is done because since Scintilla uses SC_CHARSET_DEFAULT
// internally and we need to have wxFONENCODING_DEFAULT == SC_SHARSET_DEFAULT
// so we adjust the encoding before passing it to Scintilla. See also
// wxStyledTextCtrl::StyleSetCharacterSet
- wxFontEncoding encoding = (wxFontEncoding)(characterSet-1);
+ wxFontEncoding encoding = (wxFontEncoding)(fp.characterSet-1);
wxFontEncodingArray ea = wxEncodingConverter::GetPlatformEquivalents(encoding);
if (ea.GetCount())
encoding = ea[0];
- wxFont* font = new wxFont(size,
- wxDEFAULT,
- italic ? wxITALIC : wxNORMAL,
- bold ? wxBOLD : wxNORMAL,
- false,
- stc2wx(faceName),
- encoding);
+ wxFontWeight weight;
+ if (fp.weight <= 300)
+ weight = wxFONTWEIGHT_LIGHT;
+ else if (fp.weight >= 700)
+ weight = wxFONTWEIGHT_BOLD;
+ else
+ weight = wxFONTWEIGHT_NORMAL;
+
+ wxFont* font = new wxFont(fp.size,
+ wxFONTFAMILY_DEFAULT,
+ fp.italic ? wxFONTSTYLE_ITALIC : wxFONTSTYLE_NORMAL,
+ weight,
+ false,
+ stc2wx(fp.faceName),
+ encoding);
fid = font;
}
virtual void Release();
virtual bool Initialised();
- virtual void PenColour(ColourAllocated fore);
+ virtual void PenColour(ColourDesired fore);
virtual int LogPixelsY();
virtual int DeviceHeightFont(int points);
virtual void MoveTo(int x_, int y_);
virtual void LineTo(int x_, int y_);
- virtual void Polygon(Point *pts, int npts, ColourAllocated fore, ColourAllocated back);
- virtual void RectangleDraw(PRectangle rc, ColourAllocated fore, ColourAllocated back);
- virtual void FillRectangle(PRectangle rc, ColourAllocated back);
+ virtual void Polygon(Point *pts, int npts, ColourDesired fore, ColourDesired back);
+ virtual void RectangleDraw(PRectangle rc, ColourDesired fore, ColourDesired back);
+ virtual void FillRectangle(PRectangle rc, ColourDesired back);
virtual void FillRectangle(PRectangle rc, Surface &surfacePattern);
- virtual void RoundedRectangle(PRectangle rc, ColourAllocated fore, ColourAllocated back);
- virtual void AlphaRectangle(PRectangle rc, int cornerSize, ColourAllocated fill, int alphaFill,
- ColourAllocated outline, int alphaOutline, int flags);
- virtual void Ellipse(PRectangle rc, ColourAllocated fore, ColourAllocated back);
+ virtual void RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back);
+ virtual void AlphaRectangle(PRectangle rc, int cornerSize, ColourDesired fill, int alphaFill,
+ ColourDesired outline, int alphaOutline, int flags);
+ virtual void DrawRGBAImage(PRectangle rc, int width, int height,
+ const unsigned char *pixelsImage);
+ virtual void Ellipse(PRectangle rc, ColourDesired fore, ColourDesired back);
virtual void Copy(PRectangle rc, Point from, Surface &surfaceSource);
- virtual void DrawTextNoClip(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore, ColourAllocated back);
- virtual void DrawTextClipped(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore, ColourAllocated back);
- virtual void DrawTextTransparent(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore);
- virtual void MeasureWidths(Font &font_, const char *s, int len, int *positions);
- virtual int WidthText(Font &font_, const char *s, int len);
- virtual int WidthChar(Font &font_, char ch);
- virtual int Ascent(Font &font_);
- virtual int Descent(Font &font_);
- virtual int InternalLeading(Font &font_);
- virtual int ExternalLeading(Font &font_);
- virtual int Height(Font &font_);
- virtual int AverageCharWidth(Font &font_);
-
- virtual int SetPalette(Palette *pal, bool inBackGround);
+ virtual void DrawTextNoClip(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore, ColourDesired back);
+ virtual void DrawTextClipped(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore, ColourDesired back);
+ virtual void DrawTextTransparent(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore);
+ virtual void MeasureWidths(Font &font_, const char *s, int len, XYPOSITION *positions);
+ virtual XYPOSITION WidthText(Font &font_, const char *s, int len);
+ virtual XYPOSITION WidthChar(Font &font_, char ch);
+ virtual XYPOSITION Ascent(Font &font_);
+ virtual XYPOSITION Descent(Font &font_);
+ virtual XYPOSITION InternalLeading(Font &font_);
+ virtual XYPOSITION ExternalLeading(Font &font_);
+ virtual XYPOSITION Height(Font &font_);
+ virtual XYPOSITION AverageCharWidth(Font &font_);
+
virtual void SetClip(PRectangle rc);
virtual void FlushCachedState();
virtual void SetUnicodeMode(bool unicodeMode_);
virtual void SetDBCSMode(int codePage);
- void BrushColour(ColourAllocated back);
+ void BrushColour(ColourDesired back);
void SetFont(Font &font_);
};
}
-void SurfaceImpl::PenColour(ColourAllocated fore) {
- hdc->SetPen(wxPen(wxColourFromCA(fore)));
+void SurfaceImpl::PenColour(ColourDesired fore) {
+ hdc->SetPen(wxPen(wxColourFromCD(fore)));
}
-void SurfaceImpl::BrushColour(ColourAllocated back) {
- hdc->SetBrush(wxBrush(wxColourFromCA(back)));
+void SurfaceImpl::BrushColour(ColourDesired back) {
+ hdc->SetBrush(wxBrush(wxColourFromCD(back)));
}
void SurfaceImpl::SetFont(Font &font_) {
y = y_;
}
-void SurfaceImpl::Polygon(Point *pts, int npts, ColourAllocated fore, ColourAllocated back) {
+void SurfaceImpl::Polygon(Point *pts, int npts, ColourDesired fore, ColourDesired back) {
PenColour(fore);
BrushColour(back);
hdc->DrawPolygon(npts, (wxPoint*)pts);
}
-void SurfaceImpl::RectangleDraw(PRectangle rc, ColourAllocated fore, ColourAllocated back) {
+void SurfaceImpl::RectangleDraw(PRectangle rc, ColourDesired fore, ColourDesired back) {
PenColour(fore);
BrushColour(back);
hdc->DrawRectangle(wxRectFromPRectangle(rc));
}
-void SurfaceImpl::FillRectangle(PRectangle rc, ColourAllocated back) {
+void SurfaceImpl::FillRectangle(PRectangle rc, ColourDesired back) {
BrushColour(back);
hdc->SetPen(*wxTRANSPARENT_PEN);
hdc->DrawRectangle(wxRectFromPRectangle(rc));
hdc->DrawRectangle(wxRectFromPRectangle(rc));
}
-void SurfaceImpl::RoundedRectangle(PRectangle rc, ColourAllocated fore, ColourAllocated back) {
+void SurfaceImpl::RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back) {
PenColour(fore);
BrushColour(back);
hdc->DrawRoundedRectangle(wxRectFromPRectangle(rc), 4);
}
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined(__WXMAC__)
#define wxPy_premultiply(p, a) ((p) * (a) / 0xff)
#else
#define wxPy_premultiply(p, a) (p)
#endif
void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize,
- ColourAllocated fill, int alphaFill,
- ColourAllocated outline, int alphaOutline,
+ ColourDesired fill, int alphaFill,
+ ColourDesired outline, int alphaOutline,
int /*flags*/) {
#if wxUSE_GRAPHICS_CONTEXT
wxGCDC dc(*(wxMemoryDC*)hdc);
- wxColour penColour(wxColourFromCAandAlpha(outline, alphaOutline));
- wxColour brushColour(wxColourFromCAandAlpha(fill, alphaFill));
+ wxColour penColour(wxColourFromCDandAlpha(outline, alphaOutline));
+ wxColour brushColour(wxColourFromCDandAlpha(fill, alphaFill));
dc.SetPen(wxPen(penColour));
dc.SetBrush(wxBrush(brushColour));
dc.DrawRoundedRectangle(wxRectFromPRectangle(rc), cornerSize);
#endif
}
-void SurfaceImpl::Ellipse(PRectangle rc, ColourAllocated fore, ColourAllocated back) {
+#ifdef wxHAS_RAW_BITMAP
+wxBitmap BitmapFromRGBAImage(int width, int height, const unsigned char *pixelsImage)
+{
+ int x, y;
+ wxBitmap bmp(width, height, 32);
+ wxAlphaPixelData pixData(bmp);
+
+ wxAlphaPixelData::Iterator p(pixData);
+ for (y=0; y<height; y++) {
+ p.MoveTo(pixData, 0, y);
+ for (x=0; x<width; x++) {
+ unsigned char red = *pixelsImage++;
+ unsigned char green = *pixelsImage++;
+ unsigned char blue = *pixelsImage++;
+ unsigned char alpha = *pixelsImage++;
+
+ p.Red() = wxPy_premultiply(red, alpha);
+ p.Green() = wxPy_premultiply(green, alpha);
+ p.Blue() = wxPy_premultiply(blue, alpha);
+ p.Alpha() = alpha;
+ ++p;
+ }
+ }
+ return bmp;
+}
+#endif
+
+
+void SurfaceImpl::DrawRGBAImage(PRectangle rc, int width, int height,
+ const unsigned char *pixelsImage)
+{
+#ifdef wxHAS_RAW_BITMAP
+ wxRect r = wxRectFromPRectangle(rc);
+ wxBitmap bmp = BitmapFromRGBAImage(width, height, pixelsImage);
+ hdc->DrawBitmap(bmp, r.x, r.y, true);
+#endif
+}
+
+
+void SurfaceImpl::Ellipse(PRectangle rc, ColourDesired fore, ColourDesired back) {
PenColour(fore);
BrushColour(back);
hdc->DrawEllipse(wxRectFromPRectangle(rc));
from.x, from.y, wxCOPY);
}
-void SurfaceImpl::DrawTextNoClip(PRectangle rc, Font &font, int ybase,
+void SurfaceImpl::DrawTextNoClip(PRectangle rc, Font &font, XYPOSITION ybase,
const char *s, int len,
- ColourAllocated fore, ColourAllocated back) {
+ ColourDesired fore, ColourDesired back) {
SetFont(font);
- hdc->SetTextForeground(wxColourFromCA(fore));
- hdc->SetTextBackground(wxColourFromCA(back));
+ hdc->SetTextForeground(wxColourFromCD(fore));
+ hdc->SetTextBackground(wxColourFromCD(back));
FillRectangle(rc, back);
// ybase is where the baseline should be, but wxWin uses the upper left
hdc->DrawText(stc2wx(s, len), rc.left, ybase - font.ascent);
}
-void SurfaceImpl::DrawTextClipped(PRectangle rc, Font &font, int ybase,
+void SurfaceImpl::DrawTextClipped(PRectangle rc, Font &font, XYPOSITION ybase,
const char *s, int len,
- ColourAllocated fore, ColourAllocated back) {
+ ColourDesired fore, ColourDesired back) {
SetFont(font);
- hdc->SetTextForeground(wxColourFromCA(fore));
- hdc->SetTextBackground(wxColourFromCA(back));
+ hdc->SetTextForeground(wxColourFromCD(fore));
+ hdc->SetTextBackground(wxColourFromCD(back));
FillRectangle(rc, back);
hdc->SetClippingRegion(wxRectFromPRectangle(rc));
}
-void SurfaceImpl::DrawTextTransparent(PRectangle rc, Font &font, int ybase,
+void SurfaceImpl::DrawTextTransparent(PRectangle rc, Font &font, XYPOSITION ybase,
const char *s, int len,
- ColourAllocated fore) {
+ ColourDesired fore) {
SetFont(font);
- hdc->SetTextForeground(wxColourFromCA(fore));
+ hdc->SetTextForeground(wxColourFromCD(fore));
hdc->SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
// ybase is where the baseline should be, but wxWin uses the upper left
}
-void SurfaceImpl::MeasureWidths(Font &font, const char *s, int len, int *positions) {
+void SurfaceImpl::MeasureWidths(Font &font, const char *s, int len, XYPOSITION *positions) {
wxString str = stc2wx(s, len);
wxArrayInt tpos;
}
-int SurfaceImpl::WidthText(Font &font, const char *s, int len) {
+XYPOSITION SurfaceImpl::WidthText(Font &font, const char *s, int len) {
SetFont(font);
int w;
int h;
}
-int SurfaceImpl::WidthChar(Font &font, char ch) {
+XYPOSITION SurfaceImpl::WidthChar(Font &font, char ch) {
SetFont(font);
int w;
int h;
#define EXTENT_TEST wxT(" `~!@#$%^&*()-_=+\\|[]{};:\"\'<,>.?/1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
-int SurfaceImpl::Ascent(Font &font) {
+XYPOSITION SurfaceImpl::Ascent(Font &font) {
SetFont(font);
int w, h, d, e;
hdc->GetTextExtent(EXTENT_TEST, &w, &h, &d, &e);
return font.ascent;
}
-int SurfaceImpl::Descent(Font &font) {
+XYPOSITION SurfaceImpl::Descent(Font &font) {
SetFont(font);
int w, h, d, e;
hdc->GetTextExtent(EXTENT_TEST, &w, &h, &d, &e);
return d;
}
-int SurfaceImpl::InternalLeading(Font &WXUNUSED(font)) {
+XYPOSITION SurfaceImpl::InternalLeading(Font &WXUNUSED(font)) {
return 0;
}
-int SurfaceImpl::ExternalLeading(Font &font) {
+XYPOSITION SurfaceImpl::ExternalLeading(Font &font) {
SetFont(font);
int w, h, d, e;
hdc->GetTextExtent(EXTENT_TEST, &w, &h, &d, &e);
return e;
}
-int SurfaceImpl::Height(Font &font) {
+XYPOSITION SurfaceImpl::Height(Font &font) {
SetFont(font);
return hdc->GetCharHeight() + 1;
}
-int SurfaceImpl::AverageCharWidth(Font &font) {
+XYPOSITION SurfaceImpl::AverageCharWidth(Font &font) {
SetFont(font);
return hdc->GetCharWidth();
}
-int SurfaceImpl::SetPalette(Palette *WXUNUSED(pal), bool WXUNUSED(inBackGround)) {
- return 0;
-}
-
void SurfaceImpl::SetClip(PRectangle rc) {
hdc->SetClippingRegion(wxRectFromPRectangle(rc));
}
}
-Surface *Surface::Allocate() {
+Surface *Surface::Allocate(int WXUNUSED(technology)) {
return new SurfaceImpl;
}
public:
ListBoxImpl();
~ListBoxImpl();
+ static ListBox *Allocate();
virtual void SetFont(Font &font);
- virtual void Create(Window &parent, int ctrlID, Point location_, int lineHeight_, bool unicodeMode_);
+ virtual void Create(Window &parent, int ctrlID, Point location_, int lineHeight_, bool unicodeMode_, int technology_);
virtual void SetAverageCharWidth(int width);
virtual void SetVisibleRows(int rows);
virtual int GetVisibleRows() const;
virtual int Find(const char *prefix);
virtual void GetValue(int n, char *value, int len);
virtual void RegisterImage(int type, const char *xpm_data);
+ void RegisterImageHelper(int type, wxBitmap& bmp);
+ virtual void RegisterRGBAImage(int type, int width, int height, const unsigned char *pixelsImage);
virtual void ClearRegisteredImages();
virtual void SetDoubleClickAction(CallBackAction, void *);
virtual void SetList(const char* list, char separator, char typesep);
}
-void ListBoxImpl::Create(Window &parent, int ctrlID, Point location_, int lineHeight_, bool unicodeMode_) {
+void ListBoxImpl::Create(Window &parent, int ctrlID, Point location_, int lineHeight_, bool unicodeMode_, int WXUNUSED(technology_)) {
location = location_;
lineHeight = lineHeight_;
unicodeMode = unicodeMode_;
value[len-1] = '\0';
}
-
-void ListBoxImpl::RegisterImage(int type, const char *xpm_data) {
- wxMemoryInputStream stream(xpm_data, strlen(xpm_data)+1);
- wxImage img(stream, wxBITMAP_TYPE_XPM);
- wxBitmap bmp(img);
-
+void ListBoxImpl::RegisterImageHelper(int type, wxBitmap& bmp)
+{
if (! imgList) {
// assumes all images are the same size
imgList = new wxImageList(bmp.GetWidth(), bmp.GetHeight(), true);
itm[type] = idx;
}
+void ListBoxImpl::RegisterImage(int type, const char *xpm_data) {
+ wxMemoryInputStream stream(xpm_data, strlen(xpm_data)+1);
+ wxImage img(stream, wxBITMAP_TYPE_XPM);
+ wxBitmap bmp(img);
+ RegisterImageHelper(type, bmp);
+}
+
+
+void ListBoxImpl::RegisterRGBAImage(int type, int width, int height,
+ const unsigned char *pixelsImage)
+{
+ wxBitmap bmp = BitmapFromRGBAImage(width, height, pixelsImage);
+ RegisterImageHelper(type, bmp);
+}
+
+
void ListBoxImpl::ClearRegisteredImages() {
wxDELETE(imgList);
wxDELETE(imgTypeMap);
wxRect wxRectFromPRectangle(PRectangle prc);
PRectangle PRectangleFromwxRect(wxRect rc);
-wxColour wxColourFromCA(const ColourAllocated& ca);
+wxColour wxColourFromCD(const ColourDesired& ca);
void OnPaint(wxPaintEvent& WXUNUSED(evt))
{
wxAutoBufferedPaintDC dc(this);
- Surface* surfaceWindow = Surface::Allocate();
+ Surface* surfaceWindow = Surface::Allocate(0);
surfaceWindow->Init(&dc, m_ct->wDraw.GetID());
m_ct->PaintCT(surfaceWindow);
surfaceWindow->Release();
sptr_t ScintillaWX::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
switch (iMessage) {
+#if 0 // TODO: check this
+
case SCI_CALLTIPSHOW: {
// NOTE: This is copied here from scintilla/src/ScintillaBase.cxx
// because of the little tweak that needs done below for wxGTK.
ct.wCallTip.Show();
break;
}
+#endif
#ifdef SCI_LEXER
case SCI_LOADLEXERLIBRARY:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <vector>
+#include <map>
+// These are all Scintilla headers
#include "Platform.h"
#include "SplitVector.h"
#include "Partitioning.h"
#include "ScintillaWidget.h"
#ifdef SCI_LEXER
#include "SciLexer.h"
-#include "PropSet.h"
+#include "PropSetSimple.h"
+#include "ILexer.h"
+#include "LexerModule.h"
+#include "LexAccessor.h"
#include "Accessor.h"
-#include "KeyWords.h"
+#include "WordList.h"
#endif
#include "ContractionState.h"
#include "SVector.h"
0),
+ 'GetWordChars' :
+ (0,
+ 'wxString %s() const;',
+
+ '''wxString %s() const {
+ int msg = %s;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+
+ ('Get the set of characters making up words for when moving or selecting by word.',)),
+
+ 'GetTag' :
+ (0,
+ 'wxString %s(int tagNumber) const;',
+
+ '''wxString %s(int tagNumber) const {
+ int msg = %s;
+ int len = SendMsg(msg, tagNumber, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, tagNumber, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+ 0),
+
+ 'GetWhitespaceChars' :
+ (0,
+ 'wxString %s() const;',
+
+ '''wxString %s() const {
+ int msg = %s;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+ 0),
+
+
+ 'GetPunctuationChars' :
+ (0,
+ 'wxString %s() const;',
+
+ '''wxString %s() const {
+ int msg = %s;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+ 0),
+
+
+ 'PropertyNames' :
+ (0,
+ 'wxString %s() const;',
+
+ '''wxString %s() const {
+ int msg = %s;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+ 0),
+
+
+
+ 'DescribeProperty' :
+ (0,
+ 'wxString %s(const wxString& name) const;',
+
+ '''wxString %s(const wxString& name) const {
+ int msg = %s;
+ int len = SendMsg(msg, (sptr_t)(const char*)wx2stc(name), NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)(const char*)wx2stc(name), (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+ 0),
+
+
+
+ 'DescribeKeyWordSets' :
+ (0,
+ 'wxString %s() const;',
+
+ '''wxString %s() const {
+ int msg = %s;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);''',
+ 0),
+
+
+
'' : ('', 0, 0, 0),
}
All other code needed to implement Scintilla on top of wxWidgets is
located in the directory above this one.
-The current version of the Scintilla code is 2.03
+The current version of the Scintilla code is 3.21
These are the basic steps needed to update the version of Scintilla used by wxSTC.
-1. Copy include and src folders to src/stc/scintilla
+1. Copy include, lexers, lexlib and src folders to src/stc/scintilla
2. Examine diffs between the new src/stc/scintilla/Scintilla.iface
file and the version in SVN. You should get familiar especially with
SendMsg(2004, 0, 0);
}
+// Delete a range of text in the document.
+void wxStyledTextCtrl::DeleteRange(int pos, int deleteLength)
+{
+ SendMsg(2645, pos, deleteLength);
+}
+
// Set all style bytes to 0, remove all folding information.
void wxStyledTextCtrl::ClearDocumentStyle()
{
SendMsg(2042, markerNumber, wxColourAsLong(back));
}
+// Set the background colour used for a particular marker number when its folding block is selected.
+void wxStyledTextCtrl::MarkerSetBackSelected(int markerNumber, const wxColour& back)
+{
+ SendMsg(2292, markerNumber, wxColourAsLong(back));
+}
+
+// Enable/disable highlight for current folding bloc (smallest one that contains the caret)
+void wxStyledTextCtrl::MarkerEnableHighlight(bool enabled)
+{
+ SendMsg(2293, enabled, 0);
+}
+
// Add a marker to a line, returning an ID which can be used to find or delete the marker.
int wxStyledTextCtrl::MarkerAdd(int line, int markerNumber)
{
return SendMsg(2046, line, 0);
}
-// Find the next line after lineStart that includes a marker in mask.
+// Find the next line at or after lineStart that includes a marker in mask.
+// Return -1 when no more lines.
int wxStyledTextCtrl::MarkerNext(int lineStart, int markerMask)
{
return SendMsg(2047, lineStart, markerMask);
return SendMsg(2247, margin, 0) != 0;
}
+// Set the cursor shown when the mouse is inside a margin.
+void wxStyledTextCtrl::SetMarginCursorN(int margin, int cursor)
+{
+ SendMsg(2248, margin, cursor);
+}
+
+// Retrieve the cursor shown in a margin.
+int wxStyledTextCtrl::GetMarginCursorN(int margin) const
+{
+ return SendMsg(2249, margin, 0);
+}
+
// Clear all the styles and make equivalent to the global default style.
void wxStyledTextCtrl::StyleClearAll()
{
SendMsg(2060, style, caseForce);
}
+// Set the size of characters of a style. Size is in points multiplied by 100.
+void wxStyledTextCtrl::StyleSetSizeFractional(int style, int caseForce)
+{
+ SendMsg(2061, style, caseForce);
+}
+
+// Get the size of characters of a style in points multiplied by 100
+int wxStyledTextCtrl::StyleGetSizeFractional(int style) const
+{
+ return SendMsg(2062, style, 0);
+}
+
+// Set the weight of characters of a style.
+void wxStyledTextCtrl::StyleSetWeight(int style, int weight)
+{
+ SendMsg(2063, style, weight);
+}
+
+// Get the weight of characters of a style.
+int wxStyledTextCtrl::StyleGetWeight(int style) const
+{
+ return SendMsg(2064, style, 0);
+}
+
// Set a style to be a hotspot or not.
void wxStyledTextCtrl::StyleSetHotSpot(int style, bool hotspot)
{
SendMsg(2077, 0, (sptr_t)(const char*)wx2stc(characters));
}
+// Get the set of characters making up words for when moving or selecting by word.
+wxString wxStyledTextCtrl::GetWordChars() const {
+ int msg = 2646;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
// Start a sequence of actions that is undone and redone as a unit.
// May be nested.
void wxStyledTextCtrl::BeginUndoAction()
return SendMsg(2129, pos, 0);
}
+// Count characters between two positions.
+int wxStyledTextCtrl::CountCharacters(int startPos, int endPos)
+{
+ return SendMsg(2633, startPos, endPos);
+}
+
// Show or hide the horizontal scroll bar.
void wxStyledTextCtrl::SetUseHorizontalScrollBar(bool show)
{
return SendMsg(2145, 0, 0);
}
+// Set caret to a position, while removing any existing selection.
+void wxStyledTextCtrl::SetEmptySelection(int pos)
+{
+ SendMsg(2556, pos, 0);
+}
+
// Sets the print magnification added to the point size of each style for printing.
void wxStyledTextCtrl::SetPrintMagnification(int magnification)
{
SendMsg(2212, tabSize, 0);
}
+// Set position of calltip, above or below text.
+void wxStyledTextCtrl::CallTipSetPosition(bool above)
+{
+ SendMsg(2213, above, 0);
+}
+
// Find the display line of a document line taking hidden lines into account.
int wxStyledTextCtrl::VisibleFromDocLine(int line)
{
return SendMsg(2228, line, 0) != 0;
}
+// Are all lines visible?
+bool wxStyledTextCtrl::GetAllLinesVisible() const
+{
+ return SendMsg(2236, 0, 0) != 0;
+}
+
// Show the children of a header line.
void wxStyledTextCtrl::SetFoldExpanded(int line, bool expanded)
{
SendMsg(2613, lineDisplay, 0);
}
+// Change the effect of pasting when there are multiple selections.
+void wxStyledTextCtrl::SetMultiPaste(int multiPaste)
+{
+ SendMsg(2614, multiPaste, 0);
+}
+
+// Retrieve the effect of pasting when there are multiple selections..
+int wxStyledTextCtrl::GetMultiPaste() const
+{
+ return SendMsg(2615, 0, 0);
+}
+
+// Retrieve the value of a tag from a regular expression search.
+wxString wxStyledTextCtrl::GetTag(int tagNumber) const {
+ int msg = 2616;
+ int len = SendMsg(msg, tagNumber, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, tagNumber, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
// Make the target range start and end be the same as the selection range start and end.
void wxStyledTextCtrl::TargetFromSelection()
{
SendMsg(2351, pos1, pos2);
}
+// Use specified indicator to highlight matching braces instead of changing their style.
+void wxStyledTextCtrl::BraceHighlightIndicator(bool useBraceHighlightIndicator, int indicator)
+{
+ SendMsg(2498, useBraceHighlightIndicator, indicator);
+}
+
// Highlight the character at a position indicating there is no matching brace.
void wxStyledTextCtrl::BraceBadLight(int pos)
{
SendMsg(2352, pos, 0);
}
+// Use specified indicator to highlight non matching brace instead of changing its style.
+void wxStyledTextCtrl::BraceBadLightIndicator(bool useBraceBadLightIndicator, int indicator)
+{
+ SendMsg(2499, useBraceBadLightIndicator, indicator);
+}
+
// Find the position of a matching brace or INVALID_POSITION if no match.
int wxStyledTextCtrl::BraceMatch(int pos)
{
SendMsg(2396, 0, 0);
}
-// Get and Set the xOffset (ie, horizonal scroll position).
+// Get and Set the xOffset (ie, horizontal scroll position).
void wxStyledTextCtrl::SetXOffset(int newOffset)
{
SendMsg(2397, newOffset, 0);
SendMsg(2399, 0, 0);
}
-// Set the way the caret is kept visible when going sideway.
+// Set the way the caret is kept visible when going sideways.
// The exclusion zone is given in pixels.
void wxStyledTextCtrl::SetXCaretPolicy(int caretPolicy, int caretSlop)
{
SendMsg(2443, 0, (sptr_t)(const char*)wx2stc(characters));
}
+// Get the set of characters making up whitespace for when moving or selecting by word.
+wxString wxStyledTextCtrl::GetWhitespaceChars() const {
+ int msg = 2647;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
+// Set the set of characters making up punctuation characters
+// Should be called after SetWordChars.
+void wxStyledTextCtrl::SetPunctuationChars(const wxString& characters)
+{
+ SendMsg(2648, 0, (sptr_t)(const char*)wx2stc(characters));
+}
+
+// Get the set of characters making up punctuation characters
+wxString wxStyledTextCtrl::GetPunctuationChars() const {
+ int msg = 2649;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
// Reset the set of characters for whitespace and word characters to the defaults.
void wxStyledTextCtrl::SetCharsDefault()
{
}
// Get currently selected item position in the auto-completion list
-int wxStyledTextCtrl::AutoCompGetCurrent()
+int wxStyledTextCtrl::AutoCompGetCurrent() const
{
return SendMsg(2445, 0, 0);
}
+// Set auto-completion case insensitive behaviour to either prefer case-sensitive matches or have no preference.
+void wxStyledTextCtrl::AutoCSetCaseInsensitiveBehaviour(int behaviour)
+{
+ SendMsg(2634, behaviour, 0);
+}
+
+// Get auto-completion case insensitive behaviour.
+int wxStyledTextCtrl::AutoCGetCaseInsensitiveBehaviour() const
+{
+ return SendMsg(2635, 0, 0);
+}
+
// Enlarge the document to a particular size of text bytes.
void wxStyledTextCtrl::Allocate(int bytes)
{
}
// Can the caret preferred x position only be changed by explicit movement commands?
-bool wxStyledTextCtrl::GetCaretSticky() const
+int wxStyledTextCtrl::GetCaretSticky() const
{
- return SendMsg(2457, 0, 0) != 0;
+ return SendMsg(2457, 0, 0);
}
// Stop the caret preferred x position changing when the user types.
-void wxStyledTextCtrl::SetCaretSticky(bool useCaretStickyBehaviour)
+void wxStyledTextCtrl::SetCaretSticky(int useCaretStickyBehaviour)
{
SendMsg(2458, useCaretStickyBehaviour, 0);
}
SendMsg(2502, value, 0);
}
-// Get the current indicator vaue
+// Get the current indicator value
int wxStyledTextCtrl::GetIndicatorValue() const
{
return SendMsg(2503, 0, 0);
return (const char*)SendMsg(2520, 0, 0);
}
+// Return a read-only pointer to a range of characters in the document.
+// May move the gap so that the range is contiguous, but will only move up
+// to rangeLength bytes.
+int wxStyledTextCtrl::GetRangePointer(int position, int rangeLength) const
+{
+ return SendMsg(2643, position, rangeLength);
+}
+
+// Return a position which, to avoid performance costs, should not be within
+// the range of a call to GetRangePointer.
+int wxStyledTextCtrl::GetGapPosition() const
+{
+ return SendMsg(2644, 0, 0);
+}
+
// Always interpret keyboard input as Unicode
void wxStyledTextCtrl::SetKeysUnicode(bool keysUnicode)
{
return SendMsg(2524, indicator, 0);
}
+// Set the alpha outline colour of the given indicator.
+void wxStyledTextCtrl::IndicSetOutlineAlpha(int indicator, int alpha)
+{
+ SendMsg(2558, indicator, alpha);
+}
+
+// Get the alpha outline colour of the given indicator.
+int wxStyledTextCtrl::IndicGetOutlineAlpha(int indicator) const
+{
+ return SendMsg(2559, indicator, 0);
+}
+
// Set extra ascent for each line
void wxStyledTextCtrl::SetExtraAscent(int extraAscent)
{
return SendMsg(2538, 0, 0);
}
+// Set the margin options.
+void wxStyledTextCtrl::SetMarginOptions(int marginOptions)
+{
+ SendMsg(2539, marginOptions, 0);
+}
+
+// Get the margin options.
+int wxStyledTextCtrl::GetMarginOptions() const
+{
+ return SendMsg(2557, 0, 0);
+}
+
// Set the annotation text for a line
void wxStyledTextCtrl::AnnotationSetText(int line, const wxString& text)
{
SendMsg(2607, 0, 0);
}
+// Indicate that the internal state of a lexer has changed over a range and therefore
+// there may be a need to redraw.
+int wxStyledTextCtrl::ChangeLexerState(int start, int end)
+{
+ return SendMsg(2617, start, end);
+}
+
+// Find the next line at or after lineStart that is a contracted fold header line.
+// Return -1 when no more lines.
+int wxStyledTextCtrl::ContractedFoldNext(int lineStart)
+{
+ return SendMsg(2618, lineStart, 0);
+}
+
+// Centre current line in window.
+void wxStyledTextCtrl::VerticalCentreCaret()
+{
+ SendMsg(2619, 0, 0);
+}
+
+// Move the selected lines up one line, shifting the line above after the selection
+void wxStyledTextCtrl::MoveSelectedLinesUp()
+{
+ SendMsg(2620, 0, 0);
+}
+
+// Move the selected lines down one line, shifting the line below before the selection
+void wxStyledTextCtrl::MoveSelectedLinesDown()
+{
+ SendMsg(2621, 0, 0);
+}
+
+// Set the identifier reported as idFrom in notification messages.
+void wxStyledTextCtrl::SetIdentifier(int identifier)
+{
+ SendMsg(2622, identifier, 0);
+}
+
+// Get the identifier.
+int wxStyledTextCtrl::GetIdentifier() const
+{
+ return SendMsg(2623, 0, 0);
+}
+
+// Set the width for future RGBA image data.
+void wxStyledTextCtrl::RGBAImageSetWidth(int width)
+{
+ SendMsg(2624, width, 0);
+}
+
+// Set the height for future RGBA image data.
+void wxStyledTextCtrl::RGBAImageSetHeight(int height)
+{
+ SendMsg(2625, height, 0);
+}
+
+// Define a marker from RGBA data.
+// It has the width and height from RGBAImageSetWidth/Height
+void wxStyledTextCtrl::MarkerDefineRGBAImage(int markerNumber, const wxString& pixels)
+{
+ SendMsg(2626, markerNumber, (sptr_t)(const char*)wx2stc(pixels));
+}
+
+// Register an RGBA image for use in autocompletion lists.
+// It has the width and height from RGBAImageSetWidth/Height
+void wxStyledTextCtrl::RegisterRGBAImage(int type, const wxString& pixels)
+{
+ SendMsg(2627, type, (sptr_t)(const char*)wx2stc(pixels));
+}
+
+// Scroll to start of document.
+void wxStyledTextCtrl::ScrollToStart()
+{
+ SendMsg(2628, 0, 0);
+}
+
+// Scroll to end of document.
+void wxStyledTextCtrl::ScrollToEnd()
+{
+ SendMsg(2629, 0, 0);
+}
+
+// Set the technology used.
+void wxStyledTextCtrl::SetTechnology(int technology)
+{
+ SendMsg(2630, technology, 0);
+}
+
+// Get the tech.
+int wxStyledTextCtrl::GetTechnology() const
+{
+ return SendMsg(2631, 0, 0);
+}
+
+// Create an ILoader*.
+int wxStyledTextCtrl::CreateLoader(int bytes)
+{
+ return SendMsg(2632, bytes, 0);
+}
+
+// On OS X, show a find indicator.
+void wxStyledTextCtrl::FindIndicatorShow(int start, int end)
+{
+ SendMsg(2640, start, end);
+}
+
+// On OS X, flash a find indicator, then fade out.
+void wxStyledTextCtrl::FindIndicatorFlash(int start, int end)
+{
+ SendMsg(2641, start, end);
+}
+
+// On OS X, hide the find indicator.
+void wxStyledTextCtrl::FindIndicatorHide()
+{
+ SendMsg(2642, 0, 0);
+}
+
// Start notifying the container of all key presses and commands.
void wxStyledTextCtrl::StartRecord()
{
return SendMsg(4011, 0, 0);
}
+// For private communication between an application and a known lexer.
+int wxStyledTextCtrl::PrivateLexerCall(int operation, int pointer)
+{
+ return SendMsg(4013, operation, pointer);
+}
+
+// Retrieve a '\n' separated list of properties understood by the current lexer.
+wxString wxStyledTextCtrl::PropertyNames() const {
+ int msg = 4014;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
+// Retrieve the type of a property.
+int wxStyledTextCtrl::PropertyType(const wxString& name)
+{
+ return SendMsg(4015, (sptr_t)(const char*)wx2stc(name), 0);
+}
+
+// Describe a property.
+wxString wxStyledTextCtrl::DescribeProperty(const wxString& name) const {
+ int msg = 4016;
+ int len = SendMsg(msg, (sptr_t)(const char*)wx2stc(name), NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)(const char*)wx2stc(name), (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
+// Retrieve a '\n' separated list of descriptions of the keyword sets understood by the current lexer.
+wxString wxStyledTextCtrl::DescribeKeyWordSets() const {
+ int msg = 4017;
+ int len = SendMsg(msg, NULL);
+ if (!len) return wxEmptyString;
+
+ wxMemoryBuffer mbuf(len+1);
+ char* buf = (char*)mbuf.GetWriteBuf(len+1);
+ SendMsg(msg, (sptr_t)buf);
+ mbuf.UngetWriteBuf(len);
+ mbuf.AppendByte(0);
+ return stc2wx(buf);
+}
+
//}}}
//----------------------------------------------------------------------