void CXTPDockingPaneTabbedContainer::Copy(CXTPDockingPaneBase* pCloneBase, CXTPPaneToPaneMap* pMap, DWORD dwIgnoredOptions) { CXTPDockingPaneTabbedContainer* pClone = (CXTPDockingPaneTabbedContainer*)pCloneBase; ASSERT(pClone); if (!pClone) return; m_bActive = FALSE; m_pDockingSite = GetDockingPaneManager()->GetSite(); m_pSelectedPane = m_pTrackingPane = NULL; m_rcWindow = pClone->m_rcWindow; m_szDocking = pClone->m_szDocking; m_bTitleVisible = TRUE; m_nLockReposition = 0; if (pClone->m_pLayout != m_pLayout) { m_bMaximized = pClone->m_bMaximized; } CXTPDockingPane* pSelected = NULL; if (pMap) { POSITION pos = pClone->GetHeadPosition(); while (pos) { CXTPDockingPane* pPane = (CXTPDockingPane*)pClone->GetNext(pos); CXTPDockingPane* pNewPane = (CXTPDockingPane*)pPane->Clone(m_pLayout, pMap); if (pClone->GetSelected() == pPane) pSelected = pNewPane; _InsertPane(pNewPane); } } else { POSITION pos = pClone->m_lstPanes.GetHeadPosition(); while (pos) { CXTPDockingPane* pPane = (CXTPDockingPane*)pClone->GetNext(pos); ASSERT(pPane->GetType() == xtpPaneTypeDockingPane); if ((((CXTPDockingPane*)pPane)->GetOptions() & dwIgnoredOptions) == 0) { if (pClone->GetSelected() == pPane && pSelected == NULL) pSelected = pPane; pPane->m_pParentContainer->RemovePane(pPane); _InsertPane(pPane); } } } if (pSelected) SelectPane(pSelected, FALSE); }
void CXTPDockingPaneSplitterContainer::Init(CXTPDockingPaneBase* pPane, BOOL bHoriz, CWnd* pFrame) { ASSERT(pPane); if (!pPane) return; m_bHoriz = bHoriz; m_pDockingSite = pFrame; _InsertPane(pPane); m_szDocking = pPane->m_szDocking; }
void CXTPDockingPaneTabbedContainer::Init(CXTPDockingPane* pPane, CWnd* pFrame) { ASSERT(pPane); if (!pPane) return; m_pDockingSite = pFrame; m_szDocking = pPane->m_szDocking; m_rcWindow = pPane->m_rcWindow; _InsertPane(pPane); SelectPane(pPane); }
BOOL CXTPDockingPaneSidePanel::Init(CXTPDockingPaneBase* pBasePane, XTPDockingPaneDirection direction, CRect rc) { CXTPDockingPaneBaseList lstPanes; pBasePane->FindPane(xtpPaneTypeDockingPane, &lstPanes); if (lstPanes.GetCount() == 0) return FALSE; m_direction = direction; m_rcWindow = rc; CreateContainer(); CXTPDockingPaneTabbedContainer* pContainer = (CXTPDockingPaneTabbedContainer*)GetDockingPaneManager()-> OnCreatePane(xtpPaneTypeTabbedContainer, m_pLayout); BOOL bInit = FALSE; POSITION pos = lstPanes.GetHeadPosition(); while (pos) { CXTPDockingPane* pPane = (CXTPDockingPane*)lstPanes.GetNext(pos); if (pPane->GetContainer()) { pPane->GetContainer()->RemovePane(pPane); } if (!bInit) { pContainer->Init((CXTPDockingPane*)pPane, this); } else { pContainer->_InsertPane(pPane, FALSE); } bInit = TRUE; } _InsertPane(pContainer); OnFocusChanged(); m_nIdleFlags = 0; return TRUE; }
void CXTPDockingPaneSidePanel::Copy(CXTPDockingPaneBase* pCloneBase, CXTPPaneToPaneMap* pMap, DWORD /*dwIgnoredOptions*/) { CXTPDockingPaneSidePanel* pClone = (CXTPDockingPaneSidePanel*)pCloneBase; ASSERT(pClone); if (!pClone) return; m_direction = pClone->m_direction; m_rcWindow = pClone->m_rcWindow; m_bCollapsed = pClone->m_bCollapsed; m_pDockingSite = GetDockingPaneManager()->GetSite(); CXTPDockingPaneTabbedContainer* pContainer = pClone->GetTopContainer(); if (pContainer) { _InsertPane(pContainer->Clone(m_pLayout, pMap)); } }
void CXTPDockingPaneSplitterContainer::Copy(CXTPDockingPaneBase* pCloneBase, CXTPPaneToPaneMap* pMap, DWORD /*dwIgnoredOptions*/) { CXTPDockingPaneSplitterContainer* pClone = (CXTPDockingPaneSplitterContainer*)pCloneBase; ASSERT(pClone); if (!pClone) return; m_bHoriz = pClone->m_bHoriz; m_pDockingSite = GetDockingPaneManager()->GetSite(); POSITION pos = pClone->GetHeadPosition(); while (pos) { CXTPDockingPaneBase* pPane = (CXTPDockingPaneBase*)pClone->GetNext(pos); if (!pPane->IsEmpty() || pMap) { _InsertPane(pPane->Clone(m_pLayout, pMap)); } } m_szDocking = pClone->m_szDocking; m_rcWindow = pClone->m_rcWindow; }