mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
Initial commit: ReclassX structured binary editor
This commit is contained in:
103
third_party/qscintilla/scintilla/src/ScintillaBase.h
vendored
Normal file
103
third_party/qscintilla/scintilla/src/ScintillaBase.h
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
// Scintilla source code edit control
|
||||
/** @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
|
||||
|
||||
namespace Scintilla {
|
||||
|
||||
#ifdef SCI_LEXER
|
||||
class LexState;
|
||||
#endif
|
||||
|
||||
/**
|
||||
*/
|
||||
class ScintillaBase : public Editor, IListBoxDelegate {
|
||||
protected:
|
||||
/** Enumeration of commands and child windows. */
|
||||
enum {
|
||||
idCallTip=1,
|
||||
idAutoComplete=2,
|
||||
|
||||
idcmdUndo=10,
|
||||
idcmdRedo=11,
|
||||
idcmdCut=12,
|
||||
idcmdCopy=13,
|
||||
idcmdPaste=14,
|
||||
idcmdDelete=15,
|
||||
idcmdSelectAll=16
|
||||
};
|
||||
|
||||
enum { maxLenInputIME = 200 };
|
||||
|
||||
int displayPopupMenu;
|
||||
Menu popup;
|
||||
AutoComplete ac;
|
||||
|
||||
CallTip ct;
|
||||
|
||||
int listType; ///< 0 is an autocomplete list
|
||||
int maxListWidth; /// Maximum width of list, in average character widths
|
||||
int multiAutoCMode; /// Mode for autocompleting when multiple selections are present
|
||||
|
||||
#ifdef SCI_LEXER
|
||||
LexState *DocumentLexState();
|
||||
void SetLexer(uptr_t wParam);
|
||||
void SetLexerLanguage(const char *languageName);
|
||||
void Colourise(int start, int end);
|
||||
#endif
|
||||
|
||||
ScintillaBase();
|
||||
// Deleted so ScintillaBase objects can not be copied.
|
||||
ScintillaBase(const ScintillaBase &) = delete;
|
||||
ScintillaBase(ScintillaBase &&) = delete;
|
||||
ScintillaBase &operator=(const ScintillaBase &) = delete;
|
||||
ScintillaBase &operator=(ScintillaBase &&) = delete;
|
||||
~ScintillaBase() override;
|
||||
void Initialise() override {}
|
||||
void Finalise() override;
|
||||
|
||||
void AddCharUTF(const char *s, unsigned int len, bool treatAsDBCS=false) override;
|
||||
void Command(int cmdId);
|
||||
void CancelModes() override;
|
||||
int KeyCommand(unsigned int iMessage) override;
|
||||
|
||||
void AutoCompleteInsert(Sci::Position startPos, Sci::Position removeLen, const char *text, Sci::Position textLen);
|
||||
void AutoCompleteStart(Sci::Position lenEntered, const char *list);
|
||||
void AutoCompleteCancel();
|
||||
void AutoCompleteMove(int delta);
|
||||
int AutoCompleteGetCurrent() const;
|
||||
int AutoCompleteGetCurrentText(char *buffer) const;
|
||||
void AutoCompleteCharacterAdded(char ch);
|
||||
void AutoCompleteCharacterDeleted();
|
||||
void AutoCompleteCompleted(char ch, unsigned int completionMethod);
|
||||
void AutoCompleteMoveToCurrentWord();
|
||||
void AutoCompleteSelection();
|
||||
void ListNotify(ListBoxEvent *plbe) override;
|
||||
|
||||
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;
|
||||
bool ShouldDisplayPopup(Point ptInWindowCoordinates) const;
|
||||
void ContextMenu(Point pt);
|
||||
|
||||
void ButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers) override;
|
||||
void RightButtonDownWithModifiers(Point pt, unsigned int curTime, int modifiers) override;
|
||||
|
||||
void NotifyStyleToNeeded(Sci::Position endStyleNeeded) override;
|
||||
void NotifyLexerChanged(Document *doc, void *userData) override;
|
||||
|
||||
public:
|
||||
// Public so scintilla_send_message can use it
|
||||
sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) override;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user