X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9102b3671a45d116d781b0c8e90d2e9a84fbdcb..4a528443651296fc50db585e780173cbe5e42db3:/src/msw/frame.cpp diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 22bebcacc6..ee8d22fd52 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/frame.cpp +// Name: src/msw/frame.cpp // Purpose: wxFrame // Author: Julian Smart // Modified by: @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "frame.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -46,6 +42,12 @@ #include #endif +#if defined(__POCKETPC__) || defined(__SMARTPHONE__) + #include + #include + #include "wx/msw/winundef.h" +#endif + #if wxUSE_STATUSBAR #include "wx/statusbr.h" #include "wx/generic/statusbr.h" @@ -197,14 +199,14 @@ bool wxFrame::Create(wxWindow *parent, SetLeftMenu(wxID_EXIT, _("Done")); #endif -#if defined(__POCKETPC__) +#if wxUSE_ACCEL && defined(__POCKETPC__) // The guidelines state that Ctrl+Q should quit the app. // Let's define an accelerator table to send wxID_EXIT. wxAcceleratorEntry entries[1]; entries[0].Set(wxACCEL_CTRL, 'Q', wxID_EXIT); wxAcceleratorTable accel(1, entries); SetAcceleratorTable(accel); -#endif +#endif // wxUSE_ACCEL && __POCKETPC__ return true; } @@ -502,8 +504,27 @@ bool wxFrame::ShowFullScreen(bool show, long style) } #endif // wxUSE_TOOLBAR - if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && m_hMenu) - ::SetMenu(GetHwnd(), (HMENU)m_hMenu); + if (m_fsStyle & wxFULLSCREEN_NOMENUBAR) + { + WXHMENU menu = m_hMenu; + +#if wxUSE_MDI_ARCHITECTURE + wxMDIParentFrame *frame = wxDynamicCast(this, wxMDIParentFrame); + if (frame) + { + wxMDIChildFrame *child = frame->GetActiveChild(); + if (child) + { + menu = child->GetWinMenu(); + } + } +#endif // wxUSE_MDI_ARCHITECTURE + + if (menu) + { + ::SetMenu(GetHwnd(), (HMENU)menu); + } + } #if wxUSE_STATUSBAR wxStatusBar *theStatusBar = GetStatusBar(); @@ -662,17 +683,15 @@ void wxFrame::IconizeChildFrames(bool bIconize) // them appear in the taskbar because they are, by virtue of this // style, not managed by the taskbar - instead leave Windows take care // of them -#ifdef __WIN95__ if ( win->GetWindowStyle() & wxFRAME_TOOL_WINDOW ) continue; -#endif // Win95 // the child MDI frames are a special case and should not be touched by // the parent frame - instead, they are managed by the user wxFrame *frame = wxDynamicCast(win, wxFrame); if ( frame #if wxUSE_MDI_ARCHITECTURE - && !IsMDIChild() + && !frame->IsMDIChild() #endif // wxUSE_MDI_ARCHITECTURE ) {