]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/scintilla/include/Scintilla.iface
Make easier to compile with MSVC5.
[wxWidgets.git] / src / stc / scintilla / include / Scintilla.iface
index 5187070c5600a3b86bfc0f7c3ce04d77a0654749..90360076fa5f48bd032cd19ed705ef3b50ca48b2 100644 (file)
@@ -3,16 +3,17 @@
 ## This file defines the interface to Scintilla
 
 ## A line starting with ## is a pure comment and should be stripped by readers.
-## A line starting with #!! is for future shbang use
-## A line starting with # followed by a space is a documentation comment and refers 
+## A line starting with #! is for future shbang use
+## A line starting with # followed by a space is a documentation comment and refers
 ## to the next feature definition.
 
-## Each feature is defined by a line starting with fun, get, set or val.
+## Each feature is defined by a line starting with fun, get, set, val or evt.
 ##     cat -> start a category
 ##     fun -> a function
 ##     get -> a property get function
-##     get -> a property set function
+##     set -> a property set function
 ##     val -> definition of a constant
+##     evt -> an event
 ## All other feature names should be ignored. They may be defined in the future.
 ## A property may have a set function, a get function or both. Each will have
 ## "Get" or "Set" in their names and the corresponding name will have the obvious switch.
@@ -21,6 +22,7 @@
 ## <featureType><ws><returnType><ws><name>[=<number](<param>,<param>)
 ## param is <paramType><ws><paramName>[=<value>]
 ## Additional white space is allowed between elements.
+## The syntax for evt is <featureType><ws><returnType><ws><name>[=<number]([<param>[,<param>]*])
 ## Feature names that contain an underscore are defined by Windows, so in these
 ## cases, using the Windows definition is preferred where available.
 
 ##     string -> pointer to const character
 ##     stringresult -> pointer to character
 ##     cells -> pointer to array of cells, each cell containing a style byte and character byte
-##     textrange -> complex structure
+##     charrange -> range of a min and a max position
+##     charrangeresult -> like charrange, but output param
+##     textrange -> charrange + output string
 ##     findtext -> searchrange, text -> foundposition
+##     findtextex -> searchrange
 ##     keymod -> integer containing key in low half and modifiers in high half
 ##     countedstring
 ##     formatrange
 ##     point -> x,y
-## Client code should ignore definitions containing types it does not understand, except 
+##     pointresult  -> like point, but output param
+##     rectangle -> left,top,right,bottom
+## Client code should ignore definitions containing types it does not understand, except
 ## for possibly #defining the constants
 
-cat Basics 
+cat Basics
 
 ################################################
-## From Scintilla.h
+## For Scintilla.h
 val INVALID_POSITION=-1
+# Define start of Scintilla messages to be greater than all edit (EM_*) messages
+# as many EM_ messages can be used although that use is deprecated.
 val SCI_START=2000
 val SCI_OPTIONAL_START=3000
 val SCI_LEXER_START=4000
@@ -63,6 +72,9 @@ fun void InsertText=2003(position pos, string text)
 # Delete all text in the document
 fun void ClearAll=2004(,)
 
+# Set all style bytes to 0, remove all folding information
+fun void ClearDocumentStyle=2005(,)
+
 # The number of characters in the document
 get int GetLength=2006(,)
 
@@ -81,17 +93,14 @@ get int GetStyleAt=2010(position pos,)
 # Redoes the next action on the undo history
 fun void Redo=2011(,)
 
-val SC_UNDOCOLLECT_NONE=0
-val SC_UNDOCOLLECT_AUTOSTART=1
-
-# Choose between collecting actions into the undo 
+# Choose between collecting actions into the undo
 # history and discarding them.
-set void SetUndoCollection=2012(int collectUndo,)
+set void SetUndoCollection=2012(bool collectUndo,)
 
 # Select all the text in the document.
 fun void SelectAll=2013(,)
 
-# Remember the current position in the undo history as the position 
+# Remember the current position in the undo history as the position
 # at which the document was saved.
 fun void SetSavePoint=2014(,)
 
@@ -108,11 +117,26 @@ fun int MarkerLineFromHandle=2017(int handle,)
 # Delete a marker.
 fun void MarkerDeleteHandle=2018(int handle,)
 
+# Is undo history being collected?
+get bool GetUndoCollection=2019(,)
+
+val SCWS_INVISIBLE=0
+val SCWS_VISIBLEALWAYS=1
+val SCWS_VISIBLEAFTERINDENT=2
+
 # Are white space characters currently visible?
-get bool GetViewWS=2020(,)
+# Returns one of SCWS_* constants.
+get int GetViewWS=2020(,)
+
+# Make white space characters invisible, always visible or visible outside indentation.
+set void SetViewWS=2021(int viewWS,)
 
-# Make white space characters visible or invisible.
-set void SetViewWS=2021(bool viewWS,)
+# Find the position from a point within the window.
+fun int PositionFromPoint=2022(int x, int y)
+
+# Find the position from a point within the window but return
+# INVALID_POSITION if not close to text.
+fun int PositionFromPointClose=2023(int x, int y)
 
 # Set caret to start of a line and ensure it is visible.
 fun void GotoLine=2024(int line,)
@@ -131,13 +155,13 @@ fun int GetCurLine=2027(int length, stringresult text)
 # Retrieve the position of the last correctly styled character.
 get position GetEndStyled=2028(,)
 
-# Convert all line endings in the document to use the current mode.
-fun void ConvertEOLs=2029(,)
-
 val SC_EOL_CRLF=0
 val SC_EOL_CR=1
 val SC_EOL_LF=2
 
+# Convert all line endings in the document to one mode.
+fun void ConvertEOLs=2029(int eolMode,)
+
 # Retrieve the current end of line mode - one of CRLF, CR, or LF.
 get int GetEOLMode=2030(,)
 
