event.Skip();
}
+void wxFrame::SendSizeEvent()
+{
+ wxSizeEvent event(GetSize(), GetId());
+ event.SetEventObject(this);
+ GetEventHandler()->ProcessEvent(event);
+}
+
#if wxUSE_MENUS
void wxFrame::PositionMenuBar()
// the menubar is positioned above the client size, hence the negative
// y coord
wxCoord heightMbar = m_frameMenuBar->GetSize().y;
- m_frameMenuBar->SetSize(0, -heightMbar,
+ m_frameMenuBar->SetSize(0,
+#ifdef __WXPM__
+ GetClientSize().y - heightMbar,
+#else
+ -heightMbar,
+#endif
GetClientSize().x, heightMbar);
}
}
+void wxFrame::DetachMenuBar()
+{
+ wxFrameBase::DetachMenuBar();
+ SendSizeEvent();
+}
+
+void wxFrame::AttachMenuBar(wxMenuBar *menubar)
+{
+ wxFrameBase::AttachMenuBar(menubar);
+ SendSizeEvent();
+}
+
#endif // wxUSE_MENUS
#if wxUSE_STATUSBAR
{
if ( m_frameStatusBar )
{
- wxCoord heightBar = m_frameStatusBar->GetSize().y;
- m_frameStatusBar->SetSize(0, GetClientSize().y,
- GetClientSize().x, heightBar);
+ wxSize size = GetClientSize();
+ m_frameStatusBar->SetSize(0, size.y, size.x, -1);
}
}
+wxStatusBar* wxFrame::CreateStatusBar(int number, long style,
+ wxWindowID id, const wxString& name)
+{
+ wxStatusBar *bar = wxFrameBase::CreateStatusBar(number, style, id, name);
+ SendSizeEvent();
+ return bar;
+}
+
#endif // wxUSE_STATUSBAR
wxPoint wxFrame::GetClientAreaOrigin() const
{
wxPoint pt = wxFrameBase::GetClientAreaOrigin();
-#if wxUSE_MENUS
+#if wxUSE_MENUS && !defined(__WXPM__)
if ( m_frameMenuBar )
{
pt.y += m_frameMenuBar->GetSize().y;