CloneMenu() public method

public CloneMenu ( ) : MenuItem
return MenuItem
Ejemplo n.º 1
1
		public void CloneWindowMenuTest ()
		{
				MenuItem menuitem1 = new MenuItem ();
				menuitem1.MdiList = true;
				MenuItem menuitem2 = menuitem1.CloneMenu ();
				Assert.IsTrue (menuitem2.MdiList, "#1");
		}
Ejemplo n.º 2
0
        // This really clones the item
        public virtual MenuItem MergeMenu()
        {
            MenuItem item = new MenuItem();

            item.CloneMenu(this);
            return(item);
        }
Ejemplo n.º 3
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Create a copy of the menu item and all its sub-menu items by cloning it and
		/// initializing the menu extender properties.
		/// </summary>
		/// <param name="src"></param>
		/// <param name="fRemoveSrc"><c>true</c> to remove old menu item from menu extender
		/// (as when merging, as opposed to cloning, menus)</param>
		/// <returns></returns>
		/// ------------------------------------------------------------------------------------
		internal MenuItem CopyMenu(MenuItem src, bool fRemoveSrc)
		{
			MenuItem menuItem = src.CloneMenu();
			// we want to deal with the sub-menu items separately, so get rid of those that
			// CloneMenu created. Unfortunately there's no way to clone only the menu item but
			// not the sub-menu items.
			menuItem.MenuItems.Clear();
			m_menuExtender.InitializeMenuItem(src, menuItem, fRemoveSrc);
			MergeMenu(menuItem, src);
			return menuItem;
		}
Ejemplo n.º 4
0
        private void MergeMenu(int defaultID)
        {
            if (subItem == null)
            {
                return;
            }
            int    id        = defaultID;
            string text      = null;
            bool   setParent = true;

            if (selfItem != null && menu.MenuItems.Contains(selfItem))
            {
                setParent = selfItem.DefaultItem || defaultID > -1;
                if (defaultID == -1)
                {
                    id = selfItem.MenuItems.Count;
                    while (id-- > 0)
                    {
                        if (selfItem.MenuItems[id].DefaultItem)
                        {
                            break;
                        }
                    }
                }
                text = selfItem.Text;
                menu.MenuItems.Remove(selfItem);
            }
            selfItem = subItem.CloneMenu();
            if (text != null)
            {
                selfItem.Text = text;
            }
            selfItem.Enabled = selfItem.MenuItems.Count > 0;
            menu.MenuItems.Add(selfItem);
            for (int i = 0; i < selfItem.MenuItems.Count; i++)
            {
                selfItem.MenuItems[i].Click += new EventHandler(OnDropDownClick);
            }
            if (itemTrack && id > -1)
            {
                SetDefaultItem(selfItem.MenuItems[id], setParent);
            }
        }
 internal void ItemsChanged(int change, MenuItem item)
 {
     if (((change == 4) && (this.data != null)) && ((this.data.baseItem != null) && this.data.baseItem.MenuItems.Contains(item)))
     {
         if ((this.menu != null) && this.menu.created)
         {
             this.UpdateMenuItem(true);
             base.CreateMenuItems();
         }
         else if (this.data != null)
         {
             for (MenuItem item2 = this.data.firstItem; item2 != null; item2 = item2.nextLinkedItem)
             {
                 if (item2.created)
                 {
                     MenuItem item3 = item.CloneMenu();
                     item.data.AddItem(item3);
                     item2.MenuItems.Add(item3);
                     return;
                 }
             }
         }
     }
 }
Ejemplo n.º 6
0
 private void menuItem6_Click(object sender, System.EventArgs e)
 {
     mainMenu1.MenuItems.Clear();
     mainMenu1.MenuItems.Add(menuItem4.CloneMenu());
 }
 internal void ItemsChanged(int change, MenuItem item)
 {
     if (((change == 4) && (this.data != null)) && ((this.data.baseItem != null) && this.data.baseItem.MenuItems.Contains(item)))
     {
         if ((this.menu != null) && this.menu.created)
         {
             this.UpdateMenuItem(true);
             base.CreateMenuItems();
         }
         else if (this.data != null)
         {
             for (MenuItem item2 = this.data.firstItem; item2 != null; item2 = item2.nextLinkedItem)
             {
                 if (item2.created)
                 {
                     MenuItem item3 = item.CloneMenu();
                     item.data.AddItem(item3);
                     item2.MenuItems.Add(item3);
                     return;
                 }
             }
         }
     }
 }
 public virtual MenuItem CloneMenu()
 {
     MenuItem item = new MenuItem();
     item.CloneMenu(this);
     return item;
 }
