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:
@@ -132,7 +132,9 @@ class WXDLLIMPEXP_CORE wxComboBox : public wxControl, public wxComboBoxBase
|
|||||||
virtual bool CanRedo() const;
|
virtual bool CanRedo() const;
|
||||||
|
|
||||||
virtual wxClientDataType GetClientDataType() const;
|
virtual wxClientDataType GetClientDataType() const;
|
||||||
#endif
|
|
||||||
|
virtual wxTextWidgetImpl* GetTextPeer() const;
|
||||||
|
#endif // wxOSX_USE_CARBON
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -159,8 +159,8 @@ public:
|
|||||||
{ return DoGetMargins(); }
|
{ return DoGetMargins(); }
|
||||||
|
|
||||||
|
|
||||||
// events
|
// implementation only
|
||||||
// ------
|
// -------------------
|
||||||
|
|
||||||
// generate the wxEVT_COMMAND_TEXT_UPDATED event for GetEditableWindow(),
|
// generate the wxEVT_COMMAND_TEXT_UPDATED event for GetEditableWindow(),
|
||||||
// like SetValue() does and return true if the event was processed
|
// 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
|
// NB: this is public for wxRichTextCtrl use only right now, do not call it
|
||||||
static bool SendTextUpdatedEvent(wxWindow *win);
|
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:
|
protected:
|
||||||
// flags for DoSetValue(): common part of SetValue() and ChangeValue() and
|
// flags for DoSetValue(): common part of SetValue() and ChangeValue() and
|
||||||
// also used to implement WriteText() in wxMSW
|
// also used to implement WriteText() in wxMSW
|
||||||
@@ -231,6 +246,7 @@ protected:
|
|||||||
SendTextUpdatedEvent();
|
SendTextUpdatedEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// suppress or resume the text changed events generation: don't use these
|
// suppress or resume the text changed events generation: don't use these
|
||||||
// functions directly, use EventsSuppressor class above instead
|
// functions directly, use EventsSuppressor class above instead
|
||||||
|
@@ -59,10 +59,6 @@ public:
|
|||||||
m_cb = cb;
|
m_cb = cb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ForwardEnableTextChangedEvents(bool enable)
|
|
||||||
{
|
|
||||||
EnableTextChangedEvents(enable);
|
|
||||||
}
|
|
||||||
protected:
|
protected:
|
||||||
void OnChar( wxKeyEvent& event )
|
void OnChar( wxKeyEvent& event )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user