//********************************************************************** void CBCGPRibbonCustomizeRibbonPage::OnRemove() { #ifndef BCGP_EXCLUDE_GRID_CTRL CBCGPGridRow* pRow = m_wndRibbonTreeDest.GetCurSel(); if (pRow == NULL) { ASSERT(FALSE); return; } m_bDontProcessSelChanged = TRUE; ASSERT_VALID(pRow); CBCGPGridRow* pParentRow = pRow->GetParent(); if (m_pSelCategoryDest != NULL) { ASSERT_VALID(m_pSelCategoryDest); ASSERT(m_pSelCategoryDest->IsCustom()); m_pSelCategoryDest->m_bToBeDeleted = TRUE; m_CustomizationData.RemoveCustomTab(*m_pSelCategoryDest); } else if (m_pSelPanelDest != NULL) { ASSERT_VALID(m_pSelPanelDest); if (m_pSelPanelDest->IsCustom()) { m_pSelPanelDest->m_bToBeDeleted = TRUE; m_CustomizationData.RemoveCustomPanel(*m_pSelPanelDest); } else { m_CustomizationData.ShowPanel(m_pSelPanelDest, FALSE); } } else if (m_pSelElemDest != NULL) { ASSERT_VALID(m_pSelElemDest); m_CustomizationData.RemoveCustomElement(*m_pSelElemDest); if (m_pSelElemDest->m_bIsNew) { CBCGPRibbonPanel* pPanel = m_pSelElemDest->GetParentPanel(); ASSERT_VALID(pPanel); int nIndex = pPanel->GetIndex(m_pSelElemDest); ASSERT(nIndex >= 0); pPanel->Remove(nIndex); } } else { ASSERT(FALSE); m_bDontProcessSelChanged = FALSE; return; } int id = pRow->GetRowId(); BOOL bDisableDown = FALSE; BOOL bDisableUp = FALSE; m_wndRibbonTreeDest.SetRedraw(FALSE); if (!m_wndRibbonTreeDest.MoveSelection(TRUE)) { bDisableDown = TRUE; bDisableUp = !m_wndRibbonTreeDest.MoveSelection(FALSE); } CBCGPGridRow* pSelRow = m_wndRibbonTreeDest.GetCurSel(); m_wndRibbonTreeDest.SetCurSel(NULL, FALSE); m_wndRibbonTreeDest.RemoveRow(id); m_wndRibbonTreeDest.AdjustLayout (); m_bDontProcessSelChanged = FALSE; if (bDisableDown && bDisableUp) { m_wndRibbonTreeDest.SetCurSel(pParentRow); } else { m_wndRibbonTreeDest.SetCurSel(pSelRow); } m_wndRibbonTreeDest.SetRedraw(); m_wndRibbonTreeDest.RedrawWindow(); #endif }