#endif
#ifdef __cplusplus
-#ifdef __INTELC__
-inline bool wxIsSameDouble(double x, double y)
-{
- // VZ: this warning, given for operators==() and !=() is not wrong, as ==
- // shouldn't be used with doubles, but we get too many of them and
- // removing these operators is probably not a good idea
- //
- // Maybe we should alway compare doubles up to some "epsilon" precision
- #pragma warning(push)
-
- // floating-point equality and inequality comparisons are unreliable
- #pragma warning(disable: 1572)
-
- return x == y;
-
- #pragma warning(pop)
-}
-#else /* !__INTELC__ */
-inline bool wxIsSameDouble(double x, double y) { return x == y; }
-#endif /* __INTELC__/!__INTELC__ */
-
-inline bool wxIsNullDouble(double x) { return wxIsSameDouble(x, 0.); }
+
+ #ifdef __INTELC__
+
+ inline bool wxIsSameDouble(double x, double y)
+ {
+ // VZ: this warning, given for operators==() and !=() is not wrong, as ==
+ // shouldn't be used with doubles, but we get too many of them and
+ // removing these operators is probably not a good idea
+ //
+ // Maybe we should alway compare doubles up to some "epsilon" precision
+ #pragma warning(push)
+
+ // floating-point equality and inequality comparisons are unreliable
+ #pragma warning(disable: 1572)
+
+ return x == y;
+
+ #pragma warning(pop)
+ }
+
+ #else /* !__INTELC__ */
+
+ inline bool wxIsSameDouble(double x, double y) { return x == y; }
+
+ #endif /* __INTELC__/!__INTELC__ */
+
+ inline bool wxIsNullDouble(double x) { return wxIsSameDouble(x, 0.); }
+
+ #ifdef __VMS
+ //Missing definition in OpenVMS C++ header files.
+ double round(double __x);
+ #endif
+ inline int wxRound(double x)
+ {
+ #ifdef __VMS
+ return int(round(x));
+ #else
+ return (int)(x < 0 ? x - 0.5 : x + 0.5);
+ #endif
+ }
#endif /* __cplusplus */
#if wxUSE_SLIDER
-#ifdef __VMS
- //Missing definition in OpenVMS C++ header files.
- double round(double __x);
-#endif
-
#include "wx/slider.h"
#ifndef WX_PRECOMP
#include "wx/utils.h"
+ #include "wx/math.h"
#endif
#include "wx/gtk/private.h"
if (g_blockEventsOnDrag) return;
GtkAdjustment* adj = range->adjustment;
- const int pos = int(round(adj->value));
+ const int pos = wxRound(adj->value);
const double oldPos = win->m_pos;
win->m_pos = adj->value;
if (win->m_blockScrollEvent)
win->m_scrollEventType = GTK_SCROLL_NONE;
// If integral position has changed
- if (int(round(oldPos)) != pos)
+ if (wxRound(oldPos) != pos)
{
wxCHECK_RET(eventType != wxEVT_NULL, _T("Unknown slider scroll event type"));
ProcessScrollEvent(win, eventType);
static gchar* gtk_format_value(GtkScale*, double value, void*)
{
// Format value as nearest integer
- return g_strdup_printf("%d", int(round(value)));
+ return g_strdup_printf("%d", wxRound(value));
}
}
int wxSlider::GetValue() const
{
- return int(round(m_pos));
+ return wxRound(m_pos);
}
void wxSlider::SetValue( int value )
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 wxSlider::GetValue() const
{
- return AdjustValueToInt(m_adjust->value);
+ return wxRound(m_adjust->value);
}
void wxSlider::SetValue( int value )
#undef XtClass
#endif
-# include "wx/gauge.h"
+#include "wx/gauge.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/math.h"
+#endif
#ifdef __OS2__
#include <types.h>
#endif
}
-#define round(x) ( (x) > 0 ? ((x) + 0.5) : -(-(x) + 0.5) )
-
void
GaugeDrag(Widget WXUNUSED(w), XEvent *WXUNUSED(e), String *WXUNUSED(args), Cardinal *WXUNUSED(num_args))
{
fvalue = (int)((float)THIS.maximum -
(float)THIS.minimum) * (float)nsize / (float)max;
- value = round(fvalue);
+ value = wxRound(fvalue);
THIS.value = value;
THIS.oldx = x;