Exemplo n.º 1
0
        private void OnAddMenu(IContextMenuCallback piCallback, ArrayList menuItems, InsertionPointId insertionPointId)
        {
            if (menuItems != null)
            {
                foreach (ContextMenuItem item in menuItems)
                {
                    if (item.Visible)
                    {
                        ContextSubMenuItem subMenuItem = item as ContextSubMenuItem;
                        if (subMenuItem == null)
                        {
                            AddItem(piCallback, item, insertionPointId);
                        }
                        else
                        {
                            AddItem(piCallback, subMenuItem, insertionPointId);

                            // Iterate through each sub menu.

                            foreach (ContextMenuItem menuItem in subMenuItem.MenuItems)
                            {
                                if (menuItem.Visible)
                                {
                                    AddItem(piCallback, subMenuItem, menuItem);
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private void AddItem(IContextMenuCallback piCallback, ContextSubMenuItem subMenuItem, InsertionPointId insertionPointId)
        {
            MmcContextMenuItem item = new MmcContextMenuItem();

            item.Name             = subMenuItem.Name;
            item.StatusBarText    = subMenuItem.StatusText;
            item.CommandId        = subMenuItem.CommandId;
            item.InsertionPointId = (uint)insertionPointId;
            item.Flags            = (int)ContextMenuFlags.Popup;
            item.SpecialFlags     = 0;
            piCallback.AddItem(ref item);
        }
Exemplo n.º 3
0
        private void AddItem(IContextMenuCallback piCallback, ContextMenuItem menuItem, InsertionPointId insertionPointId)
        {
            MmcContextMenuItem newItem = new MmcContextMenuItem();

            newItem.Name             = menuItem.Name;
            newItem.StatusBarText    = menuItem.StatusText;
            newItem.CommandId        = menuItem.CommandId;
            newItem.InsertionPointId = (uint)insertionPointId;

            if (menuItem.IsSeparator)
            {
                newItem.Flags = (int)ContextMenuFlags.Separator;
            }
            else
            {
                newItem.Flags = (menuItem.IsChecked ? (int)ContextMenuFlags.Checked : (int)ContextMenuFlags.Unchecked)
                                | (menuItem.IsEnabled ? (int)ContextMenuFlags.Enabled : (int)(ContextMenuFlags.Grayed | ContextMenuFlags.Disabled));
            }

            newItem.SpecialFlags = menuItem.IsDefault ? (int)ContextMenuFlags.SpecialDefaultItem : 0;
            piCallback.AddItem(ref newItem);
        }