]> git.saurik.com Git - wxWidgets.git/commitdiff
Updates for Y positioning
authorDavid Webster <Dave.Webster@bhmi.com>
Mon, 11 Feb 2002 04:33:03 +0000 (04:33 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Mon, 11 Feb 2002 04:33:03 +0000 (04:33 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/os2/gdiimage.cpp
src/os2/icon.cpp
src/os2/menuitem.cpp
src/os2/region.cpp
src/os2/toplevel.cpp
src/os2/window.cpp

index dcb5e1d4df2aa8fa230664459a7ae8279cfe1c99..82ec08a00c78cf5f51b0cf2cd6701ec0f3cf650e 100644 (file)
@@ -198,8 +198,8 @@ private:
 #if !USE_SHARED_LIBRARIES
     IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler)
     IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxGDIImageHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxGDIImageHandler)
+    IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxObject)
+    IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxObject)
 #endif
 
 // ----------------------------------------------------------------------------
index 4801c71d86cbf0af0d0f30e93d0891b1347da6a0..56b77d73eddd9b31beb6289b6b6ca0ffe95c39bd 100644 (file)
@@ -29,7 +29,7 @@
 
 #include "wx/icon.h"
 
-    IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxIconBase)
+    IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxGDIObject)
 
 // ============================================================================
 // implementation
index 42a3a893a57c5a1a685d787ccf38aa88a0750b8e..761e549f2c263aceabe4c8157be67d2a3b8113ac 100644 (file)
@@ -96,11 +96,7 @@ static wxString TextToLabel(const wxString& rTitle)
 // dynamic classes implementation
 // ----------------------------------------------------------------------------
 
-    #if wxUSE_OWNER_DRAWN
-        IMPLEMENT_DYNAMIC_CLASS2(wxMenuItem, wxMenuItemBase, wxOwnerDrawn)
-    #else   //!USE_OWNER_DRAWN
-        IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxMenuItemBase)
-    #endif  //USE_OWNER_DRAWN
+IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
 
 // ----------------------------------------------------------------------------
 // wxMenuItem
index c742b392a4f06d820a163c79dbfd45d31236b819..5404bf64db3871f91175111420abec12a01513b6 100644 (file)
@@ -414,7 +414,7 @@ void wxRegion::GetBox(
                             ,&vRect
                            );
         x       = vRect.xLeft;
-        y       = vRect.yTop;
+        y       = vRect.yBottom;
         vWidth  = vRect.xRight - vRect.xLeft;
         vHeight = vRect.yTop - vRect.yBottom;
     }
index 55794c5bfeb4326480328835405610ff31cbd7b9..a24707edd14ef969fbf0546382764d2cae97e7b8 100644 (file)
@@ -593,35 +593,13 @@ bool wxTopLevelWindowOS2::Show(
         m_bIconized = vSwp.fl & SWP_MINIMIZE;
         ::WinQueryWindowPos(m_hWnd, &m_vSwpClient);
         ::WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)~0, 0);
+        ::WinQueryWindowPos(m_hWnd, &vSwp);
         ::WinEnableWindow(m_hFrame, TRUE);
 
         //
         // Deal with children
         //
         MoveChildren(m_vSwpClient.cy - vSwp.cy);
-
-
-        //
-        // Need to handle the case of a single child that not a control
-        // as this is probably a panel with its own children
-        //
-        if (GetChildren().GetCount() > 0)
-        {
-            for (wxWindowList::Node* pNode = GetChildren().GetFirst();
-                 pNode;
-                 pNode = pNode->GetNext())
-            {
-                wxWindow*                   pChild = pNode->GetData();
-
-                if ( GetChildren().GetCount() == 1 &&
-                    !pChild->IsKindOf(CLASSINFO(wxControl))
-                   )
-                    pChild->MoveChildren(m_vSwpClient.cy - vSwp.cy);
-                pChild->Refresh();
-                pChild = NULL;
-            }
-        }
-
         vEvent.SetEventObject(this);
         GetEventHandler()->ProcessEvent(vEvent);
     }
index 61e1e636019b5e32fbeb0c17f62cda623eda9285..c537067f8902d4274835e2273067a1bd4f7267fe 100644 (file)
@@ -303,8 +303,11 @@ void wxWindowOS2::Init()
     m_hWndScrollBarHorz = 0L;
     m_hWndScrollBarVert = 0L;
 
+    memset(&m_vWinSwp, '\0', sizeof (SWP));
+
     //
     // Pass WM_GETDLGCODE to DefWindowProc()
+    //
     m_lDlgCode = 0;
 
     m_nXThumbSize = 0;
@@ -902,7 +905,6 @@ void wxWindowOS2::SetScrollbar(
         }
         else
         {
-            ::WinQueryWindowPos(hWnd, &vSwpOwner);
             //
             // The owner (the scrolled window) is a child of the Frame's
             // client window, usually.  The scrollbars are children of the
@@ -975,6 +977,7 @@ void wxWindowOS2::ScrollWindow(
                       ,NULL
                       ,SW_SCROLLCHILDREN | SW_INVALIDATERGN
                      );
+    Refresh();
 } // end of wxWindowOS2::ScrollWindow
 
 // ---------------------------------------------------------------------------
