]> git.saurik.com Git - wxWidgets.git/commitdiff
Make wxSpinCtrlGeneric usable as wxDVC editor control.
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 1 May 2011 18:44:35 +0000 (18:44 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 1 May 2011 18:44:35 +0000 (18:44 +0000)
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

include/wx/generic/spinctlg.h
src/generic/spinctlg.cpp

index 56eda17f9fb225908f2e25aa197470b083850b09..338dd70234a809f678a71cbaf982bc62f997bb4c 100644 (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
index ca2a1bb465fed7b156ce7d94307cbf7f316ca870..e9a7a32a3720f1faed833d6bf91d4c207e78e6ae 100644 (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)