/////////////////////////////////////////////////////////////////////////////
-// 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,
return true;
}
+#if wxUSE_STATUSBAR
wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id,
const wxString& name)
{
m_frameStatusBar->SetSize(0, h, w, WX_MAC_STATUSBAR_HEIGHT);
}
}
+#endif // wxUSE_STATUSBAR
// Responds to colour changes, and passes event on to children.
void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
Refresh();
+#if wxUSE_STATUSBAR
if ( m_frameStatusBar )
{
wxSysColourChangedEvent event2;
event2.SetEventObject( m_frameStatusBar );
m_frameStatusBar->ProcessEvent(event2);
}
+#endif // wxUSE_STATUSBAR
// Propagate the event to the non-top-level children
wxWindow::OnSysColourChanged(event);
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 (GetToolBar())
{
// 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 // wxUSE_TOOLBAR
void wxFrame::PositionBars()
{
#endif
}
-#endif