Make wxSpinCtrlGeneric usable as wxDVC editor control.

wxDVC installs temporary event handler that watches for focus changes
and some key events. Make wxSpinCtrlGeneric look like a native
wxControl in this respect even though it's actually a composite control.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2011-05-01 18:44:35 +00:00
parent 8a95db3429
commit c81394808b
2 changed files with 13 additions and 4 deletions

View File

@@ -92,7 +92,7 @@ public:
// forwarded events from children windows
void OnSpinButton(wxSpinEvent& event);
void OnTextLostFocus();
void OnTextLostFocus(wxFocusEvent& event);
void OnTextChar(wxKeyEvent& event);
// this window itself is used only as a container for its sub windows so it
@@ -148,6 +148,8 @@ protected:
private:
// common part of all ctors
void Init();
DECLARE_EVENT_TABLE()
};
#else // !wxUSE_SPINBTN

View File

@@ -85,13 +85,13 @@ public:
void OnChar( wxKeyEvent &event )
{
if (m_spin)
m_spin->OnTextChar(event);
m_spin->ProcessWindowEvent(event);
}
void OnKillFocus(wxFocusEvent& event)
{
if (m_spin)
m_spin->OnTextLostFocus();
m_spin->ProcessWindowEvent(event);
event.Skip();
}
@@ -357,6 +357,11 @@ void wxSpinCtrlGenericBase::DoSetToolTip(wxToolTip *tip)
// Handle sub controls events
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxSpinCtrlGenericBase, wxSpinCtrlBase)
EVT_CHAR(wxSpinCtrlGenericBase::OnTextChar)
EVT_KILL_FOCUS(wxSpinCtrlGenericBase::OnTextLostFocus)
END_EVENT_TABLE()
void wxSpinCtrlGenericBase::OnSpinButton(wxSpinEvent& event)
{
event.Skip();
@@ -388,10 +393,12 @@ void wxSpinCtrlGenericBase::OnSpinButton(wxSpinEvent& event)
DoSendEvent();
}
void wxSpinCtrlGenericBase::OnTextLostFocus()
void wxSpinCtrlGenericBase::OnTextLostFocus(wxFocusEvent& event)
{
SyncSpinToText();
DoSendEvent();
event.Skip();
}
void wxSpinCtrlGenericBase::OnTextChar(wxKeyEvent& event)