]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/textentry_osx.cpp
removing old codewarrior files
[wxWidgets.git] / src / osx / textentry_osx.cpp
index 680a4fdcfbcb9afa0af3749a6b2743d6e12ab09c..8061d068e40f22e28d446f0cb5939f8e8a5d9679 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Stefan Csomor
 // Modified by: Kevin Ollivier
 // Created:     1998-01-01
-// RCS-ID:      $Id: textctrl.cpp 54820 2008-07-29 20:04:11Z SC $
+// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #include "wx/filefn.h"
 #include "wx/sysopt.h"
 #include "wx/thread.h"
+#include "wx/textcompleter.h"
 
 #include "wx/osx/private.h"
 
+wxTextEntry::wxTextEntry()
+{
+    m_completer = NULL;
+    m_editable = true;
+    m_maxLength = 0;
+}
+
+wxTextEntry::~wxTextEntry()
+{
+    delete m_completer;
+}
+
 wxString wxTextEntry::DoGetValue() const
 {
     return GetTextPeer()->GetStringValue() ;
@@ -147,7 +160,12 @@ wxTextPos wxTextEntry::GetLastPosition() const
 
 void wxTextEntry::Remove(long from, long to)
 {
-    GetTextPeer()->Remove( from , to ) ;
+    {
+        EventsSuppressor noevents(this);
+        GetTextPeer()->Remove( from , to );
+    }
+
+    SendTextUpdatedEventIfAllowed();
 }
 
 void wxTextEntry::SetSelection(long from, long to)
@@ -157,12 +175,22 @@ void wxTextEntry::SetSelection(long from, long to)
 
 void wxTextEntry::WriteText(const wxString& str)
 {
-    GetTextPeer()->WriteText( str ) ;
+    {
+        EventsSuppressor noevents(this);
+        GetTextPeer()->WriteText( str );
+    }
+
+    SendTextUpdatedEventIfAllowed();
 }
 
 void wxTextEntry::Clear()
 {
-    GetTextPeer()->Clear() ;
+    {
+        EventsSuppressor noevents(this);
+        GetTextPeer()->Clear();
+    }
+
+    SendTextUpdatedEventIfAllowed();
 }
 
 bool wxTextEntry::IsEditable() const
@@ -204,7 +232,28 @@ bool wxTextEntry::CanRedo() const
 
 wxTextWidgetImpl * wxTextEntry::GetTextPeer() const
 {
-    wxFAIL_MSG("You need to implement wxTextWidgetImpl* GetTextPeer() in your wxTextEntry subclass if you want to use the native impls of its methods.");
-    return NULL;
+    wxWindow * const win = const_cast<wxTextEntry *>(this)->GetEditableWindow();
+
+    return win ? dynamic_cast<wxTextWidgetImpl *>(win->GetPeer()) : NULL;
+}
+
+// ----------------------------------------------------------------------------
+// Auto-completion
+// ----------------------------------------------------------------------------
+
+bool wxTextEntry::DoAutoCompleteStrings(const wxArrayString& choices)
+{
+    wxTextCompleterFixed * const completer = new wxTextCompleterFixed;
+    completer->SetCompletions(choices);
+
+    return DoAutoCompleteCustom(completer);
 }
+
+bool wxTextEntry::DoAutoCompleteCustom(wxTextCompleter *completer)
+{
+    m_completer = completer;
+
+    return true;
+}
+
 #endif // wxUSE_TEXTCTRL