]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/textentry_osx.cpp
supporting max len event
[wxWidgets.git] / src / osx / textentry_osx.cpp
index d7175f8238e1877a6a18ed8eadc87634ffb46180..c5f53512b235ed9fdb7a3c22b632b1495cfff53e 100644 (file)
@@ -77,6 +77,8 @@ void wxTextEntry::GetSelection(long* from, long* to) const
 
 void wxTextEntry::SetMaxLength(unsigned long len)
 {
+    if ( GetTextPeer()->CanClipMaxLength() )
+        GetTextPeer()->SetMaxLength(len);
     m_maxLength = len ;
 }
 
@@ -222,6 +224,23 @@ bool wxTextEntry::IsEditable() const
     return m_editable ;
 }
 
+bool wxTextEntry::SendMaxLenEvent()
+{
+    wxWindow *win = GetEditableWindow();
+    wxCHECK_MSG( win, false, "can't send an event without a window" );
+    
+    wxCommandEvent event(wxEVT_TEXT_MAXLEN, win->GetId());
+    
+    // do not do this as it could be very inefficient if the text control
+    // contains a lot of text and we're not using ref-counted wxString
+    // implementation -- instead, event.GetString() will query the control for
+    // its current text if needed
+    //event.SetString(win->GetValue());
+    
+    event.SetEventObject(win);
+    return win->HandleWindowEvent(event);
+}
+
 // ----------------------------------------------------------------------------
 // Undo/redo
 // ----------------------------------------------------------------------------