]> git.saurik.com Git - wxWidgets.git/blame - src/stc/scintilla/include/Scintilla.h
Reformatting.
[wxWidgets.git] / src / stc / scintilla / include / Scintilla.h
CommitLineData
9ce192d4
RD
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
17extern "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
9ce192d4
RD
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
f6bcfd97
BP
109// This is the same value as CP_UTF8 in Windows
110#define SC_CP_UTF8 65001
111
9ce192d4
RD
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
f6bcfd97
BP
161#define STYLE_MAX 127
162
163#define SC_CHARSET_ANSI 0
164#define SC_CHARSET_DEFAULT 1
165#define SC_CHARSET_RUSSIAN 204
9ce192d4
RD
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
f6bcfd97
BP
176#define SCI_STYLESETUNDERLINE SCI_START + 59
177#define SCI_STYLESETCHARACTERSET SCI_START + 66
9ce192d4
RD
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
f6bcfd97
BP
201#define INDIC_DIAGONAL 3
202#define INDIC_STRIKE 4
9ce192d4
RD
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
f6bcfd97
BP
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
9ce192d4
RD
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
f6bcfd97
BP
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
9ce192d4
RD
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
f6bcfd97
BP
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
9ce192d4
RD
354
355// GTK+ Specific
356#define SCI_GRABFOCUS SCI_START + 400
357
358// Optional module for macro recording
359#ifdef MACRO_SUPPORT
360typedef 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
f6bcfd97
BP
385#define SC_MOD_CHANGEMARKER 0x200
386#define SC_MOD_BEFOREINSERT 0x400
387#define SC_MOD_BEFOREDELETE 0x800
9ce192d4 388
f6bcfd97 389#define SC_MODEVENTMASKALL 0xF77
9ce192d4
RD
390
391struct 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
431void 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
f6bcfd97
BP
440#define SCI_CHANGEPOSITION SCI_START + 22
441
9ce192d4
RD
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