/// <summary> /// This method will raise the OnSelectedFolderChangedEvent. Before raising it the navigation bar item is changed /// to match the new current directory and the selectedNode property is set to the new node. /// </summary> /// <param name="e">The SelectedFolderChangedEventArgs to pass on</param> private void OnSelectedFolderChanged(SelectedFolderChangedEventArgs e) { selectedNode = e.Node; if (SelectedFolderChanged != null) { SelectedFolderChanged(this, e); } }
private void fileBrowser_SelectedFolderChanged(object sender, SelectedFolderChangedEventArgs e) { Icon icon = ShellImageList.GetIcon(e.Node.ImageIndex, true); if (icon != null) { currentDirInfo.Image = icon.ToBitmap(); this.Icon = icon; } else { currentDirInfo.Image = null; this.Icon = null; } currentDirInfo.Text = e.Node.Text; this.Text = e.Node.Text; }
/// <summary> /// This method will set the current directory of the navigation bar to match the current selected /// directory of the browser. It will add and remove items to make it look like the Windows Explorer /// ComboBox. /// </summary> private void ChangeNavBarItem(SelectedFolderChangedEventArgs e) { if (!navAddressBox.CurrentItem.ShellItem.Equals(e.Item)) { int currentIndex = navAddressBox.Items.IndexOf(navAddressBox.CurrentItem); BrowserComboItem currentItem = navAddressBox.CurrentItem; int maxIndent = folderView.IsParentNode(myCompNode, selectedNode) ? 3 : 2; TreeNode[] path; bool isMyCompChild = folderView.IsParentNode(myCompNode, e.Node); if (selectedNode.Nodes.Contains(e.Node) && ((isMyCompChild && e.Node.Level >= 3) || (!isMyCompChild && e.Node.Level >= 2))) { navAddressBox.Items.Insert(currentIndex + 1, new BrowserComboItem(e.Item, e.Node.Level)); navAddressBox.SelectedIndex = currentIndex + 1; } else if (folderView.IsParentNode(e.Node, selectedNode, out path)) { if (e.Node.Equals(desktopNode)) navAddressBox.SelectedIndex = 0; else if (e.Node.Equals(myCompNode)) navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(myCompNode) + 1; else navAddressBox.SelectedIndex = currentIndex - path.Length + 1; while (currentItem.Text != e.Node.Text && currentItem.Indent >= maxIndent) { navAddressBox.Items.Remove(currentItem); currentIndex--; currentItem = (BrowserComboItem)navAddressBox.Items[currentIndex]; } } else { while (currentItem.Indent >= maxIndent && !e.Node.Equals(myCompNode)) { navAddressBox.Items.Remove(currentItem); currentIndex--; currentItem = (BrowserComboItem)navAddressBox.Items[currentIndex]; } if (folderView.IsParentNode(myCompNode, e.Node, out path)) { if (path.Length > 2) { int startIndex = desktopNode.Nodes.IndexOf(myCompNode) + myCompNode.Nodes.IndexOf(path[1]) + 1; for (int i = 2; i < path.Length; i++) { navAddressBox.Items.Insert(startIndex + i, new BrowserComboItem((ShellItem)path[i].Tag, i + 1)); } navAddressBox.SelectedIndex = startIndex + path.Length - 1; } else { navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(myCompNode) + myCompNode.Nodes.IndexOf(e.Node) + 2; } } else if (folderView.IsParentNode(desktopNode, e.Node, out path)) { if (path.Length > 2) { int startIndex = desktopNode.Nodes.IndexOf(path[1]); for (int i = 2; i < path.Length; i++) { navAddressBox.Items.Insert(startIndex + i, new BrowserComboItem((ShellItem)path[i].Tag, i)); } navAddressBox.SelectedIndex = startIndex + path.Length - 1; } else { if (desktopNode.Nodes.IndexOf(e.Node) <= desktopNode.Nodes.IndexOf(myCompNode)) navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(e.Node) + 1; else navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(e.Node) + myCompNode.Nodes.Count + 1; } } else navAddressBox.SelectedIndex = 0; } } }
/// <summary> /// This method will raise the OnSelectedFolderChangedEvent. Before raising it the navigation bar item is changed /// to match the new current directory and the selectedNode property is set to the new node. /// </summary> /// <param name="e">The SelectedFolderChangedEventArgs to pass on</param> private void OnSelectedFolderChanged(SelectedFolderChangedEventArgs e) { ChangeNavBarItem(e); selectedNode = e.Node; if (SelectedFolderChanged != null) SelectedFolderChanged(this, e); }
void br_SelectedFolderChanged(object sender, SelectedFolderChangedEventArgs e) { if (br.CurrentViewPlugin != null) br.CurrentViewPlugin.Reset(); }
/// <summary> /// This method will raise the OnSelectedFolderChangedEvent. Before raising it the navigation bar item is changed /// to match the new current directory and the selectedNode property is set to the new node. /// </summary> /// <param name="e">The SelectedFolderChangedEventArgs to pass on</param> private void OnSelectedFolderChanged(SelectedFolderChangedEventArgs e) { selectedNode = e.Node; SelectedNode = e.Node; selectedItem = (ShellItem)selectedNode.Tag; SelectedItem = (ShellItem)selectedNode.Tag; if(SelectedFolderChanged != null) SelectedFolderChanged(this, e); }