public override void CommandClick(string controlID) { if (controlID == MENU_COMMAND_RENAME) { _guiController.ProjectTree.BeginLabelEdit(this, "Scr" + _rightClickedScript); } else if (controlID == MENU_COMMAND_DELETE) { if (_guiController.ShowQuestion("Are you sure you want to delete this script and its header?") == DialogResult.Yes) { Script chosenItem = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript); Script header = GetAssociatedScriptOrHeader(chosenItem, _rightClickedScript); if (_editors.ContainsKey(chosenItem)) { _guiController.RemovePaneIfExists(_editors[chosenItem]); } if (_editors.ContainsKey(header)) { _guiController.RemovePaneIfExists(_editors[header]); } _agsEditor.CurrentGame.Scripts.Remove(chosenItem); _agsEditor.CurrentGame.Scripts.Remove(header); _agsEditor.DeleteFileOnDiskAndSourceControl(new string[] { chosenItem.FileName, header.FileName }); _agsEditor.CurrentGame.FilesAddedOrRemoved = true; RePopulateTreeView(null); } } else if (controlID == MENU_COMMAND_MOVE_UP) { Script chosenItem = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript); _agsEditor.CurrentGame.Scripts.MoveScriptAndHeaderUp(chosenItem); RePopulateTreeView(chosenItem); } else if (controlID == MENU_COMMAND_MOVE_DOWN) { Script chosenItem = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript); _agsEditor.CurrentGame.Scripts.MoveScriptAndHeaderDown(chosenItem); RePopulateTreeView(chosenItem); } else if (controlID == MENU_COMMAND_IMPORT) { string fileName = _guiController.ShowOpenFileDialog("Select script to import...", SCRIPT_MODULE_FILE_FILTER); if (fileName != null) { ImportScriptModule(fileName); } } else if (controlID == MENU_COMMAND_EXPORT) { string fileName = _guiController.ShowSaveFileDialog("Export script as...", SCRIPT_MODULE_FILE_FILTER); if (fileName != null) { Script script = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript); Script header = GetAssociatedScriptOrHeader(script, _rightClickedScript); if (script.IsHeader) { // they selected the header to export Script temp = script; script = header; header = temp; } ExportScriptModule(header, script, fileName); } } else if (controlID == MENU_COMMAND_NEW) { string newFileName = FindFirstAvailableFileName("NewScript"); Script newScript = new Script(newFileName + ".asc", "// new module script\r\n", false); Script newHeader = new Script(newFileName + ".ash", "// new module header\r\n", true); newScript.Modified = true; newScript.SaveToDisk(); newHeader.Modified = true; newHeader.SaveToDisk(); _agsEditor.CurrentGame.Scripts.AddAtTop(newScript); _agsEditor.CurrentGame.Scripts.AddAtTop(newHeader); _agsEditor.CurrentGame.FilesAddedOrRemoved = true; RePopulateTreeView(newScript); _guiController.ProjectTree.BeginLabelEdit(this, "Scr" + newScript.FileName); } else if (controlID == COMMAND_OPEN_GLOBAL_HEADER) { CreateOrShowEditorForScript(Script.GLOBAL_HEADER_FILE_NAME); } else if (controlID == COMMAND_OPEN_GLOBAL_SCRIPT) { CreateOrShowEditorForScript(Script.GLOBAL_SCRIPT_FILE_NAME); } else if (controlID != ROOT_COMMAND) { string scriptName = controlID.Substring(3); CreateOrShowEditorForScript(scriptName); } }