summaryrefslogtreecommitdiffstats
path: root/qt/ScintillaQt.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt/ScintillaQt.h')
-rw-r--r--qt/ScintillaQt.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/qt/ScintillaQt.h b/qt/ScintillaQt.h
new file mode 100644
index 0000000..3190b71
--- /dev/null
+++ b/qt/ScintillaQt.h
@@ -0,0 +1,117 @@
+// The definition of the Qt specific subclass of ScintillaBase.
+//
+// Copyright (c) 2006
+// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
+//
+// This file is part of QScintilla.
+//
+// This copy of QScintilla is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option) any
+// later version.
+//
+// QScintilla is supplied in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+// details.
+//
+// You should have received a copy of the GNU General Public License along with
+// QScintilla; see the file LICENSE. If not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifndef SCINTILLAQT_H
+#define SCINTILLAQT_H
+
+
+#include <qtimer.h>
+
+// These are needed because scintilla class header files don't seem to manage
+// their own dependencies properly.
+#include <ctype.h>
+#include <stdlib.h>
+#include "Platform.h"
+#include "Scintilla.h"
+#include "SVector.h"
+#include "CellBuffer.h"
+#include "CharClassify.h"
+#include "Document.h"
+#include "Style.h"
+#include "XPM.h"
+#include "LineMarker.h"
+#include "Indicator.h"
+#include "ViewStyle.h"
+#include "KeyMap.h"
+#include "ContractionState.h"
+#include "Editor.h"
+#include "AutoComplete.h"
+#include "CallTip.h"
+#include "SString.h"
+#include "PropSet.h"
+#include "Accessor.h"
+#include "KeyWords.h"
+
+#include "ScintillaBase.h"
+
+
+class QPaintEvent;
+class QextScintillaBase;
+class QtCallTip;
+
+
+class ScintillaQt : public ScintillaBase
+{
+ friend class QextScintillaBase;
+ friend class QtCallTip;
+
+public:
+ ScintillaQt(QextScintillaBase *qsb_);
+ virtual ~ScintillaQt();
+
+ virtual sptr_t WndProc(unsigned int iMessage,uptr_t wParam,
+ sptr_t lParam);
+
+private:
+ QWidget *PWindow(Window &w)
+ {
+ return reinterpret_cast<QWidget *>(w.GetID());
+ }
+
+ void Initialise();
+ void Finalise();
+ void StartDrag();
+ void StartDragImpl();
+ sptr_t DefWndProc(unsigned int,uptr_t,sptr_t);
+ void SetTicking(bool);
+ void SetMouseCapture(bool on);
+ bool HaveMouseCapture();
+ void SetVerticalScrollPos();
+ void SetHorizontalScrollPos();
+ bool ModifyScrollBars(int nMax,int nPage);
+ void ReconfigureScrollBars();
+ void NotifyChange();
+ void NotifyParent(SCNotification scn);
+ int KeyDefault(int key,int modifiers);
+ void CopyToClipboard(const SelectionText &selectedText);
+ void Copy();
+ void Paste();
+ void CreateCallTipWindow(PRectangle rc);
+ void AddToPopUp(const char *label,int cmd = 0,bool enabled = true);
+ void ClaimSelection();
+ void UnclaimSelection();
+ static sptr_t DirectFunction(ScintillaQt *sci,unsigned int iMessage,
+ uptr_t wParam,sptr_t lParam);
+
+ QString textRange(const SelectionText *text);
+ void paintEvent(QPaintEvent *pe);
+ void dragEnterEvent(QDragEnterEvent *dee);
+ void dragMoveEvent(QDragMoveEvent *dme);
+ void dragLeaveEvent(QDragLeaveEvent *dle);
+ void dropEvent(QDropEvent *de);
+
+ bool capturedMouse;
+ QextScintillaBase *qsb;
+ QTimer qtimer;
+};
+
+#endif