示例#1
0
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
  }
}