void BrowserNode::mark_management(int choice) { BrowserNode * bn; switch (choice) { case 0: case 1: // mark / unmark toggle_mark(); return; case 2: // unmark all unmark_all(); return; case 3: // move into for (bn = marked_list.last(); bn != 0; bn = marked_list.prev()) move(bn, 0); break; case 4: // move after { BrowserNode * p = (BrowserNode *) parent(); for (bn = marked_list.last(); bn != 0; bn = marked_list.prev()) p->move(bn, this); } break; case 5: // duplicate into for (bn = marked_list.last(); bn != 0; bn = marked_list.prev()) move(bn->duplicate(this), 0); break; #ifndef SIMPLE_DUPLICATION case 6: // duplicate recursivelly into break; #endif case 7: // duplicate after { BrowserNode * p = (BrowserNode *) parent(); for (bn = marked_list.last(); bn != 0; bn = marked_list.prev()) p->move(bn->duplicate(p), this); } break; #ifndef SIMPLE_DUPLICATION case 8: // duplicate recursivelly after break; #endif } }