Index: trunk/src/crosshair.c =================================================================== --- trunk/src/crosshair.c (revision 28039) +++ trunk/src/crosshair.c (revision 28040) @@ -478,7 +478,7 @@ } pcb_render->set_color(pcb_crosshair.GC, &conf_core.appearance.color.crosshair); - pcb_tool_draw_attached(); + pcb_tool_draw_attached(hidlib); /* an attached box does not depend on a special mode */ if (pcb_crosshair.AttachedBox.State == PCB_CH_STATE_SECOND || pcb_crosshair.AttachedBox.State == PCB_CH_STATE_THIRD) { @@ -1132,7 +1132,7 @@ pcb_stub_stroke_record(ev_x, ev_y); if (pcb_crosshair_move_absolute(ev_x, ev_y)) { /* update object position and cursor location */ - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(&PCB->hidlib); pcb_event(&PCB->hidlib, PCB_EVENT_DRAW_CROSSHAIR_CHATT, NULL); pcb_notify_crosshair_change(pcb_true); } Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 28039) +++ trunk/src/gui_act.c (revision 28040) @@ -143,7 +143,7 @@ /* toggle line-adjust flag */ case F_ToggleAllDirections: conf_toggle_editor(all_direction_lines); - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(argv[0].val.argv0.user_call_ctx); break; case F_CycleClip: @@ -155,7 +155,7 @@ else { pcb_conf_setf(CFR_DESIGN,"editor/line_refraction",-1,"%d",(conf_core.editor.line_refraction +1) % 3); } - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(argv[0].val.argv0.user_call_ctx); pcb_notify_crosshair_change(pcb_true); break; @@ -398,31 +398,31 @@ pcb_notify_crosshair_change(pcb_false); switch(fgw_keyword(&argv[1])) { case F_Arc: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARC); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARC); break; case F_Arrow: case F_None: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); break; case F_Copy: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_COPY); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_COPY); break; case F_InsertPoint: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_INSERT_POINT); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_INSERT_POINT); break; case F_Line: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_LINE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_LINE); break; case F_Lock: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_LOCK); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_LOCK); break; case F_Move: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_MOVE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_MOVE); break; case F_Cancel: { int saved_mode = pcbhl_conf.editor.mode; - pcb_tool_select_by_id(&PCB->hidlib, saved_mode); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, saved_mode); } break; case F_Escape: @@ -439,48 +439,48 @@ case PCB_MODE_RUBBERBAND_MOVE: case PCB_MODE_THERMAL: case PCB_MODE_LOCK: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); pcb_tool_note.Hit = pcb_tool_note.Click = 0; /* if the mouse button is still pressed, don't start selecting a box */ break; case PCB_MODE_LINE: if (pcb_crosshair.AttachedLine.State == PCB_CH_STATE_FIRST) { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); } else { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_LINE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_LINE); } break; case PCB_MODE_RECTANGLE: if (pcb_crosshair.AttachedBox.State == PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); else { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_RECTANGLE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_RECTANGLE); } break; case PCB_MODE_POLYGON: if (pcb_crosshair.AttachedLine.State == PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); else { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_POLYGON); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_POLYGON); } break; case PCB_MODE_POLYGON_HOLE: if (pcb_crosshair.AttachedLine.State == PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); else { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_POLYGON_HOLE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_POLYGON_HOLE); } break; case PCB_MODE_ARC: if (pcb_crosshair.AttachedBox.State == PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); else { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARC); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARC); } break; @@ -494,16 +494,16 @@ break; case F_Notify: - pcb_notify_mode(&PCB->hidlib); + pcb_notify_mode(argv[0].val.argv0.user_call_ctx); break; case F_PasteBuffer: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_PASTE_BUFFER); break; case F_Polygon: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_POLYGON); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_POLYGON); break; case F_PolygonHole: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_POLYGON_HOLE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_POLYGON_HOLE); break; case F_Release: if ((pcb_mid_stroke) && (conf_core.editor.enable_stroke) && (pcb_stub_stroke_finish(argv[0].val.argv0.user_call_ctx) == 0)) { @@ -514,16 +514,16 @@ pcb_notify_crosshair_change(pcb_true); return 1; } - pcb_release_mode(&PCB->hidlib); + pcb_release_mode(argv[0].val.argv0.user_call_ctx); break; case F_Remove: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_REMOVE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_REMOVE); break; case F_Rectangle: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_RECTANGLE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_RECTANGLE); break; case F_Rotate: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ROTATE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ROTATE); break; case F_Stroke: if (conf_core.editor.enable_stroke) { @@ -533,36 +533,36 @@ /* Handle middle mouse button restarts of drawing mode. If not in a drawing mode, middle mouse button will select objects. */ if (pcbhl_conf.editor.mode == PCB_MODE_LINE && pcb_crosshair.AttachedLine.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_LINE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_LINE); else if (pcbhl_conf.editor.mode == PCB_MODE_ARC && pcb_crosshair.AttachedBox.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARC); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARC); else if (pcbhl_conf.editor.mode == PCB_MODE_RECTANGLE && pcb_crosshair.AttachedBox.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_RECTANGLE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_RECTANGLE); else if (pcbhl_conf.editor.mode == PCB_MODE_POLYGON && pcb_crosshair.AttachedLine.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_POLYGON); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_POLYGON); else { - pcb_tool_save(&PCB->hidlib); + pcb_tool_save(argv[0].val.argv0.user_call_ctx); pcb_tool_is_saved = pcb_true; - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); - pcb_notify_mode(&PCB->hidlib); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARROW); + pcb_notify_mode(argv[0].val.argv0.user_call_ctx); } break; case F_Text: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_TEXT); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_TEXT); break; case F_Thermal: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_THERMAL); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_THERMAL); break; case F_Via: - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_VIA); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_VIA); break; case F_Restore: /* restore the last saved tool */ - pcb_tool_restore(&PCB->hidlib); + pcb_tool_restore(argv[0].val.argv0.user_call_ctx); break; case F_Save: /* save currently selected tool */ - pcb_tool_save(&PCB->hidlib); + pcb_tool_save(argv[0].val.argv0.user_call_ctx); break; } pcb_notify_crosshair_change(pcb_true); @@ -872,9 +872,9 @@ set_same_(((pcb_line_t *) ptr2)->Thickness, -1, -1, ((pcb_line_t *) ptr2)->Clearance / 2, NULL); layer = (pcb_layer_t *) ptr1; if (pcbhl_conf.editor.mode != PCB_MODE_LINE) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_LINE); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_LINE); pcb_notify_crosshair_change(pcb_true); - pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(argv[0].val.argv0.user_call_ctx, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; case PCB_OBJ_ARC: @@ -882,9 +882,9 @@ set_same_(((pcb_arc_t *) ptr2)->Thickness, -1, -1, ((pcb_arc_t *) ptr2)->Clearance / 2, NULL); layer = (pcb_layer_t *) ptr1; if (pcbhl_conf.editor.mode != PCB_MODE_ARC) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARC); + pcb_tool_select_by_id(argv[0].val.argv0.user_call_ctx, PCB_MODE_ARC); pcb_notify_crosshair_change(pcb_true); - pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(argv[0].val.argv0.user_call_ctx, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; case PCB_OBJ_POLY: Index: trunk/src/hidlib_pcb.c =================================================================== --- trunk/src/hidlib_pcb.c (revision 28039) +++ trunk/src/hidlib_pcb.c (revision 28040) @@ -24,9 +24,10 @@ * mailing list: pcb-rnd (at) list.repo.hu (send "subscribe") */ +#include "board.h" #include "tool.h" void pcb_hidlib_adjust_attached_objects(void) { - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(&PCB->hidlib); } Index: trunk/src/tool.c =================================================================== --- trunk/src/tool.c (revision 28039) +++ trunk/src/tool.c (revision 28040) @@ -226,34 +226,34 @@ wrap_void(uninit, ()); } -void pcb_tool_notify_mode(void) +void pcb_tool_notify_mode(pcb_hidlib_t *hidlib) { - wrap_void(notify_mode, ()); + wrap_void(notify_mode, (hidlib)); } void pcb_tool_release_mode(pcb_hidlib_t *hidlib) { - wrap_void(release_mode, ()); + wrap_void(release_mode, (hidlib)); } -void pcb_tool_adjust_attached_objects(void) +void pcb_tool_adjust_attached_objects(pcb_hidlib_t *hl) { - wrap_void(adjust_attached_objects, ()); + wrap_void(adjust_attached_objects, (hl)); } -void pcb_tool_draw_attached(void) +void pcb_tool_draw_attached(pcb_hidlib_t *hl) { - wrap_void(draw_attached, ()); + wrap_void(draw_attached, (hl)); } -pcb_bool pcb_tool_undo_act(void) +pcb_bool pcb_tool_undo_act(pcb_hidlib_t *hl) { - wrap_retv(undo_act, return pcb_true, ()); + wrap_retv(undo_act, return pcb_true, (hl)); } -pcb_bool pcb_tool_redo_act(void) +pcb_bool pcb_tool_redo_act(pcb_hidlib_t *hl) { - wrap_retv(redo_act, return pcb_true, ()); + wrap_retv(redo_act, return pcb_true, (hl)); } @@ -439,6 +439,6 @@ if (pcb_data_clear_flag(PCB->Data, PCB_FLAG_WARN, 1, 0) > 0) pcb_board_set_changed_flag(pcb_true); } - pcb_tool_notify_mode(); + pcb_tool_notify_mode(hidlib); pcb_draw(); } Index: trunk/src/tool.h =================================================================== --- trunk/src/tool.h (revision 28039) +++ trunk/src/tool.h (revision 28040) @@ -80,12 +80,12 @@ /* tool implementation */ void (*init)(void); void (*uninit)(void); - void (*notify_mode)(void); - void (*release_mode)(void); - void (*adjust_attached_objects)(void); - void (*draw_attached)(void); - pcb_bool (*undo_act)(void); - pcb_bool (*redo_act)(void); + void (*notify_mode)(pcb_hidlib_t *hl); + void (*release_mode)(pcb_hidlib_t *hl); + void (*adjust_attached_objects)(pcb_hidlib_t *hl); + void (*draw_attached)(pcb_hidlib_t *hl); + pcb_bool (*undo_act)(pcb_hidlib_t *hl); + pcb_bool (*redo_act)(pcb_hidlib_t *hl); pcb_bool allow_when_drawing_ratlines; } pcb_tool_t; @@ -121,11 +121,11 @@ /**** Tool function wrappers; calling these will operate on the current tool as defined in pcbhl_conf.editor.mode ****/ -void pcb_tool_notify_mode(void); -void pcb_tool_adjust_attached_objects(void); -void pcb_tool_draw_attached(void); -pcb_bool pcb_tool_undo_act(void); -pcb_bool pcb_tool_redo_act(void); +void pcb_tool_notify_mode(pcb_hidlib_t *hidlib); +void pcb_tool_adjust_attached_objects(pcb_hidlib_t *hl); +void pcb_tool_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_undo_act(pcb_hidlib_t *hl); +pcb_bool pcb_tool_redo_act(pcb_hidlib_t *hl); /**** tool helper functions ****/ Index: trunk/src/tool_arc.c =================================================================== --- trunk/src/tool_arc.c (revision 28039) +++ trunk/src/tool_arc.c (revision 28040) @@ -58,7 +58,7 @@ pcb_crosshair.AttachedBox.State = PCB_CH_STATE_SECOND; pcb_crosshair.AttachedBox.Point1.X = pcb_crosshair.AttachedBox.Point2.X = pcb_crosshair.AttachedLine.Point1.X; pcb_crosshair.AttachedBox.Point1.Y = pcb_crosshair.AttachedBox.Point2.Y = pcb_crosshair.AttachedLine.Point1.Y; - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(NULL); } pcb_notify_crosshair_change(pcb_true); } @@ -75,7 +75,7 @@ pcb_notify_crosshair_change(pcb_true); } -void pcb_tool_arc_notify_mode(void) +void pcb_tool_arc_notify_mode(pcb_hidlib_t *hl) { switch (pcb_crosshair.AttachedBox.State) { case PCB_CH_STATE_FIRST: @@ -131,12 +131,12 @@ } } -void pcb_tool_arc_adjust_attached_objects(void) +void pcb_tool_arc_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_crosshair.AttachedBox.otherway = pcb_gui->shift_is_pressed(pcb_gui); } -void pcb_tool_arc_draw_attached(void) +void pcb_tool_arc_draw_attached(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedBox.State != PCB_CH_STATE_FIRST) { pcb_xordraw_attached_arc(conf_core.design.line_thickness); @@ -168,7 +168,7 @@ } -pcb_bool pcb_tool_arc_undo_act(void) +pcb_bool pcb_tool_arc_undo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedBox.State == PCB_CH_STATE_SECOND) { pcb_crosshair.AttachedBox.State = PCB_CH_STATE_FIRST; @@ -183,7 +183,7 @@ pcb_arc_get_end((pcb_arc_t *) ptr2, 0, &pcb_crosshair.AttachedBox.Point2.X, &pcb_crosshair.AttachedBox.Point2.Y); pcb_crosshair.AttachedBox.Point1.X = pcb_crosshair.AttachedBox.Point2.X; pcb_crosshair.AttachedBox.Point1.Y = pcb_crosshair.AttachedBox.Point2.Y; - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(hl); if (--pcb_added_lines == 0) pcb_crosshair.AttachedBox.State = PCB_CH_STATE_SECOND; } Index: trunk/src/tool_arc.h =================================================================== --- trunk/src/tool_arc.h (revision 28039) +++ trunk/src/tool_arc.h (revision 28040) @@ -2,7 +2,7 @@ void pcb_tool_arc_init(void); void pcb_tool_arc_uninit(void); -void pcb_tool_arc_notify_mode(void); -void pcb_tool_arc_adjust_attached_objects(void); -void pcb_tool_arc_draw_attached(void); -pcb_bool pcb_tool_arc_undo_act(void); +void pcb_tool_arc_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_arc_adjust_attached_objects(pcb_hidlib_t *hl); +void pcb_tool_arc_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_arc_undo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_arrow.c =================================================================== --- trunk/src/tool_arrow.c (revision 28039) +++ trunk/src/tool_arrow.c (revision 28040) @@ -124,7 +124,7 @@ } } -void pcb_tool_arrow_notify_mode(void) +void pcb_tool_arrow_notify_mode(pcb_hidlib_t *hl) { void *ptr1, *ptr2, *ptr3; int type; @@ -161,7 +161,7 @@ } } -void pcb_tool_arrow_release_mode(void) +void pcb_tool_arrow_release_mode(pcb_hidlib_t *hl) { pcb_box_t box; @@ -210,7 +210,7 @@ } } -void pcb_tool_arrow_adjust_attached_objects(void) +void pcb_tool_arrow_adjust_attached_objects(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedBox.State) { pcb_crosshair.AttachedBox.Point2.X = pcb_crosshair.X; Index: trunk/src/tool_arrow.h =================================================================== --- trunk/src/tool_arrow.h (revision 28039) +++ trunk/src/tool_arrow.h (revision 28040) @@ -1,6 +1,6 @@ extern pcb_tool_t pcb_tool_arrow; void pcb_tool_arrow_uninit(void); -void pcb_tool_arrow_notify_mode(void); -void pcb_tool_arrow_release_mode(void); -void pcb_tool_arrow_adjust_attached_objects(void); +void pcb_tool_arrow_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_arrow_release_mode(pcb_hidlib_t *hl); +void pcb_tool_arrow_adjust_attached_objects(pcb_hidlib_t *hl); Index: trunk/src/tool_buffer.c =================================================================== --- trunk/src/tool_buffer.c (revision 28039) +++ trunk/src/tool_buffer.c (revision 28040) @@ -55,7 +55,7 @@ pcb_crosshair_set_range(0, 0, PCB->hidlib.size_x, PCB->hidlib.size_y); } -void pcb_tool_buffer_notify_mode(void) +void pcb_tool_buffer_notify_mode(pcb_hidlib_t *hl) { if (pcb_gui->shift_is_pressed(pcb_gui)) { pcb_actionva(&PCB->hidlib, "ReplaceFootprint", "object", "@buffer", "dumb", NULL); @@ -68,11 +68,11 @@ } } -void pcb_tool_buffer_release_mode(void) +void pcb_tool_buffer_release_mode(pcb_hidlib_t *hl) { if (pcb_tool_note.Moving) { pcb_undo_restore_serial(); - pcb_tool_buffer_notify_mode(); + pcb_tool_buffer_notify_mode(hl); pcb_buffer_clear(PCB, PCB_PASTEBUFFER); pcb_buffer_set_number(pcb_tool_note.Buffer); pcb_tool_note.Moving = pcb_false; @@ -80,13 +80,13 @@ } } -void pcb_tool_buffer_adjust_attached_objects(void) +void pcb_tool_buffer_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_crosshair.AttachedObject.tx = pcb_crosshair.X; pcb_crosshair.AttachedObject.ty = pcb_crosshair.Y; } -void pcb_tool_buffer_draw_attached(void) +void pcb_tool_buffer_draw_attached(pcb_hidlib_t *hl) { pcb_xordraw_buffer(PCB_PASTEBUFFER); } Index: trunk/src/tool_buffer.h =================================================================== --- trunk/src/tool_buffer.h (revision 28039) +++ trunk/src/tool_buffer.h (revision 28040) @@ -2,6 +2,6 @@ void pcb_tool_buffer_init(void); void pcb_tool_buffer_uninit(void); -void pcb_tool_buffer_notify_mode(void); -void pcb_tool_buffer_release_mode(void); -void pcb_tool_buffer_draw_attached(void); +void pcb_tool_buffer_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_buffer_release_mode(pcb_hidlib_t *hl); +void pcb_tool_buffer_draw_attached(pcb_hidlib_t *hl); Index: trunk/src/tool_copy.c =================================================================== --- trunk/src/tool_copy.c (revision 28039) +++ trunk/src/tool_copy.c (revision 28040) @@ -48,7 +48,7 @@ pcb_notify_crosshair_change(pcb_true); } -void pcb_tool_copy_notify_mode(void) +void pcb_tool_copy_notify_mode(pcb_hidlib_t *hl) { switch (pcb_crosshair.AttachedObject.State) { /* first notify, lookup object */ @@ -87,26 +87,26 @@ } } -void pcb_tool_copy_release_mode (void) +void pcb_tool_copy_release_mode(pcb_hidlib_t *hl) { if (pcb_tool_note.Hit) { - pcb_tool_copy_notify_mode(); + pcb_tool_copy_notify_mode(hl); pcb_tool_note.Hit = 0; } } -void pcb_tool_copy_adjust_attached_objects(void) +void pcb_tool_copy_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_crosshair.AttachedObject.tx = pcb_crosshair.X; pcb_crosshair.AttachedObject.ty = pcb_crosshair.Y; } -void pcb_tool_copy_draw_attached(void) +void pcb_tool_copy_draw_attached(pcb_hidlib_t *hl) { pcb_xordraw_movecopy(); } -pcb_bool pcb_tool_copy_undo_act(void) +pcb_bool pcb_tool_copy_undo_act(pcb_hidlib_t *hl) { /* don't allow undo in the middle of an operation */ if (pcb_crosshair.AttachedObject.State != PCB_CH_STATE_FIRST) Index: trunk/src/tool_copy.h =================================================================== --- trunk/src/tool_copy.h (revision 28039) +++ trunk/src/tool_copy.h (revision 28040) @@ -1,7 +1,7 @@ extern pcb_tool_t pcb_tool_copy; void pcb_tool_copy_uninit(void); -void pcb_tool_copy_notify_mode(void); -void pcb_tool_copy_release_mode (void); -void pcb_tool_copy_draw_attached(void); -pcb_bool pcb_tool_copy_undo_act(void); +void pcb_tool_copy_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_copy_release_mode(pcb_hidlib_t *hl); +void pcb_tool_copy_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_copy_undo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_insert.c =================================================================== --- trunk/src/tool_insert.c (revision 28039) +++ trunk/src/tool_insert.c (revision 28040) @@ -59,7 +59,7 @@ pcb_notify_crosshair_change(pcb_true); } -void pcb_tool_insert_notify_mode(void) +void pcb_tool_insert_notify_mode(pcb_hidlib_t *hl) { switch (pcb_crosshair.AttachedObject.State) { /* first notify, lookup object */ @@ -110,7 +110,7 @@ } } -void pcb_tool_insert_adjust_attached_objects(void) +void pcb_tool_insert_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_point_t *pnt; pnt = pcb_adjust_insert_point(); @@ -118,12 +118,12 @@ InsertedPoint = *pnt; } -void pcb_tool_insert_draw_attached(void) +void pcb_tool_insert_draw_attached(pcb_hidlib_t *hl) { pcb_xordraw_insert_pt_obj(); } -pcb_bool pcb_tool_insert_undo_act(void) +pcb_bool pcb_tool_insert_undo_act(pcb_hidlib_t *hl) { /* don't allow undo in the middle of an operation */ if (pcb_crosshair.AttachedObject.State != PCB_CH_STATE_FIRST) Index: trunk/src/tool_insert.h =================================================================== --- trunk/src/tool_insert.h (revision 28039) +++ trunk/src/tool_insert.h (revision 28040) @@ -1,7 +1,7 @@ extern pcb_tool_t pcb_tool_insert; void pcb_tool_insert_uninit(void); -void pcb_tool_insert_notify_mode(void); -void pcb_tool_insert_adjust_attached_objects(void); -void pcb_tool_insert_draw_attached(void); -pcb_bool pcb_tool_insert_undo_act(void); +void pcb_tool_insert_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_insert_adjust_attached_objects(pcb_hidlib_t *hl); +void pcb_tool_insert_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_insert_undo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_line.c =================================================================== --- trunk/src/tool_line.c (revision 28039) +++ trunk/src/tool_line.c (revision 28040) @@ -69,7 +69,7 @@ pcb_crosshair.AttachedLine.State = PCB_CH_STATE_SECOND; pcb_crosshair.AttachedLine.Point1.X = pcb_crosshair.AttachedLine.Point2.X = pcb_crosshair.AttachedBox.Point1.X; pcb_crosshair.AttachedLine.Point1.Y = pcb_crosshair.AttachedLine.Point2.Y = pcb_crosshair.AttachedBox.Point1.Y; - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(NULL); } else { if (conf_core.editor.auto_drc) { @@ -140,7 +140,7 @@ } } -void pcb_tool_line_notify_mode(void) +void pcb_tool_line_notify_mode(pcb_hidlib_t *hl) { void *ptr1, *ptr2, *ptr3; @@ -335,7 +335,7 @@ } } -void pcb_tool_line_adjust_attached_objects(void) +void pcb_tool_line_adjust_attached_objects(pcb_hidlib_t *hl) { /* don't draw outline when ctrl key is pressed */ if (pcb_gui->control_is_pressed(pcb_gui)) { @@ -347,7 +347,7 @@ } } -void pcb_tool_line_draw_attached(void) +void pcb_tool_line_draw_attached(pcb_hidlib_t *hl) { if (PCB->RatDraw) { /* draw only if starting point exists and the line has length */ @@ -384,7 +384,7 @@ } } -pcb_bool pcb_tool_line_undo_act(void) +pcb_bool pcb_tool_line_undo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedLine.State == PCB_CH_STATE_SECOND) { if (conf_core.editor.auto_drc) @@ -434,7 +434,7 @@ pcb_crosshair.AttachedLine.Point1.Y = pcb_crosshair.AttachedLine.Point2.Y = ptr2->Point2.Y; } pcb_crosshair_grid_fit(pcb_crosshair.X, pcb_crosshair.Y); - pcb_tool_adjust_attached_objects(); + pcb_tool_adjust_attached_objects(hl); if (--pcb_added_lines == 0) { pcb_crosshair.AttachedLine.State = PCB_CH_STATE_SECOND; last_layer = CURRENT; @@ -450,7 +450,7 @@ return pcb_true; } -pcb_bool pcb_tool_line_redo_act(void) +pcb_bool pcb_tool_line_redo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedLine.State == PCB_CH_STATE_SECOND) return pcb_false; Index: trunk/src/tool_line.h =================================================================== --- trunk/src/tool_line.h (revision 28039) +++ trunk/src/tool_line.h (revision 28040) @@ -2,8 +2,8 @@ void pcb_tool_line_init(void); void pcb_tool_line_uninit(void); -void pcb_tool_line_notify_mode(void); -void pcb_tool_line_adjust_attached_objects(void); -void pcb_tool_line_draw_attached(void); -pcb_bool pcb_tool_line_undo_act(void); -pcb_bool pcb_tool_line_redo_act(void); +void pcb_tool_line_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_line_adjust_attached_objects(pcb_hidlib_t *hl); +void pcb_tool_line_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_line_undo_act(pcb_hidlib_t *hl); +pcb_bool pcb_tool_line_redo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_lock.c =================================================================== --- trunk/src/tool_lock.c (revision 28039) +++ trunk/src/tool_lock.c (revision 28040) @@ -45,7 +45,7 @@ #define PCB_OBJ_CLASS_LOCK (PCB_OBJ_PSTK | PCB_OBJ_LINE | PCB_OBJ_ARC | PCB_OBJ_POLY | PCB_OBJ_SUBC | PCB_OBJ_TEXT | PCB_OBJ_LOCKED) -void pcb_tool_lock_notify_mode(void) +void pcb_tool_lock_notify_mode(pcb_hidlib_t *hl) { void *ptr1, *ptr2, *ptr3; int type; Index: trunk/src/tool_lock.h =================================================================== --- trunk/src/tool_lock.h (revision 28039) +++ trunk/src/tool_lock.h (revision 28040) @@ -1,3 +1,3 @@ extern pcb_tool_t pcb_tool_lock; -void pcb_tool_lock_notify_mode(void); +void pcb_tool_lock_notify_mode(pcb_hidlib_t *hl); Index: trunk/src/tool_move.c =================================================================== --- trunk/src/tool_move.c (revision 28039) +++ trunk/src/tool_move.c (revision 28040) @@ -49,7 +49,7 @@ pcb_notify_crosshair_change(pcb_true); } -void pcb_tool_move_notify_mode(void) +void pcb_tool_move_notify_mode(pcb_hidlib_t *hl) { pcb_coord_t dx, dy; @@ -94,26 +94,26 @@ } } -void pcb_tool_move_release_mode (void) +void pcb_tool_move_release_mode(pcb_hidlib_t *hl) { if (pcb_tool_note.Hit) { - pcb_tool_move_notify_mode(); + pcb_tool_move_notify_mode(hl); pcb_tool_note.Hit = 0; } } -void pcb_tool_move_adjust_attached_objects(void) +void pcb_tool_move_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_crosshair.AttachedObject.tx = pcb_crosshair.X; pcb_crosshair.AttachedObject.ty = pcb_crosshair.Y; } -void pcb_tool_move_draw_attached(void) +void pcb_tool_move_draw_attached(pcb_hidlib_t *hl) { pcb_xordraw_movecopy(); } -pcb_bool pcb_tool_move_undo_act(void) +pcb_bool pcb_tool_move_undo_act(pcb_hidlib_t *hl) { /* don't allow undo in the middle of an operation */ if (pcb_crosshair.AttachedObject.State != PCB_CH_STATE_FIRST) Index: trunk/src/tool_move.h =================================================================== --- trunk/src/tool_move.h (revision 28039) +++ trunk/src/tool_move.h (revision 28040) @@ -1,7 +1,7 @@ extern pcb_tool_t pcb_tool_move; void pcb_tool_move_uninit(void); -void pcb_tool_move_notify_mode(void); -void pcb_tool_move_release_mode (void); -void pcb_tool_move_draw_attached(void); -pcb_bool pcb_tool_move_undo_act(void); +void pcb_tool_move_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_move_release_mode(pcb_hidlib_t *hl); +void pcb_tool_move_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_move_undo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_poly.c =================================================================== --- trunk/src/tool_poly.c (revision 28039) +++ trunk/src/tool_poly.c (revision 28040) @@ -52,7 +52,7 @@ TODO("remove this when pcb_tool_poly_notify_mode() loses PCB") #include "board.h" -void pcb_tool_poly_notify_mode(void) +void pcb_tool_poly_notify_mode(pcb_hidlib_t *hl) { pcb_point_t *points = pcb_crosshair.AttachedPolygon.Points; pcb_cardinal_t n = pcb_crosshair.AttachedPolygon.PointN; @@ -97,7 +97,7 @@ } } -void pcb_tool_poly_adjust_attached_objects(void) +void pcb_tool_poly_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_attached_line_t *line = &pcb_crosshair.AttachedLine; @@ -116,7 +116,7 @@ pcb_line_45(line); } -void pcb_tool_poly_draw_attached(void) +void pcb_tool_poly_draw_attached(pcb_hidlib_t *hl) { /* draw only if starting point is set */ if (pcb_crosshair.AttachedLine.State != PCB_CH_STATE_FIRST) @@ -130,7 +130,7 @@ } } -pcb_bool pcb_tool_poly_undo_act(void) +pcb_bool pcb_tool_poly_undo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedPolygon.PointN) { pcb_polygon_go_to_prev_point(); @@ -139,7 +139,7 @@ return pcb_true; } -pcb_bool pcb_tool_poly_redo_act(void) +pcb_bool pcb_tool_poly_redo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedPolygon.PointN) { pcb_polygon_go_to_next_point(); Index: trunk/src/tool_poly.h =================================================================== --- trunk/src/tool_poly.h (revision 28039) +++ trunk/src/tool_poly.h (revision 28040) @@ -1,8 +1,8 @@ extern pcb_tool_t pcb_tool_poly; void pcb_tool_poly_uninit(void); -void pcb_tool_poly_notify_mode(void); -void pcb_tool_poly_adjust_attached_objects(void); -void pcb_tool_poly_draw_attached(void); -pcb_bool pcb_tool_poly_undo_act(void); -pcb_bool pcb_tool_poly_redo_act(void); +void pcb_tool_poly_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_poly_adjust_attached_objects(pcb_hidlib_t *hl); +void pcb_tool_poly_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_poly_undo_act(pcb_hidlib_t *hl); +pcb_bool pcb_tool_poly_redo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_polyhole.c =================================================================== --- trunk/src/tool_polyhole.c (revision 28039) +++ trunk/src/tool_polyhole.c (revision 28040) @@ -53,7 +53,7 @@ TODO("remove this when pcb_tool_polyhole_notify_mode() loses PCB") #include "board.h" -void pcb_tool_polyhole_notify_mode(void) +void pcb_tool_polyhole_notify_mode(pcb_hidlib_t *hl) { switch (pcb_crosshair.AttachedObject.State) { /* first notify, lookup object */ @@ -126,7 +126,7 @@ } } -void pcb_tool_polyhole_adjust_attached_objects(void) +void pcb_tool_polyhole_adjust_attached_objects(pcb_hidlib_t *hl) { pcb_attached_line_t *line = &pcb_crosshair.AttachedLine; @@ -145,7 +145,7 @@ pcb_line_45(line); } -void pcb_tool_polyhole_draw_attached(void) +void pcb_tool_polyhole_draw_attached(pcb_hidlib_t *hl) { /* draw only if starting point is set */ if (pcb_crosshair.AttachedLine.State != PCB_CH_STATE_FIRST) @@ -159,7 +159,7 @@ } } -pcb_bool pcb_tool_polyhole_undo_act(void) +pcb_bool pcb_tool_polyhole_undo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedPolygon.PointN) { pcb_polygon_go_to_prev_point(); @@ -168,7 +168,7 @@ return pcb_true; } -pcb_bool pcb_tool_polyhole_redo_act(void) +pcb_bool pcb_tool_polyhole_redo_act(pcb_hidlib_t *hl) { if (pcb_crosshair.AttachedPolygon.PointN) { pcb_polygon_go_to_next_point(); Index: trunk/src/tool_polyhole.h =================================================================== --- trunk/src/tool_polyhole.h (revision 28039) +++ trunk/src/tool_polyhole.h (revision 28040) @@ -1,8 +1,8 @@ extern pcb_tool_t pcb_tool_polyhole; void pcb_tool_polyhole_uninit(void); -void pcb_tool_polyhole_notify_mode(void); -void pcb_tool_polyhole_adjust_attached_objects(void); -void pcb_tool_polyhole_draw_attached(void); -pcb_bool pcb_tool_polyhole_undo_act(void); -pcb_bool pcb_tool_polyhole_redo_act(void); +void pcb_tool_polyhole_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_polyhole_adjust_attached_objects(pcb_hidlib_t *hl); +void pcb_tool_polyhole_draw_attached(pcb_hidlib_t *hl); +pcb_bool pcb_tool_polyhole_undo_act(pcb_hidlib_t *hl); +pcb_bool pcb_tool_polyhole_redo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_rectangle.c =================================================================== --- trunk/src/tool_rectangle.c (revision 28039) +++ trunk/src/tool_rectangle.c (revision 28040) @@ -52,7 +52,7 @@ pcb_notify_crosshair_change(pcb_true); } -void pcb_tool_rectangle_notify_mode(void) +void pcb_tool_rectangle_notify_mode(pcb_hidlib_t *hl) { /* do update of position */ pcb_tool_notify_block(); @@ -91,7 +91,7 @@ } } -void pcb_tool_rectangle_adjust_attached_objects(void) +void pcb_tool_rectangle_adjust_attached_objects(pcb_hidlib_t *hl) { switch (pcb_crosshair.AttachedBox.State) { case PCB_CH_STATE_SECOND: /* one corner is selected */ @@ -104,7 +104,7 @@ } } -pcb_bool pcb_tool_rectangle_anydo_act(void) +pcb_bool pcb_tool_rectangle_anydo_act(pcb_hidlib_t *hl) { /* don't allow undo in the middle of an operation */ if (pcb_crosshair.AttachedBox.State != PCB_CH_STATE_FIRST) Index: trunk/src/tool_rectangle.h =================================================================== --- trunk/src/tool_rectangle.h (revision 28039) +++ trunk/src/tool_rectangle.h (revision 28040) @@ -1,6 +1,6 @@ extern pcb_tool_t pcb_tool_rectangle; void pcb_tool_rectangle_uninit(void); -void pcb_tool_rectangle_notify_mode(void); -void pcb_tool_rectangle_adjust_attached_objects(void); -pcb_bool pcb_tool_rectangle_undo_act(void); +void pcb_tool_rectangle_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_rectangle_adjust_attached_objects(pcb_hidlib_t *hl); +pcb_bool pcb_tool_rectangle_undo_act(pcb_hidlib_t *hl); Index: trunk/src/tool_remove.c =================================================================== --- trunk/src/tool_remove.c (revision 28039) +++ trunk/src/tool_remove.c (revision 28040) @@ -44,7 +44,7 @@ #include "tool.h" -void pcb_tool_remove_notify_mode(void) +void pcb_tool_remove_notify_mode(pcb_hidlib_t *hl) { void *ptr1, *ptr2, *ptr3; pcb_any_obj_t *obj; Index: trunk/src/tool_remove.h =================================================================== --- trunk/src/tool_remove.h (revision 28039) +++ trunk/src/tool_remove.h (revision 28040) @@ -1,3 +1,3 @@ extern pcb_tool_t pcb_tool_remove; -void pcb_tool_remove_notify_mode(void); +void pcb_tool_remove_notify_mode(pcb_hidlib_t *hl); Index: trunk/src/tool_rotate.c =================================================================== --- trunk/src/tool_rotate.c (revision 28039) +++ trunk/src/tool_rotate.c (revision 28040) @@ -41,7 +41,7 @@ #include "tool.h" -void pcb_tool_rotate_notify_mode(void) +void pcb_tool_rotate_notify_mode(pcb_hidlib_t *hl) { pcb_screen_obj_rotate90(pcb_tool_note.X, pcb_tool_note.Y, pcb_gui->shift_is_pressed(pcb_gui)? (conf_core.editor.show_solder_side ? 1 : 3) : (conf_core.editor.show_solder_side ? 3 : 1)); Index: trunk/src/tool_rotate.h =================================================================== --- trunk/src/tool_rotate.h (revision 28039) +++ trunk/src/tool_rotate.h (revision 28040) @@ -1,3 +1,3 @@ extern pcb_tool_t pcb_tool_rotate; -void pcb_tool_rotate_notify_mode(void); +void pcb_tool_rotate_notify_mode(pcb_hidlib_t *hl); Index: trunk/src/tool_text.c =================================================================== --- trunk/src/tool_text.c (revision 28039) +++ trunk/src/tool_text.c (revision 28040) @@ -45,7 +45,7 @@ #include "obj_text_draw.h" -void pcb_tool_text_notify_mode(void) +void pcb_tool_text_notify_mode(pcb_hidlib_t *hl) { char *string; @@ -69,7 +69,7 @@ } } -void pcb_tool_text_draw_attached(void) +void pcb_tool_text_draw_attached(pcb_hidlib_t *hl) { pcb_text_t text; int flag = PCB_FLAG_CLEARLINE; Index: trunk/src/tool_text.h =================================================================== --- trunk/src/tool_text.h (revision 28039) +++ trunk/src/tool_text.h (revision 28040) @@ -1,3 +1,3 @@ extern pcb_tool_t pcb_tool_text; -void pcb_tool_text_notify_mode(void); +void pcb_tool_text_notify_mode(pcb_hidlib_t *hl); Index: trunk/src/tool_thermal.c =================================================================== --- trunk/src/tool_thermal.c (revision 28039) +++ trunk/src/tool_thermal.c (revision 28040) @@ -89,7 +89,7 @@ } -void pcb_tool_thermal_notify_mode(void) +void pcb_tool_thermal_notify_mode(pcb_hidlib_t *hl) { void *ptr1, *ptr2, *ptr3; int type; Index: trunk/src/tool_thermal.h =================================================================== --- trunk/src/tool_thermal.h (revision 28039) +++ trunk/src/tool_thermal.h (revision 28040) @@ -1,6 +1,6 @@ extern pcb_tool_t pcb_tool_thermal; -void pcb_tool_thermal_notify_mode(void); +void pcb_tool_thermal_notify_mode(pcb_hidlib_t *hl); /* direct call: cycle through thermal modes on a padstack - provided for tool_via.h */ void pcb_tool_thermal_on_pstk(pcb_pstk_t *ps, unsigned long lid); Index: trunk/src/tool_via.c =================================================================== --- trunk/src/tool_via.c (revision 28039) +++ trunk/src/tool_via.c (revision 28040) @@ -51,7 +51,7 @@ TODO("padstack: remove this when via is removed and the padstack is created from style directly") #include "src_plugins/lib_compat_help/pstk_compat.h" -void pcb_tool_via_notify_mode(void) +void pcb_tool_via_notify_mode(pcb_hidlib_t *hl) { if (!PCB->pstk_on) { @@ -91,7 +91,7 @@ } -void pcb_tool_via_draw_attached(void) +void pcb_tool_via_draw_attached(pcb_hidlib_t *hl) { TODO("pstk: replace this when route style has a prototype") xor_draw_fake_via(pcb_crosshair.X, pcb_crosshair.Y, conf_core.design.via_thickness, 0); Index: trunk/src/tool_via.h =================================================================== --- trunk/src/tool_via.h (revision 28039) +++ trunk/src/tool_via.h (revision 28040) @@ -1,4 +1,4 @@ extern pcb_tool_t pcb_tool_via; -void pcb_tool_via_notify_mode(void); -void pcb_tool_via_draw_attached(void); +void pcb_tool_via_notify_mode(pcb_hidlib_t *hl); +void pcb_tool_via_draw_attached(pcb_hidlib_t *hl); Index: trunk/src/undo_act.c =================================================================== --- trunk/src/undo_act.c (revision 28039) +++ trunk/src/undo_act.c (revision 28040) @@ -104,7 +104,7 @@ PCB_ACT_MAY_CONVARG(1, FGW_STR, Undo, function = argv[1].val.str); if (!function || !*function) { pcb_notify_crosshair_change(pcb_false); - if (pcb_tool_undo_act()) + if (pcb_tool_undo_act(argv[0].val.argv0.user_call_ctx)) if (pcb_undo(pcb_true) == 0) pcb_board_set_changed_flag(pcb_true); } @@ -129,7 +129,7 @@ fgw_error_t pcb_act_Redo(fgw_arg_t *res, int argc, fgw_arg_t *argv) { pcb_notify_crosshair_change(pcb_false); - if (pcb_tool_redo_act()) + if (pcb_tool_redo_act(argv[0].val.argv0.user_call_ctx)) if (pcb_redo(pcb_true)) pcb_board_set_changed_flag(pcb_true); pcb_notify_crosshair_change(pcb_true); Index: trunk/src_plugins/ddraft/ddraft.c =================================================================== --- trunk/src_plugins/ddraft/ddraft.c (revision 28039) +++ trunk/src_plugins/ddraft/ddraft.c (revision 28040) @@ -441,7 +441,7 @@ return 0; } -void ddraft_tool_draw_attached(void) +void ddraft_tool_draw_attached(pcb_hidlib_t *hl) { int n; pcb_render->set_line_cap(pcb_crosshair.GC, pcb_cap_round); Index: trunk/src_plugins/sketch_route/sketch_route.c =================================================================== --- trunk/src_plugins/sketch_route/sketch_route.c (revision 28039) +++ trunk/src_plugins/sketch_route/sketch_route.c (revision 28040) @@ -787,7 +787,7 @@ /*** sketch line tool ***/ -static void tool_skline_adjust_attached_objects(void); +static void tool_skline_adjust_attached_objects(pcb_hidlib_t *hl); struct { pcb_any_obj_t *start_term; @@ -813,7 +813,7 @@ pcb_attached_line_t *next_l = attached_path_new_line(); if (last >= 0) next_l->Point1 = ((pcb_attached_line_t *) attached_path.lines.array[last])->Point2; - tool_skline_adjust_attached_objects(); + tool_skline_adjust_attached_objects(&PCB->hidlib); } static pcb_bool attached_path_init(pcb_layer_t *layer, pcb_any_obj_t *start_term) @@ -832,7 +832,7 @@ vtp0_init(&attached_path.lines); start_l = attached_path_new_line(); pcb_obj_center(start_term, &start_l->Point1.X, &start_l->Point1.Y); - tool_skline_adjust_attached_objects(); + tool_skline_adjust_attached_objects(&PCB->hidlib); attached_path.start_p = sketch_get_point_at_terminal(attached_path.sketch, start_term); attached_path.current_t = NULL; @@ -1017,7 +1017,7 @@ pcb_notify_crosshair_change(pcb_true); } -static void tool_skline_notify_mode(void) +static void tool_skline_notify_mode(pcb_hidlib_t *hl) { int type; void *ptr1, *ptr2, *ptr3; @@ -1067,7 +1067,7 @@ } } -static void tool_skline_adjust_attached_objects(void) +static void tool_skline_adjust_attached_objects(pcb_hidlib_t *hl) { int last = vtp0_len(&attached_path.lines) - 1; if (last >= 0) { @@ -1076,7 +1076,7 @@ } } -static void tool_skline_draw_attached(void) +static void tool_skline_draw_attached(pcb_hidlib_t *hl) { int i; if (pcb_crosshair.AttachedObject.Type != PCB_OBJ_VOID) { @@ -1088,7 +1088,7 @@ } } -pcb_bool tool_skline_undo_act(void) +pcb_bool tool_skline_undo_act(pcb_hidlib_t *hl) { /* TODO */ return pcb_false;