]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
use wxComboCtrl instead of custom popup window (patch 1575343)
[wxWidgets.git] / src / msw / textctrl.cpp
index a71654a1ecf4c42e3334deab5fa793d7410b8dad..973f77d2831af0f4c4b983790d26ff97f8da5300 100644 (file)
@@ -27,7 +27,6 @@
 #if wxUSE_TEXTCTRL && !(defined(__SMARTPHONE__) && defined(__WXWINCE__))
 
 #ifndef WX_PRECOMP
-    #include "wx/msw/missing.h"
     #include "wx/textctrl.h"
     #include "wx/settings.h"
     #include "wx/brush.h"
@@ -74,6 +73,8 @@
 
 #endif // wxUSE_RICHEDIT
 
+#include "wx/msw/missing.h"
+
 // ----------------------------------------------------------------------------
 // private classes
 // ----------------------------------------------------------------------------
@@ -662,6 +663,15 @@ void wxTextCtrl::SetWindowStyleFlag(long style)
 // set/get the controls text
 // ----------------------------------------------------------------------------
 
+bool wxTextCtrl::IsEmpty() const
+{
+    // this is an optimization for multiline controls containing a lot of text
+    if ( IsMultiLine() && GetNumberOfLines() != 1 )
+        return false;
+
+    return wxTextCtrlBase::IsEmpty();
+}
+
 wxString wxTextCtrl::GetValue() const
 {
     // range 0..-1 is special for GetRange() and means to retrieve all text
@@ -793,7 +803,7 @@ void wxTextCtrl::DoSetValue(const wxString& value, int flags)
     // edit controls mostly)
     if ( (value.length() > 0x400) || (value != GetValue()) )
     {
-        DoWriteText(value, flags);
+        DoWriteText(value, flags /* doesn't include SelectionOnly here */);
 
         // mark the control as being not dirty - we changed its text, not the
         // user
@@ -1436,7 +1446,7 @@ void wxTextCtrl::Replace(long from, long to, const wxString& value)
     // Set selection and remove it
     DoSetSelection(from, to, false /* don't scroll caret into view */);
 
-    DoWriteText(value, SetValue_SelectionOnly);
+    DoWriteText(value);
 }
 
 void wxTextCtrl::Remove(long from, long to)