Ejemplo n.º 9
0
Archivo: Menu.cs Proyecto: nsivov/mono
        public virtual void MergeMenu(Menu menuSrc)
        {
            if (menuSrc == this)
            {
                throw new ArgumentException("The menu cannot be merged with itself");
            }

            if (menuSrc == null)
            {
                return;
            }

            for (int i = 0; i < menuSrc.MenuItems.Count; i++)
            {
                MenuItem sourceitem = menuSrc.MenuItems[i];

                switch (sourceitem.MergeType)
                {
                case MenuMerge.Remove:                          // Item not included
                    break;

                case MenuMerge.Add:
                {
                    int pos = FindMergePosition(sourceitem.MergeOrder);
                    MenuItems.Add(pos, sourceitem.CloneMenu());
                    break;
                }

                case MenuMerge.Replace:
                case MenuMerge.MergeItems:
                {
                    for (int pos = FindMergePosition(sourceitem.MergeOrder - 1); pos <= MenuItems.Count; pos++)
                    {
                        if ((pos >= MenuItems.Count) || (MenuItems[pos].MergeOrder != sourceitem.MergeOrder))
                        {
                            MenuItems.Add(pos, sourceitem.CloneMenu());
                            break;
                        }

                        MenuItem mergeitem = MenuItems[pos];

                        if (mergeitem.MergeType != MenuMerge.Add)
                        {
                            if ((sourceitem.MergeType == MenuMerge.MergeItems) && (mergeitem.MergeType == MenuMerge.MergeItems))
                            {
                                mergeitem.MergeMenu(sourceitem);
                            }
                            else
                            {
                                MenuItems.Remove(sourceitem);
                                MenuItems.Add(pos, sourceitem.CloneMenu());
                            }
                            break;
                        }
                    }

                    break;
                }

                default:
                    break;
                }
            }
        }
Ejemplo n.º 10
0
		public void CloneEventTest ()
		{
			MenuItem mi1, mi2;

			event_reached = false;
			mi1 = new MenuItem ();
			mi1.Click += new EventHandler (event_test);
			mi2 = mi1.CloneMenu ();
			mi2.PerformClick ();
			Assert.IsTrue (event_reached);

			event_reached = false;
			mi1 = new MenuItem ();
			mi1.Select += new EventHandler (event_test);
			mi2 = mi1.CloneMenu ();
			mi2.PerformSelect ();
			Assert.IsTrue (event_reached);

#if no
			// these three can't be tested because of the broken MenuItem.CloneMenu

			event_reached = false;
			mi1 = new MenuItem ();
			mi1.Popup += new EventHandler (test_event);
			mi2 = mi1.CloneMenu ();
			mi2.PerformPopup ();
			Assert.IsTrue (event_reached);

			event_reached = false;
			mi1 = new MenuItem ();
			mi1.DrawItem += new DrawItemEventHandler (test_drawevent);
			mi2 = mi1.CloneMenu ();
			mi2.PerformDrawItem (new DrawItemEventArgs (null, null, Rectangle.Empty, 1, DrawItemState.None));
			Assert.IsTrue (event_reached);

			event_reached = false;
			mi1 = new MenuItem ();
			mi1.MeasureItem += new MeasureItemEventHandler (test_measureevent);
			mi2 = mi1.CloneMenu ();
			mi2.PerformMeasureItem (new MeasureItemEventArgs (null, 1));
			Assert.IsTrue (event_reached);
#endif
		}
