internal void AddNewTemplateNode(ToolStripDropDown dropDown) { foreach (ToolStripItem item in dropDown.Items) { if (item is DesignerToolStripControlHost) { this.typeHereNode = (DesignerToolStripControlHost) item; } } if (this.typeHereNode != null) { dropDown.Items.Remove(this.typeHereNode); } this.typeHereTemplateNode = new ToolStripTemplateNode(base.Component, System.Design.SR.GetString("ToolStripDesignerTemplateNodeEnterText"), null); int width = this.typeHereTemplateNode.EditorToolStrip.Width; this.typeHereNode = new DesignerToolStripControlHost(this.typeHereTemplateNode.EditorToolStrip); this.typeHereTemplateNode.ControlHost = this.typeHereNode; this.typeHereNode.AutoSize = false; this.typeHereNode.Width = width; dropDown.Items.Add(this.typeHereNode); }
internal void ActivateEditor(ToolStripItem item, bool clicked) { if (item != this.currentItem) { if (this.editor != null) { this.behaviorService.AdornerWindowControl.Controls.Remove(this.editor); this.behaviorService.Invalidate(this.editor.Bounds); this.editorUI = null; this.editor = null; this.currentItem = null; this.itemDesigner.IsEditorActive = false; if (this.currentItem != null) { this.currentItem = null; } } if (item != null) { this.currentItem = item; if (this.designerHost != null) { this.itemDesigner = (ToolStripItemDesigner) this.designerHost.GetDesigner(this.currentItem); } this.editorUI = this.itemDesigner.Editor; if (this.editorUI != null) { this.itemDesigner.IsEditorActive = true; this.editor = new ToolStripEditorControl(this.editorUI.EditorToolStrip, this.editorUI.Bounds); this.behaviorService.AdornerWindowControl.Controls.Add(this.editor); this.lastKnownEditorBounds = this.editor.Bounds; this.editor.BringToFront(); this.editorUI.ignoreFirstKeyUp = true; this.editorUI.FocusEditor(this.currentItem); } } } }
protected override void Dispose(bool disposing) { if (disposing) { if (this._editorNode != null) { this._editorNode.CloseEditor(); this._editorNode = null; } if (this.ToolStripItem != null) { this.ToolStripItem.Paint -= new PaintEventHandler(this.OnItemPaint); } IComponentChangeService service = (IComponentChangeService) this.GetService(typeof(IComponentChangeService)); if (service != null) { service.ComponentRename -= new ComponentRenameEventHandler(this.OnComponentRename); } if (this.selSvc != null) { this.selSvc.SelectionChanged -= new EventHandler(this.OnSelectionChanged); } if (this.bodyGlyph != null) { ToolStripAdornerWindowService service2 = (ToolStripAdornerWindowService) this.GetService(typeof(ToolStripAdornerWindowService)); if ((service2 != null) && service2.DropDownAdorner.Glyphs.Contains(this.bodyGlyph)) { service2.DropDownAdorner.Glyphs.Remove(this.bodyGlyph); } } if ((this.toolStripItemCustomMenuItemCollection != null) && (this.toolStripItemCustomMenuItemCollection.Count > 0)) { foreach (System.Windows.Forms.ToolStripItem item in this.toolStripItemCustomMenuItemCollection) { item.Dispose(); } this.toolStripItemCustomMenuItemCollection.Clear(); } this.toolStripItemCustomMenuItemCollection = null; } base.Dispose(disposing); }
private void HideDummyNode() { this.ToolStripItem.AutoSize = this.AutoSize; if (this._editorNode != null) { this._editorNode.CloseEditor(); this._editorNode = null; } }
protected override void Dispose(bool disposing) { if (disposing) { if (this.selSvc != null) { this.selSvc.SelectionChanged -= new EventHandler(this.OnSelectionChanged); } if (this.undoEngine != null) { this.undoEngine.Undoing -= new EventHandler(this.OnUndoing); this.undoEngine.Undone -= new EventHandler(this.OnUndone); } if (this.MenuItem != null) { this.MenuItem.DropDown.Hide(); this.UnHookEvents(); } if (this.toolStripAdornerWindowService != null) { this.toolStripAdornerWindowService = null; } IComponentChangeService service = (IComponentChangeService) this.GetService(typeof(IComponentChangeService)); if (service != null) { service.ComponentRemoved -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentRemoved); service.ComponentRemoving -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentRemoving); service.ComponentAdding -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentAdding); service.ComponentAdded -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentAdded); } if (this.typeHereTemplateNode != null) { this.typeHereTemplateNode.RollBack(); this.typeHereTemplateNode.CloseEditor(); this.typeHereTemplateNode = null; } if (this.typeHereNode != null) { this.typeHereNode.Dispose(); this.typeHereNode = null; } if (this.commitedTemplateNode != null) { this.commitedTemplateNode.RollBack(); this.commitedTemplateNode.CloseEditor(); this.commitedTemplateNode = null; } if (this.commitedEditorNode != null) { this.commitedEditorNode.Dispose(); this.commitedEditorNode = null; } if (this.parentItem != null) { this.parentItem = null; } } base.Dispose(disposing); }
private void CreateDummyMenuItem(ToolStripItem item, string text, Image image) { this.commitedTemplateNode = new ToolStripTemplateNode(base.Component, text, image); this.commitedTemplateNode.ActiveItem = item; int width = this.commitedTemplateNode.EditorToolStrip.Width; this.commitedEditorNode = new DesignerToolStripControlHost(this.commitedTemplateNode.EditorToolStrip); this.commitedEditorNode.AutoSize = false; this.commitedEditorNode.Width = width; }
private void SetupNewEditNode(ToolStripTemplateNode owner, string text, Image image, IComponent currentItem) { this.renderer = new MiniToolStripRenderer(owner); this._miniToolStrip = new TransparentToolStrip(owner); ToolStrip strip = currentItem as ToolStrip; if (strip != null) { this._miniToolStrip.RightToLeft = strip.RightToLeft; strip.RightToLeftChanged += new EventHandler(this.OnRightToLeftChanged); this._miniToolStrip.Site = strip.Site; } ToolStripDropDownItem item = currentItem as ToolStripDropDownItem; if (item != null) { this._miniToolStrip.RightToLeft = item.RightToLeft; item.RightToLeftChanged += new EventHandler(this.OnRightToLeftChanged); } this._miniToolStrip.SuspendLayout(); this._miniToolStrip.CanOverflow = false; this._miniToolStrip.Cursor = Cursors.Default; this._miniToolStrip.Dock = DockStyle.None; this._miniToolStrip.GripStyle = ToolStripGripStyle.Hidden; this._miniToolStrip.Name = "miniToolStrip"; this._miniToolStrip.TabIndex = 0; this._miniToolStrip.Text = "miniToolStrip"; this._miniToolStrip.Visible = true; this._miniToolStrip.Renderer = this.renderer; if ((currentItem is MenuStrip) || (currentItem is ToolStripDropDownItem)) { this.SetUpMenuTemplateNode(owner, text, image, currentItem); } else { this.SetUpToolTemplateNode(owner, text, image, currentItem); } this._miniToolStrip.MouseLeave += new EventHandler(this.OnMouseLeave); this._miniToolStrip.ResumeLayout(); }
protected override void Dispose(bool disposing) { if (disposing) { this.disposed = true; if (this.items != null) { this.items = null; } if (this.undoEngine != null) { this.undoEngine.Undoing -= new EventHandler(this.OnUndoing); this.undoEngine.Undone -= new EventHandler(this.OnUndone); } if (this.componentChangeSvc != null) { this.componentChangeSvc.ComponentRemoved -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentRemoved); this.componentChangeSvc.ComponentRemoving -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentRemoving); this.componentChangeSvc.ComponentAdded -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentAdded); this.componentChangeSvc.ComponentAdding -= new ComponentEventHandler(this.ComponentChangeSvc_ComponentAdding); this.componentChangeSvc.ComponentChanged -= new ComponentChangedEventHandler(this.ComponentChangeSvc_ComponentChanged); } if (this._selectionSvc != null) { this._selectionSvc.SelectionChanged -= new EventHandler(this.selSvc_SelectionChanged); this._selectionSvc.SelectionChanging -= new EventHandler(this.selSvc_SelectionChanging); this._selectionSvc = null; } base.EnableDragDrop(false); if (this.editManager != null) { this.editManager.CloseManager(); this.editManager = null; } if (this.tn != null) { this.tn.RollBack(); this.tn.CloseEditor(); this.tn = null; } if (this._miniToolStrip != null) { this._miniToolStrip.Dispose(); this._miniToolStrip = null; } if (this.editorNode != null) { this.editorNode.Dispose(); this.editorNode = null; } if (this.ToolStrip != null) { this.ToolStrip.OverflowButton.DropDown.Closing -= new ToolStripDropDownClosingEventHandler(this.OnOverflowDropDownClosing); this.ToolStrip.OverflowButton.DropDownOpening -= new EventHandler(this.OnOverFlowDropDownOpening); this.ToolStrip.OverflowButton.DropDownOpened -= new EventHandler(this.OnOverFlowDropDownOpened); this.ToolStrip.OverflowButton.DropDownClosed -= new EventHandler(this.OnOverFlowDropDownClosed); this.ToolStrip.OverflowButton.DropDown.Resize -= new EventHandler(this.OnOverflowDropDownResize); this.ToolStrip.OverflowButton.DropDown.Paint -= new PaintEventHandler(this.OnOverFlowDropDownPaint); this.ToolStrip.Move -= new EventHandler(this.OnToolStripMove); this.ToolStrip.VisibleChanged -= new EventHandler(this.OnToolStripVisibleChanged); this.ToolStrip.ItemAdded -= new ToolStripItemEventHandler(this.OnItemAdded); this.ToolStrip.Resize -= new EventHandler(this.ToolStrip_Resize); this.ToolStrip.DockChanged -= new EventHandler(this.ToolStrip_Resize); this.ToolStrip.LayoutCompleted -= new EventHandler(this.ToolStrip_LayoutCompleted); } if (this.toolStripContextMenu != null) { this.toolStripContextMenu.Dispose(); this.toolStripContextMenu = null; } this.RemoveBodyGlyphsForOverflow(); if (this.ToolStrip.OverflowButton.DropDown.Visible) { this.ToolStrip.OverflowButton.HideDropDown(); } if (this.toolStripAdornerWindowService != null) { this.toolStripAdornerWindowService = null; } } base.Dispose(disposing); }
internal void RemoveTypeHereNode(ToolStripDropDownItem ownerItem) { Rectangle bounds = ownerItem.DropDown.Bounds; if ((ownerItem.DropDownItems.Count > 0) && (ownerItem.DropDownItems[0] is DesignerToolStripControlHost)) { ownerItem.DropDownItems.RemoveAt(0); } if ((this.typeHereTemplateNode != null) && this.typeHereTemplateNode.Active) { this.typeHereTemplateNode.RollBack(); this.typeHereTemplateNode.CloseEditor(); this.typeHereTemplateNode = null; } if (this.typeHereNode != null) { this.typeHereNode.Dispose(); this.typeHereNode = null; } if (this.toolStripAdornerWindowService != null) { this.toolStripAdornerWindowService.Invalidate(bounds); } }
internal override void CommitEdit(System.Type type, string text, bool commit, bool enterKeyPressed, bool tabKeyPressed) { base.IsEditorActive = false; if (!(this.MenuItem.Owner is ToolStripDropDown) && (base.Editor != null)) { base.CommitEdit(type, text, commit, enterKeyPressed, tabKeyPressed); return; } if (!commit) { if (this.commitedEditorNode != null) { this.MenuItem.DropDown.SuspendLayout(); bool flag2 = base.dummyItemAdded; base.dummyItemAdded = false; int index = this.MenuItem.DropDownItems.IndexOf(this.commitedEditorNode); ToolStripItem item4 = this.MenuItem.DropDownItems[index + 1]; this.MenuItem.DropDown.Items.Remove(this.commitedEditorNode); item4.Visible = true; if (this.commitedTemplateNode != null) { this.commitedTemplateNode.CloseEditor(); this.commitedTemplateNode = null; } if (this.commitedEditorNode != null) { this.commitedEditorNode.Dispose(); this.commitedEditorNode = null; } if (flag2) { this.MenuItem.DropDownItems.Remove(item4); try { this.designerHost.DestroyComponent(item4); } catch { if (this.newMenuItemTransaction != null) { try { this.newMenuItemTransaction.Cancel(); } catch { } this.newMenuItemTransaction = null; } } item4 = null; } this.MenuItem.DropDown.ResumeLayout(); if (item4 != null) { this.AddItemBodyGlyph(item4); } if (flag2) { SelectionManager service = (SelectionManager) this.GetService(typeof(SelectionManager)); service.NeedRefresh = false; if (this.newMenuItemTransaction != null) { try { base.dummyItemAdded = true; this.newMenuItemTransaction.Cancel(); this.newMenuItemTransaction = null; if (this.MenuItem.DropDownItems.Count == 0) { this.CreatetypeHereNode(); } } finally { base.dummyItemAdded = false; } } flag2 = false; } this.MenuItem.DropDown.PerformLayout(); } return; } int dummyIndex = -1; bool dummyItemAdded = base.dummyItemAdded; base.dummyItemAdded = false; this.MenuItem.DropDown.SuspendLayout(); if (this.commitedEditorNode != null) { dummyIndex = this.MenuItem.DropDownItems.IndexOf(this.commitedEditorNode); ToolStripItem component = this.MenuItem.DropDownItems[dummyIndex + 1]; this.MenuItem.DropDown.Items.Remove(this.commitedEditorNode); if (this.commitedTemplateNode != null) { this.commitedTemplateNode.CloseEditor(); this.commitedTemplateNode = null; } if (this.commitedEditorNode != null) { this.commitedEditorNode.Dispose(); this.commitedEditorNode = null; } if (text == "-") { ToolStripItemDesigner designer = this.designerHost.GetDesigner(component) as ToolStripItemDesigner; if (designer == null) { goto Label_028C; } try { try { component = designer.MorphCurrentItem(typeof(ToolStripSeparator)); this.RemoveItemBodyGlyph(component); } catch { if (this.newMenuItemTransaction != null) { try { this.newMenuItemTransaction.Cancel(); } catch { } this.newMenuItemTransaction = null; } } goto Label_028C; } finally { if (this.newMenuItemTransaction != null) { this.newMenuItemTransaction.Commit(); this.newMenuItemTransaction = null; } } } if (dummyItemAdded) { try { try { base.dummyItemAdded = true; this.CreateNewItem(type, dummyIndex, text); this.designerHost.DestroyComponent(component); if (enterKeyPressed) { this.typeHereNode.SelectControl(); } } catch { if (this.newMenuItemTransaction != null) { try { this.newMenuItemTransaction.Cancel(); } catch { } this.newMenuItemTransaction = null; } } goto Label_028C; } finally { if (this.newMenuItemTransaction != null) { this.newMenuItemTransaction.Commit(); this.newMenuItemTransaction = null; } base.dummyItemAdded = false; } } component.Visible = true; DesignerTransaction transaction = this.designerHost.CreateTransaction(System.Design.SR.GetString("ToolStripItemPropertyChangeTransaction")); try { PropertyDescriptor descriptor = TypeDescriptor.GetProperties(component)["Text"]; string str = (string) descriptor.GetValue(component); if ((descriptor != null) && (text != str)) { descriptor.SetValue(component, text); } } catch { if (transaction != null) { transaction.Cancel(); transaction = null; } } finally { if (transaction != null) { transaction.Commit(); transaction = null; } } } else { dummyIndex = this.MenuItem.DropDownItems.IndexOf(this.typeHereNode); try { base.dummyItemAdded = true; this.CreateNewItem(type, dummyIndex, text); } finally { base.dummyItemAdded = false; } this.typeHereNode.SelectControl(); } Label_028C: this.MenuItem.DropDown.ResumeLayout(true); this.MenuItem.DropDown.PerformLayout(); this.ResetGlyphs(this.MenuItem); if (this.selSvc != null) { if (enterKeyPressed) { ToolStripItem item2 = null; if (((this.MenuItem.DropDownDirection == ToolStripDropDownDirection.AboveLeft) || (this.MenuItem.DropDownDirection == ToolStripDropDownDirection.AboveRight)) && (dummyIndex >= 1)) { item2 = this.MenuItem.DropDownItems[dummyIndex - 1]; } else { item2 = this.MenuItem.DropDownItems[dummyIndex + 1]; } if (this.KeyboardHandlingService != null) { if (item2 != null) { ToolStripDropDownItem item3 = this.MenuItem.DropDownItems[dummyIndex] as ToolStripDropDownItem; if (item3 != null) { item3.HideDropDown(); } } if (item2 == this.typeHereNode) { this.KeyboardHandlingService.SelectedDesignerControl = item2; this.selSvc.SetSelectedComponents(null, SelectionTypes.Replace); } else { this.KeyboardHandlingService.SelectedDesignerControl = null; this.selSvc.SetSelectedComponents(new object[] { item2 }); } } } else if (tabKeyPressed) { this.selSvc.SetSelectedComponents(new object[] { this.MenuItem.DropDownItems[dummyIndex] }, SelectionTypes.Replace); } } }
public TemplateTextBox(ToolStripTemplateNode.TransparentToolStrip parent, ToolStripTemplateNode owner) { this.parent = parent; this.owner = owner; this.AutoSize = false; this.Multiline = false; }
public TransparentToolStrip(ToolStripTemplateNode owner) { this.owner = owner; this.currentItem = owner.component; base.TabStop = true; base.SetStyle(ControlStyles.Selectable, true); this.AutoSize = false; }
public MiniToolStripRenderer(ToolStripTemplateNode owner) { this.owner = owner; this.selectedBorderColor = Color.FromArgb(0x2e, 0x6a, 0xc5); this.defaultBorderColor = Color.FromArgb(0xab, 0xab, 0xab); this.dropDownMouseOverColor = Color.FromArgb(0xc1, 210, 0xee); this.dropDownMouseDownColor = Color.FromArgb(0x98, 0xb5, 0xe2); this.toolStripBorderColor = Color.White; }
private void SetUpToolTemplateNode(ToolStripTemplateNode owner, string text, Image image, IComponent component) { this.addItemButton = new ToolStripSplitButton(); this.addItemButton.AutoSize = false; this.addItemButton.Margin = new Padding(1); this.addItemButton.Size = this._miniToolStrip.DisplayRectangle.Size - this.addItemButton.Margin.Size; this.addItemButton.DropDownButtonWidth = MINITOOLSTRIP_DROPDOWN_BUTTON_WIDTH; this.addItemButton.DisplayStyle = ToolStripItemDisplayStyle.Image; if (component is StatusStrip) { this.addItemButton.ToolTipText = System.Design.SR.GetString("ToolStripDesignerTemplateNodeSplitButtonStatusStripToolTip"); } else { this.addItemButton.ToolTipText = System.Design.SR.GetString("ToolStripDesignerTemplateNodeSplitButtonToolTip"); } this.addItemButton.MouseDown += new MouseEventHandler(this.OnMouseDown); this.addItemButton.MouseMove += new MouseEventHandler(this.OnMouseMove); this.addItemButton.MouseUp += new MouseEventHandler(this.OnMouseUp); this.addItemButton.DropDownOpened += new EventHandler(this.OnAddItemButtonDropDownOpened); this.contextMenu = ToolStripDesignerUtils.GetNewItemDropDown(component, null, new EventHandler(this.AddNewItemClick), false, component.Site, false); this.contextMenu.Text = "ItemSelectionMenu"; this.contextMenu.Closed += new ToolStripDropDownClosedEventHandler(this.OnContextMenuClosed); this.contextMenu.Opened += new EventHandler(this.OnContextMenuOpened); this.addItemButton.DropDown = this.contextMenu; try { if (this.addItemButton.DropDownItems.Count > 0) { ItemTypeToolStripMenuItem item = (ItemTypeToolStripMenuItem) this.addItemButton.DropDownItems[0]; this.addItemButton.ImageTransparentColor = Color.Lime; Bitmap logicalBitmap = new Bitmap(System.Drawing.BitmapSelector.GetResourceStream(typeof(ToolStripTemplateNode), "ToolStripTemplateNode.bmp")); if (System.Windows.Forms.DpiHelper.IsScalingRequired) { System.Windows.Forms.DpiHelper.ScaleBitmapLogicalToDevice(ref logicalBitmap); } this.addItemButton.Image = logicalBitmap; this.addItemButton.DefaultItem = item; } } catch (Exception exception) { if (System.Windows.Forms.ClientUtils.IsCriticalException(exception)) { throw; } } this._miniToolStrip.Items.AddRange(new ToolStripItem[] { this.addItemButton }); }
private void CreateDummyNode() { this._editorNode = new ToolStripTemplateNode(this.ToolStripItem, this.ToolStripItem.Text, this.ToolStripItem.Image); }
internal void AddNewTemplateNode(System.Windows.Forms.ToolStrip wb) { this.tn = new ToolStripTemplateNode(base.Component, System.Design.SR.GetString("ToolStripDesignerTemplateNodeEnterText"), null); this._miniToolStrip = this.tn.EditorToolStrip; int width = this.tn.EditorToolStrip.Width; this.editorNode = new DesignerToolStripControlHost(this.tn.EditorToolStrip); this.tn.ControlHost = this.editorNode; this.editorNode.Width = width; this.ToolStrip.Items.Add(this.editorNode); this.editorNode.Visible = false; }
private void RollBack() { if (this.commitedEditorNode != null) { int index = this.MenuItem.DropDownItems.IndexOf(this.commitedEditorNode); ToolStripDropDownItem item = (ToolStripDropDownItem) this.MenuItem.DropDownItems[index + 1]; if (item != null) { item.Visible = true; } this.MenuItem.DropDown.Items.Remove(this.commitedEditorNode); if (this.commitedTemplateNode != null) { this.commitedTemplateNode.RollBack(); this.commitedTemplateNode.CloseEditor(); this.commitedTemplateNode = null; } if (this.commitedEditorNode != null) { this.commitedEditorNode.Dispose(); this.commitedEditorNode = null; } } }
public void RemoveCommands() { IMenuCommandService menuService = this.MenuService; if (((menuService != null) && this.commandsAdded) && (this.newCommands != null)) { foreach (MenuCommand command in this.newCommands) { menuService.RemoveCommand(command); } } if (this.newCommandPaste != null) { menuService.RemoveCommand(this.newCommandPaste); this.newCommandPaste = null; } if (this.oldCommandPaste != null) { this.oldCommandPaste = null; } if (this.newCommands != null) { this.newCommands.Clear(); this.newCommands = null; } if (this.oldCommands != null) { this.oldCommands.Clear(); this.oldCommands = null; } if (this.selectionService != null) { this.selectionService.SelectionChanging -= new EventHandler(this.OnSelectionChanging); this.selectionService.SelectionChanged -= new EventHandler(this.OnSelectionChanged); this.selectionService = null; } if (this.componentChangeSvc != null) { this.componentChangeSvc.ComponentRemoved -= new ComponentEventHandler(this.OnComponentRemoved); this.componentChangeSvc = null; } this.currentSelection = null; this.shiftPrimary = null; this.provider = null; this.menuCommandService = null; this.activeTemplateNode = null; }
private void SetUpMenuTemplateNode(ToolStripTemplateNode owner, string text, Image image, IComponent currentItem) { this.centerLabel = new ToolStripLabel(); this.centerLabel.Text = text; this.centerLabel.AutoSize = false; this.centerLabel.IsLink = false; this.centerLabel.Margin = new Padding(1); if (currentItem is ToolStripDropDownItem) { this.centerLabel.Margin = new Padding(1, 2, 1, 3); } this.centerLabel.Padding = new Padding(0, 1, 0, 0); this.centerLabel.Name = "centerLabel"; this.centerLabel.Size = this._miniToolStrip.DisplayRectangle.Size - this.centerLabel.Margin.Size; this.centerLabel.ToolTipText = System.Design.SR.GetString("ToolStripDesignerTemplateNodeLabelToolTip"); this.centerLabel.MouseUp += new MouseEventHandler(this.CenterLabelClick); this.centerLabel.MouseEnter += new EventHandler(this.CenterLabelMouseEnter); this.centerLabel.MouseMove += new MouseEventHandler(this.CenterLabelMouseMove); this.centerLabel.MouseLeave += new EventHandler(this.CenterLabelMouseLeave); this._miniToolStrip.Items.AddRange(new ToolStripItem[] { this.centerLabel }); }