private ToolStripMenuItem getRightClickItem_Add_NewItem() { return(new ToolStripMenuItem("New item", Icons.GetBitmap("menu.newitem", 16), delegate(object sender, EventArgs e) { //get the currently selected directory ProjectEntity folder = GetSelectedProjectEntity(); if (folder == null) { folder = GetSelectedProject().Root; } ProjectDirectory dir = (ProjectDirectory)folder; #region prompt the user for a filename string filename = null; while (true) { filename = AddProjectItem.Show(); if (filename == null) { break; } //does the file already exist? if (dir.EntityExists(filename)) { MessageBox.Show("The name \"" + filename + "\" is already in use in directory \"" + dir.FullName + "\"", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } break; } if (filename == null) { return; } #endregion //create the file entry ProjectFile file = dir.CreateFile(filename); //update the tree TreeNode node = findNodeByTag(dir.IsRoot ? (object)dir.Project : (object)dir); object st = PushTreeState(); IndexDirectory(dir, node); PopTreeState(st); node.Expand(); })); }