示例#1
0
        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);
        }
示例#2
0
        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);
                    }
                }
            }
        }