X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4370573a4513753d4ea559270b0fef797471f4dd..73486557c0f533a7da12aee1311a3898e4a6f266:/src/stc/stc.cpp?ds=sidebyside diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp index 506493658e..35655c3411 100644 --- a/src/stc/stc.cpp +++ b/src/stc/stc.cpp @@ -66,14 +66,36 @@ int wxForceScintillaLexers(void) const wxChar* wxSTCNameStr = "stcwindow"; + +DEFINE_EVENT_TYPE( wxEVT_STC_CHANGE ) +DEFINE_EVENT_TYPE( wxEVT_STC_STYLENEEDED ) +DEFINE_EVENT_TYPE( wxEVT_STC_CHARADDED ) +DEFINE_EVENT_TYPE( wxEVT_STC_UPDATEUI ) +DEFINE_EVENT_TYPE( wxEVT_STC_SAVEPOINTREACHED ) +DEFINE_EVENT_TYPE( wxEVT_STC_SAVEPOINTLEFT ) +DEFINE_EVENT_TYPE( wxEVT_STC_ROMODIFYATTEMPT ) +DEFINE_EVENT_TYPE( wxEVT_STC_DOUBLECLICK ) +DEFINE_EVENT_TYPE( wxEVT_STC_MODIFIED ) +DEFINE_EVENT_TYPE( wxEVT_STC_KEY ) +DEFINE_EVENT_TYPE( wxEVT_STC_MACRORECORD ) +DEFINE_EVENT_TYPE( wxEVT_STC_MARGINCLICK ) +DEFINE_EVENT_TYPE( wxEVT_STC_NEEDSHOWN ) +DEFINE_EVENT_TYPE( wxEVT_STC_POSCHANGED ) + + BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl) EVT_PAINT (wxStyledTextCtrl::OnPaint) EVT_SCROLLWIN (wxStyledTextCtrl::OnScrollWin) EVT_SIZE (wxStyledTextCtrl::OnSize) EVT_LEFT_DOWN (wxStyledTextCtrl::OnMouseLeftDown) +#ifdef __WXMSW__ + // Let Scintilla see the double click as a second click + EVT_LEFT_DCLICK (wxStyledTextCtrl::OnMouseLeftDown) +#endif EVT_MOTION (wxStyledTextCtrl::OnMouseMove) EVT_LEFT_UP (wxStyledTextCtrl::OnMouseLeftUp) EVT_RIGHT_UP (wxStyledTextCtrl::OnMouseRightUp) + EVT_MOUSEWHEEL (wxStyledTextCtrl::OnMouseWheel) EVT_CHAR (wxStyledTextCtrl::OnChar) EVT_KEY_DOWN (wxStyledTextCtrl::OnKeyDown) EVT_KILL_FOCUS (wxStyledTextCtrl::OnLoseFocus) @@ -98,7 +120,7 @@ wxStyledTextCtrl::wxStyledTextCtrl(wxWindow *parent, long style, const wxString& name) : wxControl(parent, id, pos, size, - style | wxVSCROLL | wxHSCROLL | wxWANTS_CHARS, + style | wxVSCROLL | wxHSCROLL | wxWANTS_CHARS | wxCLIP_CHILDREN, wxDefaultValidator, name) { m_swx = new ScintillaWX(this); @@ -119,6 +141,10 @@ long wxStyledTextCtrl::SendMsg(int msg, long wp, long lp) { } +#ifdef MAKELONG +#undef MAKELONG +#endif + #define MAKELONG(a, b) ((a) | ((b) << 16)) @@ -1051,7 +1077,7 @@ void wxStyledTextCtrl::SetText(const wxString& text) { // Retrieve all the text in the document. wxString wxStyledTextCtrl::GetText() { wxString text; - int len = GetTextLength(); + int len = GetTextLength()+1; char* buff = text.GetWriteBuf(len+1); SendMsg(2182, len, (long)buff); @@ -1477,6 +1503,17 @@ wxPoint wxStyledTextCtrl::PointFromPosition(int pos) { return wxPoint(x, y); } +// Scroll enough to make the given line visible +void wxStyledTextCtrl::ScrollToLine(int line) { + m_swx->DoScrollToLine(line); +} + + +// Scroll enough to make the given column visible +void wxStyledTextCtrl::ScrollToColumn(int column) { + m_swx->DoScrollToColumn(column); +} + //---------------------------------------------------------------------- @@ -1524,6 +1561,14 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) { m_swx->DoContextMenu(Point(pt.x, pt.y)); } + +void wxStyledTextCtrl::OnMouseWheel(wxMouseEvent& evt) { + m_swx->DoMouseWheel(evt.GetWheelRotation(), + evt.GetWheelDelta(), + evt.GetLinesPerAction()); +} + + void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) { long key = evt.KeyCode(); if ((key > WXK_ESCAPE) &&