diff options
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaEditBase.h')
| -rw-r--r-- | qt/ScintillaEditBase/ScintillaEditBase.h | 151 | 
1 files changed, 151 insertions, 0 deletions
| diff --git a/qt/ScintillaEditBase/ScintillaEditBase.h b/qt/ScintillaEditBase/ScintillaEditBase.h new file mode 100644 index 000000000..0f625eba3 --- /dev/null +++ b/qt/ScintillaEditBase/ScintillaEditBase.h @@ -0,0 +1,151 @@ +// +//          Copyright (c) 1990-2011, Scientific Toolworks, Inc. +// +// The License.txt file describes the conditions under which this software may be distributed. +// +// Author: Jason Haslam +// +// Additions Copyright (c) 2011 Archaeopteryx Software, Inc. d/b/a Wingware +// ScintillaWidget.h - Qt widget that wraps ScintillaQt and provides events and scrolling + + +#ifndef SCINTILLAEDITBASE_H +#define SCINTILLAEDITBASE_H + +#include "Platform.h" +#include "Scintilla.h" + +#include <QAbstractScrollArea> +#include <QMimeData> +#include <QTime> + +#ifdef SCI_NAMESPACE +namespace Scintilla { +#endif + +class ScintillaQt; +class SurfaceImpl; +struct SCNotification; + +#ifdef WIN32 +#ifdef MAKING_LIBRARY +#define EXPORT_IMPORT_API __declspec(dllexport) +#else +// Defining dllimport upsets moc +#define EXPORT_IMPORT_API __declspec(dllimport) +//#define EXPORT_IMPORT_API +#endif +#else +#define EXPORT_IMPORT_API +#endif + +class EXPORT_IMPORT_API ScintillaEditBase : public QAbstractScrollArea { +	Q_OBJECT + +public: +	ScintillaEditBase(QWidget *parent = 0); +	virtual ~ScintillaEditBase(); + +	virtual sptr_t send( +		unsigned int iMessage, +		uptr_t wParam = 0, +		sptr_t lParam = 0) const; + +	virtual sptr_t sends( +		unsigned int iMessage, +		uptr_t wParam = 0, +		const char *s = 0) const; + +public slots: +	// Scroll events coming from GUI to be sent to Scintilla. +	void scrollHorizontal(int value); +	void scrollVertical(int value); + +	// Emit Scintilla notifications as signals. +	void notifyParent(SCNotification scn); +	void event_command(uptr_t wParam, sptr_t lParam); + +signals: +	void horizontalScrolled(int value); +	void verticalScrolled(int value); +	void horizontalRangeChanged(int max, int page); +	void verticalRangeChanged(int max, int page); +	void notifyChange(); +	void linesAdded(int linesAdded); + +	// Clients can use this hook to add additional +	// formats (e.g. rich text) to the MIME data. +	void aboutToCopy(QMimeData *data); + +	// Scintilla Notifications +	void styleNeeded(int position); +	void charAdded(int ch); +	void savePointChanged(bool dirty); +	void modifyAttemptReadOnly(); +	void key(int key); +	void doubleClick(int position, int line); +	void updateUi(); +	void modified(int type, int position, int length, int linesAdded, +	              const QByteArray &text, int line, int foldNow, int foldPrev); +	void macroRecord(int message, uptr_t wParam, sptr_t lParam); +	void marginClicked(int position, int modifiers, int margin); +	void textAreaClicked(int line, int modifiers); +	void needShown(int position, int length); +	void painted(); +	void userListSelection(); // Wants some args. +	void uriDropped();        // Wants some args. +	void dwellStart(int x, int y); +	void dwellEnd(int x, int y); +	void zoom(int zoom); +	void hotSpotClick(int position, int modifiers); +	void hotSpotDoubleClick(int position, int modifiers); +	void callTipClick(); +	void autoCompleteSelection(int position, const QString &text); + +	// Base notifications for compatibility with other Scintilla implementations +	void notify(SCNotification *pscn); +	void command(uptr_t wParam, sptr_t lParam); + +	// GUI event notifications needed under Qt +	void buttonPressed(QMouseEvent *event); +	void buttonReleased(QMouseEvent *event); +	void keyPressed(QKeyEvent *event); +	void resized(); + +protected: +	virtual bool event(QEvent *event); +	virtual void paintEvent(QPaintEvent *event); +	virtual void wheelEvent(QWheelEvent *event); +	virtual void focusInEvent(QFocusEvent *event); +	virtual void focusOutEvent(QFocusEvent *event); +	virtual void resizeEvent(QResizeEvent *event); +	virtual void keyPressEvent(QKeyEvent *event); +	virtual void mousePressEvent(QMouseEvent *event); +	virtual void mouseReleaseEvent(QMouseEvent *event); +	virtual void mouseDoubleClickEvent(QMouseEvent *event); +	virtual void mouseMoveEvent(QMouseEvent *event); +	virtual void contextMenuEvent(QContextMenuEvent *event); +	virtual void dragEnterEvent(QDragEnterEvent *event); +	virtual void dragLeaveEvent(QDragLeaveEvent *event); +	virtual void dragMoveEvent(QDragMoveEvent *event); +	virtual void dropEvent(QDropEvent *event); +	virtual void inputMethodEvent(QInputMethodEvent *event); +	virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; +	virtual void scrollContentsBy(int, int) {} + +private: +	ScintillaQt *sqt; + +	QTime time; + +	int preeditPos; +	QString preeditString; + +	int wheelDelta; +}; + +#ifdef SCI_NAMESPACE +} +#endif + +#endif /* SCINTILLAEDITBASE_H */ | 
