]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stc/stc.h
support retina display
[wxWidgets.git] / include / wx / stc / stc.h
index ca27bc89f7b7da122b46c9b71c63f937bc6eb6b8..c406e6a6876c267b288a163e47d042b3280d73bf 100644 (file)
@@ -4577,7 +4577,10 @@ public:
 
     */
 
 
     */
 
-    virtual void SetInsertionPoint(long pos) { SetCurrentPos(pos); }
+    virtual void SetInsertionPoint(long pos)
+    {
+        SetCurrentPos(pos == -1 ? GetLastPosition() : pos);
+    }
     virtual long GetInsertionPoint() const { return GetCurrentPos(); }
     virtual long GetLastPosition() const { return GetTextLength(); }
 
     virtual long GetInsertionPoint() const { return GetCurrentPos(); }
     virtual long GetLastPosition() const { return GetTextLength(); }
 
@@ -4628,8 +4631,18 @@ public:
     // implement wxTextAreaBase pure virtual methods
     // ---------------------------------------------
 
     // 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<int>(GetLineText(lineNo).length()); }
+    virtual wxString GetLineText(long lineNo) const
+    {
+        wxString text = GetLine(static_cast<int>(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(); }
     virtual int GetNumberOfLines() const { return GetLineCount(); }
 
     virtual bool IsModified() const { return GetModify(); }