void wxMDIChildFrame::InternalSetMenuBar() { wxMDIParentFrame * const parent = GetMDIParent(); MDIInsertWindowMenu(parent->GetClientWindow(), m_hMenu, GetMDIWindowMenu(parent)); }
void wxMDIChildFrame::InternalSetMenuBar() { wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); InsertWindowMenu(parent->GetClientWindow(), m_hMenu, GetMDIWindowMenu(parent)); parent->m_parentFrameActive = false; }
void wxMDIParentFrame::AddWindowMenu() { if ( m_windowMenu ) { // For correct handling of the events from this menu we also must // attach it to the menu bar. m_windowMenu->Attach(GetMenuBar()); MDIInsertWindowMenu(GetClientWindow(), m_hMenu, GetMDIWindowMenu(this)); } }
bool wxMDIChildFrame::HandleMDIActivate(long WXUNUSED(activate), WXHWND hwndAct, WXHWND hwndDeact) { wxMDIParentFrame * const parent = GetMDIParent(); WXHMENU hMenuToSet = 0; bool activated; if ( m_hWnd == hwndAct ) { activated = true; parent->SetActiveChild(this); WXHMENU hMenuChild = m_hMenu; if ( hMenuChild ) hMenuToSet = hMenuChild; } else if ( m_hWnd == hwndDeact ) { wxASSERT_MSG( parent->GetActiveChild() == this, wxT("can't deactivate MDI child which wasn't active!") ); activated = false; parent->SetActiveChild(NULL); WXHMENU hMenuParent = parent->m_hMenu; // activate the the parent menu only when there is no other child // that has been activated if ( hMenuParent && !hwndAct ) hMenuToSet = hMenuParent; } else { // we have nothing to do with it return false; } if ( hMenuToSet ) { MDISetMenu(parent->GetClientWindow(), (HMENU)hMenuToSet, GetMDIWindowMenu(parent)); } wxActivateEvent event(wxEVT_ACTIVATE, activated, m_windowId); event.SetEventObject( this ); ResetWindowStyle(NULL); return HandleWindowEvent(event); }
bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) { m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE); CLIENTCREATESTRUCT ccs; m_windowStyle = style; m_parent = parent; ccs.hWindowMenu = GetMDIWindowMenu(parent); ccs.idFirstChild = wxFIRST_MDI_CHILD; DWORD msStyle = MDIS_ALLCHILDSTYLES | WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; if ( style & wxHSCROLL ) msStyle |= WS_HSCROLL; if ( style & wxVSCROLL ) msStyle |= WS_VSCROLL; #if defined(__WIN95__) DWORD exStyle = WS_EX_CLIENTEDGE; #else DWORD exStyle = 0; #endif wxWindowCreationHook hook(this); m_hWnd = (WXHWND)::CreateWindowEx ( exStyle, wxT("MDICLIENT"), NULL, msStyle, 0, 0, 0, 0, GetWinHwnd(parent), NULL, wxGetInstance(), (LPSTR)(LPCLIENTCREATESTRUCT)&ccs); if ( !m_hWnd ) { wxLogLastError(wxT("CreateWindowEx(MDI client)")); return false; } SubclassWin(m_hWnd); return true; }
bool wxMDIChildFrame::HandleMDIActivate(long WXUNUSED(activate), WXHWND hwndAct, WXHWND hwndDeact) { wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); HMENU menuToSet = 0; bool activated; if ( m_hWnd == hwndAct ) { activated = true; parent->m_currentChild = this; HMENU child_menu = (HMENU)GetWinMenu(); if ( child_menu ) { parent->m_parentFrameActive = false; menuToSet = child_menu; } } else if ( m_hWnd == hwndDeact ) { wxASSERT_MSG( parent->m_currentChild == this, wxT("can't deactivate MDI child which wasn't active!") ); activated = false; parent->m_currentChild = NULL; HMENU parent_menu = (HMENU)parent->GetWinMenu(); // activate the the parent menu only when there is no other child // that has been activated if ( parent_menu && !hwndAct ) { parent->m_parentFrameActive = true; menuToSet = parent_menu; } } else { // we have nothing to do with it return false; } if ( menuToSet ) { MDISetMenu(parent->GetClientWindow(), menuToSet, GetMDIWindowMenu(parent)); } wxActivateEvent event(wxEVT_ACTIVATE, activated, m_windowId); event.SetEventObject( this ); ResetWindowStyle((void *)NULL); return GetEventHandler()->ProcessEvent(event); }
void wxMDIParentFrame::InternalSetMenuBar() { m_parentFrameActive = true; InsertWindowMenu(GetClientWindow(), m_hMenu, GetMDIWindowMenu(this)); }
void wxMDIParentFrame::AddWindowMenu() { if ( m_windowMenu ) MDIInsertWindowMenu(GetClientWindow(), m_hMenu, GetMDIWindowMenu(this)); }