]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/spinbutt.cpp
zipstrm link fix
[wxWidgets.git] / src / gtk1 / spinbutt.cpp
index 66f5af6bc3f61173df9c126c4690cc69a8ad7b3f..898eb4f4b935bce55eaa5aa3ad19c09de99503f4 100644 (file)
@@ -55,22 +55,27 @@ static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *wi
     wxEventType command = wxEVT_NULL;
 
     float line_step = win->m_adjust->step_increment;
-    float page_step = win->m_adjust->page_increment;
 
     if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN;
     else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP;
-    else if (fabs(diff-page_step) < sensitivity) command = wxEVT_SCROLL_PAGEDOWN;
-    else if (fabs(diff+page_step) < sensitivity) command = wxEVT_SCROLL_PAGEUP;
     else command = wxEVT_SCROLL_THUMBTRACK;
 
     int value = (int)ceil(win->m_adjust->value);
 
     wxSpinEvent event( command, win->GetId());
     event.SetPosition( value );
-    event.SetOrientation( wxVERTICAL );
     event.SetEventObject( win );
-
     win->GetEventHandler()->ProcessEvent( event );
+    
+    /* always send a thumbtrack event */
+    if (command != wxEVT_SCROLL_THUMBTRACK)
+    {
+        command = wxEVT_SCROLL_THUMBTRACK;
+        wxSpinEvent event2( command, win->GetId());
+        event2.SetPosition( value );
+        event2.SetEventObject( win );
+        win->GetEventHandler()->ProcessEvent( event2 );
+    }
 }
 
 //-----------------------------------------------------------------------------
@@ -78,17 +83,18 @@ static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *wi
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxSpinButton,wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent);
 
 BEGIN_EVENT_TABLE(wxSpinButton, wxControl)
     EVT_SIZE(wxSpinButton::OnSize)
 END_EVENT_TABLE()
 
-wxSpinButton::wxSpinButton()
-{
-}
-
-bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
-            long style, const wxString& name)
+bool wxSpinButton::Create(wxWindow *parent,
+                          wxWindowID id,
+                          const wxPoint& pos,
+                          const wxSize& size,
+                          long style,
+                          const wxString& name)
 {
     m_needParent = TRUE;
 
@@ -97,9 +103,12 @@ bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, c
     if (new_size.y == -1)
         new_size.y = 30;
 
-    PreCreation( parent, id, pos, new_size, style, name );
-
-//  SetValidator( validator );
+    if (!PreCreation( parent, pos, new_size ) ||
+        !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
+    {
+        wxFAIL_MSG( _T("wxXX creation failed") );
+       return FALSE;
+    }
 
     m_oldPos = 0.0;
 
@@ -201,15 +210,4 @@ void wxSpinButton::ApplyWidgetStyle()
     gtk_widget_set_style( m_widget, m_widgetStyle );
 }
 
-//-----------------------------------------------------------------------------
-// wxSpinEvent
-//-----------------------------------------------------------------------------
-
-IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent)
-
-wxSpinEvent::wxSpinEvent(wxEventType commandType, int id):
-  wxScrollEvent(commandType, id)
-{
-}
-
-#endif
\ No newline at end of file
+#endif