Scintilla 1.67 PB Include

Share your advanced PureBasic knowledge/code with the community.
akee
Enthusiast
Enthusiast
Posts: 498
Joined: Wed Aug 18, 2004 9:52 am
Location: Penang, Malaysia

Scintilla 1.67 PB Include

Post by akee »

Code updated For 5.20+

Here's an include for Scintilla-SciLexer. Thought I share it... :)


DLL-SciLexer.pbi

Code: Select all

; Taken from Scintilla Documentation Version 1.67 - 20-Feb-2006.
; http://scintilla.sourceforge.net/ScintillaDoc.html
; Captured by AKEE for the PureBasic community. :)



;- ** SCINTILLA FUNCTIONS **
;{

;-- Text Retrieval and modification.
#SCI_GETTEXT                        = 2182
#SCI_SETTEXT                        = 2181
#SCI_SETSAVEPOINT                   = 2014
#SCI_GETLINE                        = 2153
#SCI_REPLACESEL                     = 2170
#SCI_SETREADONLY                    = 2171
#SCI_GETREADONLY                    = 2140
#SCI_GETTEXTRANGE                   = 2162
#SCI_ALLOCATE                       = 2446
#SCI_ADDTEXT                        = 2001
#SCI_ADDSTYLEDTEXT                  = 2002
#SCI_APPENDTEXT                     = 2282
#SCI_INSERTTEXT                     = 2003
#SCI_CLEARALL                       = 2004
#SCI_CLEARDOCUMENTSTYLE             = 2005
#SCI_GETCHARAT                      = 2007
#SCI_GETSTYLEAT                     = 2010
#SCI_GETSTYLEDTEXT                  = 2015
#SCI_SETSTYLEBITS                   = 2090
#SCI_GETSTYLEBITS                   = 2091
#SCI_TARGETASUTF8                   = 2447
#SCI_ENCODEDFROMUTF8                = 2449
#SCI_SETLENGTHFORENCODE             = 2448

;-- Searching.
#SCI_FINDTEXT                       = 2150
#SCI_SEARCHANCHOR                   = 2366
#SCI_SEARCHNEXT                     = 2367
#SCI_SEARCHPREV                     = 2368

;-- Search and replace using a target.
#SCI_SETTARGETSTART                 = 2190
#SCI_GETTARGETSTART                 = 2191
#SCI_SETTARGETEND                   = 2192
#SCI_GETTARGETEND                   = 2193
#SCI_TARGETFROMSELECTION            = 2287
#SCI_SETSEARCHFLAGS                 = 2198
#SCI_GETSEARCHFLAGS                 = 2199
#SCI_SEARCHINTARGET                 = 2197
#SCI_REPLACETARGET                  = 2194
#SCI_REPLACETARGETRE                = 2195

;-- Overtype.
#SCI_SETOVERTYPE                    = 2186
#SCI_GETOVERTYPE                    = 2187

;-- Cut, copy and paste.
#SCI_CUT                            = 2177
#SCI_COPY                           = 2178
#SCI_PASTE                          = 2179
#SCI_CLEAR                          = 2180
#SCI_CANPASTE                       = 2173
#SCI_COPYRANGE                      = 2419
#SCI_COPYTEXT                       = 2420
#SCI_SETPASTECONVERTENDINGS         = 2467
#SCI_GETPASTECONVERTENDINGS         = 2468

;-- Error handling.
#SCI_SETSTATUS                      = 2382
#SCI_GETSTATUS                      = 2383

;-- Undo and Redo.
#SCI_UNDO                           = 2176
#SCI_CANUNDO                        = 2174
#SCI_EMPTYUNDOBUFFER                = 2175
#SCI_REDO                           = 2011
#SCI_CANREDO                        = 2016
#SCI_SETUNDOCOLLECTION              = 2012
#SCI_GETUNDOCOLLECTION              = 2019
#SCI_BEGINUNDOACTION                = 2078
#SCI_ENDUNDOACTION                  = 2079

;-- Selection and information.
#SCI_GETTEXTLENGTH                  = 2183
#SCI_GETLENGTH                      = 2006
#SCI_GETLINECOUNT                   = 2154
#SCI_GETFIRSTVISIBLELINE            = 2152
#SCI_LINESONSCREEN                  = 2370
#SCI_GETMODIFY                      = 2159
#SCI_SETSEL                         = 2160
#SCI_GOTOPOS                        = 2025
#SCI_GOTOLINE                       = 2024
#SCI_SETCURRENTPOS                  = 2141
#SCI_GETCURRENTPOS                  = 2008
#SCI_SETANCHOR                      = 2026
#SCI_GETANCHOR                      = 2009
#SCI_SETSELECTIONSTART              = 2142
#SCI_GETSELECTIONSTART              = 2143
#SCI_SETSELECTIONEND                = 2144
#SCI_GETSELECTIONEND                = 2145
#SCI_SELECTALL                      = 2013
#SCI_LINEFROMPOSITION               = 2166
#SCI_POSITIONFROMLINE               = 2167
#SCI_GETLINEENDPOSITION             = 2136
#SCI_LINELENGTH                     = 2350
#SCI_GETCOLUMN                      = 2129
#SCI_FINDCOLUMN                     = 2456
#SCI_POSITIONFROMPOINT              = 2022
#SCI_POSITIONFROMPOINTCLOSE         = 2023
#SCI_POINTXFROMPOSITION             = 2164
#SCI_POINTYFROMPOSITION             = 2165
#SCI_HIDESELECTION                  = 2163
#SCI_GETSELTEXT                     = 2161
#SCI_GETCURLINE                     = 2027
#SCI_SELECTIONISRECTANGLE           = 2372
#SCI_SETSELECTIONMODE               = 2422
#SCI_GETSELECTIONMODE               = 2423
#SCI_GETLINESELSTARTPOSITION        = 2424
#SCI_GETLINESELENDPOSITION          = 2425
#SCI_MOVECARETINSIDEVIEW            = 2401
#SCI_WORDENDPOSITION                = 2267
#SCI_WORDSTARTPOSITION              = 2266
#SCI_POSITIONBEFORE                 = 2417
#SCI_POSITIONAFTER                  = 2418
#SCI_TEXTWIDTH                      = 2276
#SCI_TEXTHEIGHT                     = 2279
#SCI_CHOOSECARETX                   = 2399

;-- Scrolling and automatic scrolling.
#SCI_LINESCROLL                     = 2168
#SCI_SCROLLCARET                    = 2169
#SCI_SETXCARETPOLICY                = 2402
#SCI_SETYCARETPOLICY                = 2403
#SCI_SETVISIBLEPOLICY               = 2394
#SCI_SETHSCROLLBAR                  = 2130
#SCI_GETHSCROLLBAR                  = 2131
#SCI_SETVSCROLLBAR                  = 2280
#SCI_GETVSCROLLBAR                  = 2281
#SCI_GETXOFFSET                     = 2398
#SCI_SETXOFFSET                     = 2397
#SCI_SETSCROLLWIDTH                 = 2274
#SCI_GETSCROLLWIDTH                 = 2275
#SCI_SETENDATLASTLINE               = 2277
#SCI_GETENDATLASTLINE               = 2278

;-- White space.
#SCI_SETVIEWWS                      = 2021
#SCI_GETVIEWWS                      = 2020
#SCI_SETWHITESPACEFORE              = 2084
#SCI_SETWHITESPACEBACK              = 2085

;-- Cursor.
#SCI_SETCURSOR                      = 2386
#SCI_GETCURSOR                      = 2387

;-- Mouse capture.
#SCI_SETMOUSEDOWNCAPTURES           = 2384
#SCI_GETMOUSEDOWNCAPTURES           = 2385

;-- Line endings.
#SCI_SETEOLMODE                     = 2031
#SCI_GETEOLMODE                     = 2030
#SCI_CONVERTEOLS                    = 2029
#SCI_SETVIEWEOL                     = 2356
#SCI_GETVIEWEOL                     = 2355

;-- Styling.
#SCI_GETENDSTYLED                   = 2028
#SCI_STARTSTYLING                   = 2032
#SCI_SETSTYLING                     = 2033
#SCI_SETSTYLINGEX                   = 2073
#SCI_SETLINESTATE                   = 2092
#SCI_GETLINESTATE                   = 2093
#SCI_GETMAXLINESTATE                = 2094

;-- Style definition.
#SCI_STYLERESETDEFAULT              = 2058
#SCI_STYLECLEARALL                  = 2050
#SCI_STYLESETFONT                   = 2056
#SCI_STYLESETSIZE                   = 2055
#SCI_STYLESETBOLD                   = 2053
#SCI_STYLESETITALIC                 = 2054
#SCI_STYLESETUNDERLINE              = 2059
#SCI_STYLESETFORE                   = 2051
#SCI_STYLESETBACK                   = 2052
#SCI_STYLESETEOLFILLED              = 2057
#SCI_STYLESETCHARACTERSET           = 2066
#SCI_STYLESETCASE                   = 2060
#SCI_STYLESETVISIBLE                = 2074
#SCI_STYLESETCHANGEABLE             = 2099
#SCI_STYLESETHOTSPOT                = 2409

;-- Caret, selection and hotspot styles.
#SCI_SETSELFORE                     = 2067
#SCI_SETSELBACK                     = 2068
#SCI_SETCARETFORE                   = 2069
#SCI_GETCARETFORE                   = 2138
#SCI_SETCARETLINEVISIBLE            = 2096
#SCI_GETCARETLINEVISIBLE            = 2095
#SCI_SETCARETLINEBACK               = 2098
#SCI_GETCARETLINEBACK               = 2097
#SCI_SETCARETPERIOD                 = 2076
#SCI_GETCARETPERIOD                 = 2075
#SCI_SETCARETWIDTH                  = 2188
#SCI_GETCARETWIDTH                  = 2189
#SCI_SETHOTSPOTACTIVEFORE           = 2410
#SCI_SETHOTSPOTACTIVEBACK           = 2411
#SCI_SETHOTSPOTACTIVEUNDERLINE      = 2412
#SCI_SETHOTSPOTSINGLELINE           = 2421
#SCI_SETCONTROLCHARSYMBOL           = 2388
#SCI_GETCONTROLCHARSYMBOL           = 2389
#SCI_SETCARETSTICKY                 = 2458
#SCI_GETCARETSTICKY                 = 2457
#SCI_TOGGLECARETSTICKY              = 2459

;-- Margins.
#SCI_SETMARGINTYPEN                 = 2240
#SCI_GETMARGINTYPEN                 = 2241
#SCI_SETMARGINWIDTHN                = 2242
#SCI_GETMARGINWIDTHN                = 2243
#SCI_SETMARGINMASKN                 = 2244
#SCI_GETMARGINMASKN                 = 2245
#SCI_SETMARGINSENSITIVEN            = 2246
#SCI_GETMARGINSENSITIVEN            = 2247
#SCI_SETMARGINLEFT                  = 2155
#SCI_GETMARGINLEFT                  = 2156
#SCI_SETMARGINRIGHT                 = 2157
#SCI_GETMARGINRIGHT                 = 2158
#SCI_SETFOLDMARGINCOLOUR            = 2290
#SCI_SETFOLDMARGINHICOLOUR          = 2291

;-- Other settings.
#SCI_SETUSEPALETTE                  = 2039
#SCI_GETUSEPALETTE                  = 2139
#SCI_SETBUFFEREDDRAW                = 2035
#SCI_GETBUFFEREDDRAW                = 2034
#SCI_SETTWOPHASEDRAW                = 2284
#SCI_GETTWOPHASEDRAW                = 2283
#SCI_SETCODEPAGE                    = 2037
#SCI_GETCODEPAGE                    = 2137
#SCI_SETWORDCHARS                   = 2077
#SCI_SETWHITESPACECHARS             = 2443
#SCI_SETCHARSDEFAULT                = 2444
#SCI_GRABFOCUS                      = 2400
#SCI_SETFOCUS                       = 2380
#SCI_GETFOCUS                       = 2381

;-- Brace highlighting.
#SCI_BRACEHIGHLIGHT                 = 2351
#SCI_BRACEBADLIGHT                  = 2352
#SCI_BRACEMATCH                     = 2353

;-- Tab and Indentation Guides.
#SCI_SETTABWIDTH                    = 2036
#SCI_GETTABWIDTH                    = 2121
#SCI_SETUSETABS                     = 2124
#SCI_GETUSETABS                     = 2125
#SCI_SETINDENT                      = 2122
#SCI_GETINDENT                      = 2123
#SCI_SETTABINDENTS                  = 2260
#SCI_GETTABINDENTS                  = 2261
#SCI_SETBACKSPACEUNINDENTS          = 2262
#SCI_GETBACKSPACEUNINDENTS          = 2263
#SCI_SETLINEINDENTATION             = 2126
#SCI_GETLINEINDENTATION             = 2127
#SCI_GETLINEINDENTPOSITION          = 2128
#SCI_SETINDENTATIONGUIDES           = 2132
#SCI_GETINDENTATIONGUIDES           = 2133
#SCI_SETHIGHLIGHTGUIDE              = 2134
#SCI_GETHIGHLIGHTGUIDE              = 2135

;-- Markers.
#SCI_MARKERDEFINE                   = 2040
#SCI_MARKERDEFINEPIXMAP             = 2049
#SCI_MARKERSETFORE                  = 2041
#SCI_MARKERSETBACK                  = 2042
#SCI_MARKERADD                      = 2043
#SCI_MARKERADDSET                   = 2466
#SCI_MARKERDELETE                   = 2044
#SCI_MARKERDELETEALL                = 2045
#SCI_MARKERGET                      = 2046
#SCI_MARKERNEXT                     = 2047
#SCI_MARKERPREVIOUS                 = 2048
#SCI_MARKERLINEFROMHANDLE           = 2017
#SCI_MARKERDELETEHANDLE             = 2018

;-- Indicators.
#SCI_INDICSETSTYLE                  = 2080
#SCI_INDICGETSTYLE                  = 2081
#SCI_INDICSETFORE                   = 2082
#SCI_INDICGETFORE                   = 2083

;-- Autocompletion.
#SCI_AUTOCSHOW                      = 2100
#SCI_AUTOCCANCEL                    = 2101
#SCI_AUTOCACTIVE                    = 2102
#SCI_AUTOCPOSSTART                  = 2103
#SCI_AUTOCCOMPLETE                  = 2104
#SCI_AUTOCSTOPS                     = 2105
#SCI_AUTOCSETSEPARATOR              = 2106
#SCI_AUTOCGETSEPARATOR              = 2107
#SCI_AUTOCSELECT                    = 2108
#SCI_AUTOCGETCURRENT                = 2445
#SCI_AUTOCSETCANCELATSTART          = 2110
#SCI_AUTOCGETCANCELATSTART          = 2111
#SCI_AUTOCSETFILLUPS                = 2112
#SCI_AUTOCSETCHOOSESINGLE           = 2113
#SCI_AUTOCGETCHOOSESINGLE           = 2114
#SCI_AUTOCSETIGNORECASE             = 2115
#SCI_AUTOCGETIGNORECASE             = 2116
#SCI_AUTOCSETAUTOHIDE               = 2118
#SCI_AUTOCGETAUTOHIDE               = 2119
#SCI_AUTOCSETDROPRESTOFWORD         = 2270
#SCI_AUTOCGETDROPRESTOFWORD         = 2271
#SCI_REGISTERIMAGE                  = 2405
#SCI_CLEARREGISTEREDIMAGES          = 2408
#SCI_AUTOCSETTYPESEPARATOR          = 2286
#SCI_AUTOCGETTYPESEPARATOR          = 2285
#SCI_AUTOCSETMAXHEIGHT              = 2210
#SCI_AUTOCGETMAXHEIGHT              = 2211
#SCI_AUTOCSETMAXWIDTH               = 2208
#SCI_AUTOCGETMAXWIDTH               = 2209

;-- User lists.
#SCI_USERLISTSHOW                   = 2117

;-- Call tips.
#SCI_CALLTIPSHOW                    = 2200
#SCI_CALLTIPCANCEL                  = 2201
#SCI_CALLTIPACTIVE                  = 2202
#SCI_CALLTIPPOSSTART                = 2203
#SCI_CALLTIPSETHLT                  = 2204
#SCI_CALLTIPSETBACK                 = 2205
#SCI_CALLTIPSETFORE                 = 2206
#SCI_CALLTIPSETFOREHLT              = 2207

;-- Keyboard commands.
#SCI_LINEDOWN                       = 2300
#SCI_LINEDOWNEXTEND                 = 2301
#SCI_LINEDOWNRECTEXTEND             = 2426
#SCI_LINESCROLLDOWN                 = 2342
#SCI_LINEUP                         = 2302
#SCI_LINEUPEXTEND                   = 2303
#SCI_LINEUPRECTEXTEND               = 2427
#SCI_LINESCROLLUP                   = 2343
#SCI_PARADOWN                       = 2413
#SCI_PARADOWNEXTEND                 = 2414
#SCI_PARAUP                         = 2415
#SCI_PARAUPEXTEND                   = 2416
#SCI_CHARLEFT                       = 2304
#SCI_CHARLEFTEXTEND                 = 2305
#SCI_CHARLEFTRECTEXTEND             = 2428
#SCI_CHARRIGHT                      = 2306
#SCI_CHARRIGHTEXTEND                = 2307
#SCI_CHARRIGHTRECTEXTEND            = 2429
#SCI_WORDLEFT                       = 2308
#SCI_WORDLEFTEXTEND                 = 2309
#SCI_WORDRIGHT                      = 2310
#SCI_WORDRIGHTEXTEND                = 2311
#SCI_WORDLEFTEND                    = 2439
#SCI_WORDLEFTENDEXTEND              = 2440
#SCI_WORDRIGHTEND                   = 2441
#SCI_WORDRIGHTENDEXTEND             = 2442
#SCI_WORDPARTLEFT                   = 2390
#SCI_WORDPARTLEFTEXTEND             = 2391
#SCI_WORDPARTRIGHT                  = 2392
#SCI_WORDPARTRIGHTEXTEND            = 2393
#SCI_HOME                           = 2312
#SCI_HOMEEXTEND                     = 2313
#SCI_HOMERECTEXTEND                 = 2430
#SCI_HOMEDISPLAY                    = 2345
#SCI_HOMEDISPLAYEXTEND              = 2346
#SCI_HOMEWRAP                       = 2349
#SCI_HOMEWRAPEXTEND                 = 2450
#SCI_VCHOME                         = 2331
#SCI_VCHOMEEXTEND                   = 2332
#SCI_VCHOMERECTEXTEND               = 2431
#SCI_VCHOMEWRAP                     = 2453
#SCI_VCHOMEWRAPEXTEND               = 2454
#SCI_LINEEND                        = 2314
#SCI_LINEENDEXTEND                  = 2315
#SCI_LINEENDRECTEXTEND              = 2432
#SCI_LINEENDDISPLAY                 = 2347
#SCI_LINEENDDISPLAYEXTEND           = 2348
#SCI_LINEENDWRAP                    = 2451
#SCI_LINEENDWRAPEXTEND              = 2452
#SCI_DOCUMENTSTART                  = 2316
#SCI_DOCUMENTSTARTEXTEND            = 2317
#SCI_DOCUMENTEND                    = 2318
#SCI_DOCUMENTENDEXTEND              = 2319
#SCI_PAGEUP                         = 2320
#SCI_PAGEUPEXTEND                   = 2321
#SCI_PAGEUPRECTEXTEND               = 2433
#SCI_PAGEDOWN                       = 2322
#SCI_PAGEDOWNEXTEND                 = 2323
#SCI_PAGEDOWNRECTEXTEND             = 2434
#SCI_STUTTEREDPAGEUP                = 2435
#SCI_STUTTEREDPAGEUPEXTEND          = 2436
#SCI_STUTTEREDPAGEDOWN              = 2437
#SCI_STUTTEREDPAGEDOWNEXTEND        = 2438
#SCI_DELETEBACK                     = 2326
#SCI_DELETEBACKNOTLINE              = 2344
#SCI_DELWORDLEFT                    = 2335
#SCI_DELWORDRIGHT                   = 2336
#SCI_DELLINELEFT                    = 2395
#SCI_DELLINERIGHT                   = 2396
#SCI_LINEDELETE                     = 2338
#SCI_LINECUT                        = 2337
#SCI_LINECOPY                       = 2455
#SCI_LINETRANSPOSE                  = 2339
#SCI_LINEDUPLICATE                  = 2404
#SCI_LOWERCASE                      = 2340
#SCI_UPPERCASE                      = 2341
#SCI_CANCEL                         = 2325
#SCI_EDITTOGGLEOVERTYPE             = 2324
#SCI_NEWLINE                        = 2329
#SCI_FORMFEED                       = 2330
#SCI_TAB                            = 2327
#SCI_BACKTAB                        = 2328
#SCI_SELECTIONDUPLICATE             = 2469

;-- Key bindings.
#SCI_ASSIGNCMDKEY                   = 2070
#SCI_CLEARALLCMDKEYS                = 2072
#SCI_CLEARCMDKEY                    = 2071
#SCI_NULL                           = 2172

;-- Popup edit menu.
#SCI_USEPOPUP                       = 2371

;-- Macro recording.
#SCI_STARTRECORD                    = 3001
#SCI_STOPRECORD                     = 3002

;-- Printing.
#SCI_FORMATRANGE                    = 2151
#SCI_SETPRINTMAGNIFICATION          = 2146
#SCI_GETPRINTMAGNIFICATION          = 2147
#SCI_SETPRINTCOLOURMODE             = 2148
#SCI_GETPRINTCOLOURMODE             = 2149
#SCI_SETPRINTWRAPMODE               = 2406
#SCI_GETPRINTWRAPMODE               = 2407

;-- Direct access.
#SCI_GETDIRECTFUNCTION              = 2184
#SCI_GETDIRECTPOINTER               = 2185

;-- Multiple views.
#SCI_GETDOCPOINTER                  = 2357
#SCI_SETDOCPOINTER                  = 2358
#SCI_CREATEDOCUMENT                 = 2375
#SCI_ADDREFDOCUMENT                 = 2376
#SCI_RELEASEDOCUMENT                = 2377

;-- Folding.
#SCI_VISIBLEFROMDOCLINE             = 2220
#SCI_DOCLINEFROMVISIBLE             = 2221
#SCI_SHOWLINES                      = 2226
#SCI_HIDELINES                      = 2227
#SCI_GETLINEVISIBLE                 = 2228
#SCI_SETFOLDLEVEL                   = 2222
#SCI_GETFOLDLEVEL                   = 2223
#SCI_SETFOLDFLAGS                   = 2233
#SCI_GETLASTCHILD                   = 2224
#SCI_GETFOLDPARENT                  = 2225
#SCI_SETFOLDEXPANDED                = 2229
#SCI_GETFOLDEXPANDED                = 2230
#SCI_TOGGLEFOLD                     = 2231
#SCI_ENSUREVISIBLE                  = 2232
#SCI_ENSUREVISIBLEENFORCEPOLICY     = 2234

;-- Line wrapping.
#SCI_SETWRAPMODE                    = 2268
#SCI_GETWRAPMODE                    = 2269
#SCI_SETWRAPVISUALFLAGS             = 2460
#SCI_GETWRAPVISUALFLAGS             = 2461
#SCI_SETWRAPVISUALFLAGSLOCATION     = 2462
#SCI_GETWRAPVISUALFLAGSLOCATION     = 2463
#SCI_SETWRAPSTARTINDENT             = 2464
#SCI_GETWRAPSTARTINDENT             = 2465
#SCI_SETLAYOUTCACHE                 = 2272
#SCI_GETLAYOUTCACHE                 = 2273
#SCI_LINESSPLIT                     = 2289
#SCI_LINESJOIN                      = 2288
#SCI_WRAPCOUNT                      = 2235

;-- Zooming.
#SCI_ZOOMIN                         = 2333
#SCI_ZOOMOUT                        = 2334
#SCI_SETZOOM                        = 2373
#SCI_GETZOOM                        = 2374

;-- Long lines.
#SCI_SETEDGEMODE                    = 2363
#SCI_GETEDGEMODE                    = 2362
#SCI_SETEDGECOLUMN                  = 2361
#SCI_GETEDGECOLUMN                  = 2360
#SCI_SETEDGECOLOUR                  = 2365
#SCI_GETEDGECOLOUR                  = 2364

;-- Lexer.
#SCI_SETLEXER                       = 4001
#SCI_GETLEXER                       = 4002
#SCI_SETLEXERLANGUAGE               = 4006
#SCI_LOADLEXERLIBRARY               = 4007
#SCI_COLOURISE                      = 4003
#SCI_SETPROPERTY                    = 4004
#SCI_GETPROPERTY                    = 4008
#SCI_GETPROPERTYEXPANDED            = 4009
#SCI_GETPROPERTYINT                 = 4010
#SCI_SETKEYWORDS                    = 4005
#SCI_GETSTYLEBITSNEEDED             = 4011

;-- Notifications.
#SCI_SETMODEVENTMASK                = 2359
#SCI_GETMODEVENTMASK                = 2378
#SCI_SETMOUSEDWELLTIME              = 2264
#SCI_GETMOUSEDWELLTIME              = 2265
#SCN_STYLENEEDED                    = 2000
#SCN_CHARADDED                      = 2001
#SCN_SAVEPOINTREACHED               = 2002
#SCN_SAVEPOINTLEFT                  = 2003
#SCN_MODIFYATTEMPTRO                = 2004
#SCN_KEY                            = 2005
#SCN_DOUBLECLICK                    = 2006
#SCN_UPDATEUI                       = 2007
#SCN_MODIFIED                       = 2008
#SCN_MACRORECORD                    = 2009
#SCN_MARGINCLICK                    = 2010
#SCN_NEEDSHOWN                      = 2011
#SCN_PAINTED                        = 2013
#SCN_USERLISTSELECTION              = 2014
#SCN_URIDROPPED                     = 2015
#SCN_DWELLSTART                     = 2016
#SCN_DWELLEND                       = 2017
#SCN_ZOOM                           = 2018
#SCN_HOTSPOTCLICK                   = 2019
#SCN_HOTSPOTDOUBLECLICK             = 2020
#SCN_CALLTIPCLICK                   = 2021
#SCN_AUTOCSELECTION                 = 2022
#SCEN_CHANGE                        = 768
#SCEN_SETFOCUS                      = 512
#SCEN_KILLFOCUS                     = 256

; Others.
#SCI_START                          = 2000
#SCI_OPTIONAL_START                 = 3000
#SCI_LEXER_START                    = 4000
;}



