void DiagramBox::messageDragged( BPoint point, uint32 transit, const BMessage *message) { D_MOUSE(("DiagramBox::messageDragged()\n")); DiagramItem *last = lastItemUnder(); if (last && (transit == B_EXITED_VIEW)) { last->messageDragged(point, B_EXITED_VIEW, message); resetItemUnder(); } else { DiagramItem *item = itemUnder(point); if (item) { if (item != last) { if (last) { last->messageDragged(point, B_EXITED_VIEW, message); } item->messageDragged(point, B_ENTERED_VIEW, message); } else { item->messageDragged(point, B_INSIDE_VIEW, message); } return; } else if (last) { last->messageDragged(point, B_EXITED_VIEW, message); } if (message->what == M_WIRE_DRAGGED) { view()->trackWire(point); } } }