/* --------------------------------------------------------------------------- * moves an element */ static void * MoveElement (ElementTypePtr Element) { bool didDraw = false; if (PCB->ElementOn && (FRONT (Element) || PCB->InvisibleObjectsOn)) { EraseElement (Element); MoveElementLowLevel (PCB->Data, Element, DeltaX, DeltaY); DrawElementName (Element); DrawElementPackage (Element); didDraw = true; } else { if (PCB->PinOn) EraseElementPinsAndPads (Element); MoveElementLowLevel (PCB->Data, Element, DeltaX, DeltaY); } if (PCB->PinOn) { DrawElementPinsAndPads (Element); didDraw = true; } if (didDraw) Draw (); return (Element); }
/* --------------------------------------------------------------------------- * erases an element */ void EraseElement (ElementType *Element) { ELEMENTLINE_LOOP (Element); { EraseLine (line); } END_LOOP; ARC_LOOP (Element); { EraseArc (arc); } END_LOOP; EraseElementName (Element); EraseElementPinsAndPads (Element); }