X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be5a51fb592f3fa2ba38ac6cd1e488d6d806058c..bc0f253462cfaf5ca6617ba9fad9987014a66e4e:/src/stc/ScintillaWX.h diff --git a/src/stc/ScintillaWX.h b/src/stc/ScintillaWX.h index d5a0127b7c..d74ea4a0d7 100644 --- a/src/stc/ScintillaWX.h +++ b/src/stc/ScintillaWX.h @@ -16,6 +16,7 @@ #ifndef __ScintillaWX_h__ #define __ScintillaWX_h__ +#include "wx/defs.h" //---------------------------------------------------------------------- @@ -25,17 +26,20 @@ #include #include "Platform.h" +#include "PropSet.h" +#include "Accessor.h" +#include "KeyWords.h" #include "Scintilla.h" +#include "CharClassify.h" #include "XPM.h" #ifdef SCI_LEXER #include "SciLexer.h" -#include "PropSet.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" @@ -44,26 +48,24 @@ #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 -#include -#include -#include +#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,10 @@ 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); - + #if wxUSE_DRAG_AND_DROP bool DoDropText(long x, long y, const wxString& data); wxDragResult DoDragEnter(wxCoord x, wxCoord y, wxDragResult def); @@ -176,9 +180,19 @@ private: wxSTCDropTarget* dropTarget; wxDragResult dragResult; #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; };