private void HandleEmulatorRightClick(EmulatorTreeNode selectedNode) { Emulator emu = selectedNode.Emulator; mLogger.Info(String.Format("Handling emulator right click on emulator {0}", emu.ToString())); ContextMenuStrip ctxMenu = new ContextMenuStrip(); ToolStripMenuItem modifyEmulator = new ToolStripMenuItem(String.Format("Modify {0}",emu.Name)); modifyEmulator.Click += (sender, args) => ModifyEmulator_Click(selectedNode, null); ToolStripMenuItem addNewPath = new ToolStripMenuItem(String.Format("Add New Rom Path To {0}", emu.Name)); addNewPath.Click += (sender, args) => AddNewPathToEmulator_Click(selectedNode, null); ToolStripMenuItem deleteEmulator = new ToolStripMenuItem(String.Format("Delete {0}", emu.Name)); deleteEmulator.Click += (sender, args) => DeleteEmulator_Click(selectedNode.Emulator, null); ctxMenu.Items.Add(modifyEmulator); ctxMenu.Items.Add(addNewPath); ctxMenu.Items.Add(deleteEmulator); treeEmulatorView.ContextMenuStrip = ctxMenu; }
private void AddNewPathToEmulator_Click(EmulatorTreeNode selectedNode, object p) { Emulator selectedEmulator = selectedNode.Emulator; using (RomPathManagementWindow mModifyPathsForm = new RomPathManagementWindow()) { mModifyPathsForm.Initialize(selectedEmulator.Name); if (mModifyPathsForm.ShowDialog(this) == DialogResult.OK) { String path = mModifyPathsForm.RomPath; String associatedEmulator = mModifyPathsForm.EmulatorToUse; String extension = mModifyPathsForm.EmulatorExtension; mConfigurationComponent.AddRomPath(path, associatedEmulator, extension); } } }
private void redrawTreeView() { treeEmulatorView.Nodes.Clear(); treeEmulatorView.Nodes.Add(getConfigFilename()); TreeNode rootNode = treeEmulatorView.Nodes[0]; foreach(Emulator emu in mLoadedEmulators) { TreeNode emulatorNode = new EmulatorTreeNode(emu); var associatedPaths = mLoadedPaths.Where(f => f.AssociatedEmulator == emu.Name); foreach(RomPath path in associatedPaths) { List<String> resolvedFiles = mPathResolver.ResolvePaths(path.FolderPath,path.RomExtension); foreach(String file in resolvedFiles) { emulatorNode.Nodes.Add(new PathTreeNode(file,path)); } } rootNode.Nodes.Add(emulatorNode); } }