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)
wxString wxStyledTextCtrl::GetCurLine(int* linePos) {
wxString text;
int len = LineLength(GetCurrentLine());
- char* buf = text.GetWriteBuf(len+1);
+ char* buf = text.GetWriteBuf(len);
int pos = SendMsg(2027, len, (long)buf);
text.UngetWriteBuf();
wxString wxStyledTextCtrl::GetLine(int line) {
wxString text;
int len = LineLength(line);
- char* buf = text.GetWriteBuf(len+1);
+ char* buf = text.GetWriteBuf(len);
int pos = SendMsg(2153, line, (long)buf);
text.UngetWriteBuf();
// 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);
return wxPoint(x, y);
}
-
// Scroll enough to make the given line visible
void wxStyledTextCtrl::ScrollToLine(int line) {
m_swx->DoScrollToLine(line);
}
+
//----------------------------------------------------------------------
// Event handlers
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) &&