]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/ScintillaWX.h
ignore WinCE projects and build directories
[wxWidgets.git] / src / stc / ScintillaWX.h
index d5a0127b7c87f39708fa9b1b32d92773dd82d8a6..66345d16d27ae8dc8675af75f7fadeb056f76cc0 100644 (file)
@@ -16,6 +16,7 @@
 
 #ifndef __ScintillaWX_h__
 #define __ScintillaWX_h__
+#include "wx/defs.h"
 
 //----------------------------------------------------------------------
 
@@ -27,6 +28,7 @@
 #include "Platform.h"
 
 #include "Scintilla.h"
+#include "CharClassify.h"
 #include "XPM.h"
 #ifdef SCI_LEXER
 #include "SciLexer.h"
 #include "Accessor.h"
 #include "KeyWords.h"
 #endif
+#include "SplitVector.h"
+#include "Partitioning.h"
+#include "RunStyles.h"
 #include "ContractionState.h"
-#include "SVector.h"
 #include "CellBuffer.h"
 #include "CallTip.h"
 #include "KeyMap.h"
 #include "Style.h"
 #include "ViewStyle.h"
 #include "AutoComplete.h"
+#include "Decoration.h"
 #include "Document.h"
+#include "PositionCache.h"
 #include "Editor.h"
 #include "ScintillaBase.h"
 
-#include <wx/wx.h>
-#include <wx/dataobj.h>
-#include <wx/clipbrd.h>
-#include <wx/dnd.h>
+#ifdef __WXMSW__
+#include "wx/msw/wrapwin.h"                     // HBITMAP
+#endif
+#if wxUSE_DRAG_AND_DROP
+#include "wx/timer.h"
+#endif
 
 //----------------------------------------------------------------------
 
-#ifdef WXMAKINGDLL_STC
-    #define WXDLLIMPEXP_STC WXEXPORT
-#elif defined(WXUSINGDLL)
-    #define WXDLLIMPEXP_STC WXIMPORT
-#else // not making nor using DLL
-    #define WXDLLIMPEXP_STC
-#endif
 
-class WXDLLIMPEXP_STC wxStyledTextCtrl;           // forward
+class WXDLLIMPEXP_FWD_CORE wxDC;
+class WXDLLIMPEXP_FWD_STC wxStyledTextCtrl;           // forward
 class ScintillaWX;
 
 
@@ -74,7 +76,7 @@ class ScintillaWX;
 class wxSTCDropTarget : public wxTextDropTarget {
 public:
     void SetScintilla(ScintillaWX* swx) {
-        this->swx = swx;
+        m_swx = swx;
     }
 
     bool OnDropText(wxCoord x, wxCoord y, const wxString& data);
@@ -83,7 +85,7 @@ public:
     void OnLeave();
 
 private:
-    ScintillaWX* swx;
+    ScintillaWX* m_swx;
 };
 #endif
 
@@ -115,18 +117,20 @@ public:
     virtual void AddToPopUp(const char *label, int cmd = 0, bool enabled = true);
     virtual void ClaimSelection();
 
-    virtual long DefWndProc(unsigned int iMessage,
-                            unsigned long wParam,
-                            long lParam);
-    virtual long WndProc(unsigned int iMessage,
-                         unsigned long wParam,
-                         long lParam);
+    virtual sptr_t DefWndProc(unsigned int iMessage,
+                              uptr_t wParam,
+                              sptr_t lParam);
+    virtual sptr_t WndProc(unsigned int iMessage,
+                           uptr_t wParam,
+                           sptr_t lParam);
 
     virtual void NotifyChange();
     virtual void NotifyParent(SCNotification scn);
 
     virtual void CancelModes();
 
+    virtual void UpdateSystemCaret();
+
     // Event delegates
     void DoPaint(wxDC* dc, wxRect rect);
     void DoHScroll(int type, int pos);
@@ -141,10 +145,11 @@ public:
     void DoMiddleButtonUp(Point pt);
     void DoMouseWheel(int rotation, int delta, int linesPerAction, int ctrlDown, bool isPageScroll);
     void DoAddChar(int key);
-    int  DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool meta, bool* consumed);
+    int  DoKeyDown(const wxKeyEvent& event, bool* consumed);
     void DoTick() { Tick(); }
     void DoOnIdle(wxIdleEvent& evt);
-    
+    void DoStartDrag();
+
 #if wxUSE_DRAG_AND_DROP
     bool DoDropText(long x, long y, const wxString& data);
     wxDragResult DoDragEnter(wxCoord x, wxCoord y, wxDragResult def);
@@ -175,10 +180,21 @@ private:
 #if wxUSE_DRAG_AND_DROP
     wxSTCDropTarget*    dropTarget;
     wxDragResult        dragResult;
+    wxTimer*            startDragTimer;
 #endif
-    int                 wheelRotation;
 
+    int                 wheelRotation;
 
+    // For use in creating a system caret
+    bool HasCaretSizeChanged();
+    bool CreateSystemCaret();
+    bool DestroySystemCaret();
+#ifdef __WXMSW__
+    HBITMAP sysCaretBitmap;
+    int sysCaretWidth;
+    int sysCaretHeight;
+#endif
+   
     friend class wxSTCCallTip;
 };