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

View File

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