]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/frame.cpp
fixed huge memory leak in wxFileDialog (closes patch 544060)
[wxWidgets.git] / src / os2 / frame.cpp
index 55c626ed148ffb879aaacb4e88e1448d8998d207..bca65d8c35883106f91329073c6f1010c5b2fb47 100644 (file)
@@ -30,6 +30,7 @@
     #include "wx/dialog.h"
     #include "wx/settings.h"
     #include "wx/dcclient.h"
+    #include "wx/mdi.h"
 #endif // WX_PRECOMP
 
 #include "wx/os2/private.h"
@@ -52,7 +53,6 @@
 
 extern wxWindowList wxModelessWindows;
 extern wxList WXDLLEXPORT wxPendingDelete;
-extern const wxChar* wxFrameClassName;
 
 #if wxUSE_MENUS_NATIVE
 extern wxMenu *wxCurrentPopupMenu;
@@ -144,7 +144,6 @@ bool wxFrame::Create(
                                   ,rsName
                                  ))
         return FALSE;
-    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
     wxModelessWindows.Append(this);
     return TRUE;
 } // end of wxFrame::Create
@@ -211,21 +210,6 @@ void wxFrame::Raise()
                      );
 }
 
-// generate an artificial resize event
-void wxFrame::SendSizeEvent()
-{
-    if (!m_bIconized)
-    {
-        RECTL                       vRect = wxGetWindowRect(GetHwnd());
-
-        (void)::WinPostMsg( m_hFrame
-                           ,WM_SIZE
-                           ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
-                           ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
-                          );
-    }
-}
-
 #if wxUSE_STATUSBAR
 wxStatusBar* wxFrame::OnCreateStatusBar(
   int                               nNumber
@@ -248,6 +232,26 @@ wxStatusBar* wxFrame::OnCreateStatusBar(
     if( !pStatusBar )
         return NULL;
 
+    wxClientDC                      vDC(pStatusBar);
+    int                             nY;
+
+    //
+    // Set the height according to the font and the border size
+    //
+    vDC.SetFont(pStatusBar->GetFont()); // Screws up the menues for some reason
+    vDC.GetTextExtent( "X"
+                      ,NULL
+                      ,&nY
+                     );
+
+    int                             nHeight = ((11 * nY) / 10 + 2 * pStatusBar->GetBorderY());
+
+    pStatusBar->SetSize( -1
+                        ,-1
+                        ,-1
+                        ,nHeight
+                       );
+
     ::WinSetParent( pStatusBar->GetHWND()
                    ,m_hFrame
                    ,FALSE
@@ -919,9 +923,10 @@ bool wxFrame::HandlePaint()
             //
             // Icons in PM are the same as "pointers"
             //
+            const wxIcon&           vIcon = GetIcon();
             HPOINTER                hIcon;
 
-            if (m_icon.Ok())
+            if (vIcon.Ok())
                 hIcon = (HPOINTER)::WinSendMsg(m_hFrame, WM_QUERYICON, 0L, 0L);
             else
                 hIcon = (HPOINTER)m_hDefaultIcon;
@@ -1067,15 +1072,10 @@ bool wxFrame::HandleSize(
         PositionToolBar();
 #endif // wxUSE_TOOLBAR
 
-        wxSizeEvent                 vEvent( wxSize( nX
-                                                   ,nY
-                                                  )
-                                           ,m_windowId
-                                          );
-
-        vEvent.SetEventObject(this);
-        bProcessed = GetEventHandler()->ProcessEvent(vEvent);
-        AlterChildPos();
+        bProcessed = wxWindow::HandleSize( nX
+                                          ,nY
+                                          ,nId
+                                         );
     }
     return bProcessed;
 } // end of wxFrame::HandleSize
@@ -1376,9 +1376,10 @@ MRESULT wxFrame::OS2WindowProc(
 
         case CM_QUERYDRAGIMAGE:
             {
+                const wxIcon&           vIcon = GetIcon();
                 HPOINTER                hIcon;
 
-                if (m_icon.Ok())
+                if (vIcon.Ok())
                     hIcon = (HPOINTER)::WinSendMsg(GetHWND(), WM_QUERYICON, 0L, 0L);
                 else
                     hIcon = (HPOINTER)m_hDefaultIcon;