adapting TextUpdateEvents, using wxTextEntry API
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
f1b1c779a9
commit
d9d551f6a2
@ -158,6 +158,8 @@ protected:
|
||||
|
||||
virtual void SetClientDataType(wxClientDataType clientDataItemsType);
|
||||
|
||||
virtual void EnableTextChangedEvents(bool enable);
|
||||
|
||||
// the subcontrols
|
||||
wxComboBoxText* m_text;
|
||||
wxComboBoxChoice* m_choice;
|
||||
|
@ -79,7 +79,6 @@ public:
|
||||
|
||||
// editing
|
||||
virtual void Clear();
|
||||
virtual void Replace(long from, long to, const wxString& value);
|
||||
virtual void Remove(long from, long to);
|
||||
|
||||
// sets/clears the dirty flag
|
||||
@ -100,7 +99,6 @@ public:
|
||||
// writing text inserts it at the current position;
|
||||
// appending always inserts it at the end
|
||||
virtual void WriteText(const wxString& text);
|
||||
virtual void AppendText(const wxString& text);
|
||||
|
||||
// translate between the position (which is just an index into the textctrl
|
||||
// considering all its contents as a single strings) and (x, y) coordinates
|
||||
@ -176,7 +174,6 @@ protected:
|
||||
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
virtual void DoSetValue(const wxString& value, int flags = 0);
|
||||
virtual wxString DoGetValue() const;
|
||||
|
||||
bool m_editable;
|
||||
@ -187,17 +184,12 @@ protected:
|
||||
// need to make this public because of the current implementation via callbacks
|
||||
unsigned long m_maxLength;
|
||||
|
||||
bool GetTriggerOnSetValue() const
|
||||
{
|
||||
return m_triggerOnSetValue;
|
||||
virtual void EnableTextChangedEvents(bool enable)
|
||||
{
|
||||
m_triggerUpdateEvents = enable;
|
||||
}
|
||||
|
||||
void SetTriggerOnSetValue(bool trigger)
|
||||
{
|
||||
m_triggerOnSetValue = trigger;
|
||||
}
|
||||
|
||||
bool m_triggerOnSetValue ;
|
||||
|
||||
bool m_triggerUpdateEvents ;
|
||||
|
||||
private :
|
||||
wxMenu *m_privateContextMenu;
|
||||
|
@ -57,9 +57,12 @@ public:
|
||||
: wxTextCtrl( cb , 1 )
|
||||
{
|
||||
m_cb = cb;
|
||||
SetTriggerOnSetValue( false );
|
||||
}
|
||||
|
||||
void ForwardEnableTextChangedEvents(bool enable)
|
||||
{
|
||||
EnableTextChangedEvents(enable);
|
||||
}
|
||||
protected:
|
||||
void OnChar( wxKeyEvent& event )
|
||||
{
|
||||
@ -147,6 +150,7 @@ protected:
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
private:
|
||||
wxComboBox *m_cb;
|
||||
|
||||
@ -394,6 +398,12 @@ bool wxComboBox::Create(wxWindow *parent,
|
||||
return true;
|
||||
}
|
||||
|
||||
void wxComboBox::EnableTextChangedEvents(bool enable)
|
||||
{
|
||||
if ( m_text )
|
||||
m_text->ForwardEnableTextChangedEvents(enable);
|
||||
}
|
||||
|
||||
wxString wxComboBox::DoGetValue() const
|
||||
{
|
||||
wxCHECK_MSG( m_text, wxString(), "can't be called for read-only combobox" );
|
||||
|
@ -80,7 +80,7 @@ void wxTextCtrl::Init()
|
||||
|
||||
m_maxLength = 0;
|
||||
m_privateContextMenu = NULL;
|
||||
m_triggerOnSetValue = true ;
|
||||
m_triggerUpdateEvents = true ;
|
||||
}
|
||||
|
||||
wxTextCtrl::~wxTextCtrl()
|
||||
@ -167,20 +167,6 @@ void wxTextCtrl::GetSelection(long* from, long* to) const
|
||||
GetTextPeer()->GetSelection( from , to ) ;
|
||||
}
|
||||
|
||||
void wxTextCtrl::DoSetValue(const wxString& str, int flags)
|
||||
{
|
||||
// optimize redraws
|
||||
if ( GetValue() == str )
|
||||
return;
|
||||
|
||||
GetTextPeer()->SetStringValue( str ) ;
|
||||
|
||||
if ( (flags & SetValue_SendEvent) && m_triggerOnSetValue )
|
||||
{
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
}
|
||||
|
||||
void wxTextCtrl::SetMaxLength(unsigned long len)
|
||||
{
|
||||
m_maxLength = len ;
|
||||
@ -225,10 +211,8 @@ void wxTextCtrl::Cut()
|
||||
{
|
||||
GetTextPeer()->Cut() ;
|
||||
|
||||
wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, m_windowId );
|
||||
event.SetEventObject( this );
|
||||
HandleWindowEvent( event );
|
||||
}
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
}
|
||||
|
||||
void wxTextCtrl::Paste()
|
||||
@ -238,10 +222,7 @@ void wxTextCtrl::Paste()
|
||||
GetTextPeer()->Paste() ;
|
||||
|
||||
// TODO: eventually we should add setting the default style again
|
||||
|
||||
wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, m_windowId );
|
||||
event.SetEventObject( this );
|
||||
HandleWindowEvent( event );
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
}
|
||||
|
||||
@ -307,14 +288,11 @@ wxTextPos wxTextCtrl::GetLastPosition() const
|
||||
return GetTextPeer()->GetLastPosition() ;
|
||||
}
|
||||
|
||||
void wxTextCtrl::Replace(long from, long to, const wxString& str)
|
||||
{
|
||||
GetTextPeer()->Replace( from , to , str ) ;
|
||||
}
|
||||
|
||||
void wxTextCtrl::Remove(long from, long to)
|
||||
{
|
||||
GetTextPeer()->Remove( from , to ) ;
|
||||
if ( m_triggerUpdateEvents )
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
|
||||
void wxTextCtrl::SetSelection(long from, long to)
|
||||
@ -325,17 +303,14 @@ void wxTextCtrl::SetSelection(long from, long to)
|
||||
void wxTextCtrl::WriteText(const wxString& str)
|
||||
{
|
||||
GetTextPeer()->WriteText( str ) ;
|
||||
}
|
||||
|
||||
void wxTextCtrl::AppendText(const wxString& text)
|
||||
{
|
||||
SetInsertionPointEnd();
|
||||
WriteText( text );
|
||||
if ( m_triggerUpdateEvents )
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
|
||||
void wxTextCtrl::Clear()
|
||||
{
|
||||
GetTextPeer()->Clear() ;
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
|
||||
bool wxTextCtrl::IsModified() const
|
||||
|
Loading…
Reference in New Issue
Block a user