Ejemplo n.º 11
0
		public void CloneTest ()
		{
			MenuItem mi1, mi2;
			
			mi1 = new MenuItem();
			mi1.BarBreak = true;
			mi1.Break = true;
			mi1.Checked = true;
			mi1.DefaultItem = true;
			mi1.Enabled = true;
			mi1.MergeOrder = 1;
			mi1.MergeType = MenuMerge.Replace;
			mi1.OwnerDraw = true;
			mi1.RadioCheck = true;
			mi1.Shortcut = Shortcut.Alt0;
			mi1.ShowShortcut = true;
			mi1.Text = "text1";
			mi1.Visible = true;
			mi1.Name = "name1";
			mi1.Tag = "tag1";
			
			mi2 = mi1.CloneMenu();
			
			Assert.AreEqual(mi1.BarBreak, mi2.BarBreak, "BarBreak #1");
			Assert.AreEqual(mi1.Break, mi2.Break, "Break #1");
			Assert.AreEqual(mi1.Checked, mi2.Checked, "Checked #1");
			Assert.AreEqual(mi1.DefaultItem, mi2.DefaultItem, "DefaultItem #1");
			Assert.AreEqual(mi1.Enabled, mi2.Enabled, "Enabled #1");
			Assert.AreEqual(mi1.MergeOrder, mi2.MergeOrder, "MergeOrder #1");
			Assert.AreEqual(mi1.MergeType, mi2.MergeType, "MergeType #1");
			Assert.AreEqual(mi1.OwnerDraw, mi2.OwnerDraw, "OwnerDraw #1");
			Assert.AreEqual(mi1.RadioCheck, mi2.RadioCheck, "RadioCheck #1");
			Assert.AreEqual(mi1.Shortcut, mi2.Shortcut, "Shortcut #1");
			Assert.AreEqual(mi1.ShowShortcut, mi2.ShowShortcut, "ShowShortcut #1");
			Assert.AreEqual(mi1.Text, mi2.Text, "Text #1");
			Assert.AreEqual(mi1.Visible, mi2.Visible, "Visible #1");
			
			Assert.AreEqual(mi1.Name, mi2.Name, "Name #1");
			Assert.AreEqual(mi1.Tag, mi2.Tag, "Tag #1");
			
			mi1.BarBreak = false;
			mi1.Break = false;
			mi1.Checked = false;
			mi1.DefaultItem = false;
			mi1.Enabled = false;
			mi1.MergeOrder = 0;
			mi1.MergeType = MenuMerge.Remove;
			mi1.OwnerDraw = false;
			mi1.RadioCheck = false;			
			mi1.Shortcut = Shortcut.Alt1;
			mi1.ShowShortcut = false;
			mi1.Text = "text2";
			mi1.Visible = false;
			
			mi1.Name = "name2";
			mi1.Tag = "tag2";
			
			mi2 = mi1.CloneMenu();
			
			Assert.AreEqual(mi1.BarBreak, mi2.BarBreak, "BarBreak #2");
			Assert.AreEqual(mi1.Break, mi2.Break, "Break #2");
			Assert.AreEqual(mi1.Checked, mi2.Checked, "Checked #2");
			Assert.AreEqual(mi1.DefaultItem, mi2.DefaultItem, "DefaultItem #2");
			Assert.AreEqual(mi1.Enabled, mi2.Enabled, "Enabled #2");
			Assert.AreEqual(mi1.MergeOrder, mi2.MergeOrder, "MergeOrder #2");
			Assert.AreEqual(mi1.MergeType, mi2.MergeType, "MergeType #2");
			Assert.AreEqual(mi1.OwnerDraw, mi2.OwnerDraw, "OwnerDraw #2");
			Assert.AreEqual(mi1.RadioCheck, mi2.RadioCheck, "RadioCheck #2");
			Assert.AreEqual(mi1.Shortcut, mi2.Shortcut, "Shortcut #2");
			Assert.AreEqual(mi1.ShowShortcut, mi2.ShowShortcut, "ShowShortcut #2");
			Assert.AreEqual(mi1.Text, mi2.Text, "Text #2");
			Assert.AreEqual(mi1.Visible, mi2.Visible, "Visible #2");
			Assert.AreEqual(mi1.Name, mi2.Name, "Name #2");
			Assert.AreEqual(mi1.Tag, mi2.Tag, "Tag #2");
		}
