internal int GetChildFragmentIndex(ToolStripItem.ToolStripItemAccessibleObject child) { if (_owningToolStrip is null || _owningToolStrip.Items is null) { return(-1); } if (child.Owner == _owningToolStrip.Grip) { return(0); } ToolStripItemCollection items; ToolStripItemPlacement placement = child.Owner.Placement; if (_owningToolStrip is ToolStripOverflow) { // Overflow items in ToolStripOverflow host are in DisplayedItems collection. items = _owningToolStrip.DisplayedItems; } else { if (_owningToolStrip.CanOverflow && _owningToolStrip.OverflowButton.Visible && child.Owner == _owningToolStrip.OverflowButton) { return(GetChildFragmentCount() - 1); } // Items can be either in DisplayedItems or in OverflowItems (if overflow) items = placement == ToolStripItemPlacement.Main || child.Owner is ToolStripScrollButton ? _owningToolStrip.DisplayedItems : _owningToolStrip.OverflowItems; } // First we walk through the head aligned items. for (int index = 0; index < items.Count; index++) { ToolStripItem item = items[index]; if (item.Available && item.Alignment == ToolStripItemAlignment.Left && child.Owner == items[index]) { return(index); } } // If we didn't find it, then we walk through the tail aligned items. for (int index = 0; index < items.Count; index++) { ToolStripItem item = items[index]; if (item.Available && item.Alignment == ToolStripItemAlignment.Right && child.Owner == items[index]) { return(index); } } return(-1); }
internal int GetChildIndex(ToolStripItem.ToolStripItemAccessibleObject child) { if ((_owningToolStrip is null) || (_owningToolStrip.Items is null)) { return(-1); } int index = 0; if (_owningToolStrip.Grip.Visible) { if (child.Owner == _owningToolStrip.Grip) { return(0); } index = 1; } if (_owningToolStrip.CanOverflow && _owningToolStrip.OverflowButton.Visible && child.Owner == _owningToolStrip.OverflowButton) { return(_owningToolStrip.Items.Count + index); } // First we walk through the head aligned items. for (int i = 0; i < _owningToolStrip.Items.Count; ++i) { if (_owningToolStrip.Items[i].Available && _owningToolStrip.Items[i].Alignment == ToolStripItemAlignment.Left) { if (child.Owner == _owningToolStrip.Items[i]) { return(index); } index++; } } // If we didn't find it, then we walk through the tail aligned items. for (int i = 0; i < _owningToolStrip.Items.Count; ++i) { if (_owningToolStrip.Items[i].Available && _owningToolStrip.Items[i].Alignment == ToolStripItemAlignment.Right) { if (child.Owner == _owningToolStrip.Items[i]) { return(index); } index++; } } return(-1); }
internal int GetChildFragmentIndex(ToolStripItem.ToolStripItemAccessibleObject child) { if ((owner == null) || (owner.DropDownItems == null)) { return(-1); } for (int i = 0; i < owner.DropDownItems.Count; i++) { if (owner.DropDownItems[i].Available && child.Owner == owner.DropDownItems[i]) { return(i); } } return(-1); }