/// <summary> /// Setup constructor /// </summary> /// <param name="commandHost">Command host. Used to execute commands from items in this group and sub groups</param> /// <param name="item">Tool strip item that this group is bound to</param> /// <param name="groupInfo">Group information</param> public MenuGroup( ICommandHost commandHost, ToolStripMenuItem item, MenuGroupInfo groupInfo ) { Arguments.CheckNotNull( commandHost, "commandHost" ); Arguments.CheckNotNull( item, "item" ); Arguments.CheckNotNull( groupInfo, "groupInfo" ); m_CommandHost = commandHost; m_Ordinal = groupInfo.Ordinal; m_Item = item; item.Tag = this; item.Text = groupInfo.Text; item.Name = groupInfo.Name; }
/// <summary> /// Finds or creates a root menu group /// </summary> public IMenuGroup this[MenuGroupInfo info] { get { ToolStripItem item = MainMenu.Items[ info.Name ]; if ( item != null ) { return ( IMenuGroup )item.Tag; } item = MainMenu.Items.Add( info.Text ); return new MenuGroup( m_CommandHost, ( ToolStripMenuItem )item, info ); } }
/// <summary> /// Finds or adds a new menu group matching the specified information /// </summary> public IMenuGroup AddGroup( MenuGroupInfo groupInfo ) { ToolStripItem item = m_Item.DropDownItems[ groupInfo.Name ]; if ( item != null ) { return ( IMenuGroup )item.Tag; } ToolStripMenuItem groupItem = new ToolStripMenuItem( ); InsertMenuItem( groupInfo.Ordinal, groupItem ); return new MenuGroup( m_CommandHost, groupItem, groupInfo ); }
/// <summary> /// Finds or adds a new menu group matching the specified information /// </summary> public IMenuGroup this[MenuGroupInfo groupInfo] { get { return AddGroup( groupInfo ); } }