]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/spinctrl.cpp
corrected path splitting for mac relative paths
[wxWidgets.git] / src / os2 / spinctrl.cpp
index 75a4b4589d3f77aa6cf61c2a15e0a207da3c1a50..bfda23f725af4c6396662ab81fc0fb4fd1069702 100644 (file)
@@ -129,6 +129,8 @@ bool wxSpinCtrl::Create(
 , const wxString&                   rsName
 )
 {
+    SWP                             vSwp;
+
     if (vId == -1)
         m_windowId = NewControlId();
     else
@@ -149,6 +151,15 @@ bool wxSpinCtrl::Create(
     if (m_windowStyle & wxCLIP_SIBLINGS )
         lSstyle |= WS_CLIPSIBLINGS;
 
+    //
+    // If the parent is a scrolled window the controls must
+    // have this style or they will overlap the scrollbars
+    //
+    if (pParent)
+        if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+            pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+            lSstyle |= WS_CLIPSIBLINGS;
+
     SPBCDATA                        vCtrlData;
 
     vCtrlData.cbSize = sizeof(SPBCDATA);
@@ -176,7 +187,10 @@ bool wxSpinCtrl::Create(
     m_hWndBuddy = m_hWnd; // One in the same for OS/2
     if(pParent)
         pParent->AddChild((wxSpinButton *)this);
-    SetFont(pParent->GetFont());
+    SetFont(*wxSMALL_FONT);
+    ::WinQueryWindowPos(m_hWnd, &vSwp);
+    SetXComp(vSwp.x);
+    SetYComp(vSwp.y);
     SetSize( rPos.x
             ,rPos.y
             ,rSize.x
@@ -262,12 +276,9 @@ void wxSpinCtrl::DoMoveWindow(
 
     if (pParent)
     {
-        if (pParent->IsKindOf(CLASSINFO(wxFrame)))
-        {
-            nY = pParent->GetClientSize().y - (nY + nHeight);
-        }
-        else
-            nY = pParent->GetSize().y - (nY + nHeight);
+        int                         nOS2Height = GetOS2ParentHeight(pParent);
+
+        nY = nOS2Height - (nY + nHeight);
     }
     else
     {