forward the char, key and text events from the textctrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -84,6 +84,14 @@ protected:
|
|||||||
if (m_cb->GetParent()->GetEventHandler()->ProcessEvent(NavEvent))
|
if (m_cb->GetParent()->GetEventHandler()->ProcessEvent(NavEvent))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send the event to the combobox class in case the user has bound EVT_CHAR
|
||||||
|
wxKeyEvent kevt(event);
|
||||||
|
kevt.SetEventObject(m_cb);
|
||||||
|
if (m_cb->GetEventHandler()->ProcessEvent(kevt))
|
||||||
|
// If the event was handled and not skipped then we're done
|
||||||
|
return;
|
||||||
|
|
||||||
if ( event.GetKeyCode() == WXK_RETURN )
|
if ( event.GetKeyCode() == WXK_RETURN )
|
||||||
{
|
{
|
||||||
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_cb->GetId());
|
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_cb->GetId());
|
||||||
@@ -119,18 +127,30 @@ protected:
|
|||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use the KeyUp as a naive approximation for TEXT_UPDATED, even though it is somewhat delayed
|
|
||||||
// but this is less complicated than dealing with idle-ness, and is much better than nothing
|
|
||||||
void OnKeyUp( wxKeyEvent& event )
|
void OnKeyUp( wxKeyEvent& event )
|
||||||
{
|
{
|
||||||
if ( event.GetKeyCode() != WXK_RETURN && event.GetKeyCode() != WXK_TAB )
|
event.SetEventObject(m_cb);
|
||||||
{
|
event.SetId(m_cb->GetId());
|
||||||
wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, m_cb->GetId());
|
if (! m_cb->GetEventHandler()->ProcessEvent(event))
|
||||||
event.SetString( GetValue() );
|
event.Skip();
|
||||||
event.SetEventObject( m_cb );
|
|
||||||
m_cb->GetEventHandler()->ProcessEvent(event);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnKeyDown( wxKeyEvent& event )
|
||||||
|
{
|
||||||
|
event.SetEventObject(m_cb);
|
||||||
|
event.SetId(m_cb->GetId());
|
||||||
|
if (! m_cb->GetEventHandler()->ProcessEvent(event))
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnText( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
event.SetEventObject(m_cb);
|
||||||
|
event.SetId(m_cb->GetId());
|
||||||
|
if (! m_cb->GetEventHandler()->ProcessEvent(event))
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxComboBox *m_cb;
|
wxComboBox *m_cb;
|
||||||
|
|
||||||
@@ -138,8 +158,10 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxComboBoxText, wxTextCtrl)
|
BEGIN_EVENT_TABLE(wxComboBoxText, wxTextCtrl)
|
||||||
EVT_CHAR( wxComboBoxText::OnChar)
|
EVT_KEY_DOWN( wxComboBoxText::OnKeyDown)
|
||||||
EVT_KEY_UP( wxComboBoxText::OnKeyUp)
|
EVT_CHAR( wxComboBoxText::OnChar)
|
||||||
|
EVT_KEY_UP( wxComboBoxText::OnKeyUp)
|
||||||
|
EVT_TEXT( -1, wxComboBoxText::OnText)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
class wxComboBoxChoice : public wxChoice
|
class wxComboBoxChoice : public wxChoice
|
||||||
|
Reference in New Issue
Block a user