X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9e730a78765d0e70ca5b77512569c94585070fe2..eea4d01c65f9b29baa1193db762b4c6b8144af24:/src/stc/ScintillaWX.h diff --git a/src/stc/ScintillaWX.h b/src/stc/ScintillaWX.h index 4c6b35c6e3..df5ad6748a 100644 --- a/src/stc/ScintillaWX.h +++ b/src/stc/ScintillaWX.h @@ -1,6 +1,6 @@ //////////////////////////////////////////////////////////////////////////// -// Name: ScintillaWX.h -// Purpose: A wxWindows implementation of Scintilla. A class derived +// Name: src/stc/ScintillaWX.h +// Purpose: A wxWidgets implementation of Scintilla. A class derived // from ScintillaBase that uses the "wx platform" defined in // PlatWX.cpp. This class is one end of a bridge between // the wx world and the Scintilla world. It needs a peer @@ -11,11 +11,12 @@ // Created: 13-Jan-2000 // RCS-ID: $Id$ // Copyright: (c) 2000 by Total Control Software -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef __ScintillaWX_h__ #define __ScintillaWX_h__ +#include "wx/defs.h" //---------------------------------------------------------------------- @@ -25,9 +26,11 @@ #include #include "Platform.h" - +#include "SplitVector.h" +#include "Partitioning.h" +#include "RunStyles.h" #include "Scintilla.h" -#include "XPM.h" +#include "ScintillaWidget.h" #ifdef SCI_LEXER #include "SciLexer.h" #include "PropSet.h" @@ -40,22 +43,32 @@ #include "CallTip.h" #include "KeyMap.h" #include "Indicator.h" +#include "XPM.h" #include "LineMarker.h" #include "Style.h" -#include "ViewStyle.h" #include "AutoComplete.h" +#include "ViewStyle.h" +#include "CharClassify.h" +#include "Decoration.h" #include "Document.h" +#include "Selection.h" +#include "PositionCache.h" #include "Editor.h" +#include "PropSetSimple.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 //---------------------------------------------------------------------- -class wxStyledTextCtrl; // forward + +class WXDLLIMPEXP_FWD_CORE wxDC; +class WXDLLIMPEXP_FWD_STC wxStyledTextCtrl; // forward class ScintillaWX; @@ -66,7 +79,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); @@ -75,7 +88,7 @@ public: void OnLeave(); private: - ScintillaWX* swx; + ScintillaWX* m_swx; }; #endif @@ -91,6 +104,7 @@ public: virtual void Initialise(); virtual void Finalise(); virtual void StartDrag(); + virtual bool SetIdle(bool on); virtual void SetTicking(bool on); virtual void SetMouseCapture(bool on); virtual bool HaveMouseCapture(); @@ -100,20 +114,25 @@ public: virtual bool ModifyScrollBars(int nMax, int nPage); virtual void Copy(); virtual void Paste(); + virtual void CopyToClipboard(const SelectionText &selectedText); + virtual void CreateCallTipWindow(PRectangle rc); 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); @@ -129,8 +148,9 @@ 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* 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); @@ -151,18 +171,31 @@ public: void DoScrollToLine(int line); void DoScrollToColumn(int column); void ClipChildren(wxDC& dc, PRectangle rect); + void SetUseAntiAliasing(bool useAA); + bool GetUseAntiAliasing(); private: bool capturedMouse; + bool focusEvent; wxStyledTextCtrl* stc; #if wxUSE_DRAG_AND_DROP 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; };