public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { ContextMenuStrip menu = null; if (requestEventArgs.Column != null) { switch ((ColumnId)requestEventArgs.SubItemId) { case ColumnId.Graph: var ncid = ListBox.GetNextVisibleColumnIndex(requestEventArgs.ColumnIndex); if (ncid >= 0 && ncid < ListBox.Columns.Count) { var column = ListBox.Columns[ncid]; if (IsAlignToGraphEnabled(column)) { return(GetContextMenu(new ItemContextMenuRequestEventArgs( requestEventArgs.Item, column, ncid, requestEventArgs.X, requestEventArgs.Y))); } } break; case ColumnId.Name: case ColumnId.Subject: menu = PointerBounds.GetContextMenu(_drawnPointers, requestEventArgs.X, requestEventArgs.Y); break; } } if (menu == null) { menu = new RevisionMenu(DataContext); } Utility.MarkDropDownForAutoDispose(menu); return(menu); }
/// <summary>Gets the context menu.</summary> /// <param name="requestEventArgs">Request parameters.</param> /// <returns>Context menu for specified location.</returns> public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { ContextMenuStrip menu = null; if (Repository != null) { menu = new ContextMenuStrip(); menu.Items.Add(GuiItemFactory.GetRefreshReferencesItem <ToolStripMenuItem>(Repository, DataContext, Resources.StrRefresh)); switch (DataContext) { case ReferenceType.LocalBranch: menu.Items.Add(GuiItemFactory.GetCreateBranchItem <ToolStripMenuItem>(Repository)); break; case ReferenceType.RemoteBranch: menu.Items.Add(GuiItemFactory.GetAddRemoteItem <ToolStripMenuItem>(Repository)); break; case ReferenceType.Tag: menu.Items.Add(GuiItemFactory.GetCreateTagItem <ToolStripMenuItem>(Repository)); break; } } if (menu != null) { Utility.MarkDropDownForAutoDispose(menu); } return(menu); }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { var menu = new RecentRepositoryMenu(this); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { var menu = new RedmineMenu(WorkingEnvironment, GuiProvider); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { var menu = new ConfigParameterMenu(this); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { var menu = new BranchMenu(DataContext); Utility.MarkDropDownForAutoDispose(menu); return(menu); }
private void InvokeItemContextMenuRequested(ItemContextMenuRequestEventArgs e) { var handler = ItemContextMenuRequested; if (handler != null) { handler(this, e); } }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if(Repository != null) { var menu = new StashMenu(Repository); Utility.MarkDropDownForAutoDispose(menu); return menu; } else { return null; } }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if (Repository != null) { var menu = new StashMenu(Repository); Utility.MarkDropDownForAutoDispose(menu); return(menu); } else { return(null); } }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if (DataContext.Status == FileStatus.Unmerged) { var mnu = new ConflictedFileMenu(DataContext); Utility.MarkDropDownForAutoDispose(mnu); return(mnu); } else { return(base.GetContextMenu(requestEventArgs)); } }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if(_repository != null) { var menu = new ContextMenuStrip(); var item = new ToolStripMenuItem( Resources.StrAddService.AddEllipsis(), null, (s, e) => ShowAddServiceDialog()); menu.Items.Add(item); Utility.MarkDropDownForAutoDispose(menu); return menu; } return base.GetContextMenu(requestEventArgs); }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if (_repository != null) { var menu = new ContextMenuStrip(); var item = new ToolStripMenuItem( Resources.StrAddService.AddEllipsis(), null, (s, e) => ShowAddServiceDialog()); menu.Items.Add(item); Utility.MarkDropDownForAutoDispose(menu); return(menu); } return(base.GetContextMenu(requestEventArgs)); }
/// <summary>Gets the context menu.</summary> /// <param name="requestEventArgs">Request parameters.</param> /// <returns>Context menu for specified location.</returns> public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { ContextMenuStrip menu = null; switch ((ColumnId)requestEventArgs.SubItemId) { case ColumnId.Subject: menu = PointerBounds.GetContextMenu(_drawnPointers, requestEventArgs.X, requestEventArgs.Y); break; } if (menu == null) { menu = new ReflogRecordMenu(DataContext); } Utility.MarkDropDownForAutoDispose(menu); return(menu); }
/// <summary>Gets the context menu.</summary> /// <param name="requestEventArgs">Request parameters.</param> /// <returns>Context menu for specified location.</returns> public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { ContextMenuStrip menu = null; switch (Type) { case FakeRevisionItemType.UnstagedChanges: menu = new UnstagedChangesMenu(Repository); break; case FakeRevisionItemType.StagedChanges: menu = new StagedChangesMenu(Repository); break; } if (menu != null) { Utility.MarkDropDownForAutoDispose(menu); } return(menu); }
/// <summary>Gets the context menu.</summary> /// <param name="requestEventArgs">Request parameters.</param> /// <returns>Context menu for specified location.</returns> public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if (Repository != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenInWindowsExplorer, null, Repository.WorkingDirectory), GuiItemFactory.GetOpenCmdAtItem <ToolStripMenuItem>(Resources.StrOpenCommandLine, null, Repository.WorkingDirectory), new ToolStripSeparator(), GuiItemFactory.GetExpandAllItem <ToolStripMenuItem>(requestEventArgs.Item), GuiItemFactory.GetCollapseAllItem <ToolStripMenuItem>(requestEventArgs.Item), }); Utility.MarkDropDownForAutoDispose(menu); return(menu); } else { return(null); } }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { ContextMenuStrip menu = null; var branch = DataContext as RemoteRepositoryBranch; if (branch != null) { menu = new RemoteBranchMenu(branch); } else { var tag = DataContext as RemoteRepositoryTag; if (tag != null) { menu = new RemoteTagMenu(tag); } } if (menu != null) { Utility.MarkDropDownForAutoDispose(menu); } return(menu); }
private void OnItemContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e) { OnItemContextMenuRequested(e); }
private void OnItemContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e) { InvokeItemContextMenuRequested(e); }
public override ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { var menu = new RedmineMenu(WorkingEnvironment, GuiProvider); Utility.MarkDropDownForAutoDispose(menu); return menu; }
protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e) { e.IsInputKey = true; switch(e.KeyCode) { case Keys.Enter: if(_itemFocus.IsTracked) { var item = _itemFocus.Item; item.Activate(); } break; case Keys.Escape: if(_columnResizeProcess != null) { _columnResizeProcess.Cancel(); _columnResizeProcess = null; } break; case Keys.Right: if(_itemPlainList.Count == 0) return; if(_itemFocus.Index < 0 || _itemFocus.Index >= _itemPlainList.Count) { FocusAndSelectItem(0); } else { var item = _itemPlainList[_itemFocus.Index]; if(item.Items.Count == 0) return; if(item.IsExpanded) { FocusAndSelectItem(_itemFocus.Index + 1); } else { item.IsExpanded = true; } } break; case Keys.Left: if(_itemPlainList.Count == 0) return; if(_itemFocus.Index < 0 || _itemFocus.Index >= _itemPlainList.Count) { FocusAndSelectItem(_itemPlainList.Count - 1); } else { var item = _itemPlainList[_itemFocus.Index]; if(item.IsExpanded) { if(_showRootTreeLines || item.Level != 0) { item.IsExpanded = false; } } else { if(item.Parent == null) return; FocusAndSelectItem(_itemPlainList.IndexOf(item.Parent)); } } break; case Keys.Home: if(_itemPlainList.Count == 0) return; if(_itemFocus.Index != 0) { FocusAndSelectItem(0); } else { EnsureVisible(_itemFocus.Index); } break; case Keys.End: if(_itemPlainList.Count == 0) return; if(_itemFocus.Index != _itemPlainList.Count - 1) { FocusAndSelectItem(_itemPlainList.Count - 1); } else { EnsureVisible(_itemFocus.Index); } break; case Keys.PageUp: if(_itemPlainList.Count == 0) return; { var index = _itemFocus.Index - GetItemsOnPage(); if(index < 0) index = 0; if(_itemFocus.Index != index) { FocusAndSelectItem(index); } else { EnsureVisible(_itemFocus.Index); } } break; case Keys.PageDown: if(_itemPlainList.Count == 0) return; { var index = _itemFocus.Index + GetItemsOnPage(); if(index >= _itemPlainList.Count) index = _itemPlainList.Count - 1; if(_itemFocus.Index != index) { FocusAndSelectItem(index); } else { EnsureVisible(_itemFocus.Index); } } break; case Keys.Up: if(_itemPlainList.Count == 0) return; if(_itemFocus.Index > 0) { int index = _itemFocus.Index - 1; if(Control.ModifierKeys == Keys.Control) { FocusItem(index); } else { FocusAndSelectItem(index); } } break; case Keys.Down: if(_itemPlainList.Count == 0) return; if(_itemFocus.Index < _itemPlainList.Count - 1) { int index = _itemFocus.Index + 1; if(Control.ModifierKeys == Keys.Control) { FocusItem(index); } else { FocusAndSelectItem(index); } } break; case Keys.Space: switch(_selectedItems.Count) { case 0: if(_itemFocus.IsTracked) { FocusAndSelectItem(_itemFocus.Index); } break; default: if(Control.ModifierKeys == Keys.Control) { if(_itemFocus.IsTracked) { var item = _itemPlainList[_itemFocus.Index]; if(item.IsSelected) { _selectedItems.Remove(item); InvalidateItem(_itemFocus.Index); } else if(_multiselect) { _selectedItems.Add(item); InvalidateItem(_itemFocus.Index); } } } else { if(_selectedItems.Count == 1) { if(_showCheckBoxes) { var item = _selectedItems[0]; switch(item.CheckedState) { case CheckedState.Checked: item.CheckedState = CheckedState.Unchecked; break; case CheckedState.Unchecked: item.CheckedState = CheckedState.Checked; break; } } else { FocusAndSelectItem(_itemFocus.Index); } } } break; } break; case Keys.A: if(_multiselect && Control.ModifierKeys == Keys.Control) { if(_selectedItems.Count != _itemPlainList.Count) { _selectedItems.Clear(); _selectedItems.AddRange(_itemPlainList); Invalidate(_itemsArea); } } break; case (Keys)0x5D: { ToolStripDropDown menu; var p = _itemsArea.Location; p.X += _itemHeight / 2; int columnIndex = -1; CustomListBoxColumn column = null; for(int i = 0; i < _columns.Count; ++i) { if(_columns[i].IsVisible) { columnIndex = i; column = _columns[i]; break; } } switch(_selectedItems.Count) { case 0: { var args = new ContextMenuRequestEventArgs(column, columnIndex, p.X, p.Y); Events.Raise(ContextMenuRequestedEvent, this, args); if(args.OverrideDefaultMenu) { menu = args.ContextMenu; } else { menu = GetFreeSpaceContextMenu(args); } } break; case 1: { var index = _itemPlainList.IndexOf(_selectedItems[0]); EnsureVisible(index); p.Y = GetItemY1Offset(index) + _itemsArea.Top + _itemHeight / 2; var args = new ItemContextMenuRequestEventArgs(_selectedItems[0], column, columnIndex, p.X, p.Y); Events.Raise(ItemContextMenuRequestedEvent, this, args); if(args.OverrideDefaultMenu) { menu = args.ContextMenu; } else { menu = _selectedItems[0].GetContextMenu(args); } } break; default: { var args = new ItemsContextMenuRequestEventArgs(_selectedItems, column, columnIndex, p.X, p.Y); Events.Raise(ItemsContextMenuRequestedEvent, this, args); if(args.OverrideDefaultMenu) { menu = args.ContextMenu; } else { menu = GetMultiselectContextMenu(args); } } break; } if(menu != null) { menu.Renderer = Style.ToolStripRenderer; menu.Show(this, p, ToolStripDropDownDirection.Default); } } break; default: e.IsInputKey = false; break; } base.OnPreviewKeyDown(e); }
private void HandleItemDefaultMouseDown(int itemIndex, MouseEventArgs e) { EnsureVisible(itemIndex); switch(Control.ModifierKeys) { case Keys.Control: if(_multiselect) { var id = _selectedItems.IndexOf(_itemPlainList[itemIndex]); if(id != -1) { _selectedItems.RemoveAt(id); } else { _itemFocus.Track(itemIndex, _itemPlainList[itemIndex]); _selectedItems.Add(_itemPlainList[itemIndex]); } InvalidateItem(itemIndex); _lastClickedItemIndex = itemIndex; } break; case Keys.Shift: if(_multiselect) { int startId = _lastClickedItemIndex; if(startId == -1) startId = _itemFocus.Index; if(startId == -1) startId = 0; int endId = itemIndex; if(endId < startId) { var temp = endId; endId = startId; startId = temp; } int minY = GetItemY1Offset(startId); int maxY = GetItemY2Offset(endId); for(int i = 0; i < _selectedItems.Count; ++i) { int id = _itemPlainList.IndexOf(_selectedItems[i]); var y1 = GetItemY1Offset(id); if(y1 >= _itemsArea.Height || y1 <= -_itemHeight) { continue; } var y2 = y1 + _itemHeight - 1; if(y1 < minY) minY = y1; if(y2 > maxY) maxY = y2; } _selectedItems.Clear(); for(int i = startId; i <= endId; ++i) { _selectedItems.Add(_itemPlainList[i]); } Invalidate(Rectangle.Intersect(_itemsArea, new Rectangle(_itemsArea.X, _itemsArea.Y + minY, _itemsArea.Width, maxY - minY + 1))); } break; default: var item = _itemPlainList[itemIndex]; if(e.Button != MouseButtons.Right || !_multiselect || !item.IsSelected) { _itemFocus.Track(itemIndex, item); _lastClickedItemIndex = itemIndex; var rc = GetItemDisplayRect(itemIndex); if(_selectedItems.Count == 0) { _selectedItems.Add(item); Invalidate(GetItemDisplayRect(itemIndex)); } else { if(_selectedItems.Count == 1) { if(_selectedItems[0] != _itemPlainList[itemIndex]) { var index = _itemPlainList.IndexOf(_selectedItems[0]); _selectedItems[0] = item; Invalidate(GetItemDisplayRect(index)); Invalidate(rc); } } else { if(_selectedItems.Contains(item)) { var indices = new int[_selectedItems.Count - 1]; int j = 0; for(int i = 0; i < _selectedItems.Count; ++i) { if(_selectedItems[i] != item) { indices[j++] = _itemPlainList.IndexOf(_selectedItems[i]); } } _selectedItems.Clear(); _selectedItems.Add(item); for(int i = 0; i < indices.Length; ++i) { Invalidate(GetItemDisplayRect(indices[i])); } } else { var indices = new int[_selectedItems.Count + 1]; indices[0] = itemIndex; for(int i = 0; i < _selectedItems.Count; ++i) { indices[i + 1] = _itemPlainList.IndexOf(_selectedItems[i]); } _selectedItems.Clear(); _selectedItems.Add(item); for(int i = 0; i < indices.Length; ++i) { Invalidate(GetItemDisplayRect(indices[i])); } } } } item.OnMouseDown(e.Button, e.X - rc.X, e.Y - rc.Y); } switch(e.Button) { case MouseButtons.Left: if(_itemActivation == ItemActivation.SingleClick) { item.Activate(); } break; case MouseButtons.Right: if(!_disableContextMenus) { var x = e.X; var y = e.Y; var cid = GetColumn(ref x, y); var col = (cid != -1) ? (_columns[cid]) : null; switch(_selectedItems.Count) { case 1: { int cmnuX = e.X - _itemsArea.X; int cmnuY = e.Y - _itemsArea.Y; var args = new ItemContextMenuRequestEventArgs(item, col, cid, cmnuX, cmnuY); Events.Raise(ItemContextMenuRequestedEvent, this, args); var menu = args.OverrideDefaultMenu ? args.ContextMenu : item.GetContextMenu(args); if(menu != null) { menu.Renderer = Style.ToolStripRenderer; menu.Show(this, e.Location); } } break; default: { int cmnuX = e.X - _itemsArea.X; int cmnuY = e.Y - _itemsArea.Y; var args = new ItemsContextMenuRequestEventArgs(_selectedItems, col, cid, cmnuX, cmnuY); Events.Raise(ItemsContextMenuRequestedEvent, this, args); var menu = args.OverrideDefaultMenu ? args.ContextMenu : GetMultiselectContextMenu(args); if(menu != null) { menu.Renderer = Style.ToolStripRenderer; menu.Show(this, e.Location); } } break; } } break; } break; } }
private void OnContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e) { var vm = ViewModel as TreeViewModel; var rts = vm != null ? vm.TreeSource : null; if (rts != null) { var item = ((ITreeItemListItem)e.Item); var file = item.TreeItem as TreeFile; if (file != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetExtractAndOpenFileItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath), GuiItemFactory.GetExtractAndOpenFileWithItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath), GuiItemFactory.GetSaveAsItem <ToolStripMenuItem>(DataSource.Data, file.RelativePath), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFileName, file.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, file.RelativePath), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, file.FullPath), }), new ToolStripSeparator(), GuiItemFactory.GetBlameItem <ToolStripMenuItem>(rts.Revision, file), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, file), new ToolStripSeparator(), GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, file), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; e.OverrideDefaultMenu = true; return; } var directory = item.TreeItem as TreeDirectory; if (directory != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { new ToolStripMenuItem(Resources.StrOpen, null, (s, args) => e.Item.Activate()), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, directory), new ToolStripSeparator(), GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, directory), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; e.OverrideDefaultMenu = true; return; } var commit = ((ITreeItemListItem)e.Item).TreeItem as TreeCommit; if (commit != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(rts.Revision, commit), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrName, commit.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, commit.RelativePath), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, commit.FullPath), }), new ToolStripSeparator(), GuiItemFactory.GetCheckoutPathItem <ToolStripMenuItem>(rts.Revision, commit), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; e.OverrideDefaultMenu = true; return; } } }
/// <summary>Gets the context menu.</summary> /// <param name="requestEventArgs">Request parameters.</param> /// <returns>Context menu for specified location.</returns> public virtual ContextMenuStrip GetContextMenu(ItemContextMenuRequestEventArgs requestEventArgs) { if(requestEventArgs == null) return null; ContextMenuRequested.Raise(this, requestEventArgs); return requestEventArgs.ContextMenu; }
private void OnItemContextMenuRequested(ItemContextMenuRequestEventArgs e) => ItemContextMenuRequested?.Invoke(this, e);
private void InvokeItemContextMenuRequested(ItemContextMenuRequestEventArgs e) { var handler = ItemContextMenuRequested; if(handler != null) { handler(this, e); } }
private void OnItemContextMenuRequested(object sender, ItemContextMenuRequestEventArgs e) { var item = e.Item as ITreeItemListItem; if (item != null) { var file = item.TreeItem as TreeFile; if (file != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpen, null, file.FullPath), GuiItemFactory.GetOpenUrlWithItem <ToolStripMenuItem>(Resources.StrOpenWith.AddEllipsis(), null, file.FullPath), GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenContainingFolder, null, Path.GetDirectoryName(file.FullPath)), new ToolStripSeparator(), new ToolStripMenuItem(Resources.StrCopyToClipboard, null, new ToolStripItem[] { GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFileName, file.Name), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrRelativePath, file.RelativePath), GuiItemFactory.GetCopyToClipboardItem <ToolStripMenuItem>(Resources.StrFullPath, file.FullPath), }), new ToolStripSeparator(), GuiItemFactory.GetBlameItem <ToolStripMenuItem>(Repository.Head, file.RelativePath), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(Repository.Head, file.RelativePath), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; return; } var directory = item.TreeItem as TreeDirectory; if (directory != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenInWindowsExplorer, null, directory.FullPath), GuiItemFactory.GetOpenCmdAtItem <ToolStripMenuItem>(Resources.StrOpenCommandLine, null, directory.FullPath), }); if (e.Item.Items.Count != 0) { menu.Items.AddRange( new ToolStripItem[] { new ToolStripSeparator(), GuiItemFactory.GetExpandAllItem <ToolStripMenuItem>(e.Item), GuiItemFactory.GetCollapseAllItem <ToolStripMenuItem>(e.Item), }); } menu.Items.AddRange( new ToolStripItem[] { new ToolStripSeparator(), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(Repository.Head, directory.RelativePath + "/"), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; return; } var commit = item.TreeItem as TreeCommit; if (commit != null) { var menu = new ContextMenuStrip(); menu.Items.AddRange( new ToolStripItem[] { GuiItemFactory.GetOpenAppItem <ToolStripMenuItem>( Resources.StrOpenWithGitter, null, Application.ExecutablePath, commit.FullPath.SurroundWithDoubleQuotes()), GuiItemFactory.GetOpenUrlItem <ToolStripMenuItem>(Resources.StrOpenInWindowsExplorer, null, commit.FullPath), GuiItemFactory.GetOpenCmdAtItem <ToolStripMenuItem>(Resources.StrOpenCommandLine, null, commit.FullPath), new ToolStripSeparator(), GuiItemFactory.GetPathHistoryItem <ToolStripMenuItem>(Repository.Head, commit.RelativePath), }); Utility.MarkDropDownForAutoDispose(menu); e.ContextMenu = menu; return; } } }