Add wxTextEntryBase::ForwardEnableTextChangedEvents().
Use this method to forward the status of text events in the implementation of wxComboBox in wxOSX/Carbon. This ensures that the events are correctly [not] generated when various wxComboBox methods are called. The unit tests now also pass with wxOSX/Carbon. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
e567904ae6
commit
356fd0b532
@ -132,7 +132,9 @@ class WXDLLIMPEXP_CORE wxComboBox : public wxControl, public wxComboBoxBase
|
||||
virtual bool CanRedo() const;
|
||||
|
||||
virtual wxClientDataType GetClientDataType() const;
|
||||
#endif
|
||||
|
||||
virtual wxTextWidgetImpl* GetTextPeer() const;
|
||||
#endif // wxOSX_USE_CARBON
|
||||
|
||||
|
||||
|
||||
|
@ -159,8 +159,8 @@ public:
|
||||
{ return DoGetMargins(); }
|
||||
|
||||
|
||||
// events
|
||||
// ------
|
||||
// implementation only
|
||||
// -------------------
|
||||
|
||||
// generate the wxEVT_COMMAND_TEXT_UPDATED event for GetEditableWindow(),
|
||||
// like SetValue() does and return true if the event was processed
|
||||
@ -168,6 +168,21 @@ public:
|
||||
// NB: this is public for wxRichTextCtrl use only right now, do not call it
|
||||
static bool SendTextUpdatedEvent(wxWindow *win);
|
||||
|
||||
// this function is provided solely for the purpose of forwarding text
|
||||
// change notifications state from one control to another, e.g. it can be
|
||||
// used by a wxComboBox which derives from wxTextEntry if it delegates all
|
||||
// of its methods to another wxTextCtrl
|
||||
void ForwardEnableTextChangedEvents(bool enable)
|
||||
{
|
||||
// it's important to call the functions which update m_eventsBlock here
|
||||
// and not just our own EnableTextChangedEvents() because our state
|
||||
// (i.e. the result of EventsAllowed()) must change as well
|
||||
if ( enable )
|
||||
ResumeTextChangedEvents();
|
||||
else
|
||||
SuppressTextChangedEvents();
|
||||
}
|
||||
|
||||
protected:
|
||||
// flags for DoSetValue(): common part of SetValue() and ChangeValue() and
|
||||
// also used to implement WriteText() in wxMSW
|
||||
@ -231,6 +246,7 @@ protected:
|
||||
SendTextUpdatedEvent();
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
// suppress or resume the text changed events generation: don't use these
|
||||
// functions directly, use EventsSuppressor class above instead
|
||||
|
@ -59,10 +59,6 @@ public:
|
||||
m_cb = cb;
|
||||
}
|
||||
|
||||
void ForwardEnableTextChangedEvents(bool enable)
|
||||
{
|
||||
EnableTextChangedEvents(enable);
|
||||
}
|
||||
protected:
|
||||
void OnChar( wxKeyEvent& event )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user