bool _HYConsoleWindow::_Close (Ptr ) { _String closingNow ("Please confirm that you want to close HyPhy, terminating all unfinished tasks."); if (ProceedPrompt (closingNow, (Ptr)this)) { gtk_main_quit(); } return false; }
void _HYObjectInspector::KillObject (void) { _HYTable* dl = (_HYTable*)GetCellObject (HY_OBJECT_INSPECTOR_TABLE_ROW,0); _HYButtonBar* b1 = (_HYButtonBar*)GetCellObject (0,0); _HYPullDown* p1 = (_HYPullDown*)GetCellObject (0,2); _SimpleList sel; dl->GetSelection (sel); if (sel.lLength) { b1->EnableButton (0,true); long f; switch (p1->GetSelection()) { case 0: { for (f = 0; f<sel.lLength; f+=2) { long treeID = LocateVarByName (*(_String*)dl->GetCellData (0,sel.lData[f]/2)); if (treeID>=0) #ifndef USE_AVL_NAMES treeID = variableReindex.lData[treeID]; #else treeID = variableNames.GetXtra(treeID); #endif if (dl->cellTypes.lData[sel.lData[f]] & HY_TABLE_BOLD) { _String prompt ("Tree "); prompt = prompt & *LocateVar (treeID)->GetName() & objectInspectorKillPrompt; if (warnTree||(!ProceedPromptWithCheck (prompt,donotWarnAgain,warnTree))) { continue; } } postTreeKillEvent (GetID(), treeID); } break; } case 1: { for (f = 0; f<sel.lLength; f+=2) { long dsID = dataSetNamesList.Find ((_String*)dl->GetCellData (0,sel.lData[f]/2)); if (dsID>=0) { if (dl->cellTypes.lData[sel.lData[f]] & HY_TABLE_BOLD) { _String prompt ("Dataset "); prompt = prompt & *(_String*)dataSetNamesList(dsID) & objectInspectorKillPrompt; if (!((!warnTree)&&ProceedPromptWithCheck (prompt,donotWarnAgain,warnDS))) { continue; } } postDSKillEvent (GetID(), dsID); } } break; } case 2: { for (f = 0; f<sel.lLength; f+=2) { if (sel.lData[f]/2<modelTemplates.lLength) { _List* modelT = FindModelTemplate((_String*)dl->GetCellData (0,sel.lData[f]/2)); if (modelT) { // template model _String*fileLocation = (_String*)(*modelT)(2), errMsg (*(_String*)dl->GetCellData (0,sel.lData[f]/2)); if (dl->cellTypes.lData[sel.lData[f]] & HY_TABLE_ITALIC) { errMsg = errMsg & " is a template model. If you wish to delete it, please do so by removing the appropriate file from the \"Substitution Models\" directory."; ProblemReport (errMsg); } else { errMsg = errMsg & " is about to be deleted. This action is NOT undoable."; if (ProceedPrompt (errMsg,(Ptr)this)) { if (remove (fileLocation->sData)) { errMsg = "File delete operation failed."; ProblemReport (errMsg); } else { errMsg = *(_String*)dl->GetCellData (0,sel.lData[f]/2); for (long k=0; k<modelTemplates.lLength; k++) { _List* thisList = (_List*)modelTemplates(k); if (errMsg.Equal((_String*)(*thisList)(0))) { modelTemplates.Delete (k); } } BuildListOfObjects (2); } } } } } } break; } } } }