Ejemplo n.º 12
0
 /// <include file='doc\MenuItem.uex' path='docs/doc[@for="MenuItem.CloneMenu"]/*' />
 /// <devdoc>
 ///    <para>
 ///       Creates and returns an identical copy of this menu item.
 ///    </para>
 /// </devdoc>
 public virtual MenuItem CloneMenu() {
     MenuItem newItem = new MenuItem();
     newItem.CloneMenu(this);
     return newItem;
 }
Ejemplo n.º 13
0
 internal void ItemsChanged(int change, MenuItem item) {
     if (change == CHANGE_ITEMADDED &&
         this.data != null &&
         this.data.baseItem != null && 
         this.data.baseItem.MenuItems.Contains(item)) {
         if (menu != null && menu.created) {
             UpdateMenuItem(true);
             CreateMenuItems();
         } else if (this.data != null) {
             MenuItem currentMenuItem = this.data.firstItem;
             while (currentMenuItem != null) {
                 if (currentMenuItem.created) {
                     MenuItem newItem = item.CloneMenu();
                     item.data.AddItem(newItem);
                     currentMenuItem.MenuItems.Add(newItem);
                     // newItem.menu = currentMenuItem;
                     // newItem.CreateMenuItem();
                     break;
                 }
                 currentMenuItem = currentMenuItem.nextLinkedItem;
             }
         }
     }
 }
