1 ///////////////////////////////////////////////////////////////////////////////
2 // File:        stedefs.h
3 // Purpose:     wxSTEditor definitions, constants and globals
4 // Maintainer:
5 // Created:     2003-04-04
6 // Copyright:   (c) John Labenski, Otto Wyss
7 // Licence:     wxWidgets licence
8 ///////////////////////////////////////////////////////////////////////////////
9 
10 /// @file stedefs.h
11 /// @brief wxWindowIds, pref/style,language enums, and defines.
12 
13 #ifndef _STEDEFS_H_
14 #define _STEDEFS_H_
15 
16 // this include is required for WXDLLEXPORT definition...
17 #include <wx/defs.h>
18 #include <wx/dlimpexp.h>
19 
20 // Include wxStyledTextCtrl
21 #include <wx/stc/stc.h>
22 
23 #if (wxVERSION_NUMBER >= 2900)
24     // #include <wx/stc/private.h> // wx2stc() has been moved here, but isn't exported
25     #define wx2stc(wxstr)    (wxstr).mb_str()
26     #define stc2wx(char_str) wxString(char_str)
27 #endif
28 
29 //-----------------------------------------------------------------------------
30 // Include our setup file that includes/excludes the different language
31 //   information for the wxSTEditorLangs.
32 //-----------------------------------------------------------------------------
33 
34 /// The STE_SETUP_VERSION is simply an integer that is incremented whenever
35 /// wx/stedit/setup0.h is modified in a way that breaks compatibility.
36 #define STE_SETUP_VERSION 2
37 
38 /// If you get an error on this line, you probably forgot to copy
39 ///   include/wx/stedit/setup0.h to include/wx/stedit/setup.h
40 #if !defined(_STESETUP_H_)
41     #include "wx/stedit/setup.h"
42 #endif // !defined(_STESETUP_H_)
43 
44 #ifndef ID_STE__FIRST
45 #   error "Your wx/stedit/setup.h file is out of date, please update to wx/stedit/setup0.h."
46 #endif
47 
48 //-----------------------------------------------------------------------------
49 /// @name wxStEdit version
50 //-----------------------------------------------------------------------------
51 /// @{
52 #define STE_MAJOR_VERSION      1
53 #define STE_MINOR_VERSION      6
54 #define STE_RELEASE_VERSION    0
55 #define STE_SUBRELEASE_VERSION 0
56 #define STE_APPNAME           wxT("wxstedit")
57 #define STE_APPDISPLAYNAME    wxT("wxStEdit")
58 #define STE_VERSION_STRING    STE_APPDISPLAYNAME wxT(" 1.6.0")
59 #define STE_WEBSITE           "http://wxcode.sourceforge.net/showcomp.php?name=wxStEdit"
60 /// @}
61 
62 /// Use the following macro to check if the current version is at least major minor release.
63 #define wxCHECK_STE_VERSION(major, minor, release) \
64     (STE_MAJOR_VERSION > (major) || \
65     (STE_MAJOR_VERSION == (major) && STE_MINOR_VERSION > (minor)) || \
66     (STE_MAJOR_VERSION == (major) && STE_MINOR_VERSION == (minor) && STE_RELEASE_VERSION >= (release)))
67 
68 //-----------------------------------------------------------------------------
69 /// @name DLL Import and Export macros (see the contrib libs like wxPlot)
70 //-----------------------------------------------------------------------------
71 /// @{
72 
73 #ifdef WXMAKINGDLL_STEDIT
74     #define WXDLLIMPEXP_STEDIT WXEXPORT
75     #define WXDLLIMPEXP_DATA_STEDIT(type) WXEXPORT type
76 #elif defined(WXUSINGDLL_STEDIT)
77     #define WXDLLIMPEXP_STEDIT WXIMPORT
78     #define WXDLLIMPEXP_DATA_STEDIT(type) WXIMPORT type
79 #else // not making nor using DLL
80     #define WXDLLIMPEXP_STEDIT
81     #define WXDLLIMPEXP_DATA_STEDIT(type) type
82 #endif
83 
84 /// Forward declare all wxStEdit classes with this macro
85 #if defined(HAVE_VISIBILITY) || (defined(__WINDOWS__) && defined(__GNUC__))
86     #define WXDLLIMPEXP_FWD_STEDIT
87 #else
88     #define WXDLLIMPEXP_FWD_STEDIT WXDLLIMPEXP_STEDIT
89 #endif
90 
91 /// @}
92 //-----------------------------------------------------------------------------
93 /// @name Generic convenience defines
94 //-----------------------------------------------------------------------------
95 /// @{
96 
97 #define STE_HASBIT(value, bit)      (((value) & (bit)) != 0)
98 #define STE_SETBIT(value, bit, set) ((set) ? (value)|(bit) : (value)&(~(bit)))
99 
100 #define STE_MM wxSTEditorMenuManager
101 
102 #define STE_TextPos wxTextPos
103 //#define STE_TextCoord wxTextCoord // row/col
104 
105 /// @}
106 
107 //-----------------------------------------------------------------------------
108 // Forward declaration of the wxSTEditor classes
109 //-----------------------------------------------------------------------------
110 
111 class WXDLLIMPEXP_FWD_STEDIT wxSTEditor;                    // stedit.h
112 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorEvent;
113 
114 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorSplitter;            // stesplit.h
115 
116 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorNotebook;            // stenoteb.h
117 
118 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorFrame;               // steframe.h
119 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorFrameFileDropTarget;
120 
121 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorOptions;             // steopts.h
122 
123 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorMenuManager;         // stemenum.h
124 
125 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorPrefs;               // steprefs.h
126 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorStyles;              // stestyls.h
127 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorLangs;               // stelangs.h
128 
129 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorFindReplacePanel;    // stefindr.h
130 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorFindReplaceDialog;
131 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorFindReplaceData;
132 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorFindResultsEditor;
133 
134 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorPropertiesDialog;    // stedlgs.h
135 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorInsertTextDialog;
136 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorPrefDialog;
137 
138 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorPrintout;            // steprint.h
139 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorPrintOptionsDialog;
140 
141 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorTreeCtrl;            // stetree.h
142 class WXDLLIMPEXP_FWD_STEDIT wxSTEditorTreeItemData;        // stetree.h
143 
144 //-----------------------------------------------------------------------------
145 /// @enum STE_StateType The State of the wxSTEditor.
146 /// @see wxSTEditor::GetState() and wxSTEditorEvent::GetStateChange(), wxSTEditorEvent::GetStateValues().
147 //-----------------------------------------------------------------------------
148 
149 enum STE_StateType
150 {
151     STE_MODIFIED   = 0x0001, ///< the document has been modified
152     STE_CANCUT     = 0x0002, ///< can cut, some text is selected and !readonly
153     STE_CANCOPY    = 0x0004, ///< can copy, some text is selected
154     STE_CANPASTE   = 0x0008, ///< can paste, text in clipboard and !readonly
155     STE_CANUNDO    = 0x0010, ///< possible to undo
156     STE_CANREDO    = 0x0020, ///< possible to redo
157     STE_CANSAVE    = 0x0040, ///< is modified and has valid filename
158     STE_CANFIND    = 0x0080, ///< possible to find, false if previous find failed
159     STE_EDITABLE   = 0x0100, ///< the control is not readonly
160 
161     STE_FILENAME   = 0x0200  ///< not a state, flag for wxSTEditorEvent
162                              ///< saying that the editor's filename has changed
163 };
164 
165 //-----------------------------------------------------------------------------
166 /// @enum STE_MarginType Predefined margin types and their number.
167 //-----------------------------------------------------------------------------
168 
169 enum STE_MarginType
170 {
171     STE_MARGIN_NUMBER = 0, // line numbers are displayed here
172     STE_MARGIN_MARKER = 1, // bookmark markers and others can be displayed here
173     STE_MARGIN_FOLD   = 2, // code folding margin
174 
175     STE_MARGIN_0 = 0,      // these just make the code a little more readable
176     STE_MARGIN_1 = 1,
177     STE_MARGIN_2 = 2
178 };
179 
180 //-----------------------------------------------------------------------------
181 /// @enum STE_MarkerType Predefined margin marker type.
182 ///
183 /// Markers are a little tricky, here's some sample code.
184 /// @code
185 ///   MarkerNext(line, 1<<STE_MARKER_BOOKMARK);
186 ///   MarkerPrevious(line, 1<<STE_MARKER_BOOKMARK)
187 ///   MarkerDeleteAll(STE_MARKER_BOOKMARK);
188 ///
189 ///   if ((MarkerGet(line) & (1<<STE_MARKER_BOOKMARK)) != 0)
190 ///       MarkerDelete(line, STE_MARKER_BOOKMARK);
191 ///   else
192 ///       MarkerAdd(line, STE_MARKER_BOOKMARK);
193 /// @endcode
194 //-----------------------------------------------------------------------------
195 
196 enum STE_MarkerType
197 {
198     STE_MARKER_BOOKMARK = 0, // bookmarks use this (0 means at bottom)
199     STE_MARKER__MAX          // start your own markers at STE_MARKER__MAX
200                              // to avoid any conflicts
201 };
202 
203 //-----------------------------------------------------------------------------
204 /// @enum STE_WindowId_Type IDs of all the menus, toolbar tools, windows.
205 //-----------------------------------------------------------------------------
206 
207 /// Max number of pages before menu IDs start to conflict, see usage in STE_WindowId_Type.
208 #define STN_NOTEBOOK_PAGES_MAX 1000
209 
210 
211 enum STE_WindowId_Type
212 {
213     // ------------------------------------------------------------------------
214     // IDs of wxSTEditorPrefs menu items, same order as enum STE_PrefType
215     // note: starts at ID_STE__FIRST ends at ID_STE_PREF__LAST
216     //       see scintilla/src/ScintillaBase.h need to skip over idcmdCopy...
217     ID_STE_PREF__FIRST = ID_STE__FIRST,
218     ID_STE_PREF_HIGHLIGHT_SYNTAX = ID_STE_PREF__FIRST,
219     ID_STE_PREF_HIGHLIGHT_PREPROC,
220     ID_STE_PREF_HIGHLIGHT_BRACES,
221     ID_STE_PREF_LOAD_INIT_LANG,
222     ID_STE_PREF_LOAD_UNICODE,
223     ID_STE_PREF_WRAP_MODE,
224     ID_STE_PREF_WRAP_VISUALFLAGS,       // not a menu item
225     ID_STE_PREF_WRAP_VISUALFLAGSLOC,    // not a menu item
226     ID_STE_PREF_WRAP_STARTINDENT,       // not a menu item
227     ID_STE_PREF_ZOOM,
228     ID_STE_PREF_VIEW_EOL,
229     ID_STE_PREF_VIEW_WHITESPACE,
230     ID_STE_PREF_INDENT_GUIDES,
231     ID_STE_PREF_EDGE_MODE,
232     ID_STE_PREF_EDGE_COLUMN,
233     ID_STE_PREF_VIEW_LINEMARGIN,
234     ID_STE_PREF_VIEW_MARKERMARGIN,
235     ID_STE_PREF_VIEW_FOLDMARGIN,
236     ID_STE_PREF_USE_TABS,
237     ID_STE_PREF_TAB_INDENTS,
238     ID_STE_PREF_TAB_WIDTH,
239     ID_STE_PREF_INDENT_WIDTH,
240     ID_STE_PREF_BACKSPACE_UNINDENTS,
241     ID_STE_PREF_AUTOINDENT,
242     ID_STE_PREF_CARET_LINE_VISIBLE,     // not a menu item
243     ID_STE_PREF_CARET_WIDTH,            // not a menu item
244     ID_STE_PREF_CARET_PERIOD,           // not a menu item
245     ID_STE_PREF_CARET_POLICY_X,         // not a menu item
246     ID_STE_PREF_CARET_POLICY_Y,         // not a menu item
247     ID_STE_PREF_CARET_SLOP_X,           // not a menu item
248     ID_STE_PREF_CARET_SLOP_Y,           // not a menu item
249     ID_STE_PREF_VISIBLE_POLICY,         // not a menu item
250     ID_STE_PREF_VISIBLE_SLOP,           // not a menu item
251     ID_STE_PREF_EOL_MODE,
252     ID_STE_PREF_SELECTION_MODE,         // FIXME unable to have persistent rect sel work w/ GTK
253     ID_STE_PREF_PRINT_MAGNIFICATION,    // not a menu item
254     ID_STE_PREF_PRINT_COLOURMODE,       // not a menu item
255     ID_STE_PREF_PRINT_WRAPMODE,         // not a menu item
256     ID_STE_PREF_PRINT_LINENUMBERS,      // not a menu item
257     ID_STE_PREF_FOLD_FLAGS,             // not a menu item
258     ID_STE_PREF_FOLD_STYLES,            // not a menu item
259     ID_STE_PREF_FOLDMARGIN_STYLE,       // not a menu item
260     ID_STE_PREF_BUFFERED_DRAW,          // not a menu item
261     ID_STE_PREF_TWOPHASE_DRAW,          // not a menu item
262     ID_STE_PREF_LAYOUT_CACHE,           // not a menu item
263     ID_STE_PREF_USEANTIALIASING,        // not a menu item
264     ID_STE_PREF_SAVE_REMOVE_WHITESP,    // not a menu item
265     ID_STE_PREF_SAVE_CONVERT_EOL,       // not a menu item
266 
267     // non user preferences - these are probably not useful to show to users
268     // but we keep them here to keep in sync with STE_PrefType
269     ID_STE_PREF_HORIZ_SCROLLBAR,
270     ID_STE_PREF_VERT_SCROLLBAR,
271     ID_STE_PREF_MARGIN0_TYPE,
272     ID_STE_PREF_MARGIN1_TYPE,
273     ID_STE_PREF_MARGIN2_TYPE,
274     ID_STE_PREF_MARGIN0_WIDTH,
275     ID_STE_PREF_MARGIN1_WIDTH,
276     ID_STE_PREF_MARGIN2_WIDTH,
277     ID_STE_PREF_MARGIN0_MASK,
278     ID_STE_PREF_MARGIN1_MASK,
279     ID_STE_PREF_MARGIN2_MASK,
280     ID_STE_PREF_MARGIN0_SENSITIVE,
281     ID_STE_PREF_MARGIN1_SENSITIVE,
282     ID_STE_PREF_MARGIN2_SENSITIVE,
283     ID_STE_PREF_BOOKMARK_DCLICK,
284 
285     ID_STE_PREF_AUTOC_STOPS,
286     ID_STE_PREF_AUTOC_SEPARATOR,
287     ID_STE_PREF_AUTOC_FILLUPS,
288     ID_STE_PREF_AUTOC_CANCELATSTART,
289     ID_STE_PREF_AUTOC_CHOOSESINGLE,
290     ID_STE_PREF_AUTOC_IGNORECASE,
291     ID_STE_PREF_AUTOC_AUTOHIDE,
292     ID_STE_PREF_AUTOC_DROPRESTOFWORD,
293     ID_STE_PREF_AUTOC_TYPESEPARATOR,
294 
295     ID_STE_PREF__LAST = ID_STE_PREF_AUTOC_TYPESEPARATOR,
296 
297     // ------------------------------------------------------------------------
298     // List of IDs for the menu items in the order they're used
299     // See : wxSTEditorMenuManager::CreateXXXMenu() functions and others
300 
301     // File menu items --------------------------------------------------------
302     //wxID_NEW,
303     //wxID_OPEN,
304     //wxID_SAVE,
305     //wxID_SAVEAS,
306     ID_STE_EXPORT,
307     //ID_STN_SAVE_ALL             STE_MENU_NOTEBOOK
308     //ID_STN_CLOSE_PAGE,          STE_MENU_FRAME
309     //ID_STN_CLOSE_ALL,           STE_MENU_FRAME|STE_MENU_NOTEBOOK
310     //ID_STN_CLOSE_ALL_OTHERS,    STE_MENU_FRAME|STE_MENU_NOTEBOOK
311     ID_STE_PROPERTIES,
312     //wxID_PRINT,
313     //wxID_PREVIEW,
314     //wxID_PRINT_SETUP,
315     ID_STE_PRINT_PAGE_SETUP,
316     ID_STE_PRINT_OPTIONS,
317     //wxID_EXIT                   STE_MENU_FRAME
318     // Edit menu items --------------------------------------------------------
319     //wxID_UNDO,
320     //wxID_REDO,
321     //wxID_CUT,
322     //wxID_COPY,
323     ID_STE_COPY_HTML,
324     ID_STE_COPY_PRIMARY,  // unix copy to primary selection
325     //wxID_PASTE,
326     ID_STE_PASTE_NEW,
327     ID_STE_PASTE_RECT,
328     //wxID_CLEAR
329     //ID_STE_PREF_SELECTION_MODE, // rect sel check only
330     //wxID_SELECTALL,
331     ID_STE_READONLY,
332     ID_STE_COMPLETEWORD,
333     ID_STE_COPYPATH,
334     ID_STE_LINE_CUT,
335     ID_STE_LINE_COPY,
336     ID_STE_LINE_DELETE,
337     ID_STE_LINE_TRANSPOSE,
338     ID_STE_LINE_DUPLICATE,
339     // Search menu items -------------------------------------------------------
340     //wxID_FIND,
341     ID_STE_FIND_NEXT,
342     ID_STE_FIND_PREV,
343     ID_STE_FIND_DOWN,
344     //wxID_REPLACE
345     ID_STE_GOTO_LINE,
346     // Tools menu items -------------------------------------------------------
347     ID_STE_UPPERCASE,
348     ID_STE_LOWERCASE,
349     ID_STE_INCREASE_INDENT,
350     ID_STE_DECREASE_INDENT,
351     ID_STE_LINES_JOIN,
352     ID_STE_LINES_SPLIT,
353     ID_STE_TABS_TO_SPACES,
354     ID_STE_SPACES_TO_TABS,
355     ID_STE_CONVERT_EOL,
356     ID_STE_TRAILING_WHITESPACE,
357     ID_STE_REMOVE_CHARSAROUND,
358     ID_STE_COLUMNIZE,
359     // Insert menu items  -------------------------------------------------------
360     ID_STE_INSERT_TEXT,
361     ID_STE_INSERT_DATETIME,
362     // View menu items  -------------------------------------------------------
363     //ID_STE_PREF_WRAPLINES
364     ID_STE_VIEW_NONPRINT,
365     //ID_STE_PREF_VIEWEOL
366     //ID_STE_PREF_VIEWWHITESPACE
367     //ID_STE_PREF_INDENTGUIDES
368     //ID_STE_PREF_EDGEMODE
369     //ID_STE_PREF_EDGECOLUMN
370     //ID_STE_PREF_VIEWLINEMARGIN
371     //ID_STE_PREF_VIEWMARKERMARGIN
372     //ID_STE_PREF_VIEWFOLDMARGIN
373     ID_STE_FOLDS_TOGGLE_CURRENT,
374     ID_STE_FOLDS_COLLAPSE_LEVEL,
375     ID_STE_FOLDS_EXPAND_LEVEL,
376     ID_STE_FOLDS_COLLAPSE_ALL,
377     ID_STE_FOLDS_EXPAND_ALL,
378     //ID_STE_PREF_SYNTAXHILIGHT - FIXME this should be removed?
379     //ID_STE_PREF_ZOOM
380     ID_STE_SHOW_FULLSCREEN,
381     // Bookmark menu items  ---------------------------------------------------
382     ID_STE_BOOKMARKS,
383     ID_STE_BOOKMARK_TOGGLE,
384     ID_STE_BOOKMARK_FIRST,
385     ID_STE_BOOKMARK_PREVIOUS,
386     ID_STE_BOOKMARK_NEXT,
387     ID_STE_BOOKMARK_LAST,
388     ID_STE_BOOKMARK_CLEAR,
389     // Preference menu items  -------------------------------------------------
390     ID_STE_PREFERENCES,
391     //ID_STE_PREF_USETABS
392     //ID_STE_PREF_TABINDENTS
393     //ID_STE_PREF_BACKSPACEUNINDENTS
394     //ID_STE_PREF_AUTOINDENT
395     //ID_STE_PREF_TABWIDTH
396     //ID_STE_PREF_INDENTWIDTH
397     //ID_STE_PREF_EOLMODE
398     ID_STE_SAVE_PREFERENCES,
399     // Window menu items  -----------------------------------------------------
400     //ID_STS_UNSPLIT,
401     //ID_STS_SPLIT_HORIZ,
402     //ID_STS_SPLIT_VERT,
403     //ID_STF_SHOW_SIDEBAR,
404     //ID_STN_WIN_PREVIOUS,
405     //ID_STN_WIN_NEXT,
406     //ID_STN_WINDOWS,
407 
408     // Menu items used by the wxSTEditorSplitter's menu
409     ID_STS_UNSPLIT,
410     ID_STS_SPLIT_HORIZ,
411     ID_STS_SPLIT_VERT,
412 
413     // Menu items used for wxSTEditorNotebook's menu
414     ID_STN_SAVE_ALL,
415     ID_STN_CLOSE_PAGE,
416     ID_STN_CLOSE_ALL,
417     ID_STN_CLOSE_ALL_OTHERS,
418     ID_STN_WINDOWS,
419     ID_STN_WIN_PREVIOUS,
420     ID_STN_WIN_NEXT,
421     ID_STN_GOTO_PAGE_START,
422     ID_STN_CLOSE_PAGE_START = ID_STN_GOTO_PAGE_START+STN_NOTEBOOK_PAGES_MAX,
423 
424     // Menu items used for wxSTEditorFrame
425     ID_STF_SHOW_SIDEBAR = ID_STN_CLOSE_PAGE_START+STN_NOTEBOOK_PAGES_MAX,
426 
427     // Menu items for the insert character menu for dialogs
428     ID_STEDLG_INSERTMENU_TAB,
429     ID_STEDLG_INSERTMENU_CR,
430     ID_STEDLG_INSERTMENU_LF,
431 
432     ID_STEDLG_INSERTMENURE_ANYCHAR,
433     ID_STEDLG_INSERTMENURE_RANGE,
434     ID_STEDLG_INSERTMENURE_NOTRANGE,
435     ID_STEDLG_INSERTMENURE_BEGINLINE,
436     ID_STEDLG_INSERTMENURE_ENDLINE,
437     ID_STEDLG_INSERTMENURE_TAGEXPR,
438     ID_STEDLG_INSERTMENURE_0MATCHES,
439     ID_STEDLG_INSERTMENURE_1MATCHES,
440     ID_STEDLG_INSERTMENURE_01MATCHES,
441     ID_STEDLG_INSERTMENURE_GROUP,
442 
443     ID_STEDLG_INSERTMENURE_ALPHANUM,
444     ID_STEDLG_INSERTMENURE_ALPHA,
445     ID_STEDLG_INSERTMENURE_NUMERIC,
446     ID_STEDLG_INSERTMENURE_TAB,
447 
448     // ------------------------------------------------------------------------
449     // Non menuitem IDs
450 
451     ID_STE_VSCROLLBAR,
452     ID_STE_HSCROLLBAR,
453     ID_STS_VSPLITBUTTON,
454     ID_STS_HSPLITBUTTON,
455 
456     ID_STE_TOOLBAR_SEARCHCTRL,
457     ID_STE_TOOLBAR_SEARCHCTRL_MENU0, // The menu items attached to the wxSearchCtrl
458     ID_STE_TOOLBAR_SEARCHCTRL_MENU1,
459     ID_STE_TOOLBAR_SEARCHCTRL_MENU2,
460     ID_STE_TOOLBAR_SEARCHCTRL_MENU3,
461     ID_STE_TOOLBAR_SEARCHCTRL_MENU4,
462     ID_STE_TOOLBAR_SEARCHCTRL_MENU5,
463     ID_STE_TOOLBAR_SEARCHCTRL_MENU6,
464     ID_STE_TOOLBAR_SEARCHCTRL_MENU7,
465     ID_STE_TOOLBAR_SEARCHCTRL_MENU8,
466     ID_STE_TOOLBAR_SEARCHCTRL_MENU9,
467     ID_STE_TOOLBAR_SEARCHCTRL_MENU__LAST, // count = ID_STE_TOOLBAR_SEARCHCTRL_MENU__LAST - ID_STE_TOOLBAR_SEARCHCTRL_MENU0
468 
469     ID_STEDLG_PREF_NOTEBOOK,    // id of the notebook in the pref dialog
470 
471     // ------------------------------------------------------------------------
472     // wxMenu ID's when attached as a submenu or to a menubar
473 
474     ID_STE_MENU_FILE,           // id of the File menu
475     ID_STE_MENU_EDIT,           // id of the Edit menu
476     ID_STE_MENU_SEARCH,         // id of the Search menu
477     ID_STE_MENU_TOOLS,          // id of the Tools menu
478     ID_STE_MENU_INSERT,         // id of the Insert menu
479     ID_STE_MENU_VIEW,           // id of the View menu
480     ID_STE_MENU_BOOKMARK,       // id of the Bookmark menu
481     ID_STE_MENU_PREF,           // id of the Preferences menu
482     ID_STE_MENU_WINDOW,         // id of the Window menu
483     ID_STE_MENU_HELP,           // id of the Help menu
484 
485     ID_STE_MENU_LINE,           // id of the Line Edit submenu in Edit
486     ID_STE_MENU_GUIDES,         // id of the Guides submenu in View
487     ID_STE_MENU_MARGINS,        // id of the Margins submenu in View
488     ID_STE_MENU_FOLDING,        // id of the Folds submenu in View
489 
490     // wxMenu ID's for menu's attached to the STN menu
491     ID_STN_MENU_GOTO,           // id of the Goto page submenu
492     ID_STN_MENU_CLOSE,          // id of the Close page submenu
493 
494     // wxMenu ID of the regexp menu on the insert chars menu
495     ID_STEDLG_MENU_INSERTMENURE,
496 
497     // ------------------------------------------------------------------------
498     // Menu IDs for the wxSTEditorTreeCtrl popup menu
499 
500     ID_STT_FILE_OPEN,
501     ID_STT_FILE_CLOSE,
502     ID_STT_FILE_PROPERTIES,
503     ID_STT_EXPAND_ALL,
504     ID_STT_COLLAPSE_ALL,
505     ID_STT_SHOW_FILENAME_ONLY,
506     ID_STT_SHOW_FILEPATH_ONLY,
507     ID_STT_SHOW_PATH_THEN_FILENAME,
508     ID_STT_SHOW_ALL_PATHS,
509 
510     // ------------------------------------------------------------------------
511     // Dialog and Window IDs
512 
513     // ID of the find replace dialog
514     ID_STE_FINDREPLACE_DIALOG,
515 
516     // IDs of child windows of the wxSTEditorFrame
517     ID_STF_SIDE_SPLITTER,
518     ID_STF_SIDE_NOTEBOOK,
519     ID_STF_MAIN_SPLITTER,
520     ID_STF_FILE_TREECTRL,
521     ID_STF_FILE_DIRCTRL,
522 
523     // IDs of the editors used in the wxSTEditorPrefDialogPageStyles
524     ID_STEDLG_STYLE_COLOUR_EDITOR,
525     ID_STEDLG_STYLE_STYLE_EDITOR,
526 
527     ID_STE__LAST = ID_STEDLG_STYLE_STYLE_EDITOR
528 };
529 
530 //-----------------------------------------------------------------------------
531 /// @enum STE_PrefType Indexes in wxSTEditorPrefs::Get/SetPref(int pref).
532 ///
533 /// The name of the pref enum nearly matches wxStyledTextCtrl's function name
534 /// If you want to be sure what the pref does, @see wxSTEditorPrefs::UpdateEditor.
535 ///
536 /// To permanently add a new pref, see comment before wxSTEditorPrefs, steprefs.h
537 //-----------------------------------------------------------------------------
538 
539 enum STE_PrefType
540 {
541                                     // [default value], [value type and range], description
542     STE_PREF_HIGHLIGHT_SYNTAX = 0,  ///< true, bool, turns off lexer
543     STE_PREF_HIGHLIGHT_PREPROC,     ///< true, bool, SetProperty("styling.within.preprocessor"
544     STE_PREF_HIGHLIGHT_BRACES,      ///< true, bool, code in wxSTEditor
545     STE_PREF_LOAD_INIT_LANG,        ///< true, bool, call STE::SetLanguage(filename) on LoadFile
546     STE_PREF_LOAD_UNICODE,          ///< STE_LOAD_DEFAULT, int, enum STE_LoadFileType
547     STE_PREF_WRAP_MODE,             ///< wxSTC_WRAP_NONE, int wxSTC_WRAP_XXX, see SetWrapMode
548     STE_PREF_WRAP_VISUALFLAGS,      ///< wxSTC_WRAPVISUALFLAG_END, int wxSTC_WRAPVISUALFLAG_XXX, see SetWrapVisualFlags
549     STE_PREF_WRAP_VISUALFLAGSLOC,   ///< wxSTC_WRAPVISUALFLAGLOC_DEFAULT, int wxSTC_WRAPVISUALFLAGLOC_XXX, see SetWrapVisualFlagsLocation
550     STE_PREF_WRAP_STARTINDENT,      ///< 0, int, spaces to indent wrapped lines, see SetWrapStartIndent
551     STE_PREF_ZOOM,                  ///< 0, int -10...20, see SetZoom
552     STE_PREF_VIEW_EOL,              ///< false, bool, see SetViewEOL
553     STE_PREF_VIEW_WHITESPACE,       ///< wxSTC_WS_INVISIBLE, int, wxSTC_WS_XXX, see SetViewWhiteSpace
554     STE_PREF_INDENT_GUIDES,         ///< true,  bool, see SetIndentationGuides
555     STE_PREF_EDGE_MODE,             ///< wxSTC_EDGE_LINE, int wxSTC_EDGE_XXX, see SetEdgeMode
556     STE_PREF_EDGE_COLUMN,           ///< 80,    int 0...?, see SetEdgeColumn
557     STE_PREF_VIEW_LINEMARGIN,       ///< false, bool
558     STE_PREF_VIEW_MARKERMARGIN,     ///< false, bool
559     STE_PREF_VIEW_FOLDMARGIN,       ///< true,  bool
560     STE_PREF_USE_TABS,              ///< false, bool, see SetUseTabs
561     STE_PREF_TAB_INDENTS,           ///< true,  bool, see SetTabIndents
562     STE_PREF_TAB_WIDTH,             ///< 4,     int 0...?, see SetTabWidth
563     STE_PREF_INDENT_WIDTH,          ///< 4,     int 0...?, see SetIndent
564     STE_PREF_BACKSPACE_UNINDENTS,   ///< true,  bool, see SetBackSpaceUnIndents
565     STE_PREF_AUTOINDENT,            ///< true,  bool, implemented in wxSTEditor::OnSTCCharAdded
566     STE_PREF_CARET_LINE_VISIBLE,    ///< true,  bool, see SetCaretLineVisible
567     STE_PREF_CARET_WIDTH,           ///< 1,     int 0...3, see SetCaretWidth
568     STE_PREF_CARET_PERIOD,          ///< 500,   int 0...? ms per blink, see SetCaretPeriod
569     STE_PREF_CARET_POLICY_X,        ///< wxSTC_CARET_EVEN|wxSTC_VISIBLE_STRICT|wxSTC_CARET_SLOP, int, wxSTC_CARET_XXX, see SetXCaretPolicy
570     STE_PREF_CARET_POLICY_Y,        ///< same as X, see SetYCaretPolicy
571     STE_PREF_CARET_SLOP_X,          ///< 1, int, number of pixels, see SetXCaretPolicy
572     STE_PREF_CARET_SLOP_Y,          ///< 1, int, number of pixels, see SetYCaretPolicy
573     STE_PREF_VISIBLE_POLICY,        ///< wxSTC_VISIBLE_STRICT|wxSTC_VISIBLE_SLOP, int, wxSTC_VISIBLE_XXX, see SetVisiblePolicy
574     STE_PREF_VISIBLE_SLOP,          ///< 1, int, number of pixels, see SetVisiblePolicy
575     STE_PREF_EOL_MODE,              ///< platform dependent, int wxSTC_EOL_CRLF, wxSTC_EOL_CR, wxSTC_EOL_LF, see SetEOLMode
576     STE_PREF_SELECTION_MODE,        ///< -1, int wxSTC_SEL_STREAM, wxSTC_SEL_RECTANGLE, wxSTC_SEL_LINES (note wxSTC::Cancel() is off)
577     STE_PREF_PRINT_MAGNIFICATION,   ///< -2,    int -20...20, see SetPrintMagnification
578     STE_PREF_PRINT_COLOURMODE,      ///< wxSTC_PRINT_COLOURONWHITE, int wxSTC_PRINT_XXX, see SetPrintColourMode
579     STE_PREF_PRINT_WRAPMODE,        ///< wxSTC_WRAP_WORD, int wxSTC_WRAP_XXX, see SetPrintWrapMode
580     STE_PREF_PRINT_LINENUMBERS,     ///< STE_PRINT_LINENUMBERS_DEFAULT, int, see enum STE_PrintLinenumbersType
581     STE_PREF_FOLD_FLAGS,            ///< wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED|wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED, int, wxSTC_FOLDFLAG_XXX, see SetFoldFlags
582     STE_PREF_FOLD_STYLES,           ///< STE_FOLD_STYLE_DEFAULT, int, see STE_FoldStyleType, see SetProperty
583     STE_PREF_FOLDMARGIN_STYLE,      ///< STE_FOLDMARGIN_STYLE_SQUARES, int, see STE_FoldMarginStyleType
584     STE_PREF_BUFFERED_DRAW,         ///< true, bool, see SetBufferedDraw
585     STE_PREF_TWOPHASE_DRAW,         ///< true, bool, see SetTwoPhaseDraw
586     STE_PREF_LAYOUT_CACHE,          ///< wxSTC_CACHE_PAGE, int, wxSTC_CACHE_XXX, see SetLayoutCache
587     STE_PREF_USEANTIALIASING,       ///< true, bool, see SetUseAntiAliasing
588     STE_PREF_SAVE_REMOVE_WHITESP,   ///< false, bool, remove trailing whitespace on save
589     STE_PREF_SAVE_CONVERT_EOL,      ///< false, bool, convert all EOL chars to STE_PREF_EOL_MODE
590 
591     // non user preferences - these are probably not useful to show to users
592     // and you will probably want to hard code their values at startup
593 
594     STE_PREF_HORIZ_SCROLLBAR,       ///< true, bool, see SetUseHorizontalScrollBar
595     STE_PREF_VERT_SCROLLBAR,        ///< true, bool, see SetUseVerticalScrollBar
596     STE_PREF_MARGIN0_TYPE,          ///< wxSTC_MARGIN_NUMBER, int, see SetMarginType
597     STE_PREF_MARGIN1_TYPE,          ///< wxSTC_MARGIN_SYMBOL, int, see SetMarginType
598     STE_PREF_MARGIN2_TYPE,          ///< wxSTC_MARGIN_SYMBOL, int, see SetMarginType
599     STE_PREF_MARGIN0_WIDTH,         ///< -1 (width of "_999999"), int, see SetMarginWidth
600     STE_PREF_MARGIN1_WIDTH,         ///< 16 (widths are set to 0 if not shown), int, see SetMarginWidth
601     STE_PREF_MARGIN2_WIDTH,         ///< 16, int, see SetMarginWidth
602     STE_PREF_MARGIN0_MASK,          ///< 0, int, see SetMarginMask
603     STE_PREF_MARGIN1_MASK,          ///< ~wxSTC_MASK_FOLDERS, int, see SetMarginMask
604     STE_PREF_MARGIN2_MASK,          ///< wxSTC_MASK_FOLDERS, int, see SetMarginMask
605     STE_PREF_MARGIN0_SENSITIVE,     ///< false, bool, see SetMarginSensitive
606     STE_PREF_MARGIN1_SENSITIVE,     ///< true, bool, see SetMarginSensitive
607     STE_PREF_MARGIN2_SENSITIVE,     ///< true, bool, see SetMarginSensitive
608 
609     STE_PREF_BOOKMARK_DCLICK,       ///< true, bool if margin 1 is dclicked put a bookmark marker on it
610 
611     STE_PREF_AUTOC_STOPS,           ///< " ()[]{}<>:;.?", string, see AutoCompStops
612     STE_PREF_AUTOC_SEPARATOR,       ///< int(' '), int, see AutoCompSetSeparator
613     STE_PREF_AUTOC_FILLUPS,         ///< "", string,    see AutoCompSetFillUps
614     STE_PREF_AUTOC_CANCELATSTART,   ///< true, bool,    see AutoCompSetCancelAtStart
615     STE_PREF_AUTOC_CHOOSESINGLE,    ///< true, bool,    see AutoCompSetChooseSingle
616     STE_PREF_AUTOC_IGNORECASE,      ///< false, bool,   see AutoCompSetIgnoreCase
617     STE_PREF_AUTOC_AUTOHIDE,        ///< true, bool,    see AutoCompSetAutoHide
618     STE_PREF_AUTOC_DROPRESTOFWORD,  ///< true, bool,    see AutoCompSetDropRestOfWord
619     STE_PREF_AUTOC_TYPESEPARATOR,   ///< int('?'), int, see AutoCompSetTypeSeparator
620 
621     STE_PREF__MAX                   ///< number of initial built in preferences
622 };
623 
624 //-----------------------------------------------------------------------------
625 /// @enum STE_PrefFlagType Additional information about the wxSTEditorPrefs.
626 ///  For wxSTEditorPrefs::Get/SetPrefFlags, determines what values are stored
627 ///  in the pref, though the actual usage is dependent on the pref.
628 //-----------------------------------------------------------------------------
629 
630 enum STE_PrefFlagType
631 {
632     STE_PREF_FLAG_STRING    = 0x0000, ///< default is a string valued pref
633     STE_PREF_FLAG_INT       = 0x0001, ///< pref is an int value
634     STE_PREF_FLAG_BOOL      = 0x0002, ///< pref is a bool 0/1 value
635 
636     STE_PREF_FLAG_IGNORE    = 0x0004, ///< do not set the pref value for editor
637     STE_PREF_FLAG_NOCONFIG  = 0x0008, ///< don't load/save this in the wxConfig
638                                       ///< eg. your program "hard codes" this value
639 };
640 
641 //-----------------------------------------------------------------------------
642 /// @enum STE_LoadFileType Options when loading a file.
643 /// @see wxSTEditor::LoadFile and wxSTEditorPrefs and STE_PREF_LOAD_UNICODE.
644 //-----------------------------------------------------------------------------
645 
646 enum STE_LoadFileType
647 {
648     // If a file(stream) starts with 0xfffe as first two chars it's probably unicode.
649 
650     STE_LOAD_DEFAULT       = 0,      ///< load as unicode if it has the header,
651                                      ///<   else load as ascii
652 
653     STE_LOAD_QUERY_UNICODE = 0x0001, ///< popup dialog to ask (or rather warn) if to load in unicode
654                                      ///<   if the file starts w/ unicode signature. Flag ignored in Unicode build.
655     STE_LOAD_ASCII         = 0x0002, ///< load as ascii in all cases
656     STE_LOAD_UNICODE       = 0x0004, ///< load as unicode in all cases
657 
658     STE_LOAD_FROM_DISK     = 0x0008, ///< The file is/was/will be loaded from disk.
659 
660     STE_LOAD_NOERRDLG      = 0x0010, ///< never show an error message dialog
661                                      ///<   silent failure, return false
662                                      ///<   this flag can be used with one of the others
663 };
664 
665 //-----------------------------------------------------------------------------
666 /// @enum STE_PrintLinenumbersType Print the line numbers in wxSTEditorPrintout.
667 /// @see wxSTEditorPrefs and STE_PREF_PRINT_LINENUMBERS
668 //-----------------------------------------------------------------------------
669 
670 enum STE_PrintLinenumbersType
671 {
672     STE_PRINT_LINENUMBERS_DEFAULT, ///< print linenumbers if shown in editor
673     STE_PRINT_LINENUMBERS_NEVER,   ///< never print linenumbers
674     STE_PRINT_LINENUMBERS_ALWAYS   ///< always print linenumbers
675 };
676 
677 //-----------------------------------------------------------------------------
678 /// @enum STE_FoldStyleType Different folds that the language supports translated to
679 ///                     wxSTC::SetProperty(wxT("fold.comment"), 1/0).
680 /// These lexer properties can be set for any lexer, they might not be used.
681 /// For wxSTEditorPrefs STE_PREF_FOLD_STYLES.
682 //-----------------------------------------------------------------------------
683 
684 enum STE_FoldStyleType
685 {
686     STE_FOLD_COMPACT       = 0x0001, ///< "fold.compact"
687     STE_FOLD_COMMENT       = 0x0002, ///< "fold.comment"
688     STE_FOLD_PREPROC       = 0x0004, ///< "fold.preprocessor"
689     STE_FOLD_ATELSE        = 0x0008, ///< "fold.at.else"        c++ only
690 
691     STE_FOLD_HTML          = 0x0010, ///< "fold.html"
692     STE_FOLD_HTMLPREP      = 0x0020, ///< "fold.html.preprocessor"
693 
694     STE_FOLD_DIRECTIVE     = 0x0040, ///< "fold.directive"
695     STE_FOLD_COMMENTPY     = 0x0080, ///< "fold.comment.python"
696     STE_FOLD_QUOTESPY      = 0x0100, ///< "fold.quotes.python"
697     STE_FOLD_TABTIMMY      = 0x0200, ///< "tab.timmy.whinge.level" python indent check
698 
699     // everything set
700     STE_FOLD_STYLE_DEFAULT = STE_FOLD_COMPACT|STE_FOLD_COMMENT|STE_FOLD_PREPROC|STE_FOLD_ATELSE|STE_FOLD_HTML|STE_FOLD_HTMLPREP|STE_FOLD_DIRECTIVE|STE_FOLD_COMMENTPY|STE_FOLD_QUOTESPY|STE_FOLD_TABTIMMY
701 };
702 
703 //-----------------------------------------------------------------------------
704 /// @enum STE_FoldMarginStyleType Different sets of nice looking fold margin symbols.
705 ///  For wxSTEditorPrefs STE_PREF_FOLDMARGIN_STYLE
706 //-----------------------------------------------------------------------------
707 
708 enum STE_FoldMarginStyleType
709 {
710     STE_FOLDMARGIN_STYLE_UNSET     =-1, ///< the fold code won't be run
711     STE_FOLDMARGIN_STYLE_ARROWS    = 0, ///< "..." for contracted folders, arrow pointing down for expanded
712     STE_FOLDMARGIN_STYLE_CIRCLES   = 1, ///< Like a flattened tree control using circular headers and curved joins
713     STE_FOLDMARGIN_STYLE_SQUARES   = 2, ///< Like a flattened tree control using square headers (default)
714     STE_FOLDMARGIN_STYLE_PLUSMINUS = 3, ///< Plus for contracted folders, minus for expanded
715 };
716 
717 //-----------------------------------------------------------------------------
718 /// @enum STE_StyleType Styles for wxSTEditorStyles controlling how different
719 ///                 text items will appear (not all languages use every one).
720 /// Scintilla uses styles 0-127 with 32-37 having special meaning
721 ///
722 /// These are arbitrarily mapped to the styles that the lexer uses.
723 ///   You can have up to STE_STYLE_LANG__MAX (10000) of them, however you
724 ///   can only set 128 of them to scintilla, minus the hardcoded ones, at a time.
725 ///   See wxSTEditorLangs::GetSciStyle and GetSTEStyle which does the mapping
726 ///   per language between the two.
727 ///
728 ///  Additional "styles" (GUI colours) are stored after STE_STYLE_GUI_FIRST
729 ///     these styles may make use of only some of the information (see below).
730 ///
731 ///  Indicators and markers are also stored here.
732 //-----------------------------------------------------------------------------
733 
734 enum STE_StyleType
735 {
736     STE_STYLE_DEFAULT = 0,    ///< 0  This style is always mapped to Scintilla's #32 default text.
737     STE_STYLE_KEYWORD1,
738     STE_STYLE_KEYWORD2,
739     STE_STYLE_KEYWORD3,
740     STE_STYLE_KEYWORD4,
741     STE_STYLE_KEYWORD5,
742     STE_STYLE_KEYWORD6,
743     STE_STYLE_COMMENT,
744     STE_STYLE_COMMENTDOC,
745     STE_STYLE_COMMENTLINE,
746     STE_STYLE_COMMENTOTHER,   ///< 10  other comments line block.
747     STE_STYLE_CHARACTER,
748     STE_STYLE_CHARACTEREOL,
749     STE_STYLE_STRING,
750     STE_STYLE_STRINGEOL,
751     STE_STYLE_DELIMITER,
752     STE_STYLE_PUNCTUATION,
753     STE_STYLE_OPERATOR,
754     STE_STYLE_BRACE,
755     STE_STYLE_COMMAND,
756     STE_STYLE_IDENTIFIER,       ///< 20.
757     STE_STYLE_LABEL,
758     STE_STYLE_NUMBER,
759     STE_STYLE_PARAMETER,
760     STE_STYLE_REGEX,
761     STE_STYLE_UUID,
762     STE_STYLE_VALUE,
763     STE_STYLE_PREPROCESSOR,
764     STE_STYLE_SCRIPT,
765     STE_STYLE_ERROR,
766     STE_STYLE_UNDEFINED,        ///< 30.
767     //STE_STYLE_UNUSED,           // unused, last user style
768     //STE_STYLE_DEFAULT,          // 32 = wxSTC_STYLE_DEFAULT, the background
769 
770     STE_STYLE_LANG__LAST = STE_STYLE_UNDEFINED,
771     STE_STYLE_LANG__MAX = 10000,
772 
773     // ------------------------------------------------------------------------
774     // Styles that scintilla hardcodes that are always set regardless of lexer
775 
776     STE_STYLE_SCINTILLA__FIRST = 10000,
777     STE_STYLE_LINENUMBER = STE_STYLE_SCINTILLA__FIRST, // 33 wxSTC_STYLE_LINENUMBER
778     STE_STYLE_BRACELIGHT,                              // 34 wxSTC_STYLE_BRACELIGHT
779     STE_STYLE_BRACEBAD,                                // 35 wxSTC_STYLE_BRACEBAD
780     STE_STYLE_CONTROLCHAR,                             // 36 wxSTC_STYLE_CONTROLCHAR font no colour
781     STE_STYLE_INDENTGUIDE,                             // 37 wxSTC_STYLE_INDENTGUIDE fore/back colours
782     STE_STYLE_SCINTILLA__LAST = STE_STYLE_INDENTGUIDE,
783 
784     // ------------------------------------------------------------------------
785     // Extra styles/colours for the GUI are stored here
786 
787     STE_STYLE_GUI__FIRST = 20000,
788     STE_STYLE_SELECTION_COLOUR = STE_STYLE_GUI__FIRST,// fore/back colours only
789     STE_STYLE_WHITESPACE_COLOUR,                      // fore/back colours only
790     STE_STYLE_EDGE_COLOUR,                            // fore colour only
791     STE_STYLE_CARET_COLOUR,                           // fore/back colours only
792     STE_STYLE_FOLD_COLOUR,                            // fore/back colours only
793     STE_STYLE_GUI__LAST = STE_STYLE_FOLD_COLOUR,
794 
795     // ------------------------------------------------------------------------
796     // Styles below have their own accessor functions, use them instead of
797     //  the generic style methods.
798 
799     // ------------------------------------------------------------------------
800     // Indicators for hilighting text (only 3) uses fore colour and style only
801     // To change the indicators use wxSTEditorStyles::Get/SetIndicatorXXX
802     // These values are used internally.
803     //  note: scintilla uses less styles if indicators are used,
804     //        see wxSTC::SetStyleBits, 5 bits = 3 indicators = 2^5 styles,
805     //                                 6 bits = 2 indicators = 2^6 styles...
806     STE_STYLE_INDIC__FIRST = 30000,
807     STE_STYLE_INDIC_0 = STE_STYLE_INDIC__FIRST,
808     STE_STYLE_INDIC_1,
809     STE_STYLE_INDIC_2,
810     STE_STYLE_INDIC__LAST = STE_STYLE_INDIC_2,
811 
812     // ------------------------------------------------------------------------
813     // Markers for the margins
814     // To change the indicators use wxSTEditorStyles::Get/SetMarkerXXX
815     // These values are used internally.
816     STE_STYLE_MARKER__FIRST        = 40000,
817 
818     STE_STYLE_MARKER_BOOKMARK      = STE_STYLE_MARKER__FIRST,
819 
820     STE_STYLE_MARKER_FOLDER        = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDER,
821     STE_STYLE_MARKER_FOLDEROPEN    = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDEROPEN,
822     STE_STYLE_MARKER_FOLDERSUB     = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDERSUB,
823     STE_STYLE_MARKER_FOLDERTAIL    = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDERTAIL,
824     STE_STYLE_MARKER_FOLDEREND     = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDEREND,
825     STE_STYLE_MARKER_FOLDEROPENMID = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDEROPENMID,
826     STE_STYLE_MARKER_FOLDERMIDTAIL = STE_STYLE_MARKER__FIRST + wxSTC_MARKNUM_FOLDERMIDTAIL,
827 
828     STE_STYLE_MARKER__LAST         = STE_STYLE_MARKER__FIRST + wxSTC_MARKER_MAX
829 };
830 
831 // ----------------------------------------------------------------------------
832 /// @enum STE_FontAttrType Font attributes for a style.
833 /// @see wxSTEditorStyle::Get/SetFontAttr(style_n, STE_STYLE_FONT_BOLD|...)
834 
835 enum STE_FontAttrType
836 {
837     STE_STYLE_FONT_NONE       = 0x0000,
838     STE_STYLE_FONT_BOLD       = 0x0001,
839     STE_STYLE_FONT_ITALIC     = 0x0002,
840     STE_STYLE_FONT_UNDERLINED = 0x0004,
841     STE_STYLE_FONT_HIDDEN     = 0x0008,
842     STE_STYLE_FONT_EOLFILLED  = 0x0010,
843     STE_STYLE_FONT_HOTSPOT    = 0x0020,
844     // only one of these, (replacements for wxSTC_CASE_MIXED/UPPER/LOWER)
845     STE_STYLE_FONT_CASEMIXED  = 0,      // default
846     STE_STYLE_FONT_CASEUPPER  = 0x0080,
847     STE_STYLE_FONT_CASELOWER  = 0x0100,
848 
849     STE_STYLE_FONT_MASK       = (STE_STYLE_FONT_BOLD|STE_STYLE_FONT_ITALIC|STE_STYLE_FONT_UNDERLINED|STE_STYLE_FONT_HIDDEN|STE_STYLE_FONT_EOLFILLED|STE_STYLE_FONT_HOTSPOT|STE_STYLE_FONT_CASEMIXED|STE_STYLE_FONT_CASEUPPER|STE_STYLE_FONT_CASELOWER)
850 };
851 
852 // ----------------------------------------------------------------------------
853 /// @enum STE_StyleUseDefaultType Should the default value be used instead of the set one.
854 /// @see wxSTEditorStyle::Get/SetUseDefault(style_n, STE_STYLE_USEDEFAULT_FORECOLOUR|...)
855 /// The styles always contain values, even if the defaults are used to make it
856 ///   easy for a user to revert to default and then back to what they set.
857 
858 enum STE_StyleUseDefaultType
859 {
860     STE_STYLE_USEDEFAULT_NONE         = 0x0000,
861     STE_STYLE_USEDEFAULT_FORECOLOUR   = 0x0002,
862     STE_STYLE_USEDEFAULT_BACKCOLOUR   = 0x0004,
863     STE_STYLE_USEDEFAULT_FACENAME     = 0x0008,
864     STE_STYLE_USEDEFAULT_FONTSIZE     = 0x0010,
865     STE_STYLE_USEDEFAULT_FONTSTYLE    = 0x0020,
866 
867     STE_STYLE_USEDEFAULT_MASK         = (STE_STYLE_USEDEFAULT_FORECOLOUR|STE_STYLE_USEDEFAULT_BACKCOLOUR|STE_STYLE_USEDEFAULT_FACENAME|STE_STYLE_USEDEFAULT_FONTSIZE|STE_STYLE_USEDEFAULT_FONTSTYLE),
868 
869     // Convenience enums - what default values should be used
870     STE_STYLE_USEDEFAULT_ALL          = STE_STYLE_USEDEFAULT_MASK,
871     STE_STYLE_USEDEFAULT_NOFORECOLOUR = (STE_STYLE_USEDEFAULT_MASK & (~STE_STYLE_USEDEFAULT_FORECOLOUR)),
872     STE_STYLE_USEDEFAULT_NOCOLOUR     = (STE_STYLE_USEDEFAULT_NOFORECOLOUR & (~STE_STYLE_USEDEFAULT_BACKCOLOUR)),
873     STE_STYLE_USEDEFAULT_NOFONTSTYLE  = (STE_STYLE_USEDEFAULT_NOFORECOLOUR & (~STE_STYLE_USEDEFAULT_FONTSTYLE))
874 };
875 
876 // ----------------------------------------------------------------------------
877 /// @enum STE_StyleUsesType What parts of the style are actually used.
878 /// @see wxSTEditorStyle::GetStyleUsage(style_n)
879 
880 enum STE_StyleUsesType
881 {
882     STE_STYLE_USES_FORECOLOUR = 0x0001,
883     STE_STYLE_USES_BACKCOLOUR = 0x0002,
884     STE_STYLE_USES_FACENAME   = 0x0004,
885     STE_STYLE_USES_FONTSIZE   = 0x0008,
886     STE_STYLE_USES_FONTSTYLE  = 0x0010,
887     STE_STYLE_USES_STYLE      = 0x0020, // special for indicators and markers
888 
889     STE_STYLE_USES_FONT       = (STE_STYLE_USES_FACENAME|STE_STYLE_USES_FONTSIZE|STE_STYLE_USES_FONTSTYLE),
890     STE_STYLE_USES_COLOUR     = (STE_STYLE_USES_FORECOLOUR|STE_STYLE_USES_BACKCOLOUR),
891     STE_STYLE_USES_ALL        = (STE_STYLE_USES_COLOUR|STE_STYLE_USES_FONT),
892 
893     STE_STYLE_USES_MASK       = STE_STYLE_USES_ALL
894 };
895 
896 //-----------------------------------------------------------------------------
897 /// @enum STE_LangTypes All of the languages used in the wxSTEditorLangs in order.
898 
899 enum STE_LangTypes
900 {
901     STE_LANG_CONTAINER,    // 0
902     STE_LANG_NULL,         // 1
903     STE_LANG_PYTHON,       // 2
904     STE_LANG_CPP,          // 3
905     STE_LANG_HTML,         // 4
906     STE_LANG_XML,          // 5
907     STE_LANG_PERL,         // 6
908     STE_LANG_SQL,          // 7
909     STE_LANG_VB,           // 8
910     STE_LANG_PROPERTIES,   // 9
911     STE_LANG_ERRORLIST,    // 10
912     STE_LANG_MAKEFILE,     // 11
913     STE_LANG_BATCH,        // 12
914     STE_LANG_XCODE,        // 13
915     STE_LANG_LATEX,        // 14
916     STE_LANG_LUA,          // 15
917     STE_LANG_DIFF,         // 16
918     STE_LANG_CONF,         // 17
919     STE_LANG_PASCAL,       // 18
920     STE_LANG_AVE,          // 19
921     STE_LANG_ADA,          // 20
922     STE_LANG_LISP,         // 21
923     STE_LANG_RUBY,         // 22
924     STE_LANG_EIFFEL,       // 23
925     STE_LANG_EIFFELKW,     // 24
926     STE_LANG_TCL,          // 25
927     STE_LANG_NNCRONTAB,    // 26
928     STE_LANG_BULLANT,      // 27
929     STE_LANG_VBSCRIPT,     // 28
930     STE_LANG_ASP,          // 29
931     STE_LANG_PHP,          // 30
932     STE_LANG_BAAN,         // 31
933     STE_LANG_MATLAB,       // 32
934     STE_LANG_SCRIPTOL,     // 33
935     STE_LANG_ASM,          // 34
936     STE_LANG_CPPNOCASE,    // 35
937     STE_LANG_FORTRAN,      // 36
938     STE_LANG_F77,          // 37
939     STE_LANG_CSS,          // 38
940     STE_LANG_POV,          // 39
941     STE_LANG_LOUT,         // 40
942     STE_LANG_ESCRIPT,      // 41
943     STE_LANG_PS,           // 42
944     STE_LANG_NSIS,         // 43
945     STE_LANG_MMIXAL,       // 44
946     STE_LANG_CLW,          // 45
947     STE_LANG_CLWNOCASE,    // 46
948     STE_LANG_LOT,          // 47
949     STE_LANG_YAML,         // 48
950     STE_LANG_TEX,          // 49
951     STE_LANG_METAPOST,     // 50
952     STE_LANG_POWERBASIC,   // 51
953     STE_LANG_FORTH,        // 52
954     STE_LANG_ERLANG,       // 53
955     STE_LANG_OCTAVE,       // 54
956     STE_LANG_MSSQL,        // 55
957     STE_LANG_VERILOG,      // 56
958     STE_LANG_KIX,          // 57
959     STE_LANG_GUI4CLI,      // 58
960     STE_LANG_SPECMAN,      // 59
961     STE_LANG_AU3,          // 60
962     STE_LANG_APDL,         // 61
963     STE_LANG_BASH,         // 62
964     STE_LANG_ASN1,         // 63
965     STE_LANG_VHDL,         // 64
966     // Derived languages that use a lexer above, but have their own keywords
967     STE_LANG_JAVA,         // 65
968     STE_LANG_JAVASCRIPT,   // 66
969     STE_LANG_RC,           // 67
970     STE_LANG_CS,           // 68
971     STE_LANG_D,            // 69
972     STE_LANG_IDL,          // 70
973     STE_LANG_PLSQL,        // 71
974     STE_LANG_SQUIRREL,     // 72
975 
976     STE_LANG__MAX
977 };
978 
979 //-----------------------------------------------------------------------------
980 /// @enum STE_LangFlagsType Extra flags for wxSTEditorLangs::Get/SetFlags.
981 
982 enum STE_LangFlagsType
983 {
984     STE_LANG_FLAG_DONTUSE = 0x0001 ///< ignore this language in the pref dialog
985 };
986 
987 #endif // _STEDEFS_H_
988