bool BSlowContextMenu::AddDynamicItem(add_state state) { if (fMenuBuilt) return false; if (state == B_ABORT) { ClearMenuBuildingState(); return false; } if (state == B_INITIAL_ADD && !StartBuildingItemList()) { ClearMenuBuildingState(); return false; } bigtime_t timeToBail = system_time() + kMaxTimeBuildingMenu; for (int32 count = 0; count < kItemsToAddChunk; count++) { if (!AddNextItem()) { fMenuBuilt = true; DoneBuildingItemList(); ClearMenuBuildingState(); return false; // done with menu, don't call again } if (system_time() > timeToBail) // we have been in here long enough, come back later break; } return true; // call me again, got more to show }
void SeqNavMenu::Rewind() { RemoveItems( 0, CountItems(), true ); mMenuBuilt = false; ClearMenuBuildingState(); }
void BSlowContextMenu::ForceRebuild() { ClearMenuBuildingState(); fMenuBuilt = false; }
void BNavMenu::ForceRebuild() { ClearMenuBuildingState(); fMenuBuilt = false; }