/* ---------------------------------------------------------------------- * moves all names of an element to a new position */ static void * MoveElementName (ElementTypePtr Element) { if (PCB->ElementOn && (FRONT (Element) || PCB->InvisibleObjectsOn)) { EraseElementName (Element); ELEMENTTEXT_LOOP (Element); { if (PCB->Data->name_tree[n]) r_delete_entry (PCB->Data->name_tree[n], (BoxType *)text); MOVE_TEXT_LOWLEVEL (text, DeltaX, DeltaY); if (PCB->Data->name_tree[n]) r_insert_entry (PCB->Data->name_tree[n], (BoxType *)text, 0); } END_LOOP; DrawElementName (Element); Draw (); } else { ELEMENTTEXT_LOOP (Element); { if (PCB->Data->name_tree[n]) r_delete_entry (PCB->Data->name_tree[n], (BoxType *)text); MOVE_TEXT_LOWLEVEL (text, DeltaX, DeltaY); if (PCB->Data->name_tree[n]) r_insert_entry (PCB->Data->name_tree[n], (BoxType *)text, 0); } END_LOOP; } 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); }