]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/slidrmsw.cpp
OS/2 updates for statusbar processing
[wxWidgets.git] / src / msw / slidrmsw.cpp
index a915542d62f08e9291841d66dbbeb2f14f8c3cf4..4050e2c1a41abce91726c57dc51c73890dbaea7f 100644 (file)
@@ -52,7 +52,9 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id,
            const wxString& name)
 {
   SetName(name);
+#if wxUSE_VALIDATORS
   SetValidator(validator);
+#endif // wxUSE_VALIDATORS
 
   if (parent) parent->AddChild(this);
   SetBackgroundColour(parent->GetBackgroundColour()) ;
@@ -95,9 +97,6 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id,
                          0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                          wxGetInstance(), NULL);
 
-  // Now create slider
-  m_windowId = (int)NewControlId();
-
   msStyle = 0;
   if (m_windowStyle & wxSL_VERTICAL)
     msStyle = SBS_VERT | WS_CHILD | WS_VISIBLE | WS_TABSTOP ;
@@ -229,6 +228,7 @@ bool wxSliderMSW::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
     GetEventHandler()->ProcessEvent(event);
 
     wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, GetId() );
+    cevent.SetInt( newPos );
     cevent.SetEventObject( this );
 
     return GetEventHandler()->ProcessEvent( cevent );
@@ -324,9 +324,9 @@ void wxSliderMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags)
 
   int currentX, currentY;
   GetPosition(&currentX, &currentY);
-  if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
+  if (x == -1 && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
     x1 = currentX;
-  if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
+  if (y == -1 && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
     y1 = currentY;
 
   AdjustForParentClientOrigin(x1, y1, sizeFlags);