Patch #1106564, corrects possible 100% CPU load condition.
[wxWidgets.git] / contrib / src / stc / scintilla / src / ScintillaBase.h
index 6344b17a3441e7fbbc4b15c772b10df7dd403b30..6ea23ab5a3718bb1632182d5e0a4f96233c679f8 100644 (file)
@@ -1,21 +1,26 @@
 // Scintilla source code edit control
-// ScintillaBase.h - defines an enhanced subclass of Editor with calltips, autocomplete and context menu
-// Copyright 1998-2000 by Neil Hodgson <neilh@scintilla.org>
+/** @file ScintillaBase.h
+ ** Defines an enhanced subclass of Editor with calltips, autocomplete and context menu.
+ **/
+// Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 
 #ifndef SCINTILLABASE_H
 #define SCINTILLABASE_H
 
+/**
+ */
 class ScintillaBase : public Editor {
        // Private so ScintillaBase objects can not be copied
        ScintillaBase(const ScintillaBase &) : Editor() {}
        ScintillaBase &operator=(const ScintillaBase &) { return *this; }
+
 protected:
-       // Enumeration of commands and child windows
+       /** Enumeration of commands and child windows. */
        enum {
                idCallTip=1,
                idAutoComplete=2,
-               
+
                idcmdUndo=10,
                idcmdRedo=11,
                idcmdCut=12,
@@ -25,16 +30,23 @@ protected:
                idcmdSelectAll=16
        };
 
+       bool displayPopupMenu;
        Menu popup;
        AutoComplete ac;
 
        CallTip ct;
 
+       int listType;                   ///< 0 is an autocomplete list
+       SString userListSelected;       ///< Receives listbox selected string
+
 #ifdef SCI_LEXER
        int lexLanguage;
+       const LexerModule *lexCurrent;
        PropSet props;
-       enum {numWordLists=5};
-       WordList *keyWordLists[numWordLists];
+       enum {numWordLists=KEYWORDSET_MAX+1};
+       WordList *keyWordLists[numWordLists+1];
+       void SetLexer(uptr_t wParam);
+       void SetLexerLanguage(const char *languageName);
        void Colourise(int start, int end);
 #endif
 
@@ -44,28 +56,35 @@ protected:
        virtual void Finalise() = 0;
 
        virtual void RefreshColourPalette(Palette &pal, bool want);
-       
-       virtual void AddCharUTF(char *s, unsigned int len);
+
+       virtual void AddCharUTF(char *s, unsigned int len, bool treatAsDBCS=false);
        void Command(int cmdId);
-       virtual int KeyCommand(UINT iMessage);
-       
+       virtual void CancelModes();
+       virtual int KeyCommand(unsigned int iMessage);
+
        void AutoCompleteStart(int lenEntered, const char *list);
        void AutoCompleteCancel();
        void AutoCompleteMove(int delta);
-       void AutoCompleteChanged(char ch=0);
+       int AutoCompleteGetCurrent();
+       void AutoCompleteCharacterAdded(char ch);
+       void AutoCompleteCharacterDeleted();
        void AutoCompleteCompleted();
+       void AutoCompleteMoveToCurrentWord();
+       static void AutoCompleteDoubleClick(void* p);
 
+       void CallTipClick();
+       void CallTipShow(Point pt, const char *defn);
        virtual void CreateCallTipWindow(PRectangle rc) = 0;
-               
+
        virtual void AddToPopUp(const char *label, int cmd=0, bool enabled=true) = 0;
        void ContextMenu(Point pt);
-       
+
        virtual void ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
 
        virtual void NotifyStyleToNeeded(int endStyleNeeded);
 public:
        // Public so scintilla_send_message can use it
-       virtual LRESULT WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam);
+       virtual sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam);
 };
 
 #endif