Ejemplo n.º 1
0
        public SystemMenuItem(string text, Action onClick, SystemMenuItemFlags flags, Image image)
        {
            if (!flags.HasFlag(SystemMenuItemFlags.Bitmap))
            {
                flags = flags | SystemMenuItemFlags.Bitmap;
            }

            Text          = text;
            OnClick       = onClick;
            MenuItemFlags = flags;
            Image         = new Bitmap(image);
        }
Ejemplo n.º 2
0
        public static int CopyToolStripToMenu(ToolStrip menuStrip, SystemMenu systemMenu, int currentId = 0)
        {
            foreach (ToolStripItem item in menuStrip.Items)
            {
                if (item is ToolStripMenuItem menuItem)
                {
                    SystemMenuItemFlags flags = SystemMenuItemFlags.Default;
                    if (menuItem.Checked)
                    {
                        flags |= SystemMenuItemFlags.Checked;
                    }
                    if (!menuItem.Enabled)
                    {
                        flags |= SystemMenuItemFlags.Disabled;
                    }
                    if (menuItem.HasDropDownItems)
                    {
                        flags |= SystemMenuItemFlags.Popup;
                    }

                    SystemMenuItem systemMenuItem;
                    if (menuItem.Image != null)
                    {
                        flags         |= SystemMenuItemFlags.Bitmap;
                        systemMenuItem = new SystemMenuItem(menuItem.Text, menuItem.PerformClick, flags, menuItem.Image);
                    }
                    else
                    {
                        systemMenuItem = new SystemMenuItem(menuItem.Text, menuItem.PerformClick, flags);
                    }
                    systemMenuItem.ID = currentId;

                    if (menuItem.HasDropDownItems)
                    {
                        SystemMenu subMenu = new SystemMenu(true);
                        currentId = CopyToolStripToMenu(menuItem.DropDown, subMenu, currentId);
                        systemMenuItem.SubMenu = subMenu;
                        systemMenuItem.ID      = subMenu.MenuHandle.ToInt32();
                    }
                    else
                    {
                        currentId++;
                    }

                    systemMenu.AddItem(systemMenuItem);
                }
                else if (item is ToolStripSeparator seperator)
                {
                    systemMenu.AddItem(new SystemMenuItem("", new Action(() => { }), SystemMenuItemFlags.IsSeperator));
                }
            }
            return(currentId);
        }
Ejemplo n.º 3
0
 static extern bool AppendMenu(IntPtr hMenu, SystemMenuItemFlags uFlags, int uIDNewItem, IntPtr lpNewItem);
Ejemplo n.º 4
0
 public SystemMenuItem(string text, Action onClick, SystemMenuItemFlags flags)
 {
     Text          = text;
     OnClick       = onClick;
     MenuItemFlags = flags;
 }