////////////////////////////////////////////////////////////////////////////
-// Name: ScintillaWX.h
+// 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
// Author: Robin Dunn
//
// 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"
//----------------------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <vector>
+#include <map>
+// These are all Scintilla headers
#include "Platform.h"
-
+#include "SplitVector.h"
+#include "Partitioning.h"
+#include "RunStyles.h"
#include "Scintilla.h"
-#include "CharClassify.h"
-#include "XPM.h"
+#include "ScintillaWidget.h"
#ifdef SCI_LEXER
#include "SciLexer.h"
-#include "PropSet.h"
+#include "PropSetSimple.h"
+#include "ILexer.h"
+#include "LexerModule.h"
+#include "LexAccessor.h"
#include "Accessor.h"
-#include "KeyWords.h"
+#include "WordList.h"
#endif
#include "ContractionState.h"
#include "SVector.h"
#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"
+#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;
class wxSTCDropTarget : public wxTextDropTarget {
public:
void SetScintilla(ScintillaWX* swx) {
- this->swx = swx;
+ m_swx = swx;
}
bool OnDropText(wxCoord x, wxCoord y, const wxString& data);
void OnLeave();
private:
- ScintillaWX* swx;
+ ScintillaWX* m_swx;
};
#endif
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);
void DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl);
void DoLeftButtonMove(Point pt);
void DoMiddleButtonUp(Point pt);
- void DoMouseWheel(int rotation, int delta, int linesPerAction, int ctrlDown, bool isPageScroll);
+ void DoMouseWheel(wxMouseWheelAxis axis, int rotation, int delta,
+ int linesPerAction, int columnsPerAction,
+ bool ctrlDown, bool isPageScroll);
void DoAddChar(int key);
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);
// helpers
void FullPaint();
+ void FullPaintDC(wxDC* dc);
bool CanPaste();
bool GetHideSelection() { return hideSelection; }
void DoScrollToLine(int line);
#if wxUSE_DRAG_AND_DROP
wxSTCDropTarget* dropTarget;
wxDragResult dragResult;
- wxTimer* startDragTimer;
#endif
- int wheelRotation;
+ int wheelVRotation;
+ int wheelHRotation;
// For use in creating a system caret
bool HasCaretSizeChanged();