;- ** FLAGS AND CONSTANTS **
;{

;-- Search Flags.
#SCFIND_MATCHCASE                   = 4
#SCFIND_WHOLEWORD                   = 2
#SCFIND_WORDSTART                   = $00100000
#SCFIND_REGEXP                      = $00200000
#SCFIND_POSIX                       = $00400000

#SC_SEL_STREAM                      = 0
#SC_SEL_RECTANGLE                   = 1
#SC_SEL_LINES                       = 2

#CARET_SLOP                         = $01
#CARET_STRICT                       = $04
#CARET_JUMPS                        = $10
#CARET_EVEN                         = $08
#VISIBLE_SLOP                       = $01
#VISIBLE_STRICT                     = $04

;-- White space costants.
#SCWS_INVISIBLE                     = 0
#SCWS_VISIBLEALWAYS                 = 1
#SCWS_VISIBLEAFTERINDENT            = 2

;-- Cursor constants.
#SC_CURSORNORMAL                    = -1
#SC_CURSORWAIT                      = 4

;-- Line Ending Constants.
#SC_EOL_CRLF                        = 0
#SC_EOL_CR                          = 1
#SC_EOL_LF                          = 2

;-- Style definition Constants.
#STYLE_DEFAULT                      = 32
#STYLE_LINENUMBER                   = 33
#STYLE_BRACELIGHT                   = 34
#STYLE_BRACEBAD                     = 35
#STYLE_CONTROLCHAR                  = 36
#STYLE_INDENTGUIDE                  = 37
#STYLE_LASTPREDEFINED               = 39
;     #STYLE_MAX                          = 127

;-- Character Set Constants.
#SC_CHARSET_8859_15                 = 1000
#SC_CHARSET_ANSI                    = 0
#SC_CHARSET_ARABIC                  = 178
#SC_CHARSET_BALTIC                  = 186
#SC_CHARSET_CHINESEBIG5             = 136
#SC_CHARSET_CYRILLIC                = 1251
#SC_CHARSET_DEFAULT                 = 1
#SC_CHARSET_EASTEUROPE              = 238
#SC_CHARSET_GB2312                  = 134
#SC_CHARSET_GREEK                   = 161
#SC_CHARSET_HANGUL                  = 129
#SC_CHARSET_HEBREW                  = 177
#SC_CHARSET_JOHAB                   = 130
#SC_CHARSET_MAC                     = 77
#SC_CHARSET_OEM                     = 255
#SC_CHARSET_RUSSIAN                 = 204
#SC_CHARSET_SHIFTJIS                = 128
#SC_CHARSET_SYMBOL                  = 2
#SC_CHARSET_THAI                    = 222
#SC_CHARSET_TURKISH                 = 162
#SC_CHARSET_VIETNAMESE              = 163

;-- Character Case.
#SC_CASE_MIXED                      = 0
#SC_CASE_UPPER                      = 1
#SC_CASE_LOWER                      = 2

;-- Margin Constants.
#SC_MARGIN_SYMBOL                   = 0
#SC_MARGIN_NUMBER                   = 1

;-- Code Page Constants.
#SC_CP_DBCS                         = 1
#SC_CP_UTF8                         = 65001

;-- Markers Constants.
#MARKER_MAX                         = 31
#SC_MARK_CIRCLE                     = 0
#SC_MARK_ROUNDRECT                  = 1
#SC_MARK_ARROW                      = 2
#SC_MARK_SMALLRECT                  = 3
#SC_MARK_SHORTARROW                 = 4
#SC_MARK_EMPTY                      = 5
#SC_MARK_ARROWDOWN                  = 6
#SC_MARK_MINUS                      = 7
#SC_MARK_PLUS                       = 8
#SC_MARK_DOTDOTDOT                  = 23
#SC_MARK_BACKGROUND                 = 22
#SC_MARK_FULLRECT                   = 26
#SC_MARK_BOXMINUS                   = 14
#SC_MARK_BOXMINUSCONNECTED          = 15
#SC_MARK_BOXPLUS                    = 12
#SC_MARK_BOXPLUSCONNECTED           = 13
#SC_MARK_CIRCLEMINUS                = 20
#SC_MARK_CIRCLEMINUSCONNECTED       = 21
#SC_MARK_CIRCLEPLUS                 = 18
#SC_MARK_CIRCLEPLUSCONNECTED        = 19
#SC_MARK_LCORNER                    = 10
#SC_MARK_LCORNERCURVE               = 16
#SC_MARK_TCORNER                    = 11
#SC_MARK_TCORNERCURVE               = 17
#SC_MARK_ARROWS                     = 24
#SC_MARK_VLINE                      = 9
#SC_MARK_PIXMAP                     = 25
#SC_MARK_CHARACTER                  = 10000
#SC_MARKNUM_FOLDEREND               = 25
#SC_MARKNUM_FOLDEROPENMID           = 26
#SC_MARKNUM_FOLDERMIDTAIL           = 27
#SC_MARKNUM_FOLDERTAIL              = 28
#SC_MARKNUM_FOLDERSUB               = 29
#SC_MARKNUM_FOLDER                  = 30
#SC_MARKNUM_FOLDEROPEN              = 31

;-- Indicators Constants.
#INDIC_PLAIN                        = 0
#INDIC_SQUIGGLE                     = 1
#INDIC_TT                           = 2
#INDIC_DIAGONAL                     = 3
#INDIC_STRIKE                       = 4
#INDIC_HIDDEN                       = 5
#INDIC_BOX                          = 6
;     #INDIC_MAX                          = 7
#INDIC0_MASK                        = $20
#INDIC1_MASK                        = $40
#INDIC2_MASK                        = $80
#INDICS_MASK                        = $E0

;-- Key Definitions Constants.
#SCK_ADD                            = 310
#SCK_BACK                           = 8
#SCK_DELETE                         = 308
#SCK_DIVIDE                         = 312
#SCK_DOWN                           = 300
#SCK_END                            = 305
#SCK_ESCAPE                         = 7
#SCK_HOME                           = 304
#SCK_INSERT                         = 309
#SCK_LEFT                           = 302
#SCK_NEXT                           = 307
#SCK_PRIOR                          = 306
#SCK_RETURN                         = 13
#SCK_RIGHT                          = 303
#SCK_SUBTRACT                       = 311
#SCK_TAB                            = 9
#SCK_UP                             = 301
#SCMOD_ALT                          = 4
#SCMOD_CTRL                         = 2
#SCMOD_NORM                         = 0
#SCMOD_SHIFT                        = 1

;-- Printing Constants.
#SC_PRINT_NORMAL                    = 0
#SC_PRINT_INVERTLIGHT               = 1
#SC_PRINT_BLACKONWHITE              = 2
#SC_PRINT_COLOURONWHITE             = 3
#SC_PRINT_COLOURONWHITEDEFAULTBG    = 4

;-- Wrap Constants.
#SC_WRAP_NONE                       = 0
#SC_WRAP_WORD                       = 1
#SC_WRAP_CHAR                       = 2

;-- Foldlevel Constants.
#SC_FOLDLEVELNUMBERMASK             = $0FFF
#SC_FOLDLEVELBASE                   = $400
#SC_FOLDLEVELBOXFOOTERFLAG          = $8000
#SC_FOLDLEVELBOXHEADERFLAG          = $4000
#SC_FOLDLEVELCONTRACTED             = $10000
#SC_FOLDLEVELHEADERFLAG             = $2000
#SC_FOLDLEVELUNINDENT               = $20000
#SC_FOLDLEVELWHITEFLAG              = $1000

#SC_FOLDFLAG_BOX                    = $0001
#SC_FOLDFLAG_LINEBEFORE_EXPANDED    = $0002
#SC_FOLDFLAG_LINEBEFORE_CONTRACTED  = $0004
#SC_FOLDFLAG_LINEAFTER_EXPANDED     = $0008
#SC_FOLDFLAG_LINEAFTER_CONTRACTED   = $0010
#SC_FOLDFLAG_LEVELNUMBERS           = $0040

;-- Wrap Visual Flags Constant.
#SC_WRAPVISUALFLAG_NONE             = $0000
#SC_WRAPVISUALFLAG_END              = $0001
#SC_WRAPVISUALFLAG_START            = $0002
#SC_WRAPVISUALFLAGLOC_DEFAULT       = $0000
#SC_WRAPVISUALFLAGLOC_END_BY_TEXT   = $0001
#SC_WRAPVISUALFLAGLOC_START_BY_TEXT = $0002

;-- Cache Constants.
#SC_CACHE_NONE                      = 0
#SC_CACHE_CARET                     = 1
#SC_CACHE_PAGE                      = 2
#SC_CACHE_DOCUMENT                  = 3

;-- Edge Constants.
#EDGE_NONE                          = 0
#EDGE_LINE                          = 1
#EDGE_BACKGROUND                    = 2

;-- Modified Constants.
#SC_MOD_INSERTTEXT                  = $1
#SC_MOD_DELETETEXT                  = $2
#SC_MOD_CHANGESTYLE                 = $4
#SC_MOD_CHANGEFOLD                  = $8
#SC_PERFORMED_USER                  = $10
#SC_PERFORMED_UNDO                  = $20
#SC_PERFORMED_REDO                  = $40
#SC_MULTISTEPUNDOREDO               = $80
#SC_LASTSTEPINUNDOREDO              = $100
#SC_MOD_CHANGEMARKER                = $200
#SC_MOD_BEFOREINSERT                = $400
#SC_MOD_BEFOREDELETE                = $800
#SC_MULTILINEUNDOREDO               = $1000
;     #SC_MODEVENTMASKALL                 = $1FFF

;-- Others.
#SC_MASK_FOLDERS                    = $FE000000
#SC_TIME_FOREVER                    = 10000000
#KEYWORDSET_MAX                     = 8
#INVALID_POSITION                   = -1
;}



