]> git.saurik.com Git - wxWidgets.git/blob - src/stc/scintilla/include/Scintilla.h
Fix gtk+ 1.2 compilation...
[wxWidgets.git] / src / stc / scintilla / include / Scintilla.h
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.
5
6 #ifndef SCINTILLA_H
7 #define SCINTILLA_H
8
9 // Compile-time configuration options
10 #define MACRO_SUPPORT 1 // Comment out to remove macro hooks
11
12 #if PLAT_GTK
13 #include <gdk/gdk.h>
14 #include <gtk/gtkvbox.h>
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
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 ())
23
24 typedef struct _ScintillaObject ScintillaObject;
25 typedef struct _ScintillaClass ScintillaClass;
26
27 struct _ScintillaObject
28 {
29 GtkFixed vbox;
30 void *pscin;
31 };
32
33 struct _ScintillaClass
34 {
35 GtkFixedClass parent_class;
36
37 void (* command) (ScintillaObject *ttt);
38 void (* notify) (ScintillaObject *ttt);
39 };
40
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);
45
46 #include "WinDefs.h"
47
48 #ifdef __cplusplus
49 }
50 #endif
51
52 #endif
53
54 #if PLAT_WX
55 #include "WinDefs.h"
56 #endif
57
58 // Both GTK and Windows
59
60 #define INVALID_POSITION -1
61
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
67
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
77
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
86
87 #define SC_UNDOCOLLECT_NONE 0
88 #define SC_UNDOCOLLECT_AUTOSTART 1
89
90 #define SCI_GETVIEWWS SCI_START + 20
91 #define SCI_SETVIEWWS SCI_START + 21
92 #define SCI_GOTOLINE SCI_START + 24
93 #define SCI_GOTOPOS SCI_START + 25
94 #define SCI_SETANCHOR SCI_START + 26
95 #define SCI_GETCURLINE SCI_START + 27
96 #define SCI_GETENDSTYLED SCI_START + 28
97 #define SCI_CONVERTEOLS SCI_START + 29
98
99 #define SCI_GETEOLMODE SCI_START + 30
100 #define SCI_SETEOLMODE SCI_START + 31
101
102 #define SC_EOL_CRLF 0
103 #define SC_EOL_CR 1
104 #define SC_EOL_LF 2
105
106 #define SCI_STARTSTYLING SCI_START + 32
107 #define SCI_SETSTYLING SCI_START + 33
108
109 // This is the same value as CP_UTF8 in Windows
110 #define SC_CP_UTF8 65001
111
112 #define SCI_SETBUFFEREDDRAW SCI_START + 35
113 #define SCI_SETTABWIDTH SCI_START + 36
114 #define SCI_SETCODEPAGE SCI_START + 37
115 #define SCI_SETUSEPALETTE SCI_START + 39
116
117 #define MARKER_MAX 31
118
119 #define SC_MARK_CIRCLE 0
120 #define SC_MARK_ROUNDRECT 1
121 #define SC_MARK_ARROW 2
122 #define SC_MARK_SMALLRECT 3
123 #define SC_MARK_SHORTARROW 4
124 #define SC_MARK_EMPTY 5
125 #define SC_MARK_ARROWDOWN 6
126 #define SC_MARK_MINUS 7
127 #define SC_MARK_PLUS 8
128
129 #define SCI_MARKERDEFINE SCI_START + 40
130 #define SCI_MARKERSETFORE SCI_START + 41
131 #define SCI_MARKERSETBACK SCI_START + 42
132 #define SCI_MARKERADD SCI_START + 43
133 #define SCI_MARKERDELETE SCI_START + 44
134 #define SCI_MARKERDELETEALL SCI_START + 45
135 #define SCI_MARKERGET SCI_START + 46
136 #define SCI_MARKERNEXT SCI_START + 47
137 #define SCI_MARKERPREVIOUS SCI_START + 48
138
139 #define SC_MARKNUM_FOLDER 30
140 #define SC_MARKNUM_FOLDEROPEN 31
141
142 #define SC_MASK_FOLDERS ((1<<SC_MARKNUM_FOLDER) | (1<<SC_MARKNUM_FOLDEROPEN))
143
144 #define SC_MARGIN_SYMBOL 0
145 #define SC_MARGIN_NUMBER 1
146
147 #define SCI_SETMARGINTYPEN SCI_START + 240
148 #define SCI_GETMARGINTYPEN SCI_START + 241
149 #define SCI_SETMARGINWIDTHN SCI_START + 242
150 #define SCI_GETMARGINWIDTHN SCI_START + 243
151 #define SCI_SETMARGINMASKN SCI_START + 244
152 #define SCI_GETMARGINMASKN SCI_START + 245
153 #define SCI_SETMARGINSENSITIVEN SCI_START + 246
154 #define SCI_GETMARGINSENSITIVEN SCI_START + 247
155
156 #define STYLE_DEFAULT 32
157 #define STYLE_LINENUMBER 33
158 #define STYLE_BRACELIGHT 34
159 #define STYLE_BRACEBAD 35
160 #define STYLE_CONTROLCHAR 36
161 #define STYLE_MAX 127
162
163 #define SC_CHARSET_ANSI 0
164 #define SC_CHARSET_DEFAULT 1
165 #define SC_CHARSET_RUSSIAN 204
166
167 #define SCI_STYLECLEARALL SCI_START + 50
168 #define SCI_STYLESETFORE SCI_START + 51
169 #define SCI_STYLESETBACK SCI_START + 52
170 #define SCI_STYLESETBOLD SCI_START + 53
171 #define SCI_STYLESETITALIC SCI_START + 54
172 #define SCI_STYLESETSIZE SCI_START + 55
173 #define SCI_STYLESETFONT SCI_START + 56
174 #define SCI_STYLESETEOLFILLED SCI_START + 57
175 #define SCI_STYLERESETDEFAULT SCI_START + 58
176 #define SCI_STYLESETUNDERLINE SCI_START + 59
177 #define SCI_STYLESETCHARACTERSET SCI_START + 66
178
179 #define SCI_SETSELFORE SCI_START + 67
180 #define SCI_SETSELBACK SCI_START + 68
181 #define SCI_SETCARETFORE SCI_START + 69
182
183 #define SCI_ASSIGNCMDKEY SCI_START + 70
184 #define SCI_CLEARCMDKEY SCI_START + 71
185 #define SCI_CLEARALLCMDKEYS SCI_START + 72
186
187 #define SCI_SETSTYLINGEX SCI_START + 73
188
189 #define SCI_GETCARETPERIOD SCI_START + 75
190 #define SCI_SETCARETPERIOD SCI_START + 76
191 #define SCI_SETWORDCHARS SCI_START + 77
192
193 #define SCI_BEGINUNDOACTION SCI_START + 78
194 #define SCI_ENDUNDOACTION SCI_START + 79
195
196 #define INDIC_MAX 7
197
198 #define INDIC_PLAIN 0
199 #define INDIC_SQUIGGLE 1
200 #define INDIC_TT 2
201 #define INDIC_DIAGONAL 3
202 #define INDIC_STRIKE 4
203
204 #define INDIC0_MASK 32
205 #define INDIC1_MASK 64
206 #define INDIC2_MASK 128
207 #define INDICS_MASK (INDIC0_MASK | INDIC1_MASK | INDIC2_MASK)
208
209 #define SCI_INDICSETSTYLE SCI_START + 80
210 #define SCI_INDICGETSTYLE SCI_START + 81
211 #define SCI_INDICSETFORE SCI_START + 82
212 #define SCI_INDICGETFORE SCI_START + 83
213
214 #define SCI_SETSTYLEBITS SCI_START + 90
215 #define SCI_GETSTYLEBITS SCI_START + 91
216 #define SCI_SETLINESTATE SCI_START + 92
217 #define SCI_GETLINESTATE SCI_START + 93
218 #define SCI_GETMAXLINESTATE SCI_START + 94
219
220 #define SCI_AUTOCSHOW SCI_START + 100
221 #define SCI_AUTOCCANCEL SCI_START + 101
222 #define SCI_AUTOCACTIVE SCI_START + 102
223 #define SCI_AUTOCPOSSTART SCI_START + 103
224 #define SCI_AUTOCCOMPLETE SCI_START + 104
225 #define SCI_AUTOCSTOPS SCI_START + 105
226 #define SCI_AUTOCSETSEPARATOR SCI_START + 106
227 #define SCI_AUTOCGETSEPARATOR SCI_START + 107
228 #define SCI_AUTOCSELECT SCI_START + 108
229
230 #define SCI_GETTABWIDTH SCI_START + 121
231 #define SCI_SETINDENT SCI_START + 122
232 #define SCI_GETINDENT SCI_START + 123
233 #define SCI_SETUSETABS SCI_START + 124
234 #define SCI_GETUSETABS SCI_START + 125
235 #define SCI_SETLINEINDENTATION SCI_START + 126
236 #define SCI_GETLINEINDENTATION SCI_START + 127
237 #define SCI_GETLINEINDENTPOSITION SCI_START + 128
238
239 #define SCI_SETHSCROLLBAR SCI_START + 130
240 #define SCI_GETHSCROLLBAR SCI_START + 131
241
242 #define SCI_CALLTIPSHOW SCI_START + 200
243 #define SCI_CALLTIPCANCEL SCI_START + 201
244 #define SCI_CALLTIPACTIVE SCI_START + 202
245 #define SCI_CALLTIPPOSSTART SCI_START + 203
246 #define SCI_CALLTIPSETHLT SCI_START + 204
247 #define SCI_CALLTIPSETBACK SCI_START + 205
248
249 #define SC_FOLDLEVELBASE 0x400
250 #define SC_FOLDLEVELWHITEFLAG 0x1000
251 #define SC_FOLDLEVELHEADERFLAG 0x2000
252 #define SC_FOLDLEVELNUMBERMASK 0x0FFF
253
254 #define SCI_VISIBLEFROMDOCLINE SCI_START + 220
255 #define SCI_DOCLINEFROMVISIBLE SCI_START + 221
256 #define SCI_SETFOLDLEVEL SCI_START + 222
257 #define SCI_GETFOLDLEVEL SCI_START + 223
258 #define SCI_GETLASTCHILD SCI_START + 224
259 #define SCI_GETFOLDPARENT SCI_START + 225
260 #define SCI_SHOWLINES SCI_START + 226
261 #define SCI_HIDELINES SCI_START + 227
262 #define SCI_GETLINEVISIBLE SCI_START + 228
263 #define SCI_SETFOLDEXPANDED SCI_START + 229
264 #define SCI_GETFOLDEXPANDED SCI_START + 230
265 #define SCI_TOGGLEFOLD SCI_START + 231
266 #define SCI_ENSUREVISIBLE SCI_START + 232
267 #define SCI_SETFOLDFLAGS SCI_START + 233
268
269 // Key messages
270 #define SCI_LINEDOWN SCI_START + 300
271 #define SCI_LINEDOWNEXTEND SCI_START + 301
272 #define SCI_LINEUP SCI_START + 302
273 #define SCI_LINEUPEXTEND SCI_START + 303
274 #define SCI_CHARLEFT SCI_START + 304
275 #define SCI_CHARLEFTEXTEND SCI_START + 305
276 #define SCI_CHARRIGHT SCI_START + 306
277 #define SCI_CHARRIGHTEXTEND SCI_START + 307
278 #define SCI_WORDLEFT SCI_START + 308
279 #define SCI_WORDLEFTEXTEND SCI_START + 309
280 #define SCI_WORDRIGHT SCI_START + 310
281 #define SCI_WORDRIGHTEXTEND SCI_START + 311
282 #define SCI_HOME SCI_START + 312
283 #define SCI_HOMEEXTEND SCI_START + 313
284 #define SCI_LINEEND SCI_START + 314
285 #define SCI_LINEENDEXTEND SCI_START + 315
286 #define SCI_DOCUMENTSTART SCI_START + 316
287 #define SCI_DOCUMENTSTARTEXTEND SCI_START + 317
288 #define SCI_DOCUMENTEND SCI_START + 318
289 #define SCI_DOCUMENTENDEXTEND SCI_START + 319
290 #define SCI_PAGEUP SCI_START + 320
291 #define SCI_PAGEUPEXTEND SCI_START + 321
292 #define SCI_PAGEDOWN SCI_START + 322
293 #define SCI_PAGEDOWNEXTEND SCI_START + 323
294 #define SCI_EDITTOGGLEOVERTYPE SCI_START + 324
295 #define SCI_CANCEL SCI_START + 325
296 #define SCI_DELETEBACK SCI_START + 326
297 #define SCI_TAB SCI_START + 327
298 #define SCI_BACKTAB SCI_START + 328
299 #define SCI_NEWLINE SCI_START + 329
300 #define SCI_FORMFEED SCI_START + 330
301 #define SCI_VCHOME SCI_START + 331
302 #define SCI_VCHOMEEXTEND SCI_START + 332
303 #define SCI_ZOOMIN SCI_START + 333
304 #define SCI_ZOOMOUT SCI_START + 334
305 #define SCI_DELWORDLEFT SCI_START + 335
306 #define SCI_DELWORDRIGHT SCI_START + 336
307 #define SCI_LINECUT SCI_START + 337
308 #define SCI_LINEDELETE SCI_START + 338
309 #define SCI_LINETRANSPOSE SCI_START + 339
310 #define SCI_LOWERCASE SCI_START + 340
311 #define SCI_UPPERCASE SCI_START + 341
312 #define SCI_LINESCROLLDOWN SCI_START + 342
313 #define SCI_LINESCROLLUP SCI_START + 343
314
315 #define SCI_LINELENGTH SCI_START + 350
316 #define SCI_BRACEHIGHLIGHT SCI_START + 351
317 #define SCI_BRACEBADLIGHT SCI_START + 352
318 #define SCI_BRACEMATCH SCI_START + 353
319 #define SCI_GETVIEWEOL SCI_START + 355
320 #define SCI_SETVIEWEOL SCI_START + 356
321 #define SCI_GETDOCPOINTER SCI_START + 357
322 #define SCI_SETDOCPOINTER SCI_START + 358
323 #define SCI_SETMODEVENTMASK SCI_START + 359
324
325 #define EDGE_NONE 0
326 #define EDGE_LINE 1
327 #define EDGE_BACKGROUND 2
328
329 #define SCI_GETEDGECOLUMN SCI_START + 360
330 #define SCI_SETEDGECOLUMN SCI_START + 361
331 #define SCI_GETEDGEMODE SCI_START + 362
332 #define SCI_SETEDGEMODE SCI_START + 363
333 #define SCI_GETEDGECOLOUR SCI_START + 364
334 #define SCI_SETEDGECOLOUR SCI_START + 365
335
336 #define SCI_SEARCHANCHOR SCI_START + 366
337 #define SCI_SEARCHNEXT SCI_START + 367
338 #define SCI_SEARCHPREV SCI_START + 368
339
340 #define CARET_SLOP 0x01 // Show caret within N lines of edge when it's scrolled to view
341 #define CARET_CENTER 0x02 // Center caret on screen when it's scrolled to view
342 #define CARET_STRICT 0x04 // OR this with CARET_CENTER to reposition even when visible, or
343 // OR this with CARET_SLOP to reposition whenever outside slop border
344
345 #define SCI_SETCARETPOLICY SCI_START + 369
346 #define SCI_LINESONSCREEN SCI_START + 370
347 #define SCI_USEPOPUP SCI_START + 371
348 #define SCI_SELECTIONISRECTANGLE SCI_START + 372
349 #define SCI_SETZOOM SCI_START + 373
350 #define SCI_GETZOOM SCI_START + 374
351
352 #define SCI_ADDREFDOC SCI_START + 375
353 #define SCI_RELEASEDOC SCI_START + 376
354
355 // GTK+ Specific
356 #define SCI_GRABFOCUS SCI_START + 400
357
358 // Optional module for macro recording
359 #ifdef MACRO_SUPPORT
360 typedef void (tMacroRecorder)(UINT iMessage, WPARAM wParam, LPARAM lParam,
361 void *userData);
362 #define SCI_STARTRECORD SCI_OPTIONAL_START + 1
363 #define SCI_STOPRECORD SCI_OPTIONAL_START + 2
364 #endif
365
366 #define SCI_SETLEXER SCI_LEXER_START + 1
367 #define SCI_GETLEXER SCI_LEXER_START + 2
368 #define SCI_COLOURISE SCI_LEXER_START + 3
369 #define SCI_SETPROPERTY SCI_LEXER_START + 4
370 #define SCI_SETKEYWORDS SCI_LEXER_START + 5
371
372 // Notifications
373
374 // Type of modification and the action which caused the modification
375 // These are defined as a bit mask to make it easy to specify which notifications are wanted.
376 // One bit is set from each of SC_MOD_* and SC_PERFORMED_*.
377 #define SC_MOD_INSERTTEXT 0x1
378 #define SC_MOD_DELETETEXT 0x2
379 #define SC_MOD_CHANGESTYLE 0x4
380 #define SC_MOD_CHANGEFOLD 0x8
381 #define SC_PERFORMED_USER 0x10
382 #define SC_PERFORMED_UNDO 0x20
383 #define SC_PERFORMED_REDO 0x40
384 #define SC_LASTSTEPINUNDOREDO 0x100
385 #define SC_MOD_CHANGEMARKER 0x200
386 #define SC_MOD_BEFOREINSERT 0x400
387 #define SC_MOD_BEFOREDELETE 0x800
388
389 #define SC_MODEVENTMASKALL 0xF77
390
391 struct SCNotification {
392 NMHDR nmhdr;
393 int position; // SCN_STYLENEEDED, SCN_MODIFIED
394 int ch; // SCN_CHARADDED, SCN_KEY
395 int modifiers; // SCN_KEY
396 int modificationType; // SCN_MODIFIED
397 const char *text; // SCN_MODIFIED
398 int length; // SCN_MODIFIED
399 int linesAdded; // SCN_MODIFIED
400 #ifdef MACRO_SUPPORT
401 int message; // SCN_MACRORECORD
402 int wParam; // SCN_MACRORECORD
403 int lParam; // SCN_MACRORECORD
404 #endif
405 int line; // SCN_MODIFIED
406 int foldLevelNow; // SCN_MODIFIED
407 int foldLevelPrev; // SCN_MODIFIED
408 int margin; // SCN_MARGINCLICK
409 };
410
411 #define SCN_STYLENEEDED 2000
412 #define SCN_CHARADDED 2001
413 #define SCN_SAVEPOINTREACHED 2002
414 #define SCN_SAVEPOINTLEFT 2003
415 #define SCN_MODIFYATTEMPTRO 2004
416 // GTK+ Specific to work around focus and accelerator problems:
417 #define SCN_KEY 2005
418 #define SCN_DOUBLECLICK 2006
419 #define SCN_UPDATEUI 2007
420 // The old name for SCN_UPDATEUI:
421 #define SCN_CHECKBRACE 2007
422 #define SCN_MODIFIED 2008
423 // Optional module for macro recording
424 #ifdef MACRO_SUPPORT
425 #define SCN_MACRORECORD 2009
426 #endif
427 #define SCN_MARGINCLICK 2010
428 #define SCN_NEEDSHOWN 2011
429
430 #ifdef STATIC_BUILD
431 void Scintilla_RegisterClasses(HINSTANCE hInstance);
432 #endif
433
434 // Deprecation section listing all API features that are deprecated and will
435 // will be removed completely in a future version.
436 // To enable these features define INCLUDE_DEPRECATED_FEATURES
437
438 #ifdef INCLUDE_DEPRECATED_FEATURES
439
440 #define SCI_CHANGEPOSITION SCI_START + 22
441
442 // Default style settings. These are deprecated and will be removed in a future version.
443 #define SCI_SETFORE SCI_START + 60
444 #define SCI_SETBACK SCI_START + 61
445 #define SCI_SETBOLD SCI_START + 62
446 #define SCI_SETITALIC SCI_START + 63
447 #define SCI_SETSIZE SCI_START + 64
448 #define SCI_SETFONT SCI_START + 65
449
450 #define SCI_APPENDUNDOSTARTACTION SCI_START + 74
451
452 #define SC_UNDOCOLLECT_MANUALSTART 2
453
454 // Deprecated in release 1.22
455 #define SCI_SETMARGINWIDTH SCI_START + 34
456 #define SCI_SETLINENUMBERWIDTH SCI_START + 38
457
458 #endif
459
460 #endif