Esempio n. 1
0
        void IMenuItemVisitor <MenuGeneratorContext> .Visit(
            IMenuCommand menuCommand, MenuGeneratorContext context)
        {
            var toolStripItem = CreateStripButton(context.MenuType);

            InitStripItem(toolStripItem, menuCommand, context.MenuType);

            if (context.MenuType == TargetMenuType.ContextMenu &&
                _defaultCommandService != null &&
                _defaultCommandService.CommandName != null &&
                _defaultCommandService.CommandName.Equals(
                    menuCommand.CommandName, StringComparison.OrdinalIgnoreCase) &&
                _defaultCommandService.Parameters.DictionaryEquals(
                    menuCommand.Parameters, StringComparer.OrdinalIgnoreCase.Equals, null))
            {
                toolStripItem.Font = _defaultMenuCommandFont;
            }

            UpdateMenuCommandStatus(toolStripItem);

            RegisterCommandMenuItem(toolStripItem, menuCommand.CommandName);

            toolStripItem.Click += MenuCommandClick;

            context.Result.Add(toolStripItem);
        }
Esempio n. 2
0
        void IMenuItemVisitor <MenuGeneratorContext> .Visit(
            IMenuCheckCommand menuCheckCommand, MenuGeneratorContext context)
        {
            var menuCommandItem = CreateStripButton(context.MenuType);

            InitStripItem(menuCommandItem, menuCheckCommand, context.MenuType);

            RegisterCommandMenuItem(menuCommandItem, menuCheckCommand.CheckCommandName);
            RegisterCommandMenuItem(menuCommandItem, menuCheckCommand.UncheckCommandName);
            RegisterCheckMenuItem(menuCommandItem, menuCheckCommand.CheckStateName);

            UpdateMenuCheckComand(menuCommandItem);

            menuCommandItem.Click += MenuCommandClick;

            context.Result.Add(menuCommandItem);
        }
Esempio n. 3
0
        void IMenuItemVisitor <MenuGeneratorContext> .Visit(
            IMenuSplitButton menuSplitButton, MenuGeneratorContext context)
        {
            var splitButton = new ToolStripSplitButton();

            InitStripItem(splitButton, menuSplitButton, context.MenuType);

            splitButton.DropDownItems.AddRange(
                CreateStripItems(menuSplitButton.Groups, TargetMenuType.Menu));

            UpdateMenuCommandStatus(splitButton);

            RegisterCommandMenuItem(splitButton, menuSplitButton.CommandName);

            splitButton.ButtonClick += MenuCommandClick;

            context.Result.Add(splitButton);
        }
Esempio n. 4
0
        private ToolStripItem[] CreateStripItems(IEnumerable <IMenuGroup> groups, TargetMenuType menuType)
        {
            var context = new MenuGeneratorContext(menuType);

            foreach (var group in groups)
            {
                if (context.Result.Count > 0)
                {
                    context.Result.Add(new ToolStripSeparator());
                }

                foreach (var item in group.Items)
                {
                    item.AcceptVisitor(this, context);
                }
            }

            return(context.Result.ToArray());
        }
Esempio n. 5
0
        void IMenuItemVisitor <MenuGeneratorContext> .Visit(
            IMenu menu, MenuGeneratorContext context)
        {
            ToolStripItem toolStripItem;

            if (context.MenuType == TargetMenuType.Menu ||
                context.MenuType == TargetMenuType.ContextMenu)
            {
                toolStripItem = new ToolStripMenuItem(
                    menu.Text, null, CreateStripItems(menu.Groups, TargetMenuType.Menu));
            }
            else
            {
                toolStripItem = new ToolStripDropDownButton(
                    menu.Text, null, CreateStripItems(menu.Groups, TargetMenuType.Menu));
            }

            toolStripItem.Tag = menu;

            context.Result.Add(toolStripItem);
        }