]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/frame.cpp
Copy about.htm
[wxWidgets.git] / src / mac / carbon / frame.cpp
index 4fba75bad2378106fb459af13523d5fb66dc36b4..5e1cc74cd934a2444e0d0e3448af4a726e8921cb 100644 (file)
@@ -9,10 +9,12 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "frame.h"
 #endif
 
+#include "wx/wxprec.h"
+
 #include "wx/frame.h"
 #include "wx/statusbr.h"
 #include "wx/toolbar.h"
@@ -40,7 +42,7 @@ END_EVENT_TABLE()
 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
 #endif
 
-#define WX_MAC_STATUSBAR_HEIGHT 15 
+#define WX_MAC_STATUSBAR_HEIGHT 18 
 // ----------------------------------------------------------------------------
 // creation/destruction
 // ----------------------------------------------------------------------------
@@ -74,8 +76,6 @@ bool wxFrame::Create(wxWindow *parent,
     if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return FALSE;
     
-    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
-
     wxModelessWindows.Append(this);
     
     return TRUE;
@@ -112,23 +112,21 @@ wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id,
 
     statusBar = new wxStatusBar(this, id,
         style, name);
-    statusBar->SetSize( 100 , 15 ) ;
+    statusBar->SetSize( 100 , WX_MAC_STATUSBAR_HEIGHT ) ;
     statusBar->SetFieldsCount(number);
     return statusBar;
 }
 
 void wxFrame::PositionStatusBar()
 {
-    if (m_frameStatusBar )
+    if (m_frameStatusBar && m_frameStatusBar->IsShown() )
     {
         int w, h;
         GetClientSize(&w, &h);
-        int sw, sh;
-        m_frameStatusBar->GetSize(&sw, &sh);
         
         // Since we wish the status bar to be directly under the client area,
         // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS.
-        m_frameStatusBar->SetSize(0, h, w, sh);
+        m_frameStatusBar->SetSize(0, h, w, WX_MAC_STATUSBAR_HEIGHT);
     }
 }
 
@@ -228,11 +226,9 @@ void wxFrame::DoGetClientSize(int *x, int *y) const
     wxTopLevelWindow::DoGetClientSize( x , y ) ;
     
 #if wxUSE_STATUSBAR
-    if ( GetStatusBar() && y )
+    if ( GetStatusBar() && GetStatusBar()->IsShown() && y )
     {
-        int statusX, statusY;
-        GetStatusBar()->GetSize(&statusX, &statusY);
-        if ( y) *y -= statusY;
+        if ( y) *y -= WX_MAC_STATUSBAR_HEIGHT;
     }
 #endif // wxUSE_STATUSBAR
     
@@ -255,6 +251,21 @@ void wxFrame::DoGetClientSize(int *x, int *y) const
 #endif // wxUSE_TOOLBAR
 }
 
+bool wxFrame::MacIsChildOfClientArea( const wxWindow* child ) const 
+{
+#if wxUSE_STATUSBAR
+    if ( child == GetStatusBar() )
+        return false ;
+#endif // wxUSE_STATUSBAR
+
+#if wxUSE_TOOLBAR
+    if ( child == GetToolBar() )
+        return false ;
+#endif // wxUSE_TOOLBAR
+
+    return wxFrameBase::MacIsChildOfClientArea( child ) ;
+}
+
 void wxFrame::DoSetClientSize(int clientwidth, int clientheight)
 {
     int currentclientwidth , currentclientheight ;
@@ -295,7 +306,7 @@ void wxFrame::PositionToolBar()
 
     GetSize( &cw , &ch ) ;
 
-    if ( GetStatusBar() )
+    if ( GetStatusBar() && GetStatusBar()->IsShown())
     {
       int statusX, statusY;
       GetStatusBar()->GetClientSize(&statusX, &statusY);