/////////////////////////////////////////////////////////////////////////////
-// Name: frame.cpp
+// Name: src/mac/carbon/frame.cpp
// Purpose: wxFrame
// Author: Stefan Csomor
// Modified by:
#include "wx/wxprec.h"
#include "wx/frame.h"
-#include "wx/statusbr.h"
-#include "wx/toolbar.h"
-#include "wx/menuitem.h"
-#include "wx/menu.h"
-#include "wx/dcclient.h"
-#include "wx/dialog.h"
-#include "wx/settings.h"
-#include "wx/app.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/dcclient.h"
+ #include "wx/menu.h"
+ #include "wx/dialog.h"
+ #include "wx/settings.h"
+ #include "wx/toolbar.h"
+ #include "wx/statusbr.h"
+ #include "wx/menuitem.h"
+#endif // WX_PRECOMP
#include "wx/mac/uma.h"
extern wxWindowList wxModelessWindows;
-extern wxList wxPendingDelete;
BEGIN_EVENT_TABLE(wxFrame, wxFrameBase)
EVT_ACTIVATE(wxFrame::OnActivate)
void wxFrame::Init()
{
- m_frameMenuBar = NULL;
- m_frameStatusBar = NULL;
m_winLastFocused = NULL;
-
-#if wxUSE_TOOLBAR
- m_frameToolBar = NULL;
-#endif
-
-#if wxUSE_TOOLTIPS
- // NB: is this used anywhere?
- m_hwndToolTip = NULL;
-#endif
-
- m_iconized = false;
}
bool wxFrame::Create(wxWindow *parent,
wxStatusBar *statusBar;
statusBar = new wxStatusBar(this, id, style, name);
- statusBar->SetSize(100 , WX_MAC_STATUSBAR_HEIGHT);
+ statusBar->SetSize(100, WX_MAC_STATUSBAR_HEIGHT);
statusBar->SetFieldsCount(number);
return statusBar;
? m_winLastFocused->GetParent()
: NULL;
- if ( !parent )
+ if (parent == NULL)
parent = this;
wxSetFocusToChild(parent, &m_winLastFocused);
if (m_frameMenuBar != NULL)
{
- m_frameMenuBar->MacInstallMenuBar() ;
+ m_frameMenuBar->MacInstallMenuBar();
}
- else if (wxTheApp->GetTopWindow() && wxTheApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)))
+ else
{
- // Trying toplevel frame membar
- if (((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar())
- ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar()->MacInstallMenuBar();
- }
+ wxFrame *tlf = wxDynamicCast( wxTheApp->GetTopWindow(), wxFrame );
+ if (tlf != NULL)
+ {
+ // Trying top-level frame membar
+ if (tlf->GetMenuBar())
+ tlf->GetMenuBar()->MacInstallMenuBar();
+ }
+ }
}
}
int cw, ch;
GetSize( &cw , &ch ) ;
+
+ int statusX = 0 ;
+ int statusY = 0 ;
+#if wxUSE_STATUSBAR
if (GetStatusBar() && GetStatusBar()->IsShown())
{
- int statusX, statusY;
-
GetStatusBar()->GetClientSize(&statusX, &statusY);
ch -= statusY;
}
+#endif
+#if wxUSE_TOOLBAR
if (GetToolBar())
{
int tx, ty, tw, th;
// have the original client size.
GetToolBar()->SetSize(tx , ty , tw, ch , wxSIZE_NO_ADJUSTMENTS );
}
+ else if (GetToolBar()->GetWindowStyleFlag() & wxTB_BOTTOM)
+ {
+ //FIXME: this positions the tool bar almost correctly, but still it doesn't work right yet,
+ //as 1) the space for the 'old' top toolbar is still taken up, and 2) the toolbar
+ //doesn't extend it's width to the width of the frame.
+ tx = 0;
+ ty = ch - (th + statusY);
+ GetToolBar()->SetSize(tx, ty, cw, th, wxSIZE_NO_ADJUSTMENTS );
+ }
else
{
#if !wxMAC_USE_NATIVE_TOOLBAR
#endif
}
}
+#endif
}
void wxFrame::PositionBars()
}
#endif
-