path find_scrolled_tree_path (box b, path sp, SI x, SI y, SI delta) { path bp= find_scrolled_box_path (b, sp, x, y, delta); //cout << "Find " << x << ", " << y << "; " << delta; //cout << " -> " << bp << "\n"; return b->find_tree_path (bp); }
path find_scrolled_box_path (box b, path sp, SI x, SI y, SI delta) { if (is_nil (sp)) return b->find_box_path (x, y, delta, false); else { int m= sp->item; SI xx= x - b->sx (m), yy= y - b->sy (m); SI dd= delta + get_delta (xx, b[m]->x1, b[m]->x2); return path (m, find_scrolled_box_path (b[m], sp->next, xx, yy, dd)); } }