;- ** STRUCTURES **
;{-
;-- CharacterRange
Structure CharacterRange
  cpMin.l;
  cpMax.l;
EndStructure

;-- TextRange
;Structure TextRange
; chrg.CharacterRange
; lpstrText.l
;EndStructure

;-- TextToFind
Structure TextToFind
  chrg.CharacterRange
  lpstrText.l
  chrgText.CharacterRange
EndStructure

;-- RangeToFormat
Structure RangeToFormat
  hdc.l
  hdcTarget.l
  rc.RECT
  rcPage.RECT
  chrg.CharacterRange
EndStructure

;-- NotifyHeader
Structure NotifyHeader
  hwndFrom.l
  idFrom.l
  code.l
EndStructure

;-- SCNotification
;     Structure SCNotification
;      nmhdr.NotifyHeader
;      position.l
;      ch.l
;      modifiers.l
;      modificationType.l
;      text.l
;      length.l
;      linesAdded.l
;      message.l
;      wParam.l
;      lParam.l
;      line.l
;      foldLevelNow.l
;      foldLevelPrev.l
;      margin.l
;      listType.l
;      x.l
;      y.l
;     EndStructure
;}



;- ** LIBRARY FUNCTIONS **

Global DLL_Scintilla.l = 0
Global DLL_Scintilla_hWnd.l = 0
Global DLL_Scintilla_Handle.l
Global DLL_Scintilla_Function.l

