void TExpandoMenuBar::_Track(BPoint point, uint32) { TTeamMenuItem* lastItem = dynamic_cast<TTeamMenuItem*>(fLastClickedItem); if (lastItem == NULL) return; if (lastItem->ExpanderBounds().Contains(point)) lastItem->SetArrowDirection(BControlLook::B_RIGHT_DOWN_ARROW); else { lastItem->SetArrowDirection(lastItem->IsExpanded() ? BControlLook::B_DOWN_ARROW : BControlLook::B_RIGHT_ARROW); } Invalidate(lastItem->ExpanderBounds()); }
void TExpandoMenuBar::_DoneTracking(BPoint point) { TTeamMenuItem* lastItem = dynamic_cast<TTeamMenuItem*>(fLastClickedItem); if (lastItem == NULL) return; if (!lastItem->ExpanderBounds().Contains(point)) return; lastItem->ToggleExpandState(true); lastItem->SetArrowDirection(lastItem->IsExpanded() ? BControlLook::B_DOWN_ARROW : BControlLook::B_RIGHT_ARROW); Invalidate(lastItem->ExpanderBounds()); }