Exemplo n.º 1
0
        private void Build(CefMenuModel model, ToolStripItemCollection menu)
        {
            CefColor color = default;
            int      count = model.Count;

            for (int i = 0; i < count; i++)
            {
                ToolStripMenuItem menuItem;
                switch (model.GetTypeAt(i))
                {
                case CefMenuItemType.Separator:
                    menu.Add(new ToolStripSeparator());
                    continue;

                case CefMenuItemType.Check:
                    menuItem = new ToolStripMenuItem(model.GetLabelAt(i));
                    menuItem.CheckOnClick = true;
                    menuItem.Checked      = model.IsCheckedAt(i);
                    break;

                case CefMenuItemType.Radio:
                    menuItem         = new ToolStripRadioMenuItem(model.GetLabelAt(i));
                    menuItem.Checked = model.IsCheckedAt(i);
                    break;

                case CefMenuItemType.Command:
                    menuItem = new ToolStripMenuItem(model.GetLabelAt(i));
                    break;

                case CefMenuItemType.Submenu:
                    menuItem = new ToolStripMenuItem(model.GetLabelAt(i));
                    if (model.IsEnabledAt(i))
                    {
                        menuItem.DropDownItemClicked += Menu_ItemClicked;
                        Build(model.GetSubMenuAt(i), menuItem.DropDownItems);
                    }
                    break;

                default:
                    continue;
                }
                menuItem.Enabled   = model.IsEnabledAt(i);
                menuItem.Tag       = model.GetCommandIdAt(i);
                menuItem.ForeColor = model.GetColorAt(i, CefMenuColorType.Text, ref color) ? Color.FromArgb(color.ToArgb()) : SystemColors.ControlText;
                menu.Add(menuItem);
            }
        }