void BListView::_RecalcItemTops(int32 start, int32 end) { int32 count = CountItems(); if ((start < 0) || (start >= count)) return; if (end >= 0) count = end + 1; float top = (start == 0) ? 0.0 : ItemAt(start - 1)->Bottom() + 1.0; for (int32 i = start; i < count; i++) { BListItem *item = ItemAt(i); item->SetTop(top); top += ceilf(item->Height()); } }