Ejemplo n.º 14
0
        private void InitializeComponent( )
        {
            menuItemFile = new MenuItem( );
            menuItemNew = new MenuItem( );
            menuItemLoad = new MenuItem( );
            menuItemSave = new MenuItem( );
            menuItemSaveAs = new MenuItem( );
            menuItemDash1 = new MenuItem( );
            menuItemExit = new MenuItem( );

            menuItemResources = new MenuItem( );
            menuItemAddString = new MenuItem( );
            menuItemAddFiles = new MenuItem( );
            menuItemAddColor = new MenuItem( );
            menuItemDash2 = new MenuItem( );
            menuItemDelete = new MenuItem( );
            menuItemCopy = new MenuItem( );
            menuItemPaste = new MenuItem( );
            menuItemDash3 = new MenuItem( );
            menuItemRename = new MenuItem( );

            menuItemHelp = new MenuItem( );
            menuItemAbout = new MenuItem( );

            mainMenu = new MainMenu( );

            resourceControl = new ResourceControl( );

            statusBar = new StatusBar( );

            SuspendLayout( );

            // menuItemFile
            menuItemFile.Index = 0;
            menuItemFile.MenuItems.AddRange( new MenuItem[] {
                                menuItemNew,
                                menuItemLoad,
                                menuItemSave,
                                menuItemSaveAs,
                                menuItemDash1,
                                menuItemExit} );
            menuItemFile.Text = "&File";

            // menuItemNew
            menuItemNew.Index = 0;
            menuItemNew.Text = "&New";
            menuItemNew.Click += new EventHandler( OnMenuItemNewClick );

            // menuItemLoad
            menuItemLoad.Index = 1;
            menuItemLoad.Text = "L&oad";
            menuItemLoad.Click += new EventHandler( OnMenuItemLoadClick );

            // menuItemSave
            menuItemSave.Index = 2;
            menuItemSave.Text = "&Save";
            menuItemSave.Click += new EventHandler( OnMenuItemSaveClick );

            // menuItemSaveAs
            menuItemSaveAs.Index = 3;
            menuItemSaveAs.Text = "S&ave as";
            menuItemSaveAs.Click += new EventHandler( OnMenuItemSaveAsClick );

            // menuItemDash
            menuItemDash1.Index = 4;
            menuItemDash1.Text = "-";

            // menuItemExit
            menuItemExit.Index = 5;
            menuItemExit.Text = "E&xit";
            menuItemExit.Click += new EventHandler( OnMenuItemExitClick );

            // menuItemResources
            menuItemResources.Index = 1;
            menuItemResources.MenuItems.AddRange( new MenuItem[] {
                                     menuItemAddString,
                                     menuItemAddFiles,
                                     menuItemAddColor,
                                     menuItemDash2,
                                     menuItemDelete,
                                     menuItemCopy,
                                     menuItemPaste,
                                     menuItemDash3,
                                     menuItemRename } );
            menuItemResources.Text = "Resources";

            // menuItemAddString
            menuItemAddString.Index = 0;
            menuItemAddString.Text = "Add S&tring";
            menuItemAddString.Click += new EventHandler( OnMenuItemAddStringClick );

            // menuItemAddFiles
            menuItemAddFiles.Index = 1;
            menuItemAddFiles.Text = "Add Fi&le(s)";
            menuItemAddFiles.Click += new EventHandler( OnMenuItemAddFilesClick );

            // menuItemAddColor
            menuItemAddColor.Index = 2;
            menuItemAddColor.Text = "Add Colo&r";
            menuItemAddColor.Click += new EventHandler( OnMenuItemAddColorClick );

            // menuItemDash2
            menuItemDash2.Index = 3;
            menuItemDash2.Text = "-";

            // menuItemDelete
            menuItemDelete.Index = 4;
            menuItemDelete.Text = "&Delete";
            menuItemDelete.Click += new EventHandler( OnMenuItemDeleteClick );

            // menuItemCopy
            menuItemCopy.Index = 5;
            menuItemCopy.Text = "&Copy";
            menuItemCopy.Click += new EventHandler( OnMenuItemCopyClick );

            // menuItemPaste
            menuItemPaste.Index = 6;
            menuItemPaste.Text = "Paste";
            menuItemPaste.Click += new EventHandler( OnMenuItemPasteClick );

            menuItemDash3.Index = 7;
            menuItemDash3.Text = "-";

            menuItemRename.Index = 8;
            menuItemRename.Text = "Rename";
            menuItemRename.Click += new EventHandler( OnMenuItemRenameClick );

            // menuItemHelp
            menuItemHelp.Index = 2;
            menuItemHelp.MenuItems.AddRange( new MenuItem[] {
                                menuItemAbout} );
            menuItemHelp.Text = "&Help";

            // menuItemAbout
            menuItemAbout.Index = 0;
            menuItemAbout.Text = "A&bout";
            menuItemAbout.Click += new EventHandler( OnMenuItemAboutClick );

            // mainMenu
            mainMenu.MenuItems.AddRange( new MenuItem[] {
                                menuItemFile,
                                menuItemResources,
                                menuItemHelp} );

            // resourceControl
            resourceControl.Dock = DockStyle.Fill;
            resourceControl.InternalContextMenu.MenuItems.AddRange( new MenuItem[] {
                                               menuItemAddString.CloneMenu( ),
                                               menuItemAddFiles.CloneMenu( ),
                                               menuItemAddColor.CloneMenu( ),
                                               menuItemDash2.CloneMenu( ),
                                               menuItemDelete.CloneMenu( ),
                                               menuItemCopy.CloneMenu( ),
                                               menuItemPaste.CloneMenu( ),
                                               menuItemRename.CloneMenu( )
                                           } );

            // statusBar
            StatusBarPanel panel1 = new StatusBarPanel( );
            StatusBarPanel panel2 = new StatusBarPanel( );

            panel1.BorderStyle = StatusBarPanelBorderStyle.Sunken;
            panel1.AutoSize = StatusBarPanelAutoSize.Spring;
            panel2.BorderStyle = StatusBarPanelBorderStyle.Sunken;
            panel2.AutoSize = StatusBarPanelAutoSize.Spring;
            statusBar.ShowPanels = true;
            statusBar.Panels.Add( panel1 );
            statusBar.Panels.Add( panel2 );

            resourceControl.ParentStatusBar = statusBar;

            // MainForm
            //			AutoScaleBaseSize = new Size( 5, 14 );
            ClientSize = new Size( 592, 541 );

            Menu = mainMenu;
            Text = "New Resource.resx";

            ResumeLayout( false );

            Controls.Add( resourceControl );
            Controls.Add( statusBar );
        }
