TBarView::~TBarView() { delete fDragMessage; delete fCachedTypesList; delete fBarMenuBar; RemoveExpandedItems(); }
void TBarView::ExpandItems() { if (fExpandoMenuBar == NULL || !fVertical || fState != kExpandoState || !fBarApp->Settings()->superExpando || fExpandedItems.CountItems() <= 0) { return; } // Start at the 'bottom' of the list working up. // Prevents being thrown off by expanding items. for (int32 i = fExpandoMenuBar->CountItems() - 1; i >= 0; i--) { TTeamMenuItem* teamItem = dynamic_cast<TTeamMenuItem*>(fExpandoMenuBar->ItemAt(i)); if (teamItem != NULL) { // Start at the 'bottom' of the fExpandedItems list working up // matching the order of the fExpandoMenuBar list in the outer loop. for (int32 j = fExpandedItems.CountItems() - 1; j >= 0; j--) { BString* itemSig = static_cast<BString*>(fExpandedItems.ItemAt(j)); if (itemSig->Compare(teamItem->Signature()) == 0) { // Found it, expand the item and delete signature from // the list so that we don't consider it for later items. teamItem->ToggleExpandState(false); fExpandedItems.RemoveItem(j); delete itemSig; break; } } } } // Clean up the expanded items list RemoveExpandedItems(); }