X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c299c3ab663257429983c24e6fb71450f3cf9f1..2e36d5cf818d64c8abdb3da1861d233d774be139:/src/os2/spinctrl.cpp?ds=inline diff --git a/src/os2/spinctrl.cpp b/src/os2/spinctrl.cpp index ed056cafaf..bfda23f725 100644 --- a/src/os2/spinctrl.cpp +++ b/src/os2/spinctrl.cpp @@ -44,6 +44,7 @@ extern void wxAssociateWinWithHandle( HWND hWnd ,wxWindowOS2* pWin ); static WXFARPROC fnWndProcSpinCtrl = (WXFARPROC)NULL; +wxArraySpins wxSpinCtrl::m_svAllSpins; IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl) @@ -128,6 +129,8 @@ bool wxSpinCtrl::Create( , const wxString& rsName ) { + SWP vSwp; + if (vId == -1) m_windowId = NewControlId(); else @@ -148,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); @@ -175,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 @@ -261,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 {