bool wxMDIParentFrame::Create(wxWindow *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { // this style can be used to prevent a window from having the standard MDI // "Window" menu if ( !(style & wxFRAME_NO_WINDOW_MENU) ) { // normal case: we have the window menu, so construct it m_windowMenu = new wxMenu; m_windowMenu->Append(wxID_MDI_WINDOW_CASCADE, _("&Cascade")); m_windowMenu->Append(wxID_MDI_WINDOW_TILE_HORZ, _("Tile &Horizontally")); m_windowMenu->Append(wxID_MDI_WINDOW_TILE_VERT, _("Tile &Vertically")); m_windowMenu->AppendSeparator(); m_windowMenu->Append(wxID_MDI_WINDOW_ARRANGE_ICONS, _("&Arrange Icons")); m_windowMenu->Append(wxID_MDI_WINDOW_NEXT, _("&Next")); m_windowMenu->Append(wxID_MDI_WINDOW_PREV, _("&Previous")); } if (!parent) wxTopLevelWindows.Append(this); SetName(name); m_windowStyle = style; if ( parent ) parent->AddChild(this); if ( id != wxID_ANY ) m_windowId = id; else m_windowId = NewControlId(); WXDWORD exflags; WXDWORD msflags = MSWGetCreateWindowFlags(&exflags); msflags &= ~WS_VSCROLL; msflags &= ~WS_HSCROLL; if ( !wxWindow::MSWCreate(wxApp::GetRegisteredClassName(wxT("wxMDIFrame")), title.wx_str(), pos, size, msflags, exflags) ) { return false; } SetOwnBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); // unlike (almost?) all other windows, frames are created hidden m_isShown = false; return true; }
bool wxTopLevelWindowMSW::CreateFrame(const wxString& title, const wxPoint& pos, const wxSize& size) { WXDWORD exflags; WXDWORD flags = MSWGetCreateWindowFlags(&exflags); const wxSize sz = IsAlwaysMaximized() ? wxDefaultSize : size; if ( wxApp::MSWGetDefaultLayout(m_parent) == wxLayout_RightToLeft ) exflags |= WS_EX_LAYOUTRTL; return MSWCreate(MSWGetRegisteredClassName(), title.t_str(), pos, sz, flags, exflags); }
bool wxMDIParentFrame::Create(wxWindow *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { m_clientWindow = NULL; m_currentChild = NULL; // this style can be used to prevent a window from having the standard MDI // "Window" menu if ( style & wxFRAME_NO_WINDOW_MENU ) { m_windowMenu = (wxMenu *)NULL; } else // normal case: we have the window menu, so construct it { m_windowMenu = new wxMenu; m_windowMenu->Append(IDM_WINDOWCASCADE, _("&Cascade")); m_windowMenu->Append(IDM_WINDOWTILEHOR, _("Tile &Horizontally")); m_windowMenu->Append(IDM_WINDOWTILEVERT, _("Tile &Vertically")); m_windowMenu->AppendSeparator(); m_windowMenu->Append(IDM_WINDOWICONS, _("&Arrange Icons")); m_windowMenu->Append(IDM_WINDOWNEXT, _("&Next")); m_windowMenu->Append(IDM_WINDOWPREV, _("&Previous")); } m_parentFrameActive = true; if (!parent) wxTopLevelWindows.Append(this); SetName(name); m_windowStyle = style; if ( parent ) parent->AddChild(this); if ( id != wxID_ANY ) m_windowId = id; else m_windowId = NewControlId(); WXDWORD exflags; WXDWORD msflags = MSWGetCreateWindowFlags(&exflags); msflags &= ~WS_VSCROLL; msflags &= ~WS_HSCROLL; if ( !wxWindow::MSWCreate(wxMDIFrameClassName, title, pos, size, msflags, exflags) ) { return false; } // unlike (almost?) all other windows, frames are created hidden m_isShown = false; return true; }