X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad0bae85d8aa925f3e598d489efd96f25d4e75f5..fa1c12bdd76acc21ddb45b90bb53b2f58aed946d:/src/common/textcmn.cpp diff --git a/src/common/textcmn.cpp b/src/common/textcmn.cpp index 523b23085c..8b5744f1bf 100644 --- a/src/common/textcmn.cpp +++ b/src/common/textcmn.cpp @@ -51,6 +51,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxTextUrlEvent, wxCommandEvent) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_UPDATED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_ENTER) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_URL) +DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_MAXLEN) // ---------------------------------------------------------------------------- // ctor @@ -58,24 +59,10 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_URL) wxTextCtrlBase::wxTextCtrlBase() { -#ifndef NO_TEXT_WINDOW_STREAM - #if wxUSE_IOSTREAMH - if (allocate()) - setp(base(),ebuf()); - #else - m_streambuf = new char[64]; - setp(m_streambuf, m_streambuf + 64); - #endif //wxUSE_IOSTREAMH -#endif // NO_TEXT_WINDOW_STREAM } wxTextCtrlBase::~wxTextCtrlBase() { -#ifndef NO_TEXT_WINDOW_STREAM -#if !wxUSE_IOSTREAMH - delete[] m_streambuf; -#endif -#endif } // ---------------------------------------------------------------------------- @@ -214,35 +201,14 @@ wxTextCtrl& wxTextCtrlBase::operator<<(const wxChar c) #ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrlBase::overflow( int WXUNUSED(c) ) +int wxTextCtrlBase::overflow(int c) { - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return EOF; -} + AppendText((wxChar)c); -int wxTextCtrlBase::sync() -{ - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; + // return something different from EOF return 0; } -int wxTextCtrlBase::underflow() -{ - return EOF; -} - #endif // NO_TEXT_WINDOW_STREAM // ---------------------------------------------------------------------------- @@ -278,6 +244,20 @@ void wxTextCtrlBase::SelectAll() SetSelection(0, GetLastPosition()); } +wxString wxTextCtrlBase::GetStringSelection() const +{ + long from, to; + GetSelection(&from, &to); + + wxString sel; + if ( from < to ) + { + sel = GetValue().Mid(from, to - from); + } + + return sel; +} + #else // !wxUSE_TEXTCTRL // define this one even if !wxUSE_TEXTCTRL because it is also used by other