]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/spinbutt.cpp
applied numpad keys patch
[wxWidgets.git] / src / msw / spinbutt.cpp
index b443d1b06243a5c5d1394da76bcfdbcf34f7dd12..215abe2427ff117efdb10928f07f54a729de9713 100644 (file)
@@ -19,6 +19,7 @@
 
 #ifdef __GNUG__
     #pragma implementation "spinbutt.h"
+    #pragma implementation "spinbutbase.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 
 #if wxUSE_SPINBTN
 
+#include "wx/spinbutt.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
+
 #if defined(__WIN95__) && !defined(__TWIN32__)
 
-#include "wx/spinbutt.h"
 #include "wx/msw/private.h"
 
-#if !defined(__GNUWIN32__) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS)
+#if defined(__WIN95__) && !((defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) && !defined(__CYGWIN10__))
     #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
@@ -105,9 +106,12 @@ bool wxSpinButton::Create(wxWindow *parent,
         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 & wxCLIP_SIBLINGS )
+        wstyle |= WS_CLIPSIBLINGS;
     if ( m_windowStyle & wxSP_HORIZONTAL )
         wstyle |= UDS_HORZ;
     if ( m_windowStyle & wxSP_ARROW_KEYS )
@@ -130,7 +134,7 @@ bool wxSpinButton::Create(wxWindow *parent,
 
     if ( !m_hWnd )
     {
-        wxLogLastError("CreateUpDownControl");
+        wxLogLastError(wxT("CreateUpDownControl"));
 
         return FALSE;
     }
@@ -153,7 +157,7 @@ wxSpinButton::~wxSpinButton()
 // size calculation
 // ----------------------------------------------------------------------------
 
-wxSize wxSpinButton::DoGetBestSize()
+wxSize wxSpinButton::DoGetBestSize() const
 {
     if ( (GetWindowStyle() & wxSP_VERTICAL) != 0 )
     {
@@ -190,7 +194,7 @@ void wxSpinButton::SetRange(int minVal, int maxVal)
                    (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?") )
@@ -208,7 +212,7 @@ bool wxSpinButton::MSWOnScroll(int orientation, WXWORD wParam,
     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__)
@@ -219,6 +223,9 @@ bool wxSpinButton::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
     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);
@@ -235,7 +242,7 @@ bool wxSpinButton::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 #endif
 }
 
-bool wxSpinButton::MSWCommand(WXUINT cmd, WXWORD id)
+bool wxSpinButton::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD WXUNUSED(id))
 {
     // No command messages
     return FALSE;