]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/framuniv.cpp
minor additions to wxCmdLineParser tests
[wxWidgets.git] / src / univ / framuniv.cpp
index 798ac4558d33dc82b76d19a558e3637af46e6006..19b2c610cb47ae582c0c169da08ee2a820fdba95 100644 (file)
@@ -31,6 +31,7 @@
     #include "wx/menu.h"
 #ifndef WX_PRECOMP
     #include "wx/frame.h"
+    #include "wx/statusbr.h"
 #endif // WX_PRECOMP
 
 // ============================================================================
@@ -68,10 +69,20 @@ void wxFrame::OnSize(wxSizeEvent& event)
 #if wxUSE_MENUS
     PositionMenuBar();
 #endif // wxUSE_MENUS
+#if wxUSE_STATUSBAR
+    PositionStatusBar();
+#endif // wxUSE_STATUSBAR
 
     event.Skip();
 }
 
+void wxFrame::SendSizeEvent()
+{    
+    wxSizeEvent event(GetSize(), GetId());
+    event.SetEventObject(this);
+    GetEventHandler()->ProcessEvent(event);
+}
+
 #if wxUSE_MENUS
 
 void wxFrame::PositionMenuBar()
@@ -86,8 +97,42 @@ void wxFrame::PositionMenuBar()
     }
 }
 
+void wxFrame::DetachMenuBar()
+{
+    wxFrameBase::DetachMenuBar();
+    SendSizeEvent();
+}
+
+void wxFrame::AttachMenuBar(wxMenuBar *menubar)
+{
+    wxFrameBase::AttachMenuBar(menubar);
+    SendSizeEvent();
+}
+
 #endif // wxUSE_MENUS
 
+#if wxUSE_STATUSBAR
+
+void wxFrame::PositionStatusBar()
+{
+    if ( m_frameStatusBar )
+    {
+        wxCoord heightBar = m_frameStatusBar->GetSize().y;
+        m_frameStatusBar->SetSize(0, GetClientSize().y,
+                                  GetClientSize().x, heightBar);
+    }
+}
+
+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();
@@ -105,12 +150,20 @@ wxPoint wxFrame::GetClientAreaOrigin() const
 void wxFrame::DoGetClientSize(int *width, int *height) const
 {
     wxFrameBase::DoGetClientSize(width, height);
+
 #if wxUSE_MENUS
     if ( m_frameMenuBar && height )
     {
         (*height) -= m_frameMenuBar->GetSize().y;
     }
 #endif // wxUSE_MENUS
+
+#if wxUSE_STATUSBAR
+    if ( m_frameStatusBar && height )
+    {
+        (*height) -= m_frameStatusBar->GetSize().y;
+    }
+#endif // wxUSE_STATUSBAR
 }
 
 void wxFrame::DoSetClientSize(int width, int height)
@@ -121,6 +174,14 @@ void wxFrame::DoSetClientSize(int width, int height)
         height += m_frameMenuBar->GetSize().y;
     }
 #endif // wxUSE_MENUS
+
+#if wxUSE_STATUSBAR
+    if ( m_frameStatusBar )
+    {
+        height += m_frameStatusBar->GetSize().y;
+    }
+#endif // wxUSE_STATUSBAR
+
     wxFrameBase::DoSetClientSize(width, height);
 }