@@ -145,7 +169,7 @@ get int GetEOLMode=2030(,)
 set void SetEOLMode=2031(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 
+# The styling mask can be used to protect some bits in each styling byte from
 # modification.
 fun void StartStyling=2032(position pos, int mask)
 
@@ -153,17 +177,22 @@ fun void StartStyling=2032(position pos, int mask)
 # and move the current styling position to after this newly styled segment.
 fun void SetStyling=2033(int length, int style)
 
+# Is drawing done first into a buffer or direct to the screen.
+get bool GetBufferedDraw=2034(,)
+
 # If drawing is buffered then each line of text is drawn into a bitmap buffer
 # before drawing it to the screen to avoid flicker.
 set void SetBufferedDraw=2035(bool buffered,)
 
-# Change the visible size of a tab to be a multiple of the width of a space 
+# Change the visible size of a tab to be a multiple of the width of a space
 # character.
 set void SetTabWidth=2036(int tabWidth,)
 
-# Retrieve the visible size of a tab. 
+# Retrieve the visible size of a tab.
 get int GetTabWidth=2121(,)
 
+# The SC_CP_UTF8 value can be used to enter Unicode mode.
+# This is the same value as CP_UTF8 in Windows
 val SC_CP_UTF8=65001
 
 # Set the code page used to interpret the bytes of the document as characters.
@@ -185,9 +214,29 @@ val SC_MARK_ARROWDOWN=6
 val SC_MARK_MINUS=7
 val SC_MARK_PLUS=8
 
+# Shapes used for outlining column
+val SC_MARK_VLINE=9
+val SC_MARK_LCORNER=10
+val SC_MARK_TCORNER=11
+val SC_MARK_BOXPLUS=12
+val SC_MARK_BOXPLUSCONNECTED=13
+val SC_MARK_BOXMINUS=14
+val SC_MARK_BOXMINUSCONNECTED=15
+val SC_MARK_LCORNERCURVE=16
+val SC_MARK_TCORNERCURVE=17
+val SC_MARK_CIRCLEPLUS=18
+val SC_MARK_CIRCLEPLUSCONNECTED=19
+val SC_MARK_CIRCLEMINUS=20
+val SC_MARK_CIRCLEMINUSCONNECTED=21
+
+# Markers used for outlining column
+val SC_MARKNUM_FOLDEREND=25
+val SC_MARKNUM_FOLDEROPENMID=26
+val SC_MARKNUM_FOLDERMIDTAIL=27
+val SC_MARKNUM_FOLDERTAIL=28
+val SC_MARKNUM_FOLDERSUB=29
 val SC_MARKNUM_FOLDER=30
 val SC_MARKNUM_FOLDEROPEN=31
-##val SC_MASK_FOLDERS=1<<SC_MARKNUM_FOLDER | 1<<SC_MARKNUM_FOLDEROPEN 
 
 # Set the symbol used for a particular marker number.
 fun void MarkerDefine=2040(int markerNumber, int markerSymbol)
@@ -248,8 +297,31 @@ val STYLE_LINENUMBER=33
 val STYLE_BRACELIGHT=34
 val STYLE_BRACEBAD=35
 val STYLE_CONTROLCHAR=36
+val STYLE_INDENTGUIDE=37
 val STYLE_MAX=127
 
+# Character set identifiers are used in StyleSetCharacterSet.
+# The values are the same as the Windows *_CHARSET values.
+val SC_CHARSET_ANSI=0
+val SC_CHARSET_DEFAULT=1
+val SC_CHARSET_BALTIC=186
+val SC_CHARSET_CHINESEBIG5=136
+val SC_CHARSET_EASTEUROPE=238
+val SC_CHARSET_GB2312=134
+val SC_CHARSET_GREEK=161
+val SC_CHARSET_HANGUL=129
+val SC_CHARSET_MAC=77
+val SC_CHARSET_OEM=255
+val SC_CHARSET_RUSSIAN=204
+val SC_CHARSET_SHIFTJIS=128
+val SC_CHARSET_SYMBOL=2
+val SC_CHARSET_TURKISH=162
+val SC_CHARSET_JOHAB=130
+val SC_CHARSET_HEBREW=177
+val SC_CHARSET_ARABIC=178
+val SC_CHARSET_VIETNAMESE=163
+val SC_CHARSET_THAI=222
+
 # Clear all the styles and make equivalent to the global default style.
 set void StyleClearAll=2050(,)
 
@@ -280,6 +352,12 @@ fun void StyleResetDefault=2058(,)
 # Set a style to be underlined or not.
 set void StyleSetUnderline=2059(int style, bool underline)
 
+val SC_CASE_MIXED=0
+val SC_CASE_UPPER=1
+val SC_CASE_LOWER=2
+# Set a style to be mixed case, or to force upper or lower case.
+set void StyleSetCase=2060(int style, int caseForce)
+
 # Set the character set of the font in a style.
 set void StyleSetCharacterSet=2066(int style, int characterSet)
 
@@ -290,7 +368,7 @@ fun void SetSelFore=2067(bool useSetting, colour fore)
 fun void SetSelBack=2068(bool useSetting, colour back)
 
 # Set the foreground colour of the caret.
-fun void SetCaretFore=2069(colour fore,)
+set void SetCaretFore=2069(colour fore,)
 
 # When key+modifier combination km is pressed perform msg.
 fun void AssignCmdKey=2070(keymod km, int msg)
@@ -304,13 +382,16 @@ fun void ClearAllCmdKeys=2072(,)
 # Set the styles for a segment of the document.
 fun void SetStylingEx=2073(int length, string styles)
 
-# Get the time in milliseconds that the caret is on and off. 
+# Set a style to be visible or not.
+set void StyleSetVisible=2074(int style, bool visible)
+
+# Get the time in milliseconds that the caret is on and off.
 get int GetCaretPeriod=2075(,)
 
 # Get the time in milliseconds that the caret is on and off. 0 = steady on.
 set void SetCaretPeriod=2076(int periodMilliseconds,)
 
-# Set the set of characters making up words for when moving or selecting 
+# Set the set of characters making up words for when moving or selecting
 # by word.
 set void SetWordChars=2077(, string characters)
 
@@ -330,7 +411,8 @@ val INDIC_STRIKE=4
 val INDIC0_MASK=32
 val INDIC1_MASK=64
 val INDIC2_MASK=128
-val INDICS_MASK=INDIC0_MASK | INDIC1_MASK | INDIC2_MASK 
+val INDICS_MASK=224
+##INDIC0_MASK | INDIC1_MASK | INDIC2_MASK
 
 # Set an indicator to plain, squiggle or TT.
 set void IndicSetStyle=2080(int indic, int style)
@@ -358,9 +440,21 @@ set void SetLineState=2092(int line, int state)
 # Retrieve the extra styling information for a line.
 get int GetLineState=2093(int line,)
 
-# Retrieve the last line number that has line state. 
+# Retrieve the last line number that has line state.
 get int GetMaxLineState=2094(,)
 
+# Is the background of the line containing the caret in a different colour?
+get bool GetCaretLineVisible=2095(,)
+
+# Display the background of the line containing the caret in a different colour.
+set void SetCaretLineVisible=2096(bool show,)
+
+# Get the colour of the background of the line containing the caret.
+get colour GetCaretLineBack=2097(,)
+
+# Set the colour of the background of the line containing the caret.
+set void SetCaretLineBack=2098(colour back,)
+
 # Display a auto-completion list.
 # The lenEntered parameter indicates how many characters before
 # the caret should be used to provide context.
@@ -372,7 +466,7 @@ fun void AutoCCancel=2101(,)
 # Is there an auto-completion list visible?
 fun bool AutoCActive=2102(,)
 
-# Retrieve the position of the caret when the auto-completion list was 
+# Retrieve the position of the caret when the auto-completion list was
 # displayed.
 fun position AutoCPosStart=2103(,)
 
@@ -382,7 +476,7 @@ fun void AutoCComplete=2104(,)
 # Define a set of character that when typed cancel the auto-completion list.
 fun void AutoCStops=2105(, string characterSet)
 
-# Change the separator character in the string setting up an auto-completion 
+# Change the separator character in the string setting up an auto-completion
 # list. Default is space but can be changed if items contain space.
 set void AutoCSetSeparator=2106(int separatorCharacter,)
 
@@ -392,6 +486,37 @@ get int AutoCGetSeparator=2107(,)
 # Select the item in the auto-completion list that starts with a string.
 fun void AutoCSelect=2108(, string text)
 
+# Should the auto-completion list be cancelled if the user backspaces to a
+# position before where the box was created.
+set void AutoCSetCancelAtStart=2110(bool cancel,)
+
+# Retrieve whether auto-completion cancelled by backspacing before start.
+get bool AutoCGetCancelAtStart=2111(,)
+
+# Define a set of character that when typed fills up the selected word.
+set void AutoCSetFillUps=2112(, string characterSet)
+
+# Should a single item auto-completion list automatically choose the item.
+set void AutoCSetChooseSingle=2113(bool chooseSingle,)
+
+# Retrieve whether a single item auto-completion list automatically choose the item.
+get bool AutoCGetChooseSingle=2114(,)
+
+# Set whether case is significant when performing auto-completion searches.
+set void AutoCSetIgnoreCase=2115(bool ignoreCase,)
+
+# Retrieve state of ignore case flag.
+get bool AutoCGetIgnoreCase=2116(,)
+
+# Display a list of strings and send notification when user chooses one.
+fun void UserListShow=2117(int listType, string itemList)
+
+# Set whether or not autocompletion is hidden automatically when nothing matches
+set void AutoCSetAutoHide=2118(bool autoHide,)
+
+# Retrieve whether or not autocompletion is hidden automatically when nothing matches
+get bool AutoCGetAutoHide=2119(,)
+
 # Set the number of spaces used for one level of indentation.
 set void SetIndent=2122(int indentSize,)
 
@@ -414,12 +539,247 @@ get int GetLineIndentation=2127(int line,)
 # Retrieve the position before the first non indentation character on a line.
 get position GetLineIndentPosition=2128(int line,)
 
-# Show or hide the horizontal scroll bar
+# Retrieve the column number of a position, taking tab width into account.
+get int GetColumn=2129(position pos,)
+
+# Show or hide the horizontal scroll bar.
 set void SetHScrollBar=2130(bool show,)
 
-# Is the horizontal scroll bar visible.
+# Is the horizontal scroll bar visible?
 get bool GetHScrollBar=2131(,)
 
+# Show or hide indentation guides.
+set void SetIndentationGuides=2132(bool show,)
+
+# Are the indentation guides visible?
+get bool GetIndentationGuides=2133(,)
+
+# Set the highlighted indentation guide column.
+# 0 = no highlighted guide.
+set void SetHighlightGuide=2134(int column,)
+
+# Get the highlighted indentation guide column.
+get int GetHighlightGuide=2135(,)
+
+# Get the position after the last visible characters on a line.
+get int GetLineEndPosition=2136(int line,)
+
+# Get the code page used to interpret the bytes of the document as characters.
+get int GetCodePage=2137(,)
+
+# Get the foreground colour of the caret.
+get colour GetCaretFore=2138(,)
+
+# In palette mode?
+get bool GetUsePalette=2139(,)
+
+# In read-only mode?
+get bool GetReadOnly=2140(,)
+
+# Sets the position of the caret.
+set void SetCurrentPos=2141(position pos,)
+
+# Sets the position that starts the selection - this becomes the anchor.
+set void SetSelectionStart=2142(position pos,)
+
+# Returns the position at the start of the selection.
+get position GetSelectionStart=2143(,)
+
+# Sets the position that ends the selection - this becomes the currentPosition.
+set void SetSelectionEnd=2144(position pos,)
+
+# Returns the position at the end of the selection.
+get position GetSelectionEnd=2145(,)
+
+# Sets the print magnification added to the point size of each style for printing.
+set void SetPrintMagnification=2146(int magnification,)
+
+# Returns the print magnification.
+get int GetPrintMagnification=2147(,)
+
+# PrintColourMode - use same colours as screen.
+val SC_PRINT_NORMAL=0
+# PrintColourMode - invert the light value of each style for printing.
+val SC_PRINT_INVERTLIGHT=1
+# PrintColourMode - force black text on white background for printing.
+val SC_PRINT_BLACKONWHITE=2
+# PrintColourMode - text stays coloured, but all background is forced to be white for printing.
+val SC_PRINT_COLOURONWHITE=3
+# PrintColourMode - only the default-background is forced to be white for printing.
+val SC_PRINT_COLOURONWHITEDEFAULTBG=4
+
+# Modify colours when printing for clearer printed text.
+set void SetPrintColourMode=2148(int mode,)
+
+# Returns the print colour mode.
+get int GetPrintColourMode=2149(,)
+
+val SCFIND_WHOLEWORD=2
+val SCFIND_MATCHCASE=4
+val SCFIND_WORDSTART=0x00100000
+val SCFIND_REGEXP=0x00200000
+
+# Find some text in the document.
+fun position FindText=2150(int flags, findtext ft)
+
+# On Windows will draw the document into a display context such as a printer.
+fun void FormatRange=2151(bool draw, formatrange fr)
+
+# Retrieve the line at the top of the display.
+get int GetFirstVisibleLine=2152(,)
+
+# Retrieve the contents of a line.
+# Returns the length of the line.
+fun int GetLine=2153(int line, stringresult text)
+
+# Returns the number of lines in the document. There is always at least one.
+get int GetLineCount=2154(,)
+
+# Sets the size in pixels of the left margin.
+set void SetMarginLeft=2155(, int pixelWidth)
+
+# Returns the size in pixels of the left margin.
+get int GetMarginLeft=2156(,)
+
+# Sets the size in pixels of the right margin.
+set void SetMarginRight=2157(, int pixelWidth)
+
+# Returns the size in pixels of the right margin.
+get int GetMarginRight=2158(,)
+
+# Is the document different from when it was last saved?
+get bool GetModify=2159(,)
+
+# Select a range of text.
+fun void SetSel=2160(position start, position end)
+
+# Retrieve the selected text.
+# Return the length of the text.
+fun int GetSelText=2161(,stringresult text)
+
+# Retrieve a range of text.
+# Return the length of the text.
+fun int GetTextRange=2162(, textrange tr)
+
+# Draw the selection in normal style or with selection highlighted.
+fun void HideSelection=2163(bool normal,)
+
+# Retrieve the x value of the point in the window where a position is displayed.
+fun int PointXFromPosition=2164(, position pos)
+
+# Retrieve the y value of the point in the window where a position is displayed.
+fun int PointYFromPosition=2165(, position pos)
+
+# Retrieve the line containing a position.
+fun int LineFromPosition=2166(position pos,)
+
+# Retrieve the position at the start of a line.
+fun int PositionFromLine=2167(int line,)
+
+# Scroll horizontally and vertically.
+fun void LineScroll=2168(int columns, int lines)
+
+# Ensure the caret is visible.
+fun void ScrollCaret=2169(,)
+
+# Replace the selected text with the argument text.
+fun void ReplaceSel=2170(, string text)
+
+# Set to read only or read write.
+set void SetReadOnly=2171(bool readOnly,)
+
+# Null operation.
+fun void Null=2172(,)
+
+# Will a paste succeed?
+fun bool CanPaste=2173(,)
+
+# Are there any undoable actions in the undo history.
+fun bool CanUndo=2174(,)
+
+# Delete the undo history.
+fun void EmptyUndoBuffer=2175(,)
+
+# Undo one action in the undo history.
+fun void Undo=2176(,)
+
+# Cut the selection to the clipboard.
+fun void Cut=2177(,)
+
+# Copy the selection to the clipboard.
+fun void Copy=2178(,)
+
+# Paste the contents of the clipboard into the document replacing the selection.
+fun void Paste=2179(,)
+
+# Clear the selection.
+fun void Clear=2180(,)
+
+# Replace the contents of the document with the argument text.
+fun void SetText=2181(, string text)
+
+# Retrieve all the text in the document.
+# Returns number of characters retrieved.
+fun int GetText=2182(int length, stringresult text)
+
+# Retrieve the number of characters in the document.
+get int GetTextLength=2183(,)
+
+# Retrieve a pointer to a function that processes messages for this Scintilla.
+get int GetDirectFunction=2184(,)
+
+# Retrieve a pointer value to use as the first argument when calling
+# the function returned by GetDirectFunction.
+get int GetDirectPointer=2185(,)
+
+# Set to overtype (true) or insert mode
+set void SetOvertype=2186(bool overtype,)
+
+# Returns true if overtype mode is active otherwise false is returned.
+get bool GetOvertype=2187(,)
+
+# Set the width of the insert mode caret
+set void SetCaretWidth=2188(int pixelWidth,)
+
+# Returns the width of the insert mode caret
+get int GetCaretWidth=2189(,)
+
+# Sets the position that starts the target which is used for updating the
+# document without affecting the scroll position.
+set void SetTargetStart=2190(position pos,)
+
+# Get the position that starts the target.
+get position GetTargetStart=2191(,)
+
+# Sets the position that ends the target which is used for updating the
+# document without affecting the scroll position.
+set void SetTargetEnd=2192(position pos,)
+
+# Get the position that ends the target.
+get position GetTargetEnd=2193(,)
+
+# Replace the target text with the argument text.
+# Returns the length of the replacement text.
+fun int ReplaceTarget=2194(int length, string text)
+
+# Replace the target text with the argument text after \d processing.
+# Looks for \d where d is between 1 and 9 and replaces these with the strings
+# matched in the last search operation which were surrounded by \( and \).
+# Returns the length of the replacement text including any change
+# caused by processing the \d patterns.
+fun int ReplaceTargetRE=2195(int length, string text)
+
+# Search for a counted string in the target and set the target to the found
+# range.
+# Returns length of range or -1 for failure in which case target is not moved.
+fun int SearchInTarget=2197(int length, string text)
+
+# Set the search flags used by SearchInTarget
+set void SetSearchFlags=2198(int flags,)
+
+# Get the search flags used by SearchInTarget
+get int GetSearchFlags=2199(,)
+
 # Show a call tip containing a definition near position pos.
 fun void CallTipShow=2200(position pos, string definition)
 
@@ -458,7 +818,7 @@ set void SetFoldLevel=2222(int line, int level)
 get int GetFoldLevel=2223(int line,)
 
 # Find the last child line of a header line.
-get int GetLastChild=2224(int line,)
+get int GetLastChild=2224(int line, int level)
 
 # Find the parent line of a child line.
 get int GetFoldParent=2225(int line,)
@@ -487,6 +847,31 @@ fun void EnsureVisible=2232(int line,)
 # Set some debugging options for folding
 fun void SetFoldFlags=2233(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.
+fun void EnsureVisibleEnforcePolicy=2234(int line,)
+
+# Sets whether a tab pressed when caret is within indentation indents
+set void SetTabIndents=2260(bool tabIndents,)
+
+# Does a tab pressed when caret is within indentation indent?
+get bool GetTabIndents=2261(,)
+
+# Sets whether a backspace pressed when caret is within indentation unindents
+set void SetBackSpaceUnIndents=2262(bool bsUnIndents,)
+
+# Does a backspace pressed when caret is within indentation unindent?
+get bool GetBackSpaceUnIndents=2263(,)
+
+val SC_TIME_FOREVER=10000000
+
+# Sets the time the mouse must sit still to generate a mouse dwell event
+set void SetMouseDwellTime=2264(int periodMilliseconds,)
+
+# Retrieve the time the mouse must sit still to generate a mouse dwell event
+get int GetMouseDwellTime=2265(,)
+
+## Start of key messages
 # Move caret down one line.
 fun void LineDown=2300(,)
 
@@ -568,7 +953,7 @@ fun void Cancel=2325(,)
 # Delete the selection or if no selection, the character before the caret.
 fun void DeleteBack=2326(,)
 
-# If selection is empty or all on one line replace the selection with a tab 
+# 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.
 fun void Tab=2327(,)
@@ -582,7 +967,7 @@ fun void NewLine=2329(,)
 # Insert a Form Feed character.
 fun void FormFeed=2330(,)
 
-# Move caret to before first visible character on line. 
+# Move caret to before first visible character on line.
 # If already there move to first character on line.
 fun void VCHome=2331(,)
 
@@ -622,6 +1007,9 @@ fun void LineScrollDown=2342(,)
 # Scroll the document up, keeping the caret visible.
 fun void LineScrollUp=2343(,)
 
+# Move the caret inside current view if it's not there already
+fun void MoveCaretInsideView=2401(,)
+
 # How many characters are on a line, not including end of line characters.
 fun int LineLength=2350(int line,)
 
@@ -644,7 +1032,7 @@ set void SetViewEOL=2356(bool visible,)
 get int GetDocPointer=2357(,)
 
 # Change the document object used.
-set void SetDocPointer=2358(int pointer,)
+set void SetDocPointer=2358(,int pointer)
 
 # Set which document modification events are sent to the container.
 set void SetModEventMask=2359(int mask,)
@@ -656,8 +1044,8 @@ val EDGE_BACKGROUND=2
 # Retrieve the column number which text should be kept within.
 get int GetEdgeColumn=2360(,)
 
-# Set the column number of the edge. 
-# If text goes past the edge then it is highlighted. 
+# Set the column number of the edge.
+# If text goes past the edge then it is highlighted.
 set void SetEdgeColumn=2361(int column,)
 
 # Retrieve the edge highlight mode.
@@ -677,14 +1065,28 @@ set void SetEdgeColour=2365(colour edgeColour,)
 fun void SearchAnchor=2366(,)
 
 # Find some text starting at the search anchor.
+# Does not ensure the selection is visible.
 fun int SearchNext=2367(int flags, string text)
 
 # Find some text starting at the search anchor and moving backwards.
+# Does not ensure the selection is visible.
 fun int SearchPrev=2368(int flags, string text)
 
+# 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
 val CARET_SLOP=0x01
+# Value not used
 val CARET_CENTER=0x02
+# If CARET_SLOP also set then reposition whenever outside slop border
+# If CARET_SLOP not set then recentre even when visible
 val CARET_STRICT=0x04
+# If CARET_XEVEN set then both left and right margins are given equal weight
+# rather than favouring left following behaviour.
+val CARET_XEVEN=0x08
+# If CARET_XJUMPS set then when caret reaches the margin the display jumps
+# enough to leave the caret solidly within the display.
+val CARET_XJUMPS=0x10
 # Set the way the line the caret is on is kept visible.
 fun void SetCaretPolicy=2369(int caretPolicy, int caretSlop)
 
@@ -698,18 +1100,68 @@ fun void UsePopUp=2371(bool allowPopUp,)
 # Is the selection a rectangular. The alternative is the more common stream selection.
 get bool SelectionIsRectangle=2372(,)
 
-# Set the zoom level. This number of points is added to the size of all fonts. 
+# Set the zoom level. This number of points is added to the size of all fonts.
 # It may be positive to magnify or negative to reduce.
 set void SetZoom=2373(int zoom,)
 # Retrieve the zoom level.
 get int GetZoom=2374(,)
 
+# Create a new document object.
+# Starts with reference count of 1 and not selected into editor.
+fun int CreateDocument=2375(,)
 # Extend life of document.
-fun void AddRefDoc=2375(, int doc)
+fun void AddRefDocument=2376(, int doc)
 # Release a reference to the document, deleting document if it fades to black.
-fun void ReleaseDoc=2376(, int doc)
+fun void ReleaseDocument=2377(, int doc)
+
+# Get which document modification events are sent to the container.
+get int GetModEventMask=2378(,)
+
+# Change internal focus flag
+set void SetFocus=2380(bool focus,)
+# Get internal focus flag
+get bool GetFocus=2381(,)
+
+# Change error status - 0 = OK
+set void SetStatus=2382(int statusCode,)
+# Get error status
+get int GetStatus=2383(,)
+
+# Set whether the mouse is captured when its button is pressed
+set void SetMouseDownCaptures=2384(bool captures,)
+# Get whether mouse gets captured
+get bool GetMouseDownCaptures=2385(,)
+
+val SC_CURSORNORMAL=-1
+val SC_CURSORWAIT=3
+# Sets the cursor to one of the SC_CURSOR* values
+set void SetCursor=2386(int cursorType,)
+# Get cursor type
+get int GetCursor=2387(,)
+
+# Move to the previous change in capitalistion
+fun void WordPartLeft=2390(,)
+# Move to the previous change in capitalistion extending selection to new caret position.
+fun void WordPartLeftExtend=2391(,)
+# Move to the change next in capitalistion
+fun void WordPartRight=2392(,)
+# Move to the next change in capitalistion extending selection to new caret position.
+fun void WordPartRightExtend=2393(,)
+
+# Constants for use with SetVisiblePolicy, similar to SetCaretPolicy
+val VISIBLE_SLOP=0x01
+val VISIBLE_STRICT=0x04
+# Set the way the display area is determined when a particular line is to be moved to.
+fun void SetVisiblePolicy=2394(int visiblePolicy, int visibleSlop)
+
+# Delete back from the current position to the start of the line
+fun void DelLineLeft=2395(,)
+
+# Delete forwards from the current position to the end of the line
+fun void DelLineRight=2396(,)
 
 # Set the focus to this Scintilla widget.
+# GTK+ Specific
 fun void GrabFocus=2400(,)
 
 # Start notifying the container of all key presses and commands.
@@ -718,10 +1170,10 @@ fun void StartRecord=3001(,)
 # Stop notifying the container of all key presses and commands.
 fun void StopRecord=3002(,)
 
-# Set the lexing language of the document. 
+# Set the lexing language of the document.
 set void SetLexer=4001(int lexer,)
 
-# Retrieve the lexing language of the document. 
+# Retrieve the lexing language of the document.
 get int GetLexer=4002(,)
 
 # Colourise a segment of the document using the current lexing language.
@@ -733,6 +1185,13 @@ set void SetProperty=4004(string key, string value)
 # Set up the key words used by the lexer.
 set void SetKeyWords=4005(int keywordSet, string keyWords)
 
+# Set the lexing language of the document based on string name.
+set void SetLexerLanguage=4006(, string language)
+
+# Notifications
+# 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_*.
 val SC_MOD_INSERTTEXT=0x1
 val SC_MOD_DELETETEXT=0x2
 val SC_MOD_CHANGESTYLE=0x4
@@ -745,22 +1204,41 @@ val SC_MOD_CHANGEMARKER=0x200
 val SC_MOD_BEFOREINSERT=0x400
 val SC_MOD_BEFOREDELETE=0x800
 val SC_MODEVENTMASKALL=0xF77
-val SCN_STYLENEEDED=2000
-val SCN_CHARADDED=2001
-val SCN_SAVEPOINTREACHED=2002
-val SCN_SAVEPOINTLEFT=2003
-val SCN_MODIFYATTEMPTRO=2004
-val SCN_KEY=2005
-val SCN_DOUBLECLICK=2006
-val SCN_UPDATEUI=2007
-val SCN_CHECKBRACE=2007
-val SCN_MODIFIED=2008
-val SCN_MACRORECORD=2009
-val SCN_MARGINCLICK=2010
-val SCN_NEEDSHOWN=2011
+
+# For compatibility, these go through the COMMAND notification rather than NOTIFY
+# and have exactly the same values as the EN_* constants.
+val SCEN_CHANGE=768
+val SCEN_SETFOCUS=512
+val SCEN_KILLFOCUS=256
+
+# Symbolic key codes and modifier flags
+# ASCII and other printable characters below 256
+# Extended keys above 300
+
+val SCK_DOWN=300
+val SCK_UP=301
+val SCK_LEFT=302
+val SCK_RIGHT=303
+val SCK_HOME=304
+val SCK_END=305
+val SCK_PRIOR=306
+val SCK_NEXT=307
+val SCK_DELETE=308
+val SCK_INSERT=309
+val SCK_ESCAPE=7
+val SCK_BACK=8
+val SCK_TAB=9
+val SCK_RETURN=13
+val SCK_ADD=310
+val SCK_SUBTRACT=311
+val SCK_DIVIDE=312
+
+val SCMOD_SHIFT=1
+val SCMOD_CTRL=2
+val SCMOD_ALT=4
 
 ################################################
-# From SciLexer.h
+# For SciLexer.h
 val SCLEX_CONTAINER=0
 val SCLEX_NULL=1
 val SCLEX_PYTHON=2
@@ -776,6 +1254,21 @@ val SCLEX_MAKEFILE=11
 val SCLEX_BATCH=12
 val SCLEX_XCODE=13
 val SCLEX_LATEX=14
+val SCLEX_LUA=15
+val SCLEX_DIFF=16
+val SCLEX_CONF=17
+val SCLEX_PASCAL=18
+val SCLEX_AVE=19
+val SCLEX_ADA=20
+val SCLEX_LISP=21
+val SCLEX_RUBY=22
+val SCLEX_EIFFEL=23
+val SCLEX_EIFFELKW=24
+val SCLEX_TCL=25
+# When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
+# value assigned in sequence from SCLEX_AUTOMATIC+1.
+val SCLEX_AUTOMATIC=1000
+# Lexical states for SCLEX_PYTHON
 val SCE_P_DEFAULT=0
 val SCE_P_COMMENTLINE=1
 val SCE_P_NUMBER=2
@@ -790,6 +1283,7 @@ val SCE_P_OPERATOR=10
 val SCE_P_IDENTIFIER=11
 val SCE_P_COMMENTBLOCK=12
 val SCE_P_STRINGEOL=13
+# Lexical states for SCLEX_CPP, SCLEX_VB
 val SCE_C_DEFAULT=0
 val SCE_C_COMMENT=1
 val SCE_C_COMMENTLINE=2
@@ -803,6 +1297,11 @@ val SCE_C_PREPROCESSOR=9
 val SCE_C_OPERATOR=10
 val SCE_C_IDENTIFIER=11
 val SCE_C_STRINGEOL=12
+val SCE_C_VERBATIM=13
+val SCE_C_REGEX=14
+val SCE_C_COMMENTLINEDOC=15
+val SCE_C_WORD2=16
+# Lexical states for SCLEX_HTML, SCLEX_XML
 val SCE_H_DEFAULT=0
 val SCE_H_TAG=1
 val SCE_H_TAGUNKNOWN=2
@@ -814,12 +1313,22 @@ val SCE_H_SINGLESTRING=7
 val SCE_H_OTHER=8
 val SCE_H_COMMENT=9
 val SCE_H_ENTITY=10
+# XML and ASP
 val SCE_H_TAGEND=11
 val SCE_H_XMLSTART=12
 val SCE_H_XMLEND=13
 val SCE_H_SCRIPT=14
 val SCE_H_ASP=15
 val SCE_H_ASPAT=16
+val SCE_H_CDATA=17
+val SCE_H_QUESTION=18
+# More HTML
+val SCE_H_VALUE=19
+# X-Code
+val SCE_H_XCCOMMENT=20
+# SGML
+val SCE_H_SGML=21
+# Embedded Javascript
 val SCE_HJ_START=40
 val SCE_HJ_DEFAULT=41
 val SCE_HJ_COMMENT=42
@@ -832,6 +1341,8 @@ val SCE_HJ_DOUBLESTRING=48
 val SCE_HJ_SINGLESTRING=49
 val SCE_HJ_SYMBOLS=50
 val SCE_HJ_STRINGEOL=51
+val SCE_HJ_REGEX=52
+# ASP Javascript
 val SCE_HJA_START=55
 val SCE_HJA_DEFAULT=56
 val SCE_HJA_COMMENT=57
@@ -844,6 +1355,8 @@ val SCE_HJA_DOUBLESTRING=63
 val SCE_HJA_SINGLESTRING=64
 val SCE_HJA_SYMBOLS=65
 val SCE_HJA_STRINGEOL=66
+val SCE_HJA_REGEX=67
+# Embedded VBScript
 val SCE_HB_START=70
 val SCE_HB_DEFAULT=71
 val SCE_HB_COMMENTLINE=72
@@ -852,6 +1365,7 @@ val SCE_HB_WORD=74
 val SCE_HB_STRING=75
 val SCE_HB_IDENTIFIER=76
 val SCE_HB_STRINGEOL=77
+# ASP VBScript
 val SCE_HBA_START=80
 val SCE_HBA_DEFAULT=81
 val SCE_HBA_COMMENTLINE=82
@@ -860,6 +1374,7 @@ val SCE_HBA_WORD=84
 val SCE_HBA_STRING=85
 val SCE_HBA_IDENTIFIER=86
 val SCE_HBA_STRINGEOL=87
+# Embedded Python
 val SCE_HP_START=90
 val SCE_HP_DEFAULT=91
 val SCE_HP_COMMENTLINE=92
@@ -873,6 +1388,7 @@ val SCE_HP_CLASSNAME=99
 val SCE_HP_DEFNAME=100
 val SCE_HP_OPERATOR=101
 val SCE_HP_IDENTIFIER=102
+# ASP Python
 val SCE_HPA_START=105
 val SCE_HPA_DEFAULT=106
 val SCE_HPA_COMMENTLINE=107
@@ -886,8 +1402,20 @@ val SCE_HPA_CLASSNAME=114
 val SCE_HPA_DEFNAME=115
 val SCE_HPA_OPERATOR=116
 val SCE_HPA_IDENTIFIER=117
+# PHP
+val SCE_HPHP_DEFAULT=118
+val SCE_HPHP_HSTRING=119
+val SCE_HPHP_SIMPLESTRING=120
+val SCE_HPHP_WORD=121
+val SCE_HPHP_NUMBER=122
+val SCE_HPHP_VARIABLE=123
+val SCE_HPHP_COMMENT=124
+val SCE_HPHP_COMMENTLINE=125
+val SCE_HPHP_HSTRING_VARIABLE=126
+val SCE_HPHP_OPERATOR=127
+# Lexical states for SCLEX_PERL
 val SCE_PL_DEFAULT=0
-val SCE_PL_HERE=1
+val SCE_PL_ERROR=1
 val SCE_PL_COMMENTLINE=2
 val SCE_PL_POD=3
 val SCE_PL_NUMBER=4
@@ -902,21 +1430,158 @@ val SCE_PL_SCALAR=12
 val SCE_PL_ARRAY=13
 val SCE_PL_HASH=14
 val SCE_PL_SYMBOLTABLE=15
-val SCE_PL_REF=16
 val SCE_PL_REGEX=17
 val SCE_PL_REGSUBST=18
 val SCE_PL_LONGQUOTE=19
 val SCE_PL_BACKTICKS=20
 val SCE_PL_DATASECTION=21
+val SCE_PL_HERE_DELIM=22
+val SCE_PL_HERE_Q=23
+val SCE_PL_HERE_QQ=24
+val SCE_PL_HERE_QX=25
+val SCE_PL_STRING_Q=26
+val SCE_PL_STRING_QQ=27
+val SCE_PL_STRING_QX=28
+val SCE_PL_STRING_QR=29
+val SCE_PL_STRING_QW=30
+# Lexical states for SCLEX_LATEX
 val SCE_L_DEFAULT=0
 val SCE_L_COMMAND=1
 val SCE_L_TAG=2
 val SCE_L_MATH=3
 val SCE_L_COMMENT=4
+# Lexical states for SCLEX_LUA
+val SCE_LUA_DEFAULT=0
+val SCE_LUA_COMMENT=1
+val SCE_LUA_COMMENTLINE=2
+val SCE_LUA_COMMENTDOC=3
+val SCE_LUA_NUMBER=4
+val SCE_LUA_WORD=5
+val SCE_LUA_STRING=6
+val SCE_LUA_CHARACTER=7
+val SCE_LUA_LITERALSTRING=8
+val SCE_LUA_PREPROCESSOR=9
+val SCE_LUA_OPERATOR=10
+val SCE_LUA_IDENTIFIER=11
+val SCE_LUA_STRINGEOL=12
+# Lexical states for SCLEX_ERRORLIST
+val SCE_ERR_DEFAULT=0
+val SCE_ERR_PYTHON=1
+val SCE_ERR_GCC=2
+val SCE_ERR_MS=3
+val SCE_ERR_CMD=4
+val SCE_ERR_BORLAND=5
+val SCE_ERR_PERL=6
+val SCE_ERR_NET=7
+val SCE_ERR_LUA=8
+val SCE_ERR_DIFF_CHANGED=10
+val SCE_ERR_DIFF_ADDITION=11
+val SCE_ERR_DIFF_DELETION=12
+val SCE_ERR_DIFF_MESSAGE=13
+# Lexical states for SCLEX_BATCH
+val SCE_BAT_DEFAULT=0
+val SCE_BAT_COMMENT=1
+val SCE_BAT_WORD=2
+val SCE_BAT_LABEL=3
+val SCE_BAT_HIDE=4
+val SCE_BAT_COMMAND=5
+val SCE_BAT_IDENTIFIER=6
+val SCE_BAT_OPERATOR=7
+# Lexical states for SCLEX_MAKEFILE
+val SCE_MAKE_DEFAULT=0
+val SCE_MAKE_COMMENT=1
+val SCE_MAKE_PREPROCESSOR=2
+val SCE_MAKE_IDENTIFIER=3
+val SCE_MAKE_OPERATOR=4
+val SCE_MAKE_TARGET=5
+val SCE_MAKE_IDEOL=9
+# Lexical states for the SCLEX_CONF (Apache Configuration Files Lexer)
+val SCE_CONF_DEFAULT=0
+val SCE_CONF_COMMENT=1
+val SCE_CONF_NUMBER=2
+val SCE_CONF_IDENTIFIER=3
+val SCE_CONF_EXTENSION=4
+val SCE_CONF_PARAMETER=5
+val SCE_CONF_STRING=6
+val SCE_CONF_OPERATOR=7
+val SCE_CONF_IP=8
+val SCE_CONF_DIRECTIVE=9
+# Avenue
+val SCE_AVE_DEFAULT=0
+val SCE_AVE_COMMENT=1
+val SCE_AVE_NUMBER=2
+val SCE_AVE_WORD=3
+val SCE_AVE_KEYWORD=4
+val SCE_AVE_STATEMENT=5
+val SCE_AVE_STRING=6
+val SCE_AVE_ENUM=7
+val SCE_AVE_STRINGEOL=8
+val SCE_AVE_IDENTIFIER=9
+val SCE_AVE_OPERATOR=10
+# Lexical states for SCLEX_ADA
+val SCE_ADA_DEFAULT=0
+val SCE_ADA_COMMENT=1
+val SCE_ADA_NUMBER=2
+val SCE_ADA_WORD=3
+val SCE_ADA_STRING=4
+val SCE_ADA_CHARACTER=5
+val SCE_ADA_OPERATOR=6
+val SCE_ADA_IDENTIFIER=7
+val SCE_ADA_STRINGEOL=8
+# Lexical states for SCLEX_LISP
+val SCE_LISP_DEFAULT=0
+val SCE_LISP_COMMENT=1
+val SCE_LISP_NUMBER=2
+val SCE_LISP_KEYWORD=3
+val SCE_LISP_STRING=6
+val SCE_LISP_STRINGEOL=8
+val SCE_LISP_IDENTIFIER=9
+val SCE_LISP_OPERATOR=10
+# Lexical states for SCLEX_EIFFEL and SCLEX_EIFFELKW
+val SCE_EIFFEL_DEFAULT=0
+val SCE_EIFFEL_COMMENTLINE=1
+val SCE_EIFFEL_NUMBER=2
+val SCE_EIFFEL_WORD=3
+val SCE_EIFFEL_STRING=4
+val SCE_EIFFEL_CHARACTER=5
+val SCE_EIFFEL_OPERATOR=6
+val SCE_EIFFEL_IDENTIFIER=7
+val SCE_EIFFEL_STRINGEOL=8
+
+# Events
+
+evt void StyleNeeded=2000(int position)
+evt void CharAdded=2001(int ch)
+evt void SavePointReached=2002(void)
+evt void SavePointLeft=2003(void)
+evt void ModifyAttemptRO=2004(void)
+# GTK+ Specific to work around focus and accelerator problems:
+evt void Key=2005(int ch, int modifiers)
+evt void DoubleClick=2006(void)
+evt void UpdateUI=2007(void)
+# The old name for SCN_UPDATEUI
+val SCN_CHECKBRACE=2007
+evt void Modified=2008(int position, int modificationType, string text, int length, int linesAdded, int line, int foldLevelNow, int foldLevelPrev)
+# Optional module for macro recording
+evt void MacroRecord=2009(int message, int wParam, int lParam)
+evt void MarginClick=2010(int modifiers, int position, int margin)
+evt void NeedShown=2011(int position, int length)
+evt void PosChanged=2012(int position)
+evt void Painted=2013(void)
+evt void UserListSelection=2014(int listType, string text)
+evt void URIDropped=2015(string text)
+evt void DwellStart=2016(int position)
+evt void DwellEnd=2017(int position)
+
+cat Deprecated
+
+val SCFIND_DOWN=1
 
 ################################################
 # From WinDefs.h
 
+# ***** DEPRECATED from here to end of file ******
+
 # Will a paste succeed?
 fun bool EM_CanPaste=1074(,)
 
@@ -930,7 +1595,7 @@ fun int EM_CharFromPos=215(,point pt)
 fun void EM_EmptyUndoBuffer=205(,)
 
 # Retrieve the selection range.
-fun void EM_ExGetSel=1076(,charrange cr)
+fun void EM_ExGetSel=1076(,charrangeresult cr)
 
 # Retrieve the line number of a position in the document.
 get int EM_ExLineFromChar=1078(,position pos)
@@ -942,7 +1607,7 @@ fun void EM_ExSetSel=1079(,charrange cr)
 fun position EM_FindText=1080(int flags, findtext ft)
 
 # Find some text in the document. Returns range of found text in ft argument.
-fun position EM_FindTextEx=1103(int flags, findtext ft)
+fun position EM_FindTextEx=1103(int flags, findtextex ft)
 
 # On Windows will draw the document into a display context such as a printer.
 fun void EM_FormatRange=1081(bool draw, formatrange fr)
@@ -995,7 +1660,7 @@ fun int EM_LineLength=193(int line,)
 fun void EM_LineScroll=182(int columns, int lines)
 
 # Retrieve the point in the window where a position is displayed.
-fun void EM_PosFromChar=214(point pt, position pos)
+fun void EM_PosFromChar=214(pointresult pt, position pos)
 
 # Replace the selected text with the argument text.
 fun void EM_ReplaceSel=194(, string text)
@@ -1052,9 +1717,9 @@ fun void WM_SetText=12(, string text)
 fun void WM_Undo=772(,)
 
 # Notification codes
-val EN_CHANGE=768 
-val EN_KILLFOCUS=512 
-val EN_SETFOCUS=256 
+val EN_CHANGE=768
+val EN_KILLFOCUS=512
+val EN_SETFOCUS=256
 
 # Flags for setting margins.
 val EC_LEFTMARGIN=1
@@ -1062,16 +1727,18 @@ val EC_RIGHTMARGIN=2
 val EC_USEFONTINFO=0xffff
 
 # Selection type.
-val SEL_EMPTY=0 
-val SEL_TEXT=1 
+val SEL_EMPTY=0
+val SEL_TEXT=1
 
 # Find replace mask constants
-val FR_MATCHCASE=0x4 
-val FR_WHOLEWORD=0x2 
-val FR_DOWN=0x1 
+val FR_MATCHCASE=0x4
+val FR_WHOLEWORD=0x2
+val FR_DOWN=0x1
 
 # Key modifier flag.
 val SHIFT_PRESSED=1
 val LEFT_CTRL_PRESSED=2
 val LEFT_ALT_PRESSED=4
 
+#events
+evt void EN_Change=768(void)