Generate text events in generic wxSpinCtrl itself.

The text events in a wxSpinCtrl should originate from the control itself but
they were just propagated upwards from wxTextCtrl embedded into it and hence
had wrong event object and event ID fields.

Fix this by making EVT_TEXT come from wxSpinCtrl itself, in addition to
EVT_TEXT_ENTER ones which we already forwarded like this.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-10-09 21:02:17 +00:00
parent 34af6cfc8d
commit 319faba717

View File

@@ -92,10 +92,8 @@ public:
event.Skip(); event.Skip();
} }
void OnTextEnter(wxCommandEvent& event) void OnTextEvent(wxCommandEvent& event)
{ {
// We need to forward this event to the spin control itself as it's
// supposed to generate it if wxTE_PROCESS_ENTER is used with it.
wxCommandEvent eventCopy(event); wxCommandEvent eventCopy(event);
eventCopy.SetEventObject(m_spin); eventCopy.SetEventObject(m_spin);
eventCopy.SetId(m_spin->GetId()); eventCopy.SetId(m_spin->GetId());
@@ -118,7 +116,15 @@ private:
BEGIN_EVENT_TABLE(wxSpinCtrlTextGeneric, wxTextCtrl) BEGIN_EVENT_TABLE(wxSpinCtrlTextGeneric, wxTextCtrl)
EVT_CHAR(wxSpinCtrlTextGeneric::OnChar) EVT_CHAR(wxSpinCtrlTextGeneric::OnChar)
EVT_TEXT_ENTER(wxID_ANY, wxSpinCtrlTextGeneric::OnTextEnter)
// Forward the text events to wxSpinCtrl itself adjusting them slightly in
// the process.
EVT_TEXT(wxID_ANY, wxSpinCtrlTextGeneric::OnTextEvent)
// And we need to forward this one too as wxSpinCtrl is supposed to
// generate it if wxTE_PROCESS_ENTER is used with it (and if it isn't,
// we're never going to get EVT_TEXT_ENTER in the first place).
EVT_TEXT_ENTER(wxID_ANY, wxSpinCtrlTextGeneric::OnTextEvent)
EVT_KILL_FOCUS(wxSpinCtrlTextGeneric::OnKillFocus) EVT_KILL_FOCUS(wxSpinCtrlTextGeneric::OnKillFocus)
END_EVENT_TABLE() END_EVENT_TABLE()