void CBCGPRibbonConstructor::ConstructCategoryBackstage (CBCGPRibbonBar& bar, const CBCGPRibbonInfo::XCategoryBackstage& info) const { CBCGPRibbonBackstageViewPanel* pPanel = CreateCategoryBackstage (bar, info); ASSERT_VALID (pPanel); CBCGPRibbonCategory* pCategory = bar.GetBackstageCategory (); ASSERT_VALID (pCategory); const_cast<CBCGPToolBarImages&>(info.m_SmallImages.m_Image).CopyTo (pCategory->GetSmallImages ()); int i = 0; for (i = 0; i < info.m_arElements.GetSize (); i++) { if (info.m_arElements[i]->GetElementName ().Compare (CBCGPRibbonInfo::s_szButton_Command) == 0) { CBCGPBaseRibbonElement* pElement = CreateElement (*(const CBCGPRibbonInfo::XElement*)info.m_arElements[i]); if (pElement != NULL) { ASSERT_VALID (pElement); pElement->SetBackstageViewMode (); pPanel->CBCGPRibbonMainPanel::Add (pElement); } } } }
void CBCGPRibbonConstructor::ConstructCategory (CBCGPRibbonCategory& category, const CBCGPRibbonInfo::XCategory& info) const { const_cast<CBCGPToolBarImages&>(info.m_SmallImages.m_Image).CopyTo (category.GetSmallImages ()); const_cast<CBCGPToolBarImages&>(info.m_LargeImages.m_Image).CopyTo (category.GetLargeImages ()); category.SetKeys (info.m_strKeys); int i = 0; for (i = 0; i < info.m_arPanels.GetSize (); i++) { const CBCGPRibbonInfo::XPanel& infoPanel = *(const CBCGPRibbonInfo::XPanel*)info.m_arPanels[i]; CBCGPRibbonPanel* pPanel = CreatePanel (category, infoPanel); if (pPanel != NULL) { ASSERT_VALID (pPanel); ConstructPanel (*pPanel, infoPanel); } } for (i = 0; i < info.m_arElements.GetSize (); i++) { CBCGPBaseRibbonElement* pElement = CreateElement (*(const CBCGPRibbonInfo::XElement*)info.m_arElements[i]); if (pElement != NULL) { ASSERT_VALID (pElement); category.AddHidden (pElement); } } category.SetCollapseOrder (info.m_arCollapseOrder); }
void CBCGPRibbonConstructor::ConstructCategoryMain (CBCGPRibbonBar& bar, const CBCGPRibbonInfo::XCategoryMain& info) const { CBCGPRibbonMainPanel* pPanel = CreateCategoryMain (bar, info); ASSERT_VALID (pPanel); CBCGPRibbonCategory* pCategory = bar.GetMainCategory (); ASSERT_VALID (pCategory); const_cast<CBCGPToolBarImages&>(info.m_SmallImages.m_Image).CopyTo (pCategory->GetSmallImages ()); const_cast<CBCGPToolBarImages&>(info.m_LargeImages.m_Image).CopyTo (pCategory->GetLargeImages ()); if (info.m_bSearchEnable) { pPanel->EnableCommandSearch (info.m_bSearchEnable, info.m_strSearchLabel, info.m_strSearchKeys, info.m_nSearchWidth); } int i = 0; for (i = 0; i < info.m_arElements.GetSize (); i++) { CBCGPBaseRibbonElement* pElement = CreateElement (*(const CBCGPRibbonInfo::XElement*)info.m_arElements[i]); if (pElement != NULL) { ASSERT_VALID (pElement); if (info.m_arElements[i]->GetElementName ().Compare (CBCGPRibbonInfo::s_szButton_MainPanel) == 0) { pPanel->AddToBottom ((CBCGPRibbonMainPanelButton*)pElement); } else { pPanel->Add (pElement); } } } if (info.m_bRecentListEnable) { pPanel->AddRecentFilesList (info.m_strRecentListLabel, info.m_nRecentListWidth, info.m_bRecentListShowPins); } }