void MainWindow::DoPriority(int32 priority) { BRow* selected = NULL; while ((selected = teamView->CurrentSelection(selected))) { // is a team or thread? if (selected->HasLatch()) for (int i = 0; i < teamView->CountRows(selected); i++) set_thread_priority(((ThreadItem *)teamView->RowAt(i, selected))->thread, priority); else set_thread_priority(((ThreadItem *)selected)->thread, priority); } }
void MainWindow::DoResume(void) { BRow* selected = NULL; while ((selected = teamView->CurrentSelection(selected))) { // is a team or thread? if (selected->HasLatch()) for (int i = 0; i < teamView->CountRows(selected); i++) resume_thread(((ThreadItem *)teamView->RowAt(i, selected))->thread); else resume_thread(((ThreadItem *)selected)->thread); } }
void MainWindow::DoKill(void) { BRow* selected = NULL; while ((selected = teamView->CurrentSelection(selected))) { if (selected->HasLatch()) kill_team(((TeamItem *)selected)->team); else kill_thread(((ThreadItem *)selected)->thread); if (teamView->IndexOf(selected) == teamView->CountRows() - 1) teamView->MoveToRow(teamView->IndexOf(selected) - 1); else teamView->MoveToRow(teamView->IndexOf(selected) + 1); } }
void PriorityMenu::Update() { BRow* selected = fTeamListView->CurrentSelection(NULL); int32 priority; bool enabled = selected != NULL; if (enabled && fTeamListView->CurrentSelection(selected) == NULL && !selected->HasLatch()) priority = ((ThreadItem *)selected)->priority; else priority = -1; if (priority != fPriority || fEnabled != enabled) { fPriority = priority; fEnabled = enabled; if (CountItems() > 0) RemoveItems(0, CountItems(), true); if (CountItems() < 1) BuildMenu(); } }