X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6670f56440ae9209b3e2e51e06acf3bc5aaf1905..1f640c45d43bc73423dbf70b76adeec37907a548:/src/os2/textctrl.cpp diff --git a/src/os2/textctrl.cpp b/src/os2/textctrl.cpp index c9bc9d2411..111a63165b 100644 --- a/src/os2/textctrl.cpp +++ b/src/os2/textctrl.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp +// Name: src/os2/textctrl.cpp // Purpose: wxTextCtrl // Author: David Webster // Modified by: @@ -16,17 +16,17 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#include "wx/textctrl.h" + #ifndef WX_PRECOMP - #include "wx/textctrl.h" #include "wx/scrolwin.h" #include "wx/settings.h" #include "wx/brush.h" #include "wx/utils.h" #include "wx/log.h" + #include "wx/app.h" #endif -#include "wx/app.h" - #if wxUSE_CLIPBOARD #include "wx/clipbrd.h" #endif @@ -55,9 +55,9 @@ // event tables and other macros // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxTextCtrlBase) -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) +BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase) EVT_CHAR(wxTextCtrl::OnChar) EVT_DROP_FILES(wxTextCtrl::OnDropFiles) @@ -125,6 +125,7 @@ bool wxTextCtrl::Create( m_windowStyle = lStyle; m_bIsMLE = false; + m_bSkipUpdate = false; long lSstyle = WS_VISIBLE | WS_TABSTOP; @@ -343,8 +344,9 @@ wxString wxTextCtrl::GetValue() const return sStr; } // end of wxTextCtrl::GetValue -void wxTextCtrl::SetValue( - const wxString& rsValue +void wxTextCtrl::DoSetValue( + const wxString& rsValue, + int flags ) { // @@ -355,6 +357,9 @@ void wxTextCtrl::SetValue( // if ((rsValue.length() > 0x400) || (rsValue != GetValue())) { + if ( flags & SetValue_SendEvent ) + m_bSkipUpdate = true; + ::WinSetWindowText(GetHwnd(), (PSZ)rsValue.c_str()); AdjustSpaceLimit(); } @@ -679,11 +684,12 @@ void wxTextCtrl::SetSelection( ::WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lFromChar, (USHORT)lToChar), (MPARAM)0); } // end of wxTextCtrl::SetSelection -bool wxTextCtrl::LoadFile( - const wxString& rsFile +bool wxTextCtrl::DoLoadFile( + const wxString& rsFile, + int fileType ) { - if ( wxTextCtrlBase::LoadFile(rsFile) ) + if ( wxTextCtrlBase::DoLoadFile(rsFile, fileType) ) { // // Update the size limit if needed @@ -692,7 +698,7 @@ bool wxTextCtrl::LoadFile( return true; } return false; -} // end of wxTextCtrl::LoadFile +} // end of wxTextCtrl::DoLoadFile bool wxTextCtrl::IsModified() const { @@ -1094,6 +1100,12 @@ bool wxTextCtrl::OS2Command( case EN_CHANGE: { + if (m_bSkipUpdate) + { + m_bSkipUpdate = false; + break; + } + wxCommandEvent vEvent( wxEVT_COMMAND_TEXT_UPDATED ,m_windowId );