]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/slider95.cpp
* Fix logical error in m_overflow attribute merging
[wxWidgets.git] / src / msw / slider95.cpp
index 992b61e96e2ba4eeae7782eff23a676518b97dfd..ba25fe168717c5a9d604919944738eceb0cbaa24 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -59,6 +59,9 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
            const wxValidator& validator,
            const wxString& name)
 {
+    if ( (style & wxBORDER_MASK) == wxBORDER_DEFAULT )
+        style |= wxBORDER_NONE;
+
     SetName(name);
 #if wxUSE_VALIDATORS
     SetValidator(validator);
@@ -90,15 +93,12 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
     long msStyle = 0;
     long wstyle = 0;
 
-    if ( m_windowStyle & wxCLIP_SIBLINGS )
-        msStyle |= WS_CLIPSIBLINGS;
-
     if ( m_windowStyle & wxSL_LABELS )
     {
-        msStyle |= WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER;
+        msStyle |= SS_CENTER;
 
-        bool want3D;
-        WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ;
+        WXDWORD exStyle = 0;
+        msStyle |= MSWGetStyle(GetWindowStyle(), & exStyle) ;
 
         m_staticValue = (WXHWND) CreateWindowEx
             (
@@ -109,23 +109,23 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
             );
 
         // Now create min static control
-        wxSprintf(wxBuffer, wxT("%d"), minValue);
+        wxString minLabel;
+        minLabel.Printf(wxT("%d"), minValue);
         wstyle = STATIC_FLAGS;
         if ( m_windowStyle & wxCLIP_SIBLINGS )
             msStyle |= WS_CLIPSIBLINGS;
         m_staticMin = (WXHWND) CreateWindowEx
             (
-                0, wxT("STATIC"), wxBuffer,
+                0, wxT("STATIC"), minLabel,
                 wstyle,
                 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                 wxGetInstance(), NULL
             );
     }
 
-    msStyle = 0;
+    WXDWORD exStyle = 0;
 
-    if ( m_windowStyle & wxCLIP_SIBLINGS )
-        msStyle |= WS_CLIPSIBLINGS;
+    msStyle = MSWGetStyle(GetWindowStyle(), & exStyle) ;    
 
     if (m_windowStyle & wxSL_VERTICAL)
         msStyle = TBS_VERT | WS_CHILD | WS_VISIBLE | WS_TABSTOP ;
@@ -153,7 +153,7 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
 
     HWND scroll_bar = CreateWindowEx
         (
-            MakeExtendedStyle(m_windowStyle), TRACKBAR_CLASS, wxBuffer,
+            exStyle, TRACKBAR_CLASS, wxT(""),
             msStyle,
             0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
             wxGetInstance(), NULL
@@ -179,7 +179,8 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
     if ( m_windowStyle & wxSL_LABELS )
     {
         // Finally, create max value static item
-        wxSprintf(wxBuffer, wxT("%d"), maxValue);
+        wxString maxLabel;
+        maxLabel.Printf(wxT("%d"), maxValue);
         wstyle = STATIC_FLAGS;
 
         if ( m_windowStyle & wxCLIP_SIBLINGS )
@@ -187,7 +188,7 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
 
         m_staticMax = (WXHWND) CreateWindowEx
             (
-                0, wxT("STATIC"), wxBuffer,
+                0, wxT("STATIC"), maxLabel,
                 wstyle,
                 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                 wxGetInstance(), NULL
@@ -250,10 +251,17 @@ bool wxSlider95::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
             break;
 
         case SB_THUMBTRACK:
-        case SB_THUMBPOSITION:
             scrollEvent = wxEVT_SCROLL_THUMBTRACK;
             break;
 
+        case SB_THUMBPOSITION:
+            scrollEvent = wxEVT_SCROLL_THUMBRELEASE;
+            break;
+
+        case SB_ENDSCROLL:
+            scrollEvent = wxEVT_SCROLL_ENDSCROLL;
+            break;
+
         default:
             // unknown scroll event?
             return FALSE;
@@ -312,8 +320,9 @@ void wxSlider95::SetValue(int value)
 
     if (m_staticValue)
     {
-        wxSprintf(wxBuffer, wxT("%d"), value);
-        ::SetWindowText((HWND) m_staticValue, wxBuffer);
+        wxString str;
+        str.Printf(wxT("%d"), value);
+        ::SetWindowText((HWND) m_staticValue, str);
     }
 }