/////////////////////////////////////////////////////////////////////////////
-// Name: gtk/slider.cpp
+// Name: src/gtk1/slider.cpp
// Purpose:
// Author: Robert Roebling
// Id: $Id$
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
+#if wxUSE_SLIDER
+
#include "wx/slider.h"
-#if wxUSE_SLIDER
+#ifndef WX_PRECOMP
+ #include "wx/utils.h"
+ #include "wx/math.h"
+#endif
-#include "wx/utils.h"
-#include "wx/math.h"
#include "wx/gtk1/private.h"
//-----------------------------------------------------------------------------
return fabs(x - y) < 0.02;
}
-static inline int AdjustValueToInt(double x)
-{
- // we want to round to the nearest integer, i.e. 0.9 is rounded to 1 and
- // -0.9 is rounded to -1
- return (int)(x < 0 ? x - 0.5 : x + 0.5);
-}
-
// process a scroll event
static void
ProcessScrollEvent(wxSlider *win, wxEventType evtType, double dvalue)
int value = (int)(dvalue < 0 ? dvalue - 0.5 : dvalue + 0.5);
wxScrollEvent event( evtType, win->GetId(), value, orient );
event.SetEventObject( win );
- win->GetEventHandler()->ProcessEvent( event );
+ win->HandleWindowEvent( event );
if ( evtType != wxEVT_SCROLL_THUMBTRACK )
{
wxScrollEvent event2(wxEVT_SCROLL_CHANGED, win->GetId(), value, orient);
event2.SetEventObject( win );
- win->GetEventHandler()->ProcessEvent( event2 );
+ win->HandleWindowEvent( event2 );
}
wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, win->GetId() );
cevent.SetEventObject( win );
cevent.SetInt( value );
- win->GetEventHandler()->ProcessEvent( cevent );
+ win->HandleWindowEvent( cevent );
}
//-----------------------------------------------------------------------------
// wxSlider
//-----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxSlider,wxControl)
-
bool wxSlider::Create(wxWindow *parent, wxWindowID id,
int value, int minValue, int maxValue,
const wxPoint& pos, const wxSize& size,
long style, const wxValidator& validator, const wxString& name )
{
- m_acceptsFocus = TRUE;
- m_needParent = TRUE;
+ m_acceptsFocus = true;
+ m_needParent = true;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxSlider creation failed") );
- return FALSE;
+ return false;
}
m_oldPos = 0.0;
if (style & wxSL_VERTICAL)
- m_widget = gtk_vscale_new( (GtkAdjustment *) NULL );
+ m_widget = gtk_vscale_new( NULL );
else
- m_widget = gtk_hscale_new( (GtkAdjustment *) NULL );
+ m_widget = gtk_hscale_new( NULL );
if (style & wxSL_LABELS)
{
PostCreation(size);
- return TRUE;
+ return true;
}
int wxSlider::GetValue() const
{
- return AdjustValueToInt(m_adjust->value);
+ return wxRound(m_adjust->value);
}
void wxSlider::SetValue( int value )
return GetDefaultAttributesFromGTKWidget(gtk_vscale_new);
}
-#endif
+#endif // wxUSE_SLIDER