X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/443aec6f41be3d7428a2c61accc611b42dc9238d..07c19327922deabc5f140ea3659e65e1c37a5d65:/src/univ/framuniv.cpp?ds=sidebyside diff --git a/src/univ/framuniv.cpp b/src/univ/framuniv.cpp index 08ccc26c63..f2fe6fdc37 100644 --- a/src/univ/framuniv.cpp +++ b/src/univ/framuniv.cpp @@ -17,7 +17,7 @@ // headers // --------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "univframe.h" #endif @@ -96,13 +96,21 @@ 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, -#ifdef __WXPM__ // FIXME -- remove this, make wxOS2/Univ behave as + + wxCoord heightTbar = 0; + +#if wxUSE_TOOLBAR + if ( m_frameToolBar ) + heightTbar = m_frameToolBar->GetSize().y; +#endif // wxUSE_TOOLBAR + + m_frameMenuBar->SetSize(0, +#ifdef __WXPM__ // FIXME -- remove this, make wxOS2/Univ behave as // the rest of the world!!! - GetClientSize().y - heightMbar, + GetClientSize().y - heightMbar - heightTbar, #else - -heightMbar, -#endif + - (heightMbar + heightTbar), +#endif GetClientSize().x, heightMbar); } } @@ -128,7 +136,7 @@ void wxFrame::PositionStatusBar() if ( m_frameStatusBar ) { wxSize size = GetClientSize(); - m_frameStatusBar->SetSize(0, size.y, size.x, -1); + m_frameStatusBar->SetSize(0, size.y, size.x, wxDefaultCoord); } } @@ -251,7 +259,9 @@ void wxFrame::DoSetClientSize(int width, int height) #if wxUSE_TOOLBAR if ( m_frameToolBar ) { +#if wxUSE_STATUSBAR height += m_frameStatusBar->GetSize().y; +#endif // wxUSE_STATUSBAR if ( m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL ) width += m_frameToolBar->GetSize().x; @@ -263,13 +273,56 @@ void wxFrame::DoSetClientSize(int width, int height) wxFrameBase::DoSetClientSize(width, height); } +int wxFrame::GetMinWidth() const +{ +#if wxUSE_MENUS + if ( m_frameMenuBar ) + { + return wxMax(m_frameMenuBar->GetBestSize().x, wxFrameBase::GetMinWidth()); + } + else +#endif // wxUSE_MENUS + return wxFrameBase::GetMinWidth(); +} + +int wxFrame::GetMinHeight() const +{ + int height = 0; + +#if wxUSE_MENUS + if ( m_frameMenuBar ) + { + height += m_frameMenuBar->GetSize().y; + } +#endif // wxUSE_MENUS + +#if wxUSE_TOOLBAR + if ( m_frameToolBar ) + { + height += m_frameToolBar->GetSize().y; + } +#endif // wxUSE_TOOLBAR + +#if wxUSE_STATUSBAR + if ( m_frameStatusBar ) + { + height += m_frameStatusBar->GetSize().y; + } +#endif // wxUSE_STATUSBAR + + if ( height ) + return height + wxMax(0, wxFrameBase::GetMinHeight()); + else + return wxFrameBase::GetMinHeight(); +} + bool wxFrame::Enable(bool enable) { if (!wxFrameBase::Enable(enable)) - return FALSE; + return false; #ifdef __WXMICROWIN__ if (m_frameMenuBar) m_frameMenuBar->Enable(enable); #endif - return TRUE; + return true; }