Fix text text changed events sending in OS X combo box and text control.
Don't duplicate needlessly wxTextEntry functionality in wxTextCtrl. Don't clear the combobox text entry part twice in wxComboBox::DoClear(), it is supposed to only clear the item container contents as the base class Clear() already calls wxTextEntry::Clear(). Do send text updated events from wxTextEntry itself as it applies to wxComboBox just as well as to wxTextCtrl. The unit tests now pass under wxOSX/Cocoa, not breaking them again would be appreciated. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -100,10 +100,6 @@ public:
|
|||||||
virtual void Cut();
|
virtual void Cut();
|
||||||
virtual void Paste();
|
virtual void Paste();
|
||||||
|
|
||||||
virtual void WriteText(const wxString& text);
|
|
||||||
virtual void Clear();
|
|
||||||
virtual void Remove(long from, long to);
|
|
||||||
|
|
||||||
// Implementation
|
// Implementation
|
||||||
// --------------
|
// --------------
|
||||||
virtual void Command(wxCommandEvent& event);
|
virtual void Command(wxCommandEvent& event);
|
||||||
@@ -148,13 +144,12 @@ protected:
|
|||||||
// flag is set to true when the user edits the controls contents
|
// flag is set to true when the user edits the controls contents
|
||||||
bool m_dirty;
|
bool m_dirty;
|
||||||
|
|
||||||
virtual void EnableTextChangedEvents(bool enable)
|
virtual void EnableTextChangedEvents(bool WXUNUSED(enable))
|
||||||
{
|
{
|
||||||
m_triggerUpdateEvents = enable;
|
// nothing to do here as the events are never generated when we change
|
||||||
|
// the controls value programmatically anyhow
|
||||||
}
|
}
|
||||||
|
|
||||||
bool m_triggerUpdateEvents ;
|
|
||||||
|
|
||||||
private :
|
private :
|
||||||
wxMenu *m_privateContextMenu;
|
wxMenu *m_privateContextMenu;
|
||||||
|
|
||||||
|
@@ -147,7 +147,6 @@ void wxComboBox::DoDeleteOneItem(unsigned int n)
|
|||||||
void wxComboBox::DoClear()
|
void wxComboBox::DoClear()
|
||||||
{
|
{
|
||||||
GetComboPeer()->Clear();
|
GetComboPeer()->Clear();
|
||||||
SetValue(wxEmptyString);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::GetSelection(long *from, long *to) const
|
void wxComboBox::GetSelection(long *from, long *to) const
|
||||||
@@ -204,7 +203,8 @@ void wxComboBox::SetString(unsigned int n, const wxString& s)
|
|||||||
|
|
||||||
void wxComboBox::EnableTextChangedEvents(bool WXUNUSED(enable))
|
void wxComboBox::EnableTextChangedEvents(bool WXUNUSED(enable))
|
||||||
{
|
{
|
||||||
wxFAIL_MSG("Method Not Implemented.");
|
// nothing to do here, events are never generated when we change the
|
||||||
|
// control value programmatically anyhow by Cocoa
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
|
bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) )
|
||||||
|
@@ -79,7 +79,6 @@ void wxTextCtrl::Init()
|
|||||||
m_dirty = false;
|
m_dirty = false;
|
||||||
|
|
||||||
m_privateContextMenu = NULL;
|
m_privateContextMenu = NULL;
|
||||||
m_triggerUpdateEvents = true ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextCtrl::~wxTextCtrl()
|
wxTextCtrl::~wxTextCtrl()
|
||||||
@@ -289,26 +288,6 @@ wxString wxTextCtrl::GetLineText(long lineNo) const
|
|||||||
return GetTextPeer()->GetLineText(lineNo) ;
|
return GetTextPeer()->GetLineText(lineNo) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTextCtrl::Remove(long from, long to)
|
|
||||||
{
|
|
||||||
wxTextEntry::Remove(from, to);
|
|
||||||
if ( m_triggerUpdateEvents )
|
|
||||||
SendTextUpdatedEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxTextCtrl::WriteText(const wxString& str)
|
|
||||||
{
|
|
||||||
wxTextEntry::WriteText( str ) ;
|
|
||||||
if ( m_triggerUpdateEvents )
|
|
||||||
SendTextUpdatedEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxTextCtrl::Clear()
|
|
||||||
{
|
|
||||||
wxTextEntry::Clear() ;
|
|
||||||
SendTextUpdatedEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxTextCtrl::Copy()
|
void wxTextCtrl::Copy()
|
||||||
{
|
{
|
||||||
if (CanCopy())
|
if (CanCopy())
|
||||||
|
@@ -148,6 +148,8 @@ wxTextPos wxTextEntry::GetLastPosition() const
|
|||||||
void wxTextEntry::Remove(long from, long to)
|
void wxTextEntry::Remove(long from, long to)
|
||||||
{
|
{
|
||||||
GetTextPeer()->Remove( from , to ) ;
|
GetTextPeer()->Remove( from , to ) ;
|
||||||
|
|
||||||
|
SendTextUpdatedEventIfAllowed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTextEntry::SetSelection(long from, long to)
|
void wxTextEntry::SetSelection(long from, long to)
|
||||||
@@ -158,11 +160,15 @@ void wxTextEntry::SetSelection(long from, long to)
|
|||||||
void wxTextEntry::WriteText(const wxString& str)
|
void wxTextEntry::WriteText(const wxString& str)
|
||||||
{
|
{
|
||||||
GetTextPeer()->WriteText( str ) ;
|
GetTextPeer()->WriteText( str ) ;
|
||||||
|
|
||||||
|
SendTextUpdatedEventIfAllowed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTextEntry::Clear()
|
void wxTextEntry::Clear()
|
||||||
{
|
{
|
||||||
GetTextPeer()->Clear() ;
|
GetTextPeer()->Clear() ;
|
||||||
|
|
||||||
|
SendTextUpdatedEventIfAllowed();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTextEntry::IsEditable() const
|
bool wxTextEntry::IsEditable() const
|
||||||
|
Reference in New Issue
Block a user