Procedure SciLexerInitDLL()
  If DLL_Scintilla = 0
    DLL_Scintilla = OpenLibrary(#PB_Any, "SciLexer.dll")
  EndIf
  ProcedureReturn DLL_Scintilla
EndProcedure

Procedure SciLexerFreeDLL()
  If DLL_Scintilla <> 0
    CloseLibrary(DLL_Scintilla)
    DLL_Scintilla = 0
  EndIf
EndProcedure

Procedure SciLexerUseGadget(hWndParent.l, x.l, y.l, width.l, height.l)
  If DLL_Scintilla_hWnd = 0
    DLL_Scintilla_hWnd = CreateWindowEx_(#WS_EX_CLIENTEDGE, "Scintilla", 0, #WS_CHILD | #WS_VISIBLE, x, y, width, height, hWndParent, 0, GetModuleHandle_(0), 0)
    DLL_Scintilla_Function = SendMessage_(DLL_Scintilla_hWnd, #SCI_GETDIRECTPOINTER, 0, 0)
    DLL_Scintilla_Handle = GetFunction(DLL_Scintilla, "Scintilla_DirectFunction")
  EndIf
  ProcedureReturn DLL_Scintilla_hWnd
EndProcedure

Procedure SciLexerFreeGadget()
  If DLL_Scintilla_hWnd <> 0
    DestroyWindow_(DLL_Scintilla_hWnd)
    DLL_Scintilla_hWnd = 0
  EndIf
EndProcedure

Macro SciLexer(m, p1 = 0, p2 = 0)
  CallFunctionFast(DLL_Scintilla_Handle, DLL_Scintilla_Function, m, p1, p2)
EndMacro




MacroEx.pb

Code: Select all

XIncludeFile "C:\DLL-SciLexer.pbi"


SciLexerInitDLL()
OpenWindow(0, 0, 0, 640, 480, "Scintilla Macro Example", #PB_Window_SystemMenu)
GetClientRect_(WindowID(0), rect.RECT)
SciLexerUseGadget(WindowID(0), 0, 0, rect\right, rect\bottom)

SciLexer(#SCI_STYLESETFONT, #STYLE_DEFAULT, @"Courier New")
SciLexer(#SCI_STYLESETSIZE, #STYLE_DEFAULT, 10)
SciLexer(#SCI_SETMARGINTYPEN, 0, #SC_MARGIN_NUMBER)
SciLexer(#SCI_SETMARGINWIDTHN, 0, 50)

running.l = #True
Repeat
  event.l = WaitWindowEvent()
  Select event
    Case #PB_Event_CloseWindow
      running = #False
  EndSelect
Until Not running
SciLexerFreeGadget()
SciLexerFreeDLL()
thefool
Always Here
Always Here
Posts: 5875
Joined: Sat Aug 30, 2003 5:58 pm
Location: Denmark

Post by thefool »

thanks :)
tomijan
Enthusiast
Enthusiast
Posts: 107
Joined: Sun Dec 11, 2005 1:32 pm

Post by tomijan »

Great!
That's what Im looking for!

thx for sharing
tom
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Post by ts-soft »

It is only for one ScintillaGadget?
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

is there any way to get this working in pb 3.94?
and more than 1 gadget?
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
Post Reply