1 // Scintilla source code edit control
2 // Scintilla.h - interface to the edit control
3 // Copyright 1998-2000 by Neil Hodgson <neilh@scintilla.org>
4 // The License.txt file describes the conditions under which this software may be distributed.
9 // Compile-time configuration options
10 #define MACRO_SUPPORT 1 // Comment out to remove macro hooks
14 #include <gtk/gtkvbox.h>
20 #define SCINTILLA(obj) GTK_CHECK_CAST (obj, scintilla_get_type (), ScintillaObject)
21 #define SCINTILLA_CLASS(klass) GTK_CHECK_CLASS_CAS T (klass, scintilla_get_type (), ScintillaClass)
22 #define IS_SCINTILLA(obj) GTK_CHECK_TYPE (obj, scintilla_get_type ())
24 typedef struct _ScintillaObject ScintillaObject
;
25 typedef struct _ScintillaClass ScintillaClass
;
27 struct _ScintillaObject
33 struct _ScintillaClass
35 GtkFixedClass parent_class
;
37 void (* command
) (ScintillaObject
*ttt
);
38 void (* notify
) (ScintillaObject
*ttt
);
41 guint
scintilla_get_type (void);
42 GtkWidget
* scintilla_new (void);
43 void scintilla_set_id (ScintillaObject
*sci
,int id
);
44 long scintilla_send_message (ScintillaObject
*sci
,int iMessage
,int wParam
,int lParam
);
58 // Both GTK and Windows
60 #define INVALID_POSITION -1
62 // Define start of Scintilla messages to be greater than all edit (EM_*) messages
63 // as many EM_ messages can be used.
64 #define SCI_START 2000
65 #define SCI_OPTIONAL_START 3000
66 #define SCI_LEXER_START 4000
68 #define SCI_ADDTEXT SCI_START + 1
69 #define SCI_ADDSTYLEDTEXT SCI_START + 2
70 #define SCI_INSERTTEXT SCI_START + 3
71 #define SCI_CLEARALL SCI_START + 4
72 #define SCI_GETLENGTH SCI_START + 6
73 #define SCI_GETCHARAT SCI_START + 7
74 #define SCI_GETCURRENTPOS SCI_START + 8
75 #define SCI_GETANCHOR SCI_START + 9
76 #define SCI_GETSTYLEAT SCI_START + 10
78 #define SCI_REDO SCI_START + 11
79 #define SCI_SETUNDOCOLLECTION SCI_START + 12
80 #define SCI_SELECTALL SCI_START + 13
81 #define SCI_SETSAVEPOINT SCI_START + 14
82 #define SCI_GETSTYLEDTEXT SCI_START + 15
83 #define SCI_CANREDO SCI_START + 16
84 #define SCI_MARKERLINEFROMHANDLE SCI_START + 17
85 #define SCI_MARKERDELETEHANDLE SCI_START + 18
87 #define SC_UNDOCOLLECT_NONE 0
88 #define SC_UNDOCOLLECT_AUTOSTART 1
90 #define SCI_GETVIEWWS SCI_START + 20
91 #define SCI_SETVIEWWS SCI_START + 21
92 #define SCI_CHANGEPOSITION SCI_START + 22
93 #define SCI_GOTOLINE SCI_START + 24
94 #define SCI_GOTOPOS SCI_START + 25
95 #define SCI_SETANCHOR SCI_START + 26
96 #define SCI_GETCURLINE SCI_START + 27
97 #define SCI_GETENDSTYLED SCI_START + 28
98 #define SCI_CONVERTEOLS SCI_START + 29
100 #define SCI_GETEOLMODE SCI_START + 30
101 #define SCI_SETEOLMODE SCI_START + 31
103 #define SC_EOL_CRLF 0
107 #define SCI_STARTSTYLING SCI_START + 32
108 #define SCI_SETSTYLING SCI_START + 33
110 #define SCI_SETBUFFEREDDRAW SCI_START + 35
111 #define SCI_SETTABWIDTH SCI_START + 36
112 #define SCI_SETCODEPAGE SCI_START + 37
113 #define SCI_SETUSEPALETTE SCI_START + 39
115 #define MARKER_MAX 31
117 #define SC_MARK_CIRCLE 0
118 #define SC_MARK_ROUNDRECT 1
119 #define SC_MARK_ARROW 2
120 #define SC_MARK_SMALLRECT 3
121 #define SC_MARK_SHORTARROW 4
122 #define SC_MARK_EMPTY 5
123 #define SC_MARK_ARROWDOWN 6
124 #define SC_MARK_MINUS 7
125 #define SC_MARK_PLUS 8
127 #define SCI_MARKERDEFINE SCI_START + 40
128 #define SCI_MARKERSETFORE SCI_START + 41
129 #define SCI_MARKERSETBACK SCI_START + 42
130 #define SCI_MARKERADD SCI_START + 43
131 #define SCI_MARKERDELETE SCI_START + 44
132 #define SCI_MARKERDELETEALL SCI_START + 45
133 #define SCI_MARKERGET SCI_START + 46
134 #define SCI_MARKERNEXT SCI_START + 47
135 #define SCI_MARKERPREVIOUS SCI_START + 48
137 #define SC_MARKNUM_FOLDER 30
138 #define SC_MARKNUM_FOLDEROPEN 31
140 #define SC_MASK_FOLDERS ((1<<SC_MARKNUM_FOLDER) | (1<<SC_MARKNUM_FOLDEROPEN))
142 #define SC_MARGIN_SYMBOL 0
143 #define SC_MARGIN_NUMBER 1
145 #define SCI_SETMARGINTYPEN SCI_START + 240
146 #define SCI_GETMARGINTYPEN SCI_START + 241
147 #define SCI_SETMARGINWIDTHN SCI_START + 242
148 #define SCI_GETMARGINWIDTHN SCI_START + 243
149 #define SCI_SETMARGINMASKN SCI_START + 244
150 #define SCI_GETMARGINMASKN SCI_START + 245
151 #define SCI_SETMARGINSENSITIVEN SCI_START + 246
152 #define SCI_GETMARGINSENSITIVEN SCI_START + 247
154 #define STYLE_DEFAULT 32
155 #define STYLE_LINENUMBER 33
156 #define STYLE_BRACELIGHT 34
157 #define STYLE_BRACEBAD 35
158 #define STYLE_CONTROLCHAR 36
161 #define SCI_STYLECLEARALL SCI_START + 50
162 #define SCI_STYLESETFORE SCI_START + 51
163 #define SCI_STYLESETBACK SCI_START + 52
164 #define SCI_STYLESETBOLD SCI_START + 53
165 #define SCI_STYLESETITALIC SCI_START + 54
166 #define SCI_STYLESETSIZE SCI_START + 55
167 #define SCI_STYLESETFONT SCI_START + 56
168 #define SCI_STYLESETEOLFILLED SCI_START + 57
169 #define SCI_STYLERESETDEFAULT SCI_START + 58
171 #define SCI_SETSELFORE SCI_START + 67
172 #define SCI_SETSELBACK SCI_START + 68
173 #define SCI_SETCARETFORE SCI_START + 69
175 #define SCI_ASSIGNCMDKEY SCI_START + 70
176 #define SCI_CLEARCMDKEY SCI_START + 71
177 #define SCI_CLEARALLCMDKEYS SCI_START + 72
179 #define SCI_SETSTYLINGEX SCI_START + 73
181 #define SCI_GETCARETPERIOD SCI_START + 75
182 #define SCI_SETCARETPERIOD SCI_START + 76
183 #define SCI_SETWORDCHARS SCI_START + 77
185 #define SCI_BEGINUNDOACTION SCI_START + 78
186 #define SCI_ENDUNDOACTION SCI_START + 79
190 #define INDIC_PLAIN 0
191 #define INDIC_SQUIGGLE 1
194 #define INDIC0_MASK 32
195 #define INDIC1_MASK 64
196 #define INDIC2_MASK 128
197 #define INDICS_MASK (INDIC0_MASK | INDIC1_MASK | INDIC2_MASK)
199 #define SCI_INDICSETSTYLE SCI_START + 80
200 #define SCI_INDICGETSTYLE SCI_START + 81
201 #define SCI_INDICSETFORE SCI_START + 82
202 #define SCI_INDICGETFORE SCI_START + 83
204 #define SCI_SETSTYLEBITS SCI_START + 90
205 #define SCI_GETSTYLEBITS SCI_START + 91
206 #define SCI_SETLINESTATE SCI_START + 92
207 #define SCI_GETLINESTATE SCI_START + 93
208 #define SCI_GETMAXLINESTATE SCI_START + 94
210 #define SCI_AUTOCSHOW SCI_START + 100
211 #define SCI_AUTOCCANCEL SCI_START + 101
212 #define SCI_AUTOCACTIVE SCI_START + 102
213 #define SCI_AUTOCPOSSTART SCI_START + 103
214 #define SCI_AUTOCCOMPLETE SCI_START + 104
215 #define SCI_AUTOCSTOPS SCI_START + 105
217 #define SCI_CALLTIPSHOW SCI_START + 200
218 #define SCI_CALLTIPCANCEL SCI_START + 201
219 #define SCI_CALLTIPACTIVE SCI_START + 202
220 #define SCI_CALLTIPPOSSTART SCI_START + 203
221 #define SCI_CALLTIPSETHLT SCI_START + 204
222 #define SCI_CALLTIPSETBACK SCI_START + 205
224 #define SC_FOLDLEVELBASE 0x400
225 #define SC_FOLDLEVELWHITEFLAG 0x1000
226 #define SC_FOLDLEVELHEADERFLAG 0x2000
227 #define SC_FOLDLEVELNUMBERMASK 0x0FFF
229 #define SCI_VISIBLEFROMDOCLINE SCI_START + 220
230 #define SCI_DOCLINEFROMVISIBLE SCI_START + 221
231 #define SCI_SETFOLDLEVEL SCI_START + 222
232 #define SCI_GETFOLDLEVEL SCI_START + 223
233 #define SCI_GETLASTCHILD SCI_START + 224
234 #define SCI_GETFOLDPARENT SCI_START + 225
235 #define SCI_SHOWLINES SCI_START + 226
236 #define SCI_HIDELINES SCI_START + 227
237 #define SCI_GETLINEVISIBLE SCI_START + 228
238 #define SCI_SETFOLDEXPANDED SCI_START + 229
239 #define SCI_GETFOLDEXPANDED SCI_START + 230
240 #define SCI_TOGGLEFOLD SCI_START + 231
241 #define SCI_ENSUREVISIBLE SCI_START + 232
242 #define SCI_SETFOLDFLAGS SCI_START + 233
245 #define SCI_LINEDOWN SCI_START + 300
246 #define SCI_LINEDOWNEXTEND SCI_START + 301
247 #define SCI_LINEUP SCI_START + 302
248 #define SCI_LINEUPEXTEND SCI_START + 303
249 #define SCI_CHARLEFT SCI_START + 304
250 #define SCI_CHARLEFTEXTEND SCI_START + 305
251 #define SCI_CHARRIGHT SCI_START + 306
252 #define SCI_CHARRIGHTEXTEND SCI_START + 307
253 #define SCI_WORDLEFT SCI_START + 308
254 #define SCI_WORDLEFTEXTEND SCI_START + 309
255 #define SCI_WORDRIGHT SCI_START + 310
256 #define SCI_WORDRIGHTEXTEND SCI_START + 311
257 #define SCI_HOME SCI_START + 312
258 #define SCI_HOMEEXTEND SCI_START + 313
259 #define SCI_LINEEND SCI_START + 314
260 #define SCI_LINEENDEXTEND SCI_START + 315
261 #define SCI_DOCUMENTSTART SCI_START + 316
262 #define SCI_DOCUMENTSTARTEXTEND SCI_START + 317
263 #define SCI_DOCUMENTEND SCI_START + 318
264 #define SCI_DOCUMENTENDEXTEND SCI_START + 319
265 #define SCI_PAGEUP SCI_START + 320
266 #define SCI_PAGEUPEXTEND SCI_START + 321
267 #define SCI_PAGEDOWN SCI_START + 322
268 #define SCI_PAGEDOWNEXTEND SCI_START + 323
269 #define SCI_EDITTOGGLEOVERTYPE SCI_START + 324
270 #define SCI_CANCEL SCI_START + 325
271 #define SCI_DELETEBACK SCI_START + 326
272 #define SCI_TAB SCI_START + 327
273 #define SCI_BACKTAB SCI_START + 328
274 #define SCI_NEWLINE SCI_START + 329
275 #define SCI_FORMFEED SCI_START + 330
276 #define SCI_VCHOME SCI_START + 331
277 #define SCI_VCHOMEEXTEND SCI_START + 332
278 #define SCI_ZOOMIN SCI_START + 333
279 #define SCI_ZOOMOUT SCI_START + 334
280 #define SCI_DELWORDLEFT SCI_START + 335
281 #define SCI_DELWORDRIGHT SCI_START + 336
283 #define SCI_LINELENGTH SCI_START + 350
284 #define SCI_BRACEHIGHLIGHT SCI_START + 351
285 #define SCI_BRACEBADLIGHT SCI_START + 352
286 #define SCI_BRACEMATCH SCI_START + 353
287 #define SCI_GETVIEWEOL SCI_START + 355
288 #define SCI_SETVIEWEOL SCI_START + 356
289 #define SCI_GETDOCPOINTER SCI_START + 357
290 #define SCI_SETDOCPOINTER SCI_START + 358
291 #define SCI_SETMODEVENTMASK SCI_START + 359
295 #define EDGE_BACKGROUND 2
297 #define SCI_GETEDGECOLUMN SCI_START + 360
298 #define SCI_SETEDGECOLUMN SCI_START + 361
299 #define SCI_GETEDGEMODE SCI_START + 362
300 #define SCI_SETEDGEMODE SCI_START + 363
301 #define SCI_GETEDGECOLOUR SCI_START + 364
302 #define SCI_SETEDGECOLOUR SCI_START + 365
304 #define SCI_SEARCHANCHOR SCI_START + 366
305 #define SCI_SEARCHNEXT SCI_START + 367
306 #define SCI_SEARCHPREV SCI_START + 368
308 #define CARET_SLOP 0x01 // Show caret within N lines of edge when it's scrolled to view
309 #define CARET_CENTER 0x02 // Center caret on screen when it's scrolled to view
310 #define CARET_STRICT 0x04 // OR this with CARET_CENTER to reposition even when visible, or
311 // OR this with CARET_SLOP to reposition whenever outside slop border
313 #define SCI_SETCARETPOLICY SCI_START + 369
316 #define SCI_GRABFOCUS SCI_START + 400
318 // Optional module for macro recording
320 typedef void (tMacroRecorder
)(UINT iMessage
, WPARAM wParam
, LPARAM lParam
,
322 #define SCI_STARTRECORD SCI_OPTIONAL_START + 1
323 #define SCI_STOPRECORD SCI_OPTIONAL_START + 2
326 #define SCI_SETLEXER SCI_LEXER_START + 1
327 #define SCI_GETLEXER SCI_LEXER_START + 2
328 #define SCI_COLOURISE SCI_LEXER_START + 3
329 #define SCI_SETPROPERTY SCI_LEXER_START + 4
330 #define SCI_SETKEYWORDS SCI_LEXER_START + 5
334 // Type of modification and the action which caused the modification
335 // These are defined as a bit mask to make it easy to specify which notifications are wanted.
336 // One bit is set from each of SC_MOD_* and SC_PERFORMED_*.
337 #define SC_MOD_INSERTTEXT 0x1
338 #define SC_MOD_DELETETEXT 0x2
339 #define SC_MOD_CHANGESTYLE 0x4
340 #define SC_MOD_CHANGEFOLD 0x8
341 #define SC_PERFORMED_USER 0x10
342 #define SC_PERFORMED_UNDO 0x20
343 #define SC_PERFORMED_REDO 0x40
344 #define SC_LASTSTEPINUNDOREDO 0x100
346 #define SC_MODEVENTMASKALL 0x377
348 struct SCNotification
{
350 int position
; // SCN_STYLENEEDED, SCN_MODIFIED
351 int ch
; // SCN_CHARADDED, SCN_KEY
352 int modifiers
; // SCN_KEY
353 int modificationType
; // SCN_MODIFIED
354 const char *text
; // SCN_MODIFIED
355 int length
; // SCN_MODIFIED
356 int linesAdded
; // SCN_MODIFIED
358 int message
; // SCN_MACRORECORD
359 int wParam
; // SCN_MACRORECORD
360 int lParam
; // SCN_MACRORECORD
362 int line
; // SCN_MODIFIED
363 int foldLevelNow
; // SCN_MODIFIED
364 int foldLevelPrev
; // SCN_MODIFIED
365 int margin
; // SCN_MARGINCLICK
368 #define SCN_STYLENEEDED 2000
369 #define SCN_CHARADDED 2001
370 #define SCN_SAVEPOINTREACHED 2002
371 #define SCN_SAVEPOINTLEFT 2003
372 #define SCN_MODIFYATTEMPTRO 2004
373 // GTK+ Specific to work around focus and accelerator problems:
375 #define SCN_DOUBLECLICK 2006
376 #define SCN_UPDATEUI 2007
377 // The old name for SCN_UPDATEUI:
378 #define SCN_CHECKBRACE 2007
379 #define SCN_MODIFIED 2008
380 // Optional module for macro recording
382 #define SCN_MACRORECORD 2009
384 #define SCN_MARGINCLICK 2010
385 #define SCN_NEEDSHOWN 2011
388 void Scintilla_RegisterClasses(HINSTANCE hInstance
);
391 // Deprecation section listing all API features that are deprecated and will
392 // will be removed completely in a future version.
393 // To enable these features define INCLUDE_DEPRECATED_FEATURES
395 #ifdef INCLUDE_DEPRECATED_FEATURES
397 // Default style settings. These are deprecated and will be removed in a future version.
398 #define SCI_SETFORE SCI_START + 60
399 #define SCI_SETBACK SCI_START + 61
400 #define SCI_SETBOLD SCI_START + 62
401 #define SCI_SETITALIC SCI_START + 63
402 #define SCI_SETSIZE SCI_START + 64
403 #define SCI_SETFONT SCI_START + 65
405 #define SCI_APPENDUNDOSTARTACTION SCI_START + 74
407 #define SC_UNDOCOLLECT_MANUALSTART 2
409 // Deprecated in release 1.22
410 #define SCI_SETMARGINWIDTH SCI_START + 34
411 #define SCI_SETLINENUMBERWIDTH SCI_START + 38