]> git.saurik.com Git - wxWidgets.git/blob - contrib/src/stc/scintilla/include/Scintilla.h
Initial version of wxStyledTextCtrl, a Scintilla wrapper. There is
[wxWidgets.git] / contrib / 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_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
99
100 #define SCI_GETEOLMODE SCI_START + 30
101 #define SCI_SETEOLMODE SCI_START + 31
102
103 #define SC_EOL_CRLF 0
104 #define SC_EOL_CR 1
105 #define SC_EOL_LF 2
106
107 #define SCI_STARTSTYLING SCI_START + 32
108 #define SCI_SETSTYLING SCI_START + 33
109
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
114
115 #define MARKER_MAX 31
116
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
126
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
136
137 #define SC_MARKNUM_FOLDER 30
138 #define SC_MARKNUM_FOLDEROPEN 31
139
140 #define SC_MASK_FOLDERS ((1<<SC_MARKNUM_FOLDER) | (1<<SC_MARKNUM_FOLDEROPEN))
141
142 #define SC_MARGIN_SYMBOL 0
143 #define SC_MARGIN_NUMBER 1
144
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
153
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
159 #define STYLE_MAX 63
160
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
170
171 #define SCI_SETSELFORE SCI_START + 67
172 #define SCI_SETSELBACK SCI_START + 68
173 #define SCI_SETCARETFORE SCI_START + 69
174
175 #define SCI_ASSIGNCMDKEY SCI_START + 70
176 #define SCI_CLEARCMDKEY SCI_START + 71
177 #define SCI_CLEARALLCMDKEYS SCI_START + 72
178
179 #define SCI_SETSTYLINGEX SCI_START + 73
180
181 #define SCI_GETCARETPERIOD SCI_START + 75
182 #define SCI_SETCARETPERIOD SCI_START + 76
183 #define SCI_SETWORDCHARS SCI_START + 77
184
185 #define SCI_BEGINUNDOACTION SCI_START + 78
186 #define SCI_ENDUNDOACTION SCI_START + 79
187
188 #define INDIC_MAX 7
189
190 #define INDIC_PLAIN 0
191 #define INDIC_SQUIGGLE 1
192 #define INDIC_TT 2
193
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)
198
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
203
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
209
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
216
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
223
224 #define SC_FOLDLEVELBASE 0x400
225 #define SC_FOLDLEVELWHITEFLAG 0x1000
226 #define SC_FOLDLEVELHEADERFLAG 0x2000
227 #define SC_FOLDLEVELNUMBERMASK 0x0FFF
228
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
243
244 // Key messages
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
282
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
292
293 #define EDGE_NONE 0
294 #define EDGE_LINE 1
295 #define EDGE_BACKGROUND 2
296
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
303
304 #define SCI_SEARCHANCHOR SCI_START + 366
305 #define SCI_SEARCHNEXT SCI_START + 367
306 #define SCI_SEARCHPREV SCI_START + 368
307
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
312
313 #define SCI_SETCARETPOLICY SCI_START + 369
314
315 // GTK+ Specific
316 #define SCI_GRABFOCUS SCI_START + 400
317
318 // Optional module for macro recording
319 #ifdef MACRO_SUPPORT
320 typedef void (tMacroRecorder)(UINT iMessage, WPARAM wParam, LPARAM lParam,
321 void *userData);
322 #define SCI_STARTRECORD SCI_OPTIONAL_START + 1
323 #define SCI_STOPRECORD SCI_OPTIONAL_START + 2
324 #endif
325
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
331
332 // Notifications
333
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
345
346 #define SC_MODEVENTMASKALL 0x377
347
348 struct SCNotification {
349 NMHDR nmhdr;
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
357 #ifdef MACRO_SUPPORT
358 int message; // SCN_MACRORECORD
359 int wParam; // SCN_MACRORECORD
360 int lParam; // SCN_MACRORECORD
361 #endif
362 int line; // SCN_MODIFIED
363 int foldLevelNow; // SCN_MODIFIED
364 int foldLevelPrev; // SCN_MODIFIED
365 int margin; // SCN_MARGINCLICK
366 };
367
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:
374 #define SCN_KEY 2005
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
381 #ifdef MACRO_SUPPORT
382 #define SCN_MACRORECORD 2009
383 #endif
384 #define SCN_MARGINCLICK 2010
385 #define SCN_NEEDSHOWN 2011
386
387 #ifdef STATIC_BUILD
388 void Scintilla_RegisterClasses(HINSTANCE hInstance);
389 #endif
390
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
394
395 #ifdef INCLUDE_DEPRECATED_FEATURES
396
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
404
405 #define SCI_APPENDUNDOSTARTACTION SCI_START + 74
406
407 #define SC_UNDOCOLLECT_MANUALSTART 2
408
409 // Deprecated in release 1.22
410 #define SCI_SETMARGINWIDTH SCI_START + 34
411 #define SCI_SETLINENUMBERWIDTH SCI_START + 38
412
413 #endif
414
415 #endif