]> git.saurik.com Git - wxWidgets.git/commitdiff
Positioning fixes to compsate for wxWindow's use of the MS backwards standard.
authorDavid Webster <Dave.Webster@bhmi.com>
Thu, 19 Apr 2001 22:30:15 +0000 (22:30 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Thu, 19 Apr 2001 22:30:15 +0000 (22:30 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/os2/textctrl.cpp
src/os2/window.cpp

index 85de58bd684962f3e40efd43c7658e28031055ef..c216abe9a604e63ddca211c0b89e9c4cae5b0dba 100644 (file)
@@ -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
index b9729c7770c2800b1a21503361914fc9a6717324..82ffd920ea6a21c39f6410235840cf790df81313 100644 (file)
@@ -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