X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cb719f2e29bd20effa3259d2d7dead9fd857442c..c56ae04274fda26269c6d06be34cf59a45eb70ce:/src/common/textcmn.cpp diff --git a/src/common/textcmn.cpp b/src/common/textcmn.cpp index 541c5732da..a88d7f210b 100644 --- a/src/common/textcmn.cpp +++ b/src/common/textcmn.cpp @@ -13,10 +13,6 @@ // declarations // ============================================================================ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "textctrlbase.h" -#endif - // for compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -53,18 +49,6 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_ENTER) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_URL) DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_MAXLEN) -// ---------------------------------------------------------------------------- -// ctor -// ---------------------------------------------------------------------------- - -wxTextCtrlBase::wxTextCtrlBase() -{ -} - -wxTextCtrlBase::~wxTextCtrlBase() -{ -} - // ---------------------------------------------------------------------------- // style functions - not implemented here // ---------------------------------------------------------------------------- @@ -232,7 +216,7 @@ bool wxTextCtrlBase::LoadFile(const wxString& filename) bool wxTextCtrlBase::SaveFile(const wxString& filename) { - wxString filenameToUse = filename.IsEmpty() ? m_filename : filename; + wxString filenameToUse = filename.empty() ? m_filename : filename; if ( filenameToUse.empty() ) { // what kind of message to give? is it an error or a program bug? @@ -311,7 +295,7 @@ wxTextCtrl& wxTextCtrlBase::operator<<(const wxChar c) // streambuf methods implementation // ---------------------------------------------------------------------------- -#ifndef NO_TEXT_WINDOW_STREAM +#if wxHAS_TEXT_WINDOW_STREAM int wxTextCtrlBase::overflow(int c) { @@ -321,7 +305,7 @@ int wxTextCtrlBase::overflow(int c) return 0; } -#endif // NO_TEXT_WINDOW_STREAM +#endif // wxHAS_TEXT_WINDOW_STREAM // ---------------------------------------------------------------------------- // clipboard stuff @@ -374,7 +358,7 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event) case WXK_NUMPAD7: case WXK_NUMPAD8: case WXK_NUMPAD9: - ch = _T('0') + keycode - WXK_NUMPAD0; + ch = (wxChar)(_T('0') + keycode - WXK_NUMPAD0); break; case WXK_MULTIPLY: @@ -406,9 +390,8 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event) case WXK_NUMPAD_DELETE: // delete the character at cursor { - const long pos = GetInsertionPoint(), - last = GetLastPosition(); - if ( pos < last ) + const long pos = GetInsertionPoint(); + if ( pos < GetLastPosition() ) Remove(pos, pos + 1); } break; @@ -423,6 +406,13 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event) break; default: +#if wxUSE_UNICODE + if ( event.GetUnicodeKey() ) + { + ch = event.GetUnicodeKey(); + } + else +#endif if ( keycode < 256 && keycode >= 0 && wxIsprint(keycode) ) { // FIXME this is not going to work for non letters... @@ -481,9 +471,12 @@ wxString wxTextCtrlBase::GetRange(long from, long to) const // do the window-specific processing after processing the update event void wxTextCtrlBase::DoUpdateWindowUI(wxUpdateUIEvent& event) { - if ( event.GetSetEnabled() ) - Enable(event.GetEnabled()); + // call inherited, but skip the wxControl's version, and call directly the + // wxWindow's one instead, because the only reason why we are overriding this + // function is that we want to use SetValue() instead of wxControl::SetLabel() + wxWindowBase::DoUpdateWindowUI(event); + // update text if ( event.GetSetText() ) { if ( event.GetText() != GetValue() ) @@ -529,4 +522,3 @@ wxTextCtrlBase::HitTest(const wxPoint& WXUNUSED(pt), DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_UPDATED) #endif // wxUSE_TEXTCTRL/!wxUSE_TEXTCTRL -