#ifdef __GNUG__
#pragma implementation "spinbutt.h"
+ #pragma implementation "spinbutbase.h"
#endif
// For compilers that support precompilation, includes "wx.h".
// Can't resolve reference to CreateUpDownControl in
// TWIN32, but could probably use normal CreateWindow instead.
-#if defined(__WIN95__) && !defined(__TWIN32__)
+#if wxUSE_SPINBTN
#include "wx/spinbutt.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
+
+#if defined(__WIN95__) && !defined(__TWIN32__)
+
#include "wx/msw/private.h"
-#if !defined(__GNUWIN32__) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS)
+#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) || defined(__TWIN32__))
#include <commctrl.h>
#endif
// wxWin macros
// ----------------------------------------------------------------------------
-#if !USE_SHARED_LIBRARY
- IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
- IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent);
-#endif
+IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
// ----------------------------------------------------------------------------
// wxSpinButton
y = 0;
// translate the styles
- DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP |
- UDS_SETBUDDYINT; // it doesn't harm if we don't have buddy
+ DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP | /* WS_CLIPSIBLINGS | */
+ UDS_NOTHOUSANDS | // never useful, sometimes harmful
+ UDS_SETBUDDYINT; // it doesn't harm if we don't have buddy
if ( m_windowStyle & wxSP_HORIZONTAL )
wstyle |= UDS_HORZ;
if ( !m_hWnd )
{
- wxLogLastError("CreateUpDownControl");
+ wxLogLastError(wxT("CreateUpDownControl"));
return FALSE;
}
// size calculation
// ----------------------------------------------------------------------------
-wxSize wxSpinButton::DoGetBestSize()
+wxSize wxSpinButton::DoGetBestSize() const
{
if ( (GetWindowStyle() & wxSP_VERTICAL) != 0 )
{
(LPARAM) MAKELONG((short)maxVal, (short)minVal));
}
-bool wxSpinButton::MSWOnScroll(int orientation, WXWORD wParam,
+bool wxSpinButton::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
WXWORD pos, WXHWND control)
{
wxCHECK_MSG( control, FALSE, wxT("scrolling what?") )
return GetEventHandler()->ProcessEvent(event);
}
-bool wxSpinButton::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+bool wxSpinButton::MSWOnNotify(int WXUNUSED(idCtrl), WXLPARAM lParam, WXLPARAM *result)
{
#ifndef __GNUWIN32__
#if defined(__BORLANDC__) || defined(__WATCOMC__)
LPNM_UPDOWN lpnmud = (LPNM_UPDOWN)lParam;
-#elif defined(__VISUALC__) && (__VISUALC__ == 1010)
+#elif defined(__VISUALC__) && (__VISUALC__ >= 1000) && (__VISUALC__ < 1020)
LPNM_UPDOWN lpnmud = (LPNM_UPDOWN)lParam;
#else
LPNMUPDOWN lpnmud = (LPNMUPDOWN)lParam;
#endif
+ if (lpnmud->hdr.hwndFrom != GetHwnd()) // make sure it is the right control
+ return FALSE;
+
wxSpinEvent event(lpnmud->iDelta > 0 ? wxEVT_SCROLL_LINEUP
: wxEVT_SCROLL_LINEDOWN,
m_windowId);
#endif
}
-bool wxSpinButton::MSWCommand(WXUINT cmd, WXWORD id)
+bool wxSpinButton::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD WXUNUSED(id))
{
// No command messages
return FALSE;
}
#endif // __WIN95__
+
+#endif
+ // wxUSE_SPINCTN
+