private OnlineStatusMenuItem NewMenuItem(ExtendedForm frm) { var newitem = new OnlineStatusMenuItem(); newitem.Name = frm.Name; newitem.Font = dropDownControl.Font; newitem.Text = frm.Text; newitem.Image = frm.Icon.ToBitmap(); newitem.TargetForm = frm; if (frm is IOnlineStatus) { newitem.SetOnlineStatusInterface((IOnlineStatus)frm); } newitem.ToolTipText = "Right-Click to close. Middle-Click to minimize."; newitem.MouseUp += ItemClicked; return(newitem); }
/// <summary> /// Removes the menu item for the specified child form. /// </summary> /// <param name="child"></param> /// <param name="targetMenu"></param> private void RemoveChildMenu(ExtendedForm child, ToolStripItemCollection targetMenu) { // Must use a regular 'for' block because we are going to modify the collection. // Iterate and recurse all menu items and remove any items that match the specified child form. for (int i = 0; i < targetMenu.Count; i++) { // Ignore seperators. if (targetMenu[i] is OnlineStatusMenuItem) { OnlineStatusMenuItem item = (OnlineStatusMenuItem)targetMenu[i]; if (item.TargetForm == child) { DisposeDropDownItem(item); } if (item.HasDropDownItems) { RemoveChildMenu(child, item.DropDownItems); } } } }