Index: trunk/src/move.c =================================================================== --- trunk/src/move.c (revision 5290) +++ trunk/src/move.c (revision 5291) @@ -61,7 +61,7 @@ MovePolygonPoint, MoveArc, NULL, - MoveArcPoint + NULL }; static pcb_opfunc_t MoveToLayerFunctions = { Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 5290) +++ trunk/src/obj_arc.c (revision 5291) @@ -608,43 +608,6 @@ return (Arc); } -void *MoveArcPoint(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_arc_t *Arc, int *end_id) -{ -#if 0 - if (Layer) { - if (Layer->On) - EraseLine(Line); - pcb_poly_restore_to_poly(PCB->Data, PCB_TYPE_LINE, Layer, Line); - pcb_r_delete_entry(Layer->line_tree, &Line->BoundingBox); - PCB_MOVE(Point->X, Point->Y, ctx->move.dx, ctx->move.dy); - pcb_line_bbox(Line); - pcb_r_insert_entry(Layer->line_tree, &Line->BoundingBox, 0); - pcb_poly_clear_from_poly(PCB->Data, PCB_TYPE_LINE, Layer, Line); - if (Layer->On) { - DrawLine(Layer, Line); - pcb_draw(); - } - return (Line); - } - else { /* must be a rat */ - - if (PCB->RatOn) - EraseRat((pcb_rat_t *) Line); - pcb_r_delete_entry(PCB->Data->rat_tree, &Line->BoundingBox); - PCB_MOVE(Point->X, Point->Y, ctx->move.dx, ctx->move.dy); - pcb_line_bbox(Line); - pcb_r_insert_entry(PCB->Data->rat_tree, &Line->BoundingBox, 0); - if (PCB->RatOn) { - DrawRat((pcb_rat_t *) Line); - pcb_draw(); - } - return (Line); - } -#endif - return NULL; -} - - /*** draw ***/ void _draw_arc(pcb_arc_t * arc) { Index: trunk/src/obj_arc_op.h =================================================================== --- trunk/src/obj_arc_op.h (revision 5290) +++ trunk/src/obj_arc_op.h (revision 5291) @@ -44,5 +44,3 @@ void *DestroyArc(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_arc_t *Arc); void *RemoveArc_op(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_arc_t *Arc); void *RotateArc(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_arc_t *Arc); -void *MoveArcPoint(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_arc_t *Arc, int *end_id); - Index: trunk/src/obj_arc_ui.c =================================================================== --- trunk/src/obj_arc_ui.c (revision 5290) +++ trunk/src/obj_arc_ui.c (revision 5291) @@ -34,7 +34,7 @@ #include -void pcb_arc_ui_move_or_copy(pcb_crosshair_t *ch) +void pcb_arc_ui_move_or_copy_angle(pcb_crosshair_t *ch) { int *end_pt = ch->AttachedObject.Ptr3; pcb_arc_t *arc = (pcb_arc_t *) pcb_crosshair.AttachedObject.Ptr2; @@ -91,6 +91,23 @@ pcb_gui->draw_line(ch->GC, arc->X, arc->Y-mark, arc->X, arc->Y+mark); } +void pcb_arc_ui_move_or_copy_endp(pcb_crosshair_t *ch) +{ + int *end_pt = ch->AttachedObject.Ptr3; + pcb_arc_t *arc = (pcb_arc_t *) pcb_crosshair.AttachedObject.Ptr2; + +} + + +void pcb_arc_ui_move_or_copy(pcb_crosshair_t *ch) +{ + if (pcb_gui->control_is_pressed()) + pcb_arc_ui_move_or_copy_endp(ch); + else + pcb_arc_ui_move_or_copy_angle(ch); +} + + int pcb_obj_ui_arc_point_bbox(int Type, void *Ptr1, void *Ptr2, void *Ptr3, pcb_box_t *res) { pcb_arc_t *arc = Ptr2;