Ejemplo n.º 15
0
        private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ////remove controls
            int x = 0;
            
            try
            {
                foreach (Label control in CurrentConfig.Controls )
                {
                   CurrentConfig.Controls.Remove(control);
                   control.Dispose();
                    x++;
                }
                CurrentConfig.Dispose();
            }
            catch
            {
                ///first run, ignore
            }
        
            ////show current configuration
            CurrentConfig = new GroupBox();
            CurrentConfig.Text = "Current Configuration";
            CurrentConfig.Location = new System.Drawing.Point(31, 27);
            CurrentConfig.Size = new System.Drawing.Size(452, 114);
            CurrentConfig.Name="CurrentConfig";

            settings.Controls.Add(CurrentConfig);

            Label[] currentconfig=null;
            ContextMenu[] ConfigMenu = null;
           
            Array.Resize(ref ConfigMenu, Configuration.Length);
            Array.Resize(ref currentconfig, Configuration.Length);
              
            MenuItem Edit = new MenuItem();
            MenuItem Remove = new MenuItem();
            MenuItem Current = new MenuItem();
                      
            Edit.Text="Edit Item";
            Edit.Click+=new EventHandler(Edit_Click);

            Remove.Text="Remove";
            Remove.Click+=new EventHandler(Remove_Click);

            x = 0;
            int ylocation = 0;
            try
            {
                foreach (Button config in Menu)
                {
                    ///// create grid                    ///
                   
                    currentconfig[x] = new Label();
                    if (ylocation < CurrentConfig.Size.Height)
                    {
                        if (x > 0)
                        {
                            currentconfig[x].Location = new System.Drawing.Point(currentconfig[x - 1].Location.X, currentconfig[x - 1].Location.Y + 33);
                            ylocation = currentconfig[x].Location.Y + 30+ currentconfig[x].Size.Height ;
                        }
                        else
                        {
                            currentconfig[x].Location = new System.Drawing.Point(15, 15);
                        }
                    }
                    else
                    {
                        currentconfig[x].Location = new System.Drawing.Point(currentconfig[x - 1].Location.X+50,15);
                        ylocation = currentconfig[x].Location.Y + 30;
                    }
                    
                    ///// make new menu for each config

                    ConfigMenu[x] = new ContextMenu();
                    Current.Text = Menu[x].Name;

                    ConfigMenu[x].MenuItems.Add(0, Current.CloneMenu());
                    ConfigMenu[x].MenuItems.Add("-");
                    ConfigMenu[x].MenuItems.Add(2, Edit.CloneMenu());
                    ConfigMenu[x].MenuItems.Add(3, Remove.CloneMenu());

                    ConfigMenu[x].MenuItems[2].Name = "Edit" + x;
                    ConfigMenu[x].MenuItems[3].Name = "Remove" + x;

                    ///add images to menus
                    AddImageToMenuItem(ConfigMenu[x].MenuItems[3], SystemIcons.Error.Handle, true);
                    AddImageToMenuItem(ConfigMenu[x].MenuItems[2], SystemIcons.Asterisk.Handle, true);
                    AddImageToMenuItem(ConfigMenu[x].MenuItems[0], Icon.ExtractAssociatedIcon(Configuration[x]).Handle, false);

                    //// add images to configs

                    currentconfig[x].Image = new Bitmap(Icon.ExtractAssociatedIcon(Configuration[x]).ToBitmap());

                    currentconfig[x].BorderStyle = BorderStyle.Fixed3D;
                    currentconfig[x].Size = currentconfig[x].Image.Size;
                    currentconfig[x].Name = x.ToString();

                    currentconfig[x].ContextMenu = ConfigMenu[x];
                    currentconfig[x].MouseHover += new EventHandler(currentconfig_MouseHover);                

                    CurrentConfig.Controls.Add(currentconfig[x]);

                    x = x + 1;
                }

                settings.Visible = true;
                settings.BringToFront();

            }
            catch
            {
            }
            
            //// reload configuration
            _main.Visible = false;
        }