]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
Added clipboard cut and paste
[wxWidgets.git] / src / msw / textctrl.cpp
index bc78ce19b0386d5c5629d8c9496fd72ca0cc097f..a6686ae562e574d275571f45f44c8bf20b864db2 100644 (file)
@@ -648,6 +648,34 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
     }
 }
 
+wxString wxTextCtrl::GetStringSelection() const
+{
+    // the base class version works correctly for the rich text controls
+    // because there the lines are terminated with just '\r' which means that
+    // the string length is not changed in the result of the translations doen
+    // in GetValue() but for the normal ones when we replace "\r\n" with '\n'
+    // we break the indices
+#if wxUSE_RICHEDIT
+    if ( m_isRich )
+        return wxTextCtrlBase::GetStringSelection();
+#endif // wxUSE_RICHEDIT
+
+    long from, to;
+    GetSelection(&from, &to);
+
+    wxString str;
+    if ( from < to )
+    {
+        str = wxGetWindowText(GetHWND()).Mid(from, to - from);
+
+        // and now that we have the correct selection, convert it to the
+        // correct format
+        str = wxTextFile::Translate(str, wxTextFileType_Unix);
+    }
+
+    return str;
+}
+
 bool wxTextCtrl::IsEditable() const
 {
     long style = ::GetWindowLong(GetHwnd(), GWL_STYLE);