removing duplicated method, wiring native maxlength support, see #10269

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2012-01-15 15:54:53 +00:00
parent 4386db06ba
commit 6d155f1f31
2 changed files with 13 additions and 19 deletions

View File

@@ -75,10 +75,6 @@ public:
virtual void MarkDirty(); virtual void MarkDirty();
virtual void DiscardEdits(); virtual void DiscardEdits();
// set the max number of characters which may be entered
// in a single line text control
virtual void SetMaxLength(unsigned long len);
// set the grayed out hint text // set the grayed out hint text
virtual bool SetHint(const wxString& hint); virtual bool SetHint(const wxString& hint);
virtual wxString GetHint() const; virtual wxString GetHint() const;

View File

@@ -154,11 +154,6 @@ void wxTextCtrl::MacCheckSpelling(bool check)
GetTextPeer()->CheckSpelling(check); GetTextPeer()->CheckSpelling(check);
} }
void wxTextCtrl::SetMaxLength(unsigned long len)
{
m_maxLength = len ;
}
bool wxTextCtrl::SetFont( const wxFont& font ) bool wxTextCtrl::SetFont( const wxFont& font )
{ {
if ( !wxTextCtrlBase::SetFont( font ) ) if ( !wxTextCtrlBase::SetFont( font ) )
@@ -381,18 +376,21 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
return ; return ;
} }
// Check if we have reached the max # of chars (if it is set), but still if ( !GetTextPeer()->CanClipMaxLength() )
// allow navigation and deletion
GetSelection( &from, &to );
if ( !IsMultiLine() && m_maxLength && GetValue().length() >= m_maxLength &&
!event.IsKeyInCategory(WXK_CATEGORY_ARROW | WXK_CATEGORY_TAB | WXK_CATEGORY_CUT) &&
!( key == WXK_RETURN && (m_windowStyle & wxTE_PROCESS_ENTER) ) &&
from == to )
{ {
// eat it, we don't want to add more than allowed # of characters // Check if we have reached the max # of chars (if it is set), but still
// allow navigation and deletion
GetSelection( &from, &to );
if ( !IsMultiLine() && m_maxLength && GetValue().length() >= m_maxLength &&
!event.IsKeyInCategory(WXK_CATEGORY_ARROW | WXK_CATEGORY_TAB | WXK_CATEGORY_CUT) &&
!( key == WXK_RETURN && (m_windowStyle & wxTE_PROCESS_ENTER) ) &&
from == to )
{
// eat it, we don't want to add more than allowed # of characters
// TODO: generate EVT_TEXT_MAXLEN() // TODO: generate EVT_TEXT_MAXLEN()
return; return;
}
} }
// assume that any key not processed yet is going to modify the control // assume that any key not processed yet is going to modify the control