Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 26785) +++ trunk/src/hid.h (revision 26786) @@ -350,9 +350,9 @@ timer during the callback for the first. user_data_ can be anything, it's just passed to func. Times are not guaranteed to be accurate. */ - pcb_hidval_t (*add_timer)(void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data); + pcb_hidval_t (*add_timer)(pcb_hid_t *hid, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data); /* Use this to stop a timer that hasn't triggered yet. */ - void (*stop_timer)(pcb_hidval_t timer); + void (*stop_timer)(pcb_hid_t *hid, pcb_hidval_t timer); /* Causes func_ to be called when some condition occurs on the file descriptor passed. Conditions include data for reading, writing, @@ -359,10 +359,10 @@ hangup, and errors. user_data_ can be anything, it's just passed to func. If the watch function returns pcb_true, the watch is kept, else it is removed. */ - pcb_hidval_t (*watch_file)(int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data); + pcb_hidval_t (*watch_file)(pcb_hid_t *hid, int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data); /* Use this to stop a file watch; must not be called from within a GUI callback! */ - void (*unwatch_file) (pcb_hidval_t watch); + void (*unwatch_file)(pcb_hid_t *hid, pcb_hidval_t watch); /* title may be used as a dialog box title. Ignored if NULL. * Index: trunk/src/hid_dlg.c =================================================================== --- trunk/src/hid_dlg.c (revision 26785) +++ trunk/src/hid_dlg.c (revision 26786) @@ -172,7 +172,7 @@ if (active) { pcb_gui->attr_dlg_set_value(ctx.dlg_hid_ctx, wp, &val); if (!have_timer) { - timer = pcb_gui->add_timer(progress_refresh_cb, REFRESH_RATE, timer); + timer = pcb_gui->add_timer(pcb_gui, progress_refresh_cb, REFRESH_RATE, timer); have_timer = 1; } pcb_hid_iterate(pcb_gui); @@ -191,7 +191,7 @@ if (so_far == 0 && total == 0 && message == NULL) { if (active) { if (have_timer) { - pcb_gui->stop_timer(timer); + pcb_gui->stop_timer(pcb_gui, timer); have_timer = 0; } if (!closing) { @@ -228,7 +228,7 @@ active = 1; cancelled = 0; - timer = pcb_gui->add_timer(progress_refresh_cb, REFRESH_RATE, timer); + timer = pcb_gui->add_timer(pcb_gui, progress_refresh_cb, REFRESH_RATE, timer); have_timer = 1; closing = 0; } Index: trunk/src/hid_nogui.c =================================================================== --- trunk/src/hid_nogui.c (revision 26785) +++ trunk/src/hid_nogui.c (revision 26786) @@ -196,7 +196,7 @@ { } -static pcb_hidval_t nogui_add_timer(void (*func) (pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) +static pcb_hidval_t nogui_add_timer(pcb_hid_t *hid, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) { pcb_hidval_t rv; CRASH("add_timer"); @@ -204,12 +204,12 @@ return rv; } -static void nogui_stop_timer(pcb_hidval_t timer) +static void nogui_stop_timer(pcb_hid_t *hid, pcb_hidval_t timer) { CRASH("stop_timer"); } -static pcb_hidval_t nogui_watch_file(int fd, unsigned int condition, pcb_bool (*func) (pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) +static pcb_hidval_t nogui_watch_file(pcb_hid_t *hid, int fd, unsigned int condition, pcb_bool (*func) (pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) { pcb_hidval_t rv; CRASH("watch_file"); @@ -217,7 +217,7 @@ return rv; } -static void nogui_unwatch_file(pcb_hidval_t watch) +static void nogui_unwatch_file(pcb_hid_t *hid, pcb_hidval_t watch) { CRASH("unwatch_file"); } Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 26785) +++ trunk/src/plug_io.c (revision 26786) @@ -720,7 +720,7 @@ backup_timer.ptr = NULL; pcb_backup(); if (conf_core.rc.backup_interval > 0 && pcb_gui->add_timer) - backup_timer = pcb_gui->add_timer(backup_cb, 1000 * conf_core.rc.backup_interval, data); + backup_timer = pcb_gui->add_timer(pcb_gui, backup_cb, 1000 * conf_core.rc.backup_interval, data); } void pcb_enable_autosave(void) @@ -731,12 +731,12 @@ /* If we already have a timer going, then cancel it out */ if (backup_timer.ptr != NULL && pcb_gui->stop_timer) - pcb_gui->stop_timer(backup_timer); + pcb_gui->stop_timer(pcb_gui, backup_timer); backup_timer.ptr = NULL; /* Start up a new timer */ if (conf_core.rc.backup_interval > 0 && pcb_gui->add_timer) - backup_timer = pcb_gui->add_timer(backup_cb, 1000 * conf_core.rc.backup_interval, x); + backup_timer = pcb_gui->add_timer(pcb_gui, backup_cb, 1000 * conf_core.rc.backup_interval, x); } /* Saves the board in a backup file using the name configured in Index: trunk/src/tool_arrow.c =================================================================== --- trunk/src/tool_arrow.c (revision 26785) +++ trunk/src/tool_arrow.c (revision 26786) @@ -131,7 +131,7 @@ pcb_tool_note.Click = pcb_true; /* do something after click time */ - pcb_gui->add_timer(click_timer_cb, conf_core.editor.click_time, hv); + pcb_gui->add_timer(pcb_gui, click_timer_cb, conf_core.editor.click_time, hv); /* see if we clicked on something already selected * (pcb_tool_note.Moving) or clicked on a MOVE_TYPE Index: trunk/src_plugins/dialogs/dlg_fontsel.c =================================================================== --- trunk/src_plugins/dialogs/dlg_fontsel.c (revision 26785) +++ trunk/src_plugins/dialogs/dlg_fontsel.c (revision 26786) @@ -271,7 +271,7 @@ if ((txt != c->last_fobj) || (txt != NULL && (txt->fid != c->last_fid))) fontsel_preview_update(c); } - fontsel_timer = pcb_gui->add_timer(fontsel_timer_cb, 500, fontsel_timer); + fontsel_timer = pcb_gui->add_timer(pcb_gui, fontsel_timer_cb, 500, fontsel_timer); } static void fontsel_gui_init_ev(pcb_hidlib_t *hidlib, void *user_data, int argc, pcb_event_arg_t argv[]) @@ -283,7 +283,7 @@ void pcb_dlg_fontsel_uninit(void) { if ((fontsel_timer_active) && (pcb_gui != NULL) && (pcb_gui->stop_timer != NULL)) - pcb_gui->stop_timer(fontsel_timer); + pcb_gui->stop_timer(pcb_gui, fontsel_timer); pcb_event_unbind_allcookie(fontsel_cookie); } Index: trunk/src_plugins/dialogs/dlg_library.c =================================================================== --- trunk/src_plugins/dialogs/dlg_library.c (revision 26785) +++ trunk/src_plugins/dialogs/dlg_library.c (revision 26786) @@ -197,7 +197,7 @@ static void timed_update_preview(library_ctx_t *ctx, int active) { if (ctx->timer_active) { - pcb_gui->stop_timer(ctx->timer); + pcb_gui->stop_timer(pcb_gui, ctx->timer); ctx->timer_active = 0; pcb_gui->attr_dlg_widget_hide(ctx->dlg_hid_ctx, ctx->wpend, 1); } @@ -205,7 +205,7 @@ if (active) { pcb_hidval_t user_data; user_data.ptr = ctx; - ctx->timer = pcb_gui->add_timer(timed_update_preview_cb, 500, user_data); + ctx->timer = pcb_gui->add_timer(pcb_gui, timed_update_preview_cb, 500, user_data); ctx->timer_active = 1; pcb_gui->attr_dlg_widget_hide(ctx->dlg_hid_ctx, ctx->wpend, 0); } Index: trunk/src_plugins/dialogs/dlg_loadsave.c =================================================================== --- trunk/src_plugins/dialogs/dlg_loadsave.c (revision 26785) +++ trunk/src_plugins/dialogs/dlg_loadsave.c (revision 26786) @@ -232,7 +232,7 @@ save->inited = 1; } - save->timer = pcb_gui->add_timer(save_timer, 300, user_data); + save->timer = pcb_gui->add_timer(pcb_gui, save_timer, 300, user_data); if ((save->fmtsub->parent_poke != NULL) && (save->fmtsub->dlg_hid_ctx != NULL) && (save->fmtsub->dlg[save->wguess].default_val.int_value)) { pcb_event_arg_t res; @@ -505,10 +505,10 @@ timer_ctx.ptr = &save; save.timer_active = 1; - save.timer = pcb_gui->add_timer(save_timer, 300, timer_ctx); /* the timer needs to run at least once, to get some initialization done that can be done only after fmtsub got created */ + save.timer = pcb_gui->add_timer(pcb_gui, save_timer, 300, timer_ctx); /* the timer needs to run at least once, to get some initialization done that can be done only after fmtsub got created */ final_name = pcb_gui->fileselect(prompt, NULL, name_in, NULL, NULL, "board", PCB_HID_FSD_MAY_NOT_EXIST, fmtsub); if (save.timer_active) - pcb_gui->stop_timer(save.timer); + pcb_gui->stop_timer(pcb_gui, save.timer); free(name_in); free(save.fmt_tab_names); free(save.fmt_plug_data); Index: trunk/src_plugins/export_bboard/bboard.c =================================================================== --- trunk/src_plugins/export_bboard/bboard.c (revision 26785) +++ trunk/src_plugins/export_bboard/bboard.c (revision 26786) @@ -591,7 +591,7 @@ abort(); } -static void bboard_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void bboard_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } Index: trunk/src_plugins/export_dxf/dxf.c =================================================================== --- trunk/src_plugins/export_dxf/dxf.c (revision 26785) +++ trunk/src_plugins/export_dxf/dxf.c (revision 26786) @@ -507,7 +507,7 @@ return; } -static void dxf_set_crosshair(pcb_coord_t x, pcb_coord_t y, int a) +static void dxf_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int a) { } Index: trunk/src_plugins/export_excellon/excellon.c =================================================================== --- trunk/src_plugins/export_excellon/excellon.c (revision 26785) +++ trunk/src_plugins/export_excellon/excellon.c (revision 26786) @@ -453,7 +453,7 @@ return 0; } -static void excellon_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void excellon_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } Index: trunk/src_plugins/export_gcode/gcode.c =================================================================== --- trunk/src_plugins/export_gcode/gcode.c (revision 26785) +++ trunk/src_plugins/export_gcode/gcode.c (revision 26786) @@ -870,7 +870,7 @@ CRASH("gcode_calibrate"); } -static void gcode_set_crosshair(pcb_coord_t x, pcb_coord_t y, int a) +static void gcode_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int a) { } Index: trunk/src_plugins/export_gerber/gerber.c =================================================================== --- trunk/src_plugins/export_gerber/gerber.c (revision 26785) +++ trunk/src_plugins/export_gerber/gerber.c (revision 26786) @@ -68,7 +68,7 @@ static void gerber_fill_circle(pcb_hid_gc_t gc, pcb_coord_t cx, pcb_coord_t cy, pcb_coord_t radius); static void gerber_fill_rect(pcb_hid_gc_t gc, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2); static void gerber_calibrate(pcb_hid_t *hid, double xval, double yval); -static void gerber_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action); +static void gerber_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action); static void gerber_fill_polygon_offs(pcb_hid_gc_t gc, int n_coords, pcb_coord_t *x, pcb_coord_t *y, pcb_coord_t dx, pcb_coord_t dy); static void gerber_fill_polygon(pcb_hid_gc_t gc, int n_coords, pcb_coord_t * x, pcb_coord_t * y); @@ -1346,7 +1346,7 @@ return 0; } -static void gerber_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void gerber_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } Index: trunk/src_plugins/export_openems/export_openems.c =================================================================== --- trunk/src_plugins/export_openems/export_openems.c (revision 26785) +++ trunk/src_plugins/export_openems/export_openems.c (revision 26786) @@ -812,7 +812,7 @@ return; } -static void openems_set_crosshair(pcb_coord_t x, pcb_coord_t y, int a) +static void openems_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int a) { } Index: trunk/src_plugins/export_openscad/export_openscad.c =================================================================== --- trunk/src_plugins/export_openscad/export_openscad.c (revision 26785) +++ trunk/src_plugins/export_openscad/export_openscad.c (revision 26786) @@ -579,7 +579,7 @@ return; } -static void openscad_set_crosshair(pcb_coord_t x, pcb_coord_t y, int a) +static void openscad_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int a) { } Index: trunk/src_plugins/export_png/png.c =================================================================== --- trunk/src_plugins/export_png/png.c (revision 26785) +++ trunk/src_plugins/export_png/png.c (revision 26786) @@ -1900,7 +1900,7 @@ CRASH("png_calibrate"); } -static void png_set_crosshair(pcb_coord_t x, pcb_coord_t y, int a) +static void png_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int a) { } Index: trunk/src_plugins/export_ps/eps.c =================================================================== --- trunk/src_plugins/export_ps/eps.c (revision 26785) +++ trunk/src_plugins/export_ps/eps.c (revision 26786) @@ -48,7 +48,7 @@ static void eps_fill_polygon(pcb_hid_gc_t gc, int n_coords, pcb_coord_t * x, pcb_coord_t * y); static void eps_fill_polygon_offs(pcb_hid_gc_t gc, int n_coords, pcb_coord_t *x, pcb_coord_t *y, pcb_coord_t dx, pcb_coord_t dy); static void eps_calibrate(pcb_hid_t *hid, double xval, double yval); -static void eps_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action); +static void eps_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action); /*----------------------------------------------------------------------------*/ static pcb_cam_t eps_cam; @@ -666,7 +666,7 @@ CRASH("eps_calibrate"); } -static void eps_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void eps_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 26785) +++ trunk/src_plugins/export_ps/ps.c (revision 26786) @@ -1401,7 +1401,7 @@ ps_calibrate_1(hid, xval, yval, 0); } -static void ps_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void ps_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } Index: trunk/src_plugins/export_svg/svg.c =================================================================== --- trunk/src_plugins/export_svg/svg.c (revision 26785) +++ trunk/src_plugins/export_svg/svg.c (revision 26786) @@ -853,7 +853,7 @@ return; } -static void svg_set_crosshair(pcb_coord_t x, pcb_coord_t y, int a) +static void svg_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int a) { } Index: trunk/src_plugins/extedit/extedit.c =================================================================== --- trunk/src_plugins/extedit/extedit.c (revision 26785) +++ trunk/src_plugins/extedit/extedit.c (revision 26786) @@ -132,7 +132,7 @@ ctx.stay = 1; ctx.fc = fc; hd.ptr = &ctx; - ctx.wid = pcb_gui->watch_file(fd, PCB_WATCH_READABLE | PCB_WATCH_HANGUP, extedit_fd_watch, hd); + ctx.wid = pcb_gui->watch_file(pcb_gui, fd, PCB_WATCH_READABLE | PCB_WATCH_HANGUP, extedit_fd_watch, hd); while(ctx.stay) { if (pcb_gui != NULL) { n++; Index: trunk/src_plugins/hid_batch/batch.c =================================================================== --- trunk/src_plugins/hid_batch/batch.c (revision 26785) +++ trunk/src_plugins/hid_batch/batch.c (revision 26786) @@ -251,11 +251,11 @@ { } -static void batch_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void batch_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } -static pcb_hidval_t batch_add_timer(void (*func) (pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) +static pcb_hidval_t batch_add_timer(pcb_hid_t *hid, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) { pcb_hidval_t rv; rv.lval = 0; @@ -262,12 +262,12 @@ return rv; } -static void batch_stop_timer(pcb_hidval_t timer) +static void batch_stop_timer(pcb_hid_t *hid, pcb_hidval_t timer) { } pcb_hidval_t -batch_watch_file(int fd, unsigned int condition, pcb_bool (*func) (pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), +batch_watch_file(pcb_hid_t *hid, int fd, unsigned int condition, pcb_bool (*func) (pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) { pcb_hidval_t ret; @@ -275,7 +275,7 @@ return ret; } -void batch_unwatch_file(pcb_hidval_t data) +void batch_unwatch_file(pcb_hid_t *hid, pcb_hidval_t data) { } Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 26785) +++ trunk/src_plugins/hid_lesstif/main.c (revision 26786) @@ -2679,7 +2679,7 @@ extern void lesstif_get_coords(pcb_hid_t *hid, const char *msg, pcb_coord_t *x, pcb_coord_t *y, int force); -static void lesstif_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void lesstif_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { if (crosshair_x != x || crosshair_y != y) { lesstif_show_crosshair(0); @@ -2734,7 +2734,7 @@ free(ts); } -static pcb_hidval_t lesstif_add_timer(void (*func) (pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) +static pcb_hidval_t lesstif_add_timer(pcb_hid_t *hid, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) { TimerStruct *t; pcb_hidval_t rv; @@ -2746,7 +2746,7 @@ return rv; } -static void lesstif_stop_timer(pcb_hidval_t hv) +static void lesstif_stop_timer(pcb_hid_t *hid, pcb_hidval_t hv) { TimerStruct *ts = (TimerStruct *) hv.ptr; XtRemoveTimeOut(ts->id); @@ -2761,7 +2761,7 @@ XtInputId id; } WatchStruct; -void lesstif_unwatch_file(pcb_hidval_t data) +void lesstif_unwatch_file(pcb_hid_t *hid, pcb_hidval_t data) { WatchStruct *watch = (WatchStruct *) data.ptr; XtRemoveInput(watch->id); @@ -2794,11 +2794,11 @@ x.ptr = (void *) watch; if (!watch->func(x, watch->fd, pcb_condition, watch->user_data)) - lesstif_unwatch_file(x); + lesstif_unwatch_file(pcb_gui, x); return; } -pcb_hidval_t lesstif_watch_file(int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) +pcb_hidval_t lesstif_watch_file(pcb_hid_t *hid, int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) { WatchStruct *watch = (WatchStruct *)malloc(sizeof(WatchStruct)); pcb_hidval_t ret; Index: trunk/src_plugins/hid_lesstif/netlist.c =================================================================== --- trunk/src_plugins/hid_lesstif/netlist.c (revision 26785) +++ trunk/src_plugins/hid_lesstif/netlist.c (revision 26786) @@ -224,7 +224,7 @@ if (strcmp(pad->Number, pname) == 0) { pcb_coord_t x = (pad->Point1.X + pad->Point2.X) / 2; pcb_coord_t y = (pad->Point1.Y + pad->Point2.Y) / 2; - pcb_gui->set_crosshair(x, y, HID_SC_PAN_VIEWPORT); + pcb_gui->set_crosshair(pcb_gui, x, y, HID_SC_PAN_VIEWPORT); free(ename); return; } Index: trunk/src_plugins/hid_remote/remote.c =================================================================== --- trunk/src_plugins/hid_remote/remote.c (revision 26785) +++ trunk/src_plugins/hid_remote/remote.c (revision 26786) @@ -322,11 +322,11 @@ { } -static void remote_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void remote_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { } -static pcb_hidval_t remote_add_timer(void (*func) (pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) +static pcb_hidval_t remote_add_timer(pcb_hid_t *hid, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) { pcb_hidval_t rv; rv.lval = 0; @@ -333,12 +333,12 @@ return rv; } -static void remote_stop_timer(pcb_hidval_t timer) +static void remote_stop_timer(pcb_hid_t *hid, pcb_hidval_t timer) { } pcb_hidval_t -remote_watch_file(int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), +remote_watch_file(pcb_hid_t *hid, int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) { pcb_hidval_t ret; @@ -346,7 +346,7 @@ return ret; } -void remote_unwatch_file(pcb_hidval_t data) +void remote_unwatch_file(pcb_hid_t *hid, pcb_hidval_t data) { } Index: trunk/src_plugins/lib_gtk_common/glue_hid.c =================================================================== --- trunk/src_plugins/lib_gtk_common/glue_hid.c (revision 26785) +++ trunk/src_plugins/lib_gtk_common/glue_hid.c (revision 26786) @@ -261,7 +261,7 @@ printf("ghid_calibrate() -- not implemented\n"); } -static void ghid_set_crosshair(pcb_coord_t x, pcb_coord_t y, int action) +static void ghid_set_crosshair(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int action) { int offset_x, offset_y; @@ -278,12 +278,12 @@ pcb_gtk_get_coords(ghidgui, &ghidgui->port.view, msg, x, y, force); } -pcb_hidval_t ghid_add_timer(void (*func) (pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) +pcb_hidval_t ghid_add_timer(pcb_hid_t *hid, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data) { return pcb_gtk_add_timer(ghidgui, func, milliseconds, user_data); } -static pcb_hidval_t ghid_watch_file(int fd, unsigned int condition, +static pcb_hidval_t ghid_watch_file(pcb_hid_t *hid, int fd, unsigned int condition, pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data) { Index: trunk/src_plugins/lib_gtk_common/util_timer.c =================================================================== --- trunk/src_plugins/lib_gtk_common/util_timer.c (revision 26785) +++ trunk/src_plugins/lib_gtk_common/util_timer.c (revision 26786) @@ -60,7 +60,7 @@ return ret; } -void ghid_stop_timer(pcb_hidval_t timer) +void ghid_stop_timer(pcb_hid_t *hid, pcb_hidval_t timer) { void *ptr = timer.ptr; Index: trunk/src_plugins/lib_gtk_common/util_timer.h =================================================================== --- trunk/src_plugins/lib_gtk_common/util_timer.h (revision 26785) +++ trunk/src_plugins/lib_gtk_common/util_timer.h (revision 26786) @@ -2,4 +2,4 @@ #include "pcb_gtk.h" pcb_hidval_t pcb_gtk_add_timer(struct pcb_gtk_s *gctx, void (*func)(pcb_hidval_t user_data), unsigned long milliseconds, pcb_hidval_t user_data); -void ghid_stop_timer(pcb_hidval_t timer); +void ghid_stop_timer(pcb_hid_t *hid, pcb_hidval_t timer); Index: trunk/src_plugins/lib_gtk_common/util_watch.c =================================================================== --- trunk/src_plugins/lib_gtk_common/util_watch.c (revision 26785) +++ trunk/src_plugins/lib_gtk_common/util_watch.c (revision 26786) @@ -93,7 +93,7 @@ return ret; } -void pcb_gtk_unwatch_file(pcb_hidval_t data) +void pcb_gtk_unwatch_file(pcb_hid_t *hid, pcb_hidval_t data) { pcb_gtk_watch_t *watch = (pcb_gtk_watch_t *)data.ptr; Index: trunk/src_plugins/lib_gtk_common/util_watch.h =================================================================== --- trunk/src_plugins/lib_gtk_common/util_watch.h (revision 26785) +++ trunk/src_plugins/lib_gtk_common/util_watch.h (revision 26786) @@ -5,5 +5,5 @@ pcb_bool (*func)(pcb_hidval_t watch, int fd, unsigned int condition, pcb_hidval_t user_data), pcb_hidval_t user_data); -void pcb_gtk_unwatch_file(pcb_hidval_t data); +void pcb_gtk_unwatch_file(pcb_hid_t *hid, pcb_hidval_t data); Index: trunk/src_plugins/lib_hid_common/lead_user.c =================================================================== --- trunk/src_plugins/lib_hid_common/lead_user.c (revision 26785) +++ trunk/src_plugins/lib_hid_common/lead_user.c (revision 26786) @@ -53,7 +53,7 @@ pcb_gui->invalidate_all(pcb_gui, lead_hidlib); if (lead) - lead_timer = pcb_gui->add_timer(lead_cb, LEAD_PERIOD_MS, user_data); + lead_timer = pcb_gui->add_timer(pcb_gui, lead_cb, LEAD_PERIOD_MS, user_data); } static void pcb_lead_user_to_location(pcb_hidlib_t *hidlib, pcb_coord_t x, pcb_coord_t y, pcb_bool enabled) @@ -61,7 +61,7 @@ pcb_hidval_t user_data; if (lead) { - pcb_gui->stop_timer(lead_timer); + pcb_gui->stop_timer(pcb_gui, lead_timer); lead = enabled; pcb_gui->invalidate_all(pcb_gui, lead_hidlib); } @@ -72,7 +72,7 @@ lead_hidlib = hidlib; if (enabled) - lead_timer = pcb_gui->add_timer(lead_cb, LEAD_PERIOD_MS, user_data); + lead_timer = pcb_gui->add_timer(pcb_gui, lead_cb, LEAD_PERIOD_MS, user_data); } void pcb_lead_user_ev(pcb_hidlib_t *hidlib, void *user_data, int argc, pcb_event_arg_t argv[]) Index: trunk/src_plugins/lib_hid_pcbui/act.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/act.c (revision 26785) +++ trunk/src_plugins/lib_hid_pcbui/act.c (revision 26786) @@ -297,7 +297,7 @@ /*pcb_trace("-jump-> %mm;%mm -> %mm;%mm\n", x, y, (pcb_coord_t)(x + xoffs), (pcb_coord_t)(y + yoffs));*/ pcb_gui->pan(pcb_round(x + xoffs), pcb_round(y + yoffs), 0); - pcb_gui->set_crosshair(x, y, HID_SC_PAN_VIEWPORT); + pcb_gui->set_crosshair(pcb_gui, x, y, HID_SC_PAN_VIEWPORT); pcb_gui->invalidate_all(pcb_gui, &PCB->hidlib); Index: trunk/src_plugins/lib_hid_pcbui/infobar.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/infobar.c (revision 26785) +++ trunk/src_plugins/lib_hid_pcbui/infobar.c (revision 26786) @@ -49,7 +49,7 @@ static void infobar_tick(pcb_hidval_t user_data) { if (conf_core.rc.file_changed_interval > 0) { - infobar_timer = pcb_gui->add_timer(infobar_tick, (conf_core.rc.file_changed_interval * 1000.0), user_data); + infobar_timer = pcb_gui->add_timer(pcb_gui, infobar_tick, (conf_core.rc.file_changed_interval * 1000.0), user_data); last_interval = conf_core.rc.file_changed_interval; infobar_timer_active = 1; } @@ -72,7 +72,7 @@ if ((!infobar_gui_inited) || (last_interval == conf_core.rc.file_changed_interval)) return; if ((infobar_timer_active) && (pcb_gui != NULL) && (pcb_gui->stop_timer != NULL)) { - pcb_gui->stop_timer(infobar_timer); + pcb_gui->stop_timer(pcb_gui, infobar_timer); infobar_timer_active = 0; } infobar_tick(infobar_timer); Index: trunk/src_plugins/script/timer.c =================================================================== --- trunk/src_plugins/script/timer.c (revision 26785) +++ trunk/src_plugins/script/timer.c (revision 26786) @@ -110,7 +110,7 @@ { static pcb_hidval_t hv; timer_running = 1; - pcb_gui->add_timer(timer_cb, 100, hv); + pcb_gui->add_timer(pcb_gui, timer_cb, 100, hv); }