]> git.saurik.com Git - wxWidgets.git/blame - contrib/src/stc/scintilla/src/ScintillaBase.h
Applied patch [ 571965 ] update stc contrib stuff
[wxWidgets.git] / contrib / src / stc / scintilla / src / ScintillaBase.h
CommitLineData
9ce192d4 1// Scintilla source code edit control
65ec6247
RD
2/** @file ScintillaBase.h
3 ** Defines an enhanced subclass of Editor with calltips, autocomplete and context menu.
4 **/
1a2fb4cd 5// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
9ce192d4
RD
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
65ec6247
RD
11/**
12 */
9ce192d4 13class ScintillaBase : public Editor {
f6bcfd97
BP
14 // Private so ScintillaBase objects can not be copied
15 ScintillaBase(const ScintillaBase &) : Editor() {}
16 ScintillaBase &operator=(const ScintillaBase &) { return *this; }
65ec6247 17
9ce192d4 18protected:
65ec6247 19 /** Enumeration of commands and child windows. */
9ce192d4
RD
20 enum {
21 idCallTip=1,
22 idAutoComplete=2,
1a2fb4cd 23
9ce192d4
RD
24 idcmdUndo=10,
25 idcmdRedo=11,
26 idcmdCut=12,
27 idcmdCopy=13,
28 idcmdPaste=14,
29 idcmdDelete=15,
30 idcmdSelectAll=16
31 };
32
b8b0e402 33 bool displayPopupMenu;
9ce192d4
RD
34 Menu popup;
35 AutoComplete ac;
36
37 CallTip ct;
38
65ec6247
RD
39 int listType; ///< 0 is an autocomplete list
40 SString userListSelected; ///< Receives listbox selected string
1a2fb4cd 41
9ce192d4
RD
42#ifdef SCI_LEXER
43 int lexLanguage;
1a2fb4cd 44 const LexerModule *lexCurrent;
9ce192d4 45 PropSet props;
b8b0e402 46 enum {numWordLists=6};
65ec6247
RD
47 WordList *keyWordLists[numWordLists+1];
48 void SetLexer(uptr_t wParam);
49 void SetLexerLanguage(const char *languageName);
9ce192d4
RD
50 void Colourise(int start, int end);
51#endif
52
53 ScintillaBase();
54 virtual ~ScintillaBase();
55 virtual void Initialise() = 0;
56 virtual void Finalise() = 0;
57
58 virtual void RefreshColourPalette(Palette &pal, bool want);
1a2fb4cd
RD
59
60 virtual void AddCharUTF(char *s, unsigned int len, bool treatAsDBCS=false);
9ce192d4 61 void Command(int cmdId);
d134f170
RD
62 virtual void CancelModes();
63 virtual int KeyCommand(unsigned int iMessage);
1a2fb4cd 64
9ce192d4
RD
65 void AutoCompleteStart(int lenEntered, const char *list);
66 void AutoCompleteCancel();
67 void AutoCompleteMove(int delta);
68 void AutoCompleteChanged(char ch=0);
d134f170
RD
69 void AutoCompleteCompleted(char fillUp='\0');
70 void AutoCompleteMoveToCurrentWord();
1a2fb4cd 71 static void AutoCompleteDoubleClick(void* p);
9ce192d4
RD
72
73 virtual void CreateCallTipWindow(PRectangle rc) = 0;
1a2fb4cd 74
9ce192d4
RD
75 virtual void AddToPopUp(const char *label, int cmd=0, bool enabled=true) = 0;
76 void ContextMenu(Point pt);
1a2fb4cd 77
9ce192d4
RD
78 virtual void ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
79
f6bcfd97 80 virtual void NotifyStyleToNeeded(int endStyleNeeded);
9ce192d4
RD
81public:
82 // Public so scintilla_send_message can use it
65ec6247 83 virtual sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam);
9ce192d4
RD
84};
85
86#endif