X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/442b35b53bf95f5c6c003ea9ddbefd17adbc2a00..bcd3d8d9e26e41615d26d457ba0e2b84b80a0356:/src/univ/framuniv.cpp diff --git a/src/univ/framuniv.cpp b/src/univ/framuniv.cpp index 392227d60f..6347d6252e 100644 --- a/src/univ/framuniv.cpp +++ b/src/univ/framuniv.cpp @@ -41,11 +41,7 @@ BEGIN_EVENT_TABLE(wxFrame, wxFrameNative) EVT_SIZE(wxFrame::OnSize) END_EVENT_TABLE() -#if defined(__WXMSW__) - IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameMSW) -#elif defined(__WXGTK__) - IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameGTK) -#endif +IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) // ---------------------------------------------------------------------------- // ctors @@ -68,29 +64,41 @@ wxFrame::wxFrame(wxWindow *parent, } // ---------------------------------------------------------------------------- -// geometry +// menu support // ---------------------------------------------------------------------------- void wxFrame::OnSize(wxSizeEvent& event) { +#if wxUSE_MENUS PositionMenuBar(); +#endif // wxUSE_MENUS event.Skip(); } +#if wxUSE_MENUS + void wxFrame::PositionMenuBar() { -#if wxUSE_MENUS if ( m_frameMenuBar ) { // the menubar is positioned above the client size, hence the negative // y coord - m_frameMenuBar->SetSize(0, -m_frameMenuBar->GetSize().y, - GetClientSize().x, -1); + wxCoord heightMbar = m_frameMenuBar->GetSize().y; + m_frameMenuBar->SetSize(0, + +// FIXME: why doesn't this work as expected in wxGTK?? +#ifdef __WXGTK__ + 0, +#else + -heightMbar, +#endif + GetClientSize().x, heightMbar); } -#endif // wxUSE_MENUS } +#endif // wxUSE_MENUS + wxPoint wxFrame::GetClientAreaOrigin() const { wxPoint pt = wxFrameNative::GetClientAreaOrigin(); @@ -105,3 +113,13 @@ wxPoint wxFrame::GetClientAreaOrigin() const return pt; } +bool wxFrame::Enable( bool enable ) +{ + if (!wxFrameNative::Enable(enable)) + return FALSE; +#ifdef __WXMICROWIN__ + if (m_frameMenuBar) + m_frameMenuBar->Enable(enable); +#endif + return TRUE; +}