{
HWND hParent = NULLHANDLE;
wxPoint vPos = rPos; // The OS/2 position
+ ULONG ulCreateFlags = 0L;
wxCHECK_MSG(pParent, FALSE, wxT("can't create wxWindow without parent"));
//
// OS2 uses normal coordinates, no bassackwards Windows ones
//
- nTempy = pParent->GetSize().y - (vPos.y + rSize.y);
-#if 0
- if (nTempy < 0)
+ if (pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxScrolledWindow))
+ )
{
- nTempy = pParent->GetSize().y + (vPos.y + rSize.y);
- pParent->SetSize(0, 0, pParent->GetSize().x, nTempy);
+ wxWindow* pGrandParent = NULL;
+
+ pGrandParent = pParent->GetParent();
+ if (pGrandParent)
+ nTempy = pGrandParent->GetSize().y - (vPos.y + rSize.y);
+ else
+ nTempy = pParent->GetSize().y - (vPos.y + rSize.y);
}
-#endif
+ else
+ nTempy = pParent->GetSize().y - (vPos.y + rSize.y);
vPos.y = nTempy;
+ if ( pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxScrolledWindow))
+ )
+ ulCreateFlags |= WS_CLIPSIBLINGS;
}
else
{
vPos.y = vRect.yTop - (vPos.y + rSize.y);
}
- ULONG ulCreateFlags = 0L;
-
-
//
// Most wxSTYLES are really PM Class specific styles and will be
// set in those class create procs. PM's basic windows styles are
ulCreateFlags |= WS_VISIBLE;
- if ( lStyle & wxCLIP_SIBLINGS )
+ if (lStyle & wxCLIP_SIBLINGS)
ulCreateFlags |= WS_CLIPSIBLINGS;
if (lStyle & wxCLIP_CHILDREN )
,(PSZ)NULL
,ulStyle
,vRect.xRight - 20
- ,vRect.yBottom
+ ,vRect.yBottom + 20
,20
- ,vRect.yTop - vRect.yBottom
+ ,vRect.yTop - (vRect.yBottom + 20)
,hWnd
,HWND_TOP
,FID_VERTSCROLL
::WinSetWindowPos( m_hWndScrollBarVert
,HWND_TOP
,vRect.xRight - 20
- ,vRect.yBottom
+ ,vRect.yBottom + 20
,20
- ,vRect.yTop - vRect.yBottom
+ ,vRect.yTop - (vRect.yBottom + 20)
,SWP_ACTIVATE | SWP_MOVE | SWP_SIZE | SWP_SHOW
);
}
{
wxWindow* pChildWin = pCurrent->GetData();
- ::WinQueryWindowPos(pChildWin->GetHWND(), &vSwp);
- ::WinSetWindowPos( pChildWin->GetHWND()
- ,HWND_TOP
- ,vSwp.x + nDx
- ,vSwp.y + nDy
- ,0
- ,0
- , SWP_MOVE | SWP_SHOW
- );
+ if (pChildWin->GetHWND() != NULLHANDLE)
+ {
+ ::WinQueryWindowPos(pChildWin->GetHWND(), &vSwp);
+ ::WinQueryWindowRect(pChildWin->GetHWND(), &vRect);
+ if (pChildWin->GetHWND() == m_hWndScrollBarVert ||
+ pChildWin->GetHWND() == m_hWndScrollBarHorz)
+ {
+ ::WinSetWindowPos( pChildWin->GetHWND()
+ ,HWND_TOP
+ ,vSwp.x + nDx
+ ,vSwp.y + nDy
+ ,0
+ ,0
+ ,SWP_MOVE | SWP_SHOW | SWP_ZORDER
+ );
+ }
+ else
+ {
+ ::WinSetWindowPos( pChildWin->GetHWND()
+ ,HWND_BOTTOM
+ ,vSwp.x + nDx
+ ,vSwp.y + nDy
+ ,0
+ ,0
+ ,SWP_MOVE | SWP_ZORDER
+ );
+ ::WinInvalidateRect(pChildWin->GetHWND(), &vRect, FALSE);
+ }
+ }
pCurrent = pCurrent->GetNext();
}
} // end of wxWindow::ScrollWindow
HWND hWndClient;
RECTL vRect;
- hWndClient = ::WinWindowFromID(GetHwnd(), FID_CLIENT);
+ if (IsKindOf(CLASSINFO(wxFrame)))
+ hWndClient = ::WinWindowFromID(GetHwnd(), FID_CLIENT);
+ else
+ hWndClient = NULLHANDLE;
if( hWndClient == NULLHANDLE)
::WinQueryWindowRect(GetHwnd(), &vRect);
else
RECTL vParentRect;
HWND hWndClient;
- if (lX > -1L)
- lX1 = lX;
- if (lY > -1L)
- lY1 = lY;
+ lX1 = lX;
+ lY1 = lY;
if (lWidth > -1L)
lWidth1 = lWidth;
if (lHeight > -1L)