From: David Webster Date: Thu, 19 Apr 2001 22:30:15 +0000 (+0000) Subject: Positioning fixes to compsate for wxWindow's use of the MS backwards standard. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/45bfc84b20112373b5ee5fd5a910c96b342e6e71 Positioning fixes to compsate for wxWindow's use of the MS backwards standard. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/os2/textctrl.cpp b/src/os2/textctrl.cpp index 85de58bd68..c216abe9a6 100644 --- a/src/os2/textctrl.cpp +++ b/src/os2/textctrl.cpp @@ -108,8 +108,23 @@ bool wxTextCtrl::Create( )) return FALSE; + wxPoint vPos = rPos; // The OS/2 position + if (pParent ) + { pParent->AddChild(this); + // + // OS2 uses normal coordinates, no bassackwards Windows ones + // + vPos.y = pParent->GetSize().y - (vPos.y + rSize.y); + } + else + { + RECTL vRect; + + ::WinQueryWindowRect(HWND_DESKTOP, &vRect); + vPos.y = vRect.yTop - (vPos.y + rSize.y); + } m_windowStyle = lStyle; @@ -147,8 +162,8 @@ bool wxTextCtrl::Create( ,WC_MLE // Window class ,(PSZ)rsValue.c_str() // Initial Text ,(ULONG)lSstyle // Style flags - ,(LONG)rPos.x // X pos of origin - ,(LONG)rPos.y // Y pos of origin + ,(LONG)vPos.x // X pos of origin + ,(LONG)vPos.y // Y pos of origin ,(LONG)rSize.x // field width ,(LONG)rSize.y // field height ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent @@ -164,8 +179,8 @@ bool wxTextCtrl::Create( ,WC_ENTRYFIELD // Window class ,(PSZ)rsValue.c_str() // Initial Text ,(ULONG)lSstyle // Style flags - ,(LONG)rPos.x // X pos of origin - ,(LONG)rPos.y // Y pos of origin + ,(LONG)vPos.x // X pos of origin + ,(LONG)vPos.y // Y pos of origin ,(LONG)rSize.x // field width ,(LONG)rSize.y // field height ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent diff --git a/src/os2/window.cpp b/src/os2/window.cpp index b9729c7770..82ffd920ea 100644 --- a/src/os2/window.cpp +++ b/src/os2/window.cpp @@ -329,6 +329,7 @@ bool wxWindow::Create( ) { HWND hParent = NULLHANDLE; + wxPoint vPos = rPos; // The OS/2 position wxCHECK_MSG(pParent, FALSE, wxT("can't create wxWindow without parent")); @@ -346,9 +347,19 @@ bool wxWindow::Create( { pParent->AddChild(this); hParent = GetWinHwnd(pParent); + // + // OS2 uses normal coordinates, no bassackwards Windows ones + // + vPos.y = pParent->GetSize().y - (vPos.y + rSize.y); } else - hParent = HWND_DESKTOP; + { + RECTL vRect; + + ::WinQueryWindowRect(HWND_DESKTOP, &vRect); + hParent = HWND_DESKTOP; + vPos.y = vRect.yTop - (vPos.y + rSize.y); + } ULONG ulCreateFlags = 0L; @@ -382,8 +393,8 @@ bool wxWindow::Create( ,(PSZ)wxCanvasClassName ,rName.c_str() ,ulCreateFlags - ,rPos.x - ,rPos.y + ,vPos.x + ,vPos.y ,WidthDefault(rSize.x) ,HeightDefault(rSize.y) ,NULLHANDLE