]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/stc/scintilla/src/ScintillaBase.h
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / src / stc / scintilla / src / ScintillaBase.h
... / ...
CommitLineData
1// Scintilla source code edit control
2/** @file ScintillaBase.h
3 ** Defines an enhanced subclass of Editor with calltips, autocomplete and context menu.
4 **/
5// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
6// The License.txt file describes the conditions under which this software may be distributed.
7
8#ifndef SCINTILLABASE_H
9#define SCINTILLABASE_H
10
11#ifdef SCI_NAMESPACE
12namespace Scintilla {
13#endif
14
15#ifdef SCI_LEXER
16class LexState;
17#endif
18
19/**
20 */
21class ScintillaBase : public Editor {
22 // Private so ScintillaBase objects can not be copied
23 ScintillaBase(const ScintillaBase &);
24 ScintillaBase &operator=(const ScintillaBase &);
25
26protected:
27 /** Enumeration of commands and child windows. */
28 enum {
29 idCallTip=1,
30 idAutoComplete=2,
31
32 idcmdUndo=10,
33 idcmdRedo=11,
34 idcmdCut=12,
35 idcmdCopy=13,
36 idcmdPaste=14,
37 idcmdDelete=15,
38 idcmdSelectAll=16
39 };
40
41 bool displayPopupMenu;
42 Menu popup;
43 AutoComplete ac;
44
45 CallTip ct;
46
47 int listType; ///< 0 is an autocomplete list
48 int maxListWidth; /// Maximum width of list, in average character widths
49
50#ifdef SCI_LEXER
51 LexState *DocumentLexState();
52 void SetLexer(uptr_t wParam);
53 void SetLexerLanguage(const char *languageName);
54 void Colourise(int start, int end);
55#endif
56
57 ScintillaBase();
58 virtual ~ScintillaBase();
59 virtual void Initialise() = 0;
60 virtual void Finalise() = 0;
61
62 virtual void AddCharUTF(char *s, unsigned int len, bool treatAsDBCS=false);
63 void Command(int cmdId);
64 virtual void CancelModes();
65 virtual int KeyCommand(unsigned int iMessage);
66
67 void AutoCompleteStart(int lenEntered, const char *list);
68 void AutoCompleteCancel();
69 void AutoCompleteMove(int delta);
70 int AutoCompleteGetCurrent();
71 int AutoCompleteGetCurrentText(char *buffer);
72 void AutoCompleteCharacterAdded(char ch);
73 void AutoCompleteCharacterDeleted();
74 void AutoCompleteCompleted();
75 void AutoCompleteMoveToCurrentWord();
76 static void AutoCompleteDoubleClick(void *p);
77
78 void CallTipClick();
79 void CallTipShow(Point pt, const char *defn);
80 virtual void CreateCallTipWindow(PRectangle rc) = 0;
81
82 virtual void AddToPopUp(const char *label, int cmd=0, bool enabled=true) = 0;
83 void ContextMenu(Point pt);
84
85 virtual void ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
86
87 void NotifyStyleToNeeded(int endStyleNeeded);
88 void NotifyLexerChanged(Document *doc, void *userData);
89
90public:
91 // Public so scintilla_send_message can use it
92 virtual sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam);
93};
94
95#ifdef SCI_NAMESPACE
96}
97#endif
98
99#endif