]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/slider.cpp
correct a bug in the MSW code using wxMask
[wxWidgets.git] / src / gtk / slider.cpp
index 7450b6ac34f0e4ae849ffa31becf7d4b52624724..d94ac244defafcb8b58764ab6142e6baa2c36506 100644 (file)
@@ -7,13 +7,13 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
 #ifdef __GNUG__
 #pragma implementation "slider.h"
 #endif
 
 #include "wx/slider.h"
 #include "wx/utils.h"
+#include <math.h>
 
 //-----------------------------------------------------------------------------
 // data
@@ -38,7 +38,9 @@ static void gtk_slider_callback( GtkWidget *WXUNUSED(widget), wxSlider *win )
   float line_step = win->m_adjust->step_increment;
   float page_step = win->m_adjust->page_increment;
   
-  if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN;
+  if (fabs(win->m_adjust->value-win->m_adjust->lower) < 0.2) command = wxEVT_SCROLL_BOTTOM;
+  else if (fabs(win->m_adjust->value-win->m_adjust->upper) < 0.2) command = wxEVT_SCROLL_TOP;
+  else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN;
   else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP;
   else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN;
   else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP;
@@ -99,10 +101,13 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
   SetRange( minValue, maxValue );
   SetValue( value );
   
+  m_parent->AddChild( this );
+
+  (m_parent->m_insertCallback)( m_parent, this );
+  
   PostCreation();
   
   SetBackgroundColour( parent->GetBackgroundColour() );
-  SetForegroundColour( parent->GetForegroundColour() );
 
   Show( TRUE );