//******************************************************************************** void CBCGPRibbonBackstageViewPanel::ReposActiveForm() { ASSERT_VALID(this); CBCGPBaseRibbonElement* pSelected = m_pNewSelected != NULL ? m_pNewSelected : m_pSelected; if (pSelected != NULL) { ASSERT_VALID(pSelected); CBCGPBaseRibbonElement* pView = pSelected->GetBackstageAttachedView(); if (pView != NULL) { ASSERT_VALID(pView); if (m_pMainButton != NULL) { ASSERT_VALID (m_pMainButton); ASSERT_VALID (m_pMainButton->GetParentRibbonBar ()); pView->SetRect(m_rectRight); CClientDC dc(m_pMainButton->GetParentRibbonBar()); CFont* pOldFont = dc.SelectObject (m_pMainButton->GetParentRibbonBar()->GetFont()); ASSERT (pOldFont != NULL); pView->OnAfterChangeRect(&dc); m_sizeRightView = pView->GetSize(&dc); dc.SelectObject (pOldFont); if (m_pNewSelected != NULL) { RedrawElement(pView); } } } } }
//******************************************************************************** void CBCGPRibbonBackstageViewPanel::Repos (CDC* pDC, const CRect& rect) { CBCGPRibbonMainPanel::Repos(pDC, rect); if (m_pSelected == NULL && !m_bIsCalcWidth) { CBCGPRibbonPanelMenuBar* pMenuBar = DYNAMIC_DOWNCAST(CBCGPRibbonPanelMenuBar, GetParentWnd()); if (pMenuBar != NULL) { CFrameWnd* pTarget = (CFrameWnd*) pMenuBar->GetCommandTarget (); if (pTarget == NULL || !pTarget->IsFrameWnd()) { pTarget = BCGPGetParentFrame(pMenuBar); } if (pTarget != NULL) { pMenuBar->OnUpdateCmdUI(pTarget, TRUE); } } if (m_pMainButton != NULL) { ASSERT_VALID(m_pMainButton); if (m_pMainButton->GetParentRibbonBar () != NULL) { ASSERT_VALID (m_pMainButton->GetParentRibbonBar ()); int nInitialPage = m_pMainButton->GetParentRibbonBar ()->GetInitialBackstagePage(); int nDefaultPage = m_pMainButton->GetParentRibbonBar ()->GetDefaultBackstagePage(); int nStartPage = (nInitialPage == -1) ? nDefaultPage : nInitialPage; if (nStartPage >= 0) { int nPage = 0; for (int i = 0; i < m_arElements.GetSize (); i++) { CBCGPBaseRibbonElement* pElem = m_arElements [i]; ASSERT_VALID (pElem); if (pElem->GetBackstageAttachedView() != NULL) { if (nPage == nStartPage) { if (!pElem->IsDisabled()) { m_pSelected = pElem; m_pSelected->m_bIsChecked = TRUE; } break; } nPage++; } } } } } if (m_pSelected == NULL) { for (int i = 0; i < m_arElements.GetSize (); i++) { CBCGPBaseRibbonElement* pElem = m_arElements [i]; ASSERT_VALID (pElem); if (!pElem->IsDisabled() && pElem->GetBackstageAttachedView() != NULL) { m_pSelected = pElem; m_pSelected->m_bIsChecked = TRUE; break; } } } if (m_pHighlighted == NULL) { m_pHighlighted = m_pSelected; } } m_rectRight = rect; m_rectRight.left = m_rectMenuElements.right; m_rectRight.top -= m_nScrollOffset; if (m_bIsCalcWidth) { return; } AdjustScrollBars(); ReposActiveForm(); }