@@ -1598,8 +1601,8 @@ void wxWindowOS2::DoMoveWindow(
         // which will cause the scrollbars to be displayed via the SetScrollbar
         // call in CWindow.
         //
-        if ( pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
-             pParent->IsKindOf(CLASSINFO(wxScrolledWindow))
+        if ( IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
+             IsKindOf(CLASSINFO(wxScrolledWindow))
            )
         {
             int                     nAdjustWidth  = 0;
@@ -3045,37 +3048,6 @@ bool wxWindowOS2::OS2Create(
     {
         sClassName += wxT("NR");
     }
-
-    //
-    // If the window being created is a Frame's Statusbar we need to use
-    // the actual Frame's size, not its client
-    //
-    if (pParent)
-    {
-        if ( pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)) ||
-             pParent->IsKindOf(CLASSINFO(wxScrolledWindow))
-           )
-        {
-            if (IsKindOf(CLASSINFO(wxStatusBar)) &&
-                pParent->IsKindOf(CLASSINFO(wxFrame)))
-            {
-                RECTL               vRect;
-                wxFrame*            pFrame = wxDynamicCast(pParent, wxFrame);
-
-                ::WinQueryWindowRect((HWND)pFrame->GetFrame(), &vRect);
-                nY = vRect.yTop - (nY + nHeight);
-            }
-            else
-                nY = pParent->GetSize().y - (nY + nHeight);
-        }
-    }
-    else
-    {
-        RECTL                   vRect;
-
-        ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
-        nY = vRect.yTop - (nY + nHeight);
-    }
     m_hWnd = (WXHWND)::WinCreateWindow( (HWND)hParent
                                       ,(PSZ)sClassName.c_str()
                                       ,(PSZ)zTitle ? zTitle : ""
@@ -3098,6 +3070,22 @@ bool wxWindowOS2::OS2Create(
     }
     SubclassWin(m_hWnd);
     SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+
+    m_backgroundColour.Set(wxString("GREY"));
+
+    LONG                            lColor = (LONG)m_backgroundColour.GetPixel();
+
+    if (!::WinSetPresParam( m_hWnd
+                           ,PP_BACKGROUNDCOLOR
+                           ,sizeof(LONG)
+                           ,(PVOID)&lColor
+                          ))
+    {
+        vError = ::WinGetLastError(vHabmain);
+        sError = wxPMErrorToStr(vError);
+        wxLogError("Error creating frame. Error: %s\n", sError);
+        return FALSE;
+    }
     SetSize( nX
             ,nY
             ,nWidth
@@ -4112,12 +4100,12 @@ void wxWindowOS2::MoveChildren(
             vSwp.x -= pCtrl->GetXComp();
         }
         ::WinSetWindowPos( GetHwndOf(pWin)
-                          ,HWND_BOTTOM
+                          ,HWND_TOP
                           ,vSwp.x
                           ,vSwp.y - nDiff
                           ,vSwp.cx
                           ,vSwp.cy
-                          ,SWP_MOVE | SWP_ZORDER
+                          ,SWP_MOVE | SWP_SHOW | SWP_ZORDER
                          );
         ::WinQueryWindowPos(GetHwndOf(pWin), pWin->GetSwp());
         if (pWin->IsKindOf(CLASSINFO(wxRadioBox)))
@@ -4145,6 +4133,7 @@ void wxWindowOS2::MoveChildren(
                                       );
         }
     }
+    Refresh();
 } // end of wxWindowOS2::MoveChildren
 
 //
@@ -4207,41 +4196,14 @@ int wxWindowOS2::GetOS2ParentHeight(
             return(pParent->GetClientSize().y);
     }
     //
-    // Case 3a -- One of many Frame children.  Will be positioned normally
-    //
-    else if (pParent->GetChildren().GetCount() > 1)
-        return(pParent->GetClientSize().y);
-    //
-    // Case 3b -- this is for any window that is the sole child of a Frame.
-    //            The grandparent must exist and it must be of type CFrame
-    //            and it's height must be different. Otherwise the standard
-    //            applies.
+    // Case -- this is for any window that is the sole child of a Frame.
+    //         The grandparent must exist and it must be of type CFrame
+    //         and it's height must be different. Otherwise the standard
+    //         applies.
     //
     else
     {
-        pGrandParent = pParent->GetParent();
-        if (pGrandParent &&
-            pGrandParent->IsKindOf(CLASSINFO(wxFrame)) &&
-            pGrandParent->GetClientSize().y != pParent->GetSize().y
-           )
-        {
-            int                     nParentHeight = 0L;
-            int                     nStatusBarHeight = 0L;
-            wxFrame*                pFrame = wxDynamicCast(pGrandParent, wxFrame);
-            wxStatusBar*            pStatbar = pFrame->GetStatusBar();
-
-            nParentHeight = pGrandParent->GetClientSize().y;
-            if (pStatbar)
-                nStatusBarHeight = pStatbar->GetSize().y;
-            nParentHeight -= nStatusBarHeight;
-            return(nParentHeight);
-        }
-        else
-            //
-            // Panel is a child of some other kind of window so we'll
-            // just use it's original size
-            //
-            return(pParent->GetClientSize().y);
+        return(pParent->GetClientSize().y);
     }
     return(0L);
 } // end of wxWindowOS2::GetOS2ParentHeight