X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce364c4ecd5e313e62eb7107dab59b52f267bccb..11bf9fea53d75b460aaa4028a591917b6dd6fe54:/src/stc/stc.h.in diff --git a/src/stc/stc.h.in b/src/stc/stc.h.in index abbfe19b2a..009ca23df6 100644 --- a/src/stc/stc.h.in +++ b/src/stc/stc.h.in @@ -299,8 +299,8 @@ public: } virtual void Replace(long from, long to, const wxString& text) { - SetTargetStart(from); - SetTargetEnd(to); + SetTargetStart((int)from); + SetTargetEnd((int)to); ReplaceTarget(text); } @@ -319,7 +319,10 @@ public: */ - virtual void SetInsertionPoint(long pos) { SetCurrentPos(pos); } + virtual void SetInsertionPoint(long pos) + { + SetCurrentPos(int(pos == -1 ? GetLastPosition() : pos)); + } virtual long GetInsertionPoint() const { return GetCurrentPos(); } virtual long GetLastPosition() const { return GetTextLength(); } @@ -331,8 +334,8 @@ public: } else { - SetSelectionStart(from); - SetSelectionEnd(to); + SetSelectionStart((int)from); + SetSelectionEnd((int)to); } } @@ -358,9 +361,9 @@ public: long f, t; GetSelection(&f, &t); if ( from ) - *from = f; + *from = (int)f; if ( to ) - *to = t; + *to = (int)t; } #endif @@ -370,8 +373,18 @@ public: // implement wxTextAreaBase pure virtual methods // --------------------------------------------- - virtual int GetLineLength(long n) const { return GetLine(n).length(); } - virtual wxString GetLineText(long n) const { return GetLine(n); } + virtual int GetLineLength(long lineNo) const { return static_cast(GetLineText(lineNo).length()); } + virtual wxString GetLineText(long lineNo) const + { + wxString text = GetLine(static_cast(lineNo)); + size_t lastNewLine = text.find_last_not_of(wxS("\r\n")); + + if ( lastNewLine != wxString::npos ) + text.erase(lastNewLine + 1); // remove trailing cr+lf + else + text.clear(); + return text; + } virtual int GetNumberOfLines() const { return GetLineCount(); } virtual bool IsModified() const { return GetModify(); } @@ -402,14 +415,14 @@ public: virtual long XYToPosition(long x, long y) const { - long pos = PositionFromLine(y); + long pos = PositionFromLine((int)y); pos += x; return pos; } virtual bool PositionToXY(long pos, long *x, long *y) const { - long l = LineFromPosition(pos); + int l = LineFromPosition((int)pos); if ( l == -1 ) return false; @@ -422,7 +435,7 @@ public: return true; } - virtual void ShowPosition(long pos) { GotoPos(pos); } + virtual void ShowPosition(long pos) { GotoPos((int)pos); } // FIXME-VC6: can't use wxWindow here because of "error C2603: illegal // access declaration: 'wxWindow' is not a direct base of