void IMain.InitializeMenu() { Dictionary <string, BarItem> dicMenuItems; List <MenuItemInfo> colMenuItems; Dictionary <string, BarManagerCategory> colMenuCategories; dicMenuItems = new Dictionary <string, BarItem>(); colMenuCategories = new Dictionary <string, BarManagerCategory>(); mainBar.Items.Clear(); mainBar.Images = ThemeUtils.Image16; using (var ctrlMenu = new SAController()) { ctrlMenu.ListMenuItems(out colMenuItems); } // 1st) Add root m_RootCategory = new BarManagerCategory { Name = LangUtils.Translate( LangType.MENU_CAPTION, CONSTANTS.BUILT_IN_MENU_NAME, CONSTANTS.BUILT_IN_MENU_NAME) }; colMenuCategories.Add(CONSTANTS.BUILT_IN_MENU_ID, m_RootCategory); mainBar.Categories.Add(m_RootCategory); // 2nd) add root container BarItem newBarItem = new BarSubItem { Name = string.Format(CONSTANTS.BAR_SUB_ITEM_FORMAT, CONSTANTS.BUILT_IN_MENU_NAME), Caption = LangUtils.Translate( LangType.MENU_CAPTION, CONSTANTS.BUILT_IN_MENU_NAME, CONSTANTS.BUILT_IN_MENU_NAME) }; dicMenuItems.Add(CONSTANTS.BUILT_IN_MENU_ID, newBarItem); foreach (MenuItemInfo item in colMenuItems) { var count = colMenuItems.Count(child => child.OwnerMenuItemID == item.MenuItemID); // No child create BarButtonItem, have children create Category if (count == 0) { newBarItem = new BarButtonItem { Tag = item }; dicMenuItems.Add(item.MenuItemID, newBarItem); newBarItem.Name = string.Format(CONSTANTS.BAR_BUTTON_ITEM_FORMAT, item.MenuItemName); } else { newBarItem = new BarSubItem { Name = string.Format(CONSTANTS.BAR_SUB_ITEM_FORMAT, item.MenuItemName) }; dicMenuItems.Add(item.MenuItemID, newBarItem); var category = new BarManagerCategory { Name = LangUtils.Translate( LangType.MENU_CAPTION, item.MenuItemName, item.MenuItemName) }; colMenuCategories.Add(item.MenuItemID, category); mainBar.Categories.Add(category); } newBarItem.Tag = item; //Make tag newBarItem.Caption = LangUtils.Translate(LangType.MENU_CAPTION, item.MenuItemName); // Apply caption newBarItem.Glyph = LangUtils.Get16x16Image(LangType.MENU_ICON, item.MenuItemName); newBarItem.ItemShortcut = LangUtils.GetShortcut(LangType.MENU_HOTKEY, item.MenuItemName); mainBar.Items.Add(newBarItem); } foreach (MenuItemInfo item in colMenuItems) { if (!string.IsNullOrEmpty(item.OwnerMenuItemID)) { dicMenuItems[item.MenuItemID].Category = colMenuCategories[item.OwnerMenuItemID]; ((BarSubItem)dicMenuItems[item.OwnerMenuItemID]).LinksPersistInfo.Add( new LinkPersistInfo(dicMenuItems[item.MenuItemID], item.BeginGroup == CODES.DEFMENU.BEGINGROUP.YES)); } } mainBar.Items.Add(txtModuleID); }
void IMain.InitializeMenu() { var dicButtonItems = new Dictionary <string, object>(); List <RibbonItemInfo> colRibbonItemsInfo; using (var ctrlSA = new SAController()) { ctrlSA.ListRibbonItems(out colRibbonItemsInfo); } ribbon.Pages.Clear(); foreach (var item in colRibbonItemsInfo) { if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.RIBBON_PAGE) { var ribbonPage = new RibbonPage { Name = item.RibbonName, Text = LangUtils.Translate(LangType.MENU_CAPTION, item.RibbonName), Tag = item, Visible = false }; ribbon.Pages.Add(ribbonPage); dicButtonItems.Add(item.RibbonID, ribbonPage); } else if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.RIBBON_GROUP) { var ribbonPageGroup = new RibbonPageGroup { Name = item.RibbonName, Text = LangUtils.Translate(LangType.MENU_CAPTION, item.RibbonName), AllowTextClipping = false, ShowCaptionButton = false, Tag = item }; dicButtonItems.Add(item.RibbonID, ribbonPageGroup); } else if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON48 || item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON16 || item.RibbonType == CODES.DEFRIBBON.RIBTYPE.SUB_BUTTON16 ) { var barItem = new BarButtonItem { Name = item.RibbonName, Caption = LangUtils.Translate(LangType.MENU_CAPTION, item.RibbonName), ItemShortcut = LangUtils.GetShortcut(LangType.MENU_HOTKEY, item.RibbonName), Tag = item }; //barItem.Appearance.Font = new Font("Tahoma", 10, FontStyle.Regular); if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON48) { barItem.LargeGlyph = LangUtils.Get48x48Image(LangType.MENU_ICON, item.RibbonName); } if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON16) { barItem.Glyph = LangUtils.Get16x16Image(LangType.MENU_ICON, item.RibbonName); } if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.SUB_BUTTON16) { barItem.Glyph = LangUtils.Get16x16Image(LangType.MENU_ICON, item.RibbonName); } ribbon.Items.Add(barItem); dicButtonItems.Add(item.RibbonID, barItem); } else if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON32) { var subMenu = new BarSubItem { Name = item.RibbonName, Caption = LangUtils.Translate(LangType.MENU_CAPTION, item.RibbonName), ItemShortcut = LangUtils.GetShortcut(LangType.MENU_HOTKEY, item.RibbonName), Tag = item }; //subMenu.Glyph = LangUtils.Get32x32Image(LangType.MENU_ICON, item.RibbonName); subMenu.LargeGlyph = LangUtils.Get48x48Image(LangType.MENU_ICON, item.RibbonName); ribbon.Items.Add(subMenu); dicButtonItems.Add(item.RibbonID, subMenu); } } foreach (var item in colRibbonItemsInfo) { if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.RIBBON_PAGE) { var child = dicButtonItems[item.RibbonID] as RibbonPage; if (child != null) { ribbon.Pages.Add(child); } } if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.RIBBON_GROUP) { var child = dicButtonItems[item.RibbonID] as RibbonPageGroup; var parent = dicButtonItems[item.RibbonOwnerID] as RibbonPage; if (parent != null && child != null) { parent.Groups.Add(child); } } if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON16 || item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON48) { var child = dicButtonItems[item.RibbonID] as BarButtonItem; var parent = dicButtonItems[item.RibbonOwnerID] as RibbonPageGroup; //child.Appearance.Font = new Font("Tahoma", 10, FontStyle.Regular); if (parent != null && child != null) { parent.ItemLinks.Add(child, item.BeginGroup == CODES.DEFRIBBON.BEGINGROUP.YES); } } if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.BUTTON32) { var child = dicButtonItems[item.RibbonID] as BarSubItem; //child.Appearance.Font = new Font("Tahoma", 10, FontStyle.Regular); var parent = dicButtonItems[item.RibbonOwnerID] as RibbonPageGroup; if (parent != null && child != null) { parent.ItemLinks.Add(child, item.BeginGroup == CODES.DEFRIBBON.BEGINGROUP.YES); } } if (item.RibbonType == CODES.DEFRIBBON.RIBTYPE.SUB_BUTTON16) { var child = dicButtonItems[item.RibbonID] as BarButtonItem; //child.Appearance.Font = new Font("Tahoma", 10, FontStyle.Regular); var parent = dicButtonItems[item.RibbonOwnerID] as BarSubItem; if (parent != null && child != null) { parent.ItemLinks.Add(child, item.BeginGroup == CODES.DEFRIBBON.BEGINGROUP.YES); } } } }