Index: trunk/src/actions.c =================================================================== --- trunk/src/actions.c (revision 25188) +++ trunk/src/actions.c (revision 25189) @@ -661,7 +661,7 @@ /* no backend or forced action mode: classic pcb-rnd action parse */ if (force_action_mode || (pcbhl_conf.rc.cli_backend == NULL) || (*pcbhl_conf.rc.cli_backend == '\0')) { - pcb_event(PCB_EVENT_CLI_ENTER, "s", str_); + pcb_event(NULL, PCB_EVENT_CLI_ENTER, "s", str_); return hid_parse_actionstring(str_, pcb_false); } Index: trunk/src/board.c =================================================================== --- trunk/src/board.c (revision 25188) +++ trunk/src/board.c (revision 25189) @@ -146,9 +146,8 @@ } } - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); - PCB = old; + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); return nw; } @@ -335,7 +334,7 @@ PCB->Changed = New; if (old != New) - pcb_event(PCB_EVENT_BOARD_META_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BOARD_META_CHANGED, NULL); } @@ -343,7 +342,7 @@ { if ((pcb_gui != NULL) && (pcb_gui->set_hidlib != NULL)) pcb_gui->set_hidlib(&PCB->hidlib); - pcb_event(PCB_EVENT_BOARD_CHANGED, "i", reverted); + pcb_event(&PCB->hidlib, PCB_EVENT_BOARD_CHANGED, "i", reverted); } int pcb_board_normalize(pcb_board_t *pcb) Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 25188) +++ trunk/src/buffer.c (revision 25189) @@ -222,7 +222,7 @@ pcb_data_binding_update(pcb, Buffer->Data); pcb_board_remove(newPCB); Buffer->from_outside = 1; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); /* undo the events generated on load */ + pcb_event(&newPCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); /* undo the events generated on load */ return pcb_true; } @@ -230,7 +230,7 @@ pcb_board_remove(newPCB); if (Buffer->Data != NULL) PCB_CLEAR_PARENT(Buffer->Data); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); /* undo the events generated on load */ + pcb_event(&pcb->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); /* undo the events generated on load */ Buffer->from_outside = 0; return pcb_false; } Index: trunk/src/change_act.c =================================================================== --- trunk/src/change_act.c (revision 25188) +++ trunk/src/change_act.c (revision 25189) @@ -797,7 +797,7 @@ case F_LineSize: case F_Line: pcb_board_set_line_width(absolute ? value : value + conf_core.design.line_thickness); - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; case F_Text: Index: trunk/src/crosshair.c =================================================================== --- trunk/src/crosshair.c (revision 25188) +++ trunk/src/crosshair.c (revision 25189) @@ -271,8 +271,8 @@ memcpy(&line, (pcb_line_t *) pcb_crosshair.AttachedObject.Ptr2, sizeof(line)); if(conf_core.editor.rubber_band_keep_midlinedir) - pcb_event(PCB_EVENT_RUBBER_CONSTRAIN_MAIN_LINE, "pppppp", &line, &constrained, &dx1, &dy1, &dx2, &dy2); - pcb_event(PCB_EVENT_RUBBER_MOVE_DRAW, "icccc", constrained, dx1, dy1, dx2, dy2); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_CONSTRAIN_MAIN_LINE, "pppppp", &line, &constrained, &dx1, &dy1, &dx2, &dy2); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE_DRAW, "icccc", constrained, dx1, dy1, dx2, dy2); event_sent = 1; @@ -301,7 +301,7 @@ { /* Make a temporary arc and move it by dx,dy */ pcb_arc_t arc = *((pcb_arc_t *) pcb_crosshair.AttachedObject.Ptr2); - pcb_event(PCB_EVENT_RUBBER_MOVE_DRAW, "icccc", 0, dx, dy, dx, dy); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE_DRAW, "icccc", 0, dx, dy, dx, dy); event_sent = 1; arc.X += dx; @@ -420,7 +420,7 @@ pcb_arc_get_end(&arc,0, &nx1, &ny1); pcb_arc_get_end(&arc,1, &nx2, &ny2); - pcb_event(PCB_EVENT_RUBBER_MOVE_DRAW, "icccc", 0, nx1-ox1,ny1-oy1,nx2-ox2,ny2-oy2); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE_DRAW, "icccc", 0, nx1-ox1,ny1-oy1,nx2-ox2,ny2-oy2); event_sent = 1; break; } @@ -466,7 +466,7 @@ } if(!event_sent) - pcb_event(PCB_EVENT_RUBBER_MOVE_DRAW, "icc", 0, dx, dy ); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE_DRAW, "icc", 0, dx, dy ); } /* --------------------------------------------------------------------------- @@ -536,7 +536,7 @@ { if (pcb_gui->notify_crosshair_change) pcb_gui->notify_crosshair_change(changes_complete); - pcb_event(PCB_EVENT_CROSSHAIR_MOVE, "i", (int)changes_complete, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_CROSSHAIR_MOVE, "i", (int)changes_complete, NULL); } @@ -1130,7 +1130,7 @@ if (pcb_crosshair_move_absolute(ev_x, ev_y)) { /* update object position and cursor location */ pcb_tool_adjust_attached_objects(); - pcb_event(PCB_EVENT_DRAW_CROSSHAIR_CHATT, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_DRAW_CROSSHAIR_CHATT, NULL); pcb_notify_crosshair_change(pcb_true); } } Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 25188) +++ trunk/src/draw.c (revision 25189) @@ -265,7 +265,7 @@ pcb_draw_pstk_marks(info); } - pcb_event(PCB_EVENT_GUI_DRAW_OVERLAY_XOR, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_DRAW_OVERLAY_XOR, NULL); pcb_hid_set_draw_xor(pcb_draw_out.fgGC, 0); pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, pcb_draw_out.direct, info->drawn_area); Index: trunk/src/drc.c =================================================================== --- trunk/src/drc.c (revision 25188) +++ trunk/src/drc.c (revision 25189) @@ -28,6 +28,7 @@ #include "config.h" #include "actions.h" +#include "board.h" #include "drc.h" #include "hidlib_conf.h" #include "conf_core.h" @@ -137,7 +138,7 @@ void pcb_drc_all(void) { - pcb_event(PCB_EVENT_DRC_RUN, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_DRC_RUN, NULL); } static const char pcb_acts_DRC[] = "DRC([list|simple|print|log|dump])"; Index: trunk/src/error.c =================================================================== --- trunk/src/error.c (revision 25188) +++ trunk/src/error.c (revision 25189) @@ -94,7 +94,7 @@ pcb_log_last = line; line->len = tmp.used - offsetof(pcb_logline_t, str); - pcb_event(PCB_EVENT_LOG_APPEND, "p", line); + pcb_event(NULL, PCB_EVENT_LOG_APPEND, "p", line); } pcb_logline_t *pcb_log_find_min_(pcb_logline_t *from, unsigned long ID) @@ -217,7 +217,7 @@ PCB_ACT_MAY_CONVARG(2, FGW_ULONG, Log, from = fgw_keyword(&argv[2])); PCB_ACT_MAY_CONVARG(3, FGW_ULONG, Log, from = fgw_keyword(&argv[3])); pcb_log_del_range(from, to); - pcb_event(PCB_EVENT_LOG_CLEAR, "pp", &from, &to); + pcb_event(NULL, PCB_EVENT_LOG_CLEAR, "pp", &from, &to); ret = 0; } break; Index: trunk/src/event.c =================================================================== --- trunk/src/event.c (revision 25188) +++ trunk/src/event.c (revision 25189) @@ -157,7 +157,7 @@ pcb_event_unbind_cookie(n, cookie); } -void pcb_event(pcb_event_id_t ev, const char *fmt, ...) +void pcb_event(pcb_hidlib_t *hidlib, pcb_event_id_t ev, const char *fmt, ...) { va_list ap; pcb_event_arg_t argv[EVENT_MAX_ARG], *a; Index: trunk/src/event.h =================================================================== --- trunk/src/event.h (revision 25188) +++ trunk/src/event.h (revision 25189) @@ -29,6 +29,7 @@ #include "config.h" #include "unit.h" #include "global_typedefs.h" +#include "hidlib.h" typedef enum { PCB_EVENT_GUI_INIT, /* finished initializing the GUI called right before the main loop of the GUI; args: (void) */ @@ -136,5 +137,5 @@ /* Event trigger: call all handlers for an event. Fmt is a list of format characters (e.g. i for PCB_EVARG_INT). */ -void pcb_event(pcb_event_id_t ev, const char *fmt, ...); +void pcb_event(pcb_hidlib_t *hidlib, pcb_event_id_t ev, const char *fmt, ...); #endif Index: trunk/src/font.c =================================================================== --- trunk/src/font.c (revision 25188) +++ trunk/src/font.c (revision 25189) @@ -406,7 +406,7 @@ e = htip_popentry(&fk->fonts, id); pcb_font_free(e->value); - pcb_event(PCB_EVENT_FONT_CHANGED, "i", id); + pcb_event(&PCB->hidlib, PCB_EVENT_FONT_CHANGED, "i", id); if (id == fk->last_id) update_last_id(fk); return 0; @@ -466,8 +466,8 @@ if (src == fk->last_id) update_last_id (fk); fk->last_id = MAX(fk->last_id, dst); - pcb_event(PCB_EVENT_FONT_CHANGED, "i", src); - pcb_event(PCB_EVENT_FONT_CHANGED, "i", dst); + pcb_event(&PCB->hidlib, PCB_EVENT_FONT_CHANGED, "i", src); + pcb_event(&PCB->hidlib, PCB_EVENT_FONT_CHANGED, "i", dst); return 0; } Index: trunk/src/font_act.c =================================================================== --- trunk/src/font_act.c (revision 25188) +++ trunk/src/font_act.c (revision 25189) @@ -82,7 +82,7 @@ } r = pcb_parse_font(fnt, fname); - pcb_event(PCB_EVENT_FONT_CHANGED, "i", fnt->id); + pcb_event(&PCB->hidlib, PCB_EVENT_FONT_CHANGED, "i", fnt->id); if (r != 0) { pcb_message(PCB_MSG_ERROR, "LoadFontFrom(): failed to load font from %s\n", fname); pcb_del_font(&PCB->fontkit, fnt->id); Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 25188) +++ trunk/src/gui_act.c (revision 25189) @@ -648,8 +648,8 @@ PCB_ACT_IRES(-1); return 0; switched:; - pcb_event(PCB_EVENT_RUBBER_RESET, NULL); - pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_RESET, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); return 0; } @@ -869,7 +869,7 @@ if (conf_core.editor.mode != PCB_MODE_LINE) pcb_tool_select_by_id(PCB_MODE_LINE); pcb_notify_crosshair_change(pcb_true); - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; case PCB_OBJ_ARC: @@ -879,7 +879,7 @@ if (conf_core.editor.mode != PCB_MODE_ARC) pcb_tool_select_by_id(PCB_MODE_ARC); pcb_notify_crosshair_change(pcb_true); - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; case PCB_OBJ_POLY: @@ -1111,7 +1111,7 @@ args[1].type = FGW_LONG; args[1].val.nat_long = pcb_layer_id(PCB->Data, ly); ret = pcb_actionv_(args[0].val.func, res, 2, args); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } else return FGW_ERR_NOT_FOUND; @@ -1118,7 +1118,7 @@ return ret; } - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); PCB_ACT_IRES(0); return ret; } @@ -1219,7 +1219,7 @@ args[1].type = FGW_LONG; args[1].val.nat_long = pcb_layergrp_id(PCB, g); ret = pcb_actionv_(args[0].val.func, res, 2, args); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } else return FGW_ERR_NOT_FOUND; @@ -1227,7 +1227,7 @@ } - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); PCB_ACT_IRES(0); return ret; } @@ -1336,7 +1336,7 @@ PCB_ACT_IRES(-1); pcb_layergrp_inhibit_dec(); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); if ((pcb_gui != NULL) && (pcb_exporter == NULL)) pcb_gui->invalidate_all(); @@ -1389,7 +1389,7 @@ PCB_ACT_IRES(-1); pcb_layergrp_inhibit_dec(); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); if ((pcb_gui != NULL) && (pcb_exporter == NULL)) pcb_gui->invalidate_all(); @@ -1430,7 +1430,7 @@ return 0; } *s = *v = 1; - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); return 0; } @@ -1437,7 +1437,7 @@ PCB->RatDraw = 0; pcb_layervis_change_group_vis(atoi(name)-1, 1, 1); pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); return 0; } @@ -1518,7 +1518,7 @@ PCB_ACT_FAIL(toggleview); pcb_layer_vis_change_all(PCB, open, vis); pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); return 0; } else if (pcb_strcasecmp(name, "silk") == 0) { @@ -1530,12 +1530,12 @@ else if ((pcb_strcasecmp(name, "padstacks") == 0) || (pcb_strcasecmp(name, "vias") == 0) || (pcb_strcasecmp(name, "pins") == 0) || (pcb_strcasecmp(name, "pads") == 0)) { PCB->pstk_on = !PCB->pstk_on; pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); } else if (pcb_strcasecmp(name, "BackSide") == 0) { PCB->InvisibleObjectsOn = !PCB->InvisibleObjectsOn; pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); } else if (strncmp(name, "ui:", 3) == 0) { pcb_layer_t *ly = pcb_uilayer_get(atoi(name+3)); @@ -1546,7 +1546,7 @@ } ly->meta.real.vis = !ly->meta.real.vis; pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); } else { char *end; @@ -1554,7 +1554,7 @@ if (*end == '\0') { /* integer layer */ pcb_layervis_change_group_vis(id, -1, 0); pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); return 0; } else { /* virtual menu layer */ @@ -1563,7 +1563,7 @@ pcb_bool *v = (pcb_bool *)((char *)PCB + ml->vis_offs); *v = !(*v); pcb_gui->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); return 0; } pcb_message(PCB_MSG_ERROR, "Invalid layer id: '%s'\n", name); Index: trunk/src/hid_cfg_input.c =================================================================== --- trunk/src/hid_cfg_input.c (revision 25188) +++ trunk/src/hid_cfg_input.c (revision 25189) @@ -185,7 +185,7 @@ { pcb_crosshair.click_cmd_entry_active = cmd_entry_active; pcb_hid_cfg_action(find_best_action(mouse, button_and_mask)); - pcb_event(PCB_EVENT_USER_INPUT_POST, NULL); + pcb_event(NULL, PCB_EVENT_USER_INPUT_POST, NULL); pcb_crosshair.click_cmd_entry_active = 0; } @@ -543,11 +543,11 @@ if (ns->action_node != NULL) { km->seq_len_action = *seq_len; (*seq_len) = 0; - pcb_event(PCB_EVENT_USER_INPUT_KEY, NULL); + pcb_event(NULL, PCB_EVENT_USER_INPUT_KEY, NULL); return km->seq_len_action; } - pcb_event(PCB_EVENT_USER_INPUT_KEY, NULL); + pcb_event(NULL, PCB_EVENT_USER_INPUT_KEY, NULL); return 0; } @@ -564,7 +564,7 @@ return -1; res = pcb_hid_cfg_action(seq[seq_len-1]->action_node); - pcb_event(PCB_EVENT_USER_INPUT_POST, NULL); + pcb_event(NULL, PCB_EVENT_USER_INPUT_POST, NULL); return res; } Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 25188) +++ trunk/src/layer.c (revision 25189) @@ -538,7 +538,7 @@ { free((char*)Layer->name); Layer->name = Name; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); return 0; } @@ -552,7 +552,7 @@ if (Layer->is_bound) return -1; Layer->meta.real.color = *color; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); return 0; } @@ -695,9 +695,9 @@ grp_idx = 0; g->lid[grp_idx] = new_lid; g->len++; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); pcb_layervis_change_group_vis(new_lid, 1, 1); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); at = new_lid; } else if (new_index == -1) { /* Delete the layer at old_index */ @@ -745,7 +745,7 @@ if (pcb_layer_stack[l] > old_index) pcb_layer_stack[l]--; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&pcb->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } else { pcb_message(PCB_MSG_ERROR, "Logical layer move is not supported any more. This function should have not been called. Please report this error.\n"); Index: trunk/src/layer_grp.c =================================================================== --- trunk/src/layer_grp.c (revision 25188) +++ trunk/src/layer_grp.c (revision 25189) @@ -43,7 +43,7 @@ do { \ pcb->LayerGroups.cache.copper_valid = 0; \ if (!inhibit_notify) { \ - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); \ + pcb_event(&pcb->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); \ if ((pcb_gui != NULL) && (pcb_exporter == NULL)) \ pcb_gui->invalidate_all(); \ pcb_board_set_changed_flag(pcb_true); \ @@ -188,7 +188,7 @@ if (pcb_layergrp_del_layer(pcb, -1, lid) != 0) return -1; pcb_layer_add_in_group(pcb, lid, gid); - pcb_event(PCB_EVENT_LAYER_CHANGED_GRP, "p", &pcb->Data->Layer[lid]); + pcb_event(&pcb->hidlib, PCB_EVENT_LAYER_CHANGED_GRP, "p", &pcb->Data->Layer[lid]); NOTIFY(pcb); return gid; } @@ -812,7 +812,7 @@ { free(grp->name); grp->name = name; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); return 0; } @@ -842,7 +842,7 @@ int pcb_layergrp_set_purpose_(pcb_layergrp_t *lg, char *purpose) { int ret = pcb_layergrp_set_purpose__(lg, purpose); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); return ret; } Index: trunk/src/layer_ui.c =================================================================== --- trunk/src/layer_ui.c (revision 25188) +++ trunk/src/layer_ui.c (revision 25189) @@ -30,6 +30,7 @@ /* Virtual layers for UI and debug */ #include "config.h" +#include "board.h" #include "layer.h" #include "event.h" #include "compat_misc.h" @@ -67,7 +68,7 @@ l->meta.real.vis = 1; l->parent_type = PCB_PARENT_UI; l->parent.any = NULL; - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); return l; } @@ -88,7 +89,7 @@ break; } } - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } void pcb_uilayer_free_all_cookie(const char *cookie) @@ -99,7 +100,7 @@ if ((l != NULL) && (l->meta.real.cookie == cookie)) pcb_uilayer_free_(l, n); } - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } void pcb_uilayer_uninit(void) Index: trunk/src/layer_vis.c =================================================================== --- trunk/src/layer_vis.c (revision 25188) +++ trunk/src/layer_vis.c (revision 25189) @@ -123,7 +123,7 @@ done:; /* update control panel and exit */ - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); return changed; } @@ -230,7 +230,7 @@ } } if (chg) - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); in = 0; } @@ -288,7 +288,7 @@ } } - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); /* Can't send LAYERVIS_CHANGED here: it's a race condition, the layer selector could still have the old widgets */ + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); /* Can't send LAYERVIS_CHANGED here: it's a race condition, the layer selector could still have the old widgets */ } pcb_layer_id_t pcb_layer_vis_last_lyt(pcb_layer_type_t target) Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 25188) +++ trunk/src/main.c (revision 25189) @@ -658,7 +658,7 @@ /* read the library file and display it if it's not empty */ if (!pcb_fp_read_lib_all() && pcb_library.data.dir.children.used) - pcb_event(PCB_EVENT_LIBRARY_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LIBRARY_CHANGED, NULL); if (conf_core.rc.script_filename) { pcb_message(PCB_MSG_INFO, "Executing startup script file %s\n", conf_core.rc.script_filename); @@ -702,7 +702,7 @@ if (pcb_gui->gui) pcb_crosshair_init(); pcb_tool_select_by_id(PCB_MODE_ARROW); - pcb_event(PCB_EVENT_LIBRARY_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LIBRARY_CHANGED, NULL); } } while(pcb_gui != NULL); Index: trunk/src/move.c =================================================================== --- trunk/src/move.c (revision 25188) +++ trunk/src/move.c (revision 25189) @@ -167,18 +167,18 @@ /* Get the new arc point positions so that we can calculate the position deltas */ pcb_arc_get_end(p_arc,0, &nx1, &ny1); pcb_arc_get_end(p_arc,1, &nx2, &ny2); - pcb_event(PCB_EVENT_RUBBER_MOVE, "icccc", 0, nx1-ox1, ny1-oy1, nx2-ox2, ny2-oy2); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE, "icccc", 0, nx1-ox1, ny1-oy1, nx2-ox2, ny2-oy2); } break; case PCB_OBJ_ARC: - pcb_event(PCB_EVENT_RUBBER_MOVE, "icccc", 0, DX, DY, DX, DY); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE, "icccc", 0, DX, DY, DX, DY); pcb_undo_add_obj_to_move(Type, Ptr1, Ptr2, Ptr3, DX, DY); ptr2 = pcb_object_operation(&MoveFunctions, &ctx, Type, Ptr1, Ptr2, Ptr3); break; case PCB_OBJ_LINE_POINT : - pcb_event(PCB_EVENT_RUBBER_MOVE, "icc", 0, DX, DY); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE, "icc", 0, DX, DY); ptr2 = pcb_lineop_move_point_with_route(&ctx, Ptr1, Ptr2, Ptr3); break; @@ -192,8 +192,8 @@ int constrained = 0; if(conf_core.editor.rubber_band_keep_midlinedir) - pcb_event(PCB_EVENT_RUBBER_CONSTRAIN_MAIN_LINE, "pppppp", line, &constrained, &dx1, &dy1, &dx2, &dy2); - pcb_event(PCB_EVENT_RUBBER_MOVE, "icccc", constrained, dx1, dy1, dx2, dy2); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_CONSTRAIN_MAIN_LINE, "pppppp", line, &constrained, &dx1, &dy1, &dx2, &dy2); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE, "icccc", constrained, dx1, dy1, dx2, dy2); ctx.move.dx = dx1; ctx.move.dy = dy1; @@ -223,7 +223,7 @@ break; default: - pcb_event(PCB_EVENT_RUBBER_MOVE, "icc", 0, DX, DY); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_MOVE, "icc", 0, DX, DY); pcb_undo_add_obj_to_move(Type, Ptr1, Ptr2, Ptr3, DX, DY); ptr2 = pcb_object_operation(&MoveFunctions, &ctx, Type, Ptr1, Ptr2, Ptr3); break; Index: trunk/src/netlist2.c =================================================================== --- trunk/src/netlist2.c (revision 25188) +++ trunk/src/netlist2.c (revision 25189) @@ -392,7 +392,7 @@ else pcb_message(PCB_MSG_WARNING, "SHORT: net \"%s\" is shorted to terminal %s-%s\n", sctx->current_net->name, sc->refdes, offender->term); - pcb_event(PCB_EVENT_NET_INDICATE_SHORT, "pppp", sctx->current_net, offender, offn, &handled); + pcb_event(&PCB->hidlib, PCB_EVENT_NET_INDICATE_SHORT, "pppp", sctx->current_net, offender, offn, &handled); if (!handled) { pcb_net_term_t *orig_t = pcb_termlist_first(&sctx->current_net->conns); pcb_any_obj_t *orig_o = pcb_term_find_name(sctx->pcb, sctx->pcb->Data, PCB_LYT_COPPER, orig_t->refdes, orig_t->term, NULL, NULL); @@ -727,7 +727,7 @@ PCB->netlist_needs_update = 1; else { PCB->netlist_needs_update = 0; - pcb_event(PCB_EVENT_NETLIST_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_NETLIST_CHANGED, NULL); } } Index: trunk/src/obj_pstk.c =================================================================== --- trunk/src/obj_pstk.c (revision 25188) +++ trunk/src/obj_pstk.c (revision 25189) @@ -132,7 +132,7 @@ ps->xmirror = xmirror; ps->smirror = smirror; pcb_pstk_add(data, ps); - pcb_event(PCB_EVENT_NEW_PSTK, "p", ps); + pcb_event(&PCB->hidlib, PCB_EVENT_NEW_PSTK, "p", ps); pcb_poly_clear_from_poly(data, PCB_OBJ_PSTK, NULL, ps); return ps; } Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 25188) +++ trunk/src/object_act.c (revision 25189) @@ -319,11 +319,11 @@ if (ny->absolute[0]) ny->c[0] -= pcb_crosshair.Y; - pcb_event(PCB_EVENT_RUBBER_RESET, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_RESET, NULL); if (conf_core.editor.rubber_band_mode) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); if (type == PCB_OBJ_SUBC) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", type, ptr1, ptr2, ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", type, ptr1, ptr2, ptr3); pcb_move_obj_and_rubberband(type, ptr1, ptr2, ptr3, nx->c[0], ny->c[0]); pcb_board_set_changed_flag(pcb_true); Index: trunk/src/plug_footprint.c =================================================================== --- trunk/src/plug_footprint.c (revision 25188) +++ trunk/src/plug_footprint.c (revision 25189) @@ -448,7 +448,7 @@ return 1; } -int pcb_fp_rehash(pcb_fplibrary_t *l) +int pcb_fp_rehash(pcb_hidlib_t *hidlib, pcb_fplibrary_t *l) { pcb_plug_fp_t *be; char *path; @@ -472,7 +472,7 @@ free(path); if (res >= 0) { - pcb_event(PCB_EVENT_LIBRARY_CHANGED, NULL); + pcb_event(hidlib, PCB_EVENT_LIBRARY_CHANGED, NULL); return 0; } return -1; Index: trunk/src/plug_footprint.h =================================================================== --- trunk/src/plug_footprint.h (revision 25188) +++ trunk/src/plug_footprint.h (revision 25189) @@ -91,6 +91,6 @@ int pcb_fp_host_uninit(void); /* rescan/reload all footprints in the library cache */ -int pcb_fp_rehash(pcb_fplibrary_t *l); +int pcb_fp_rehash(pcb_hidlib_t *hidlib, pcb_fplibrary_t *l); #endif Index: trunk/src/plug_footprint_act.c =================================================================== --- trunk/src/plug_footprint_act.c (revision 25188) +++ trunk/src/plug_footprint_act.c (revision 25189) @@ -29,6 +29,7 @@ #include "config.h" #include "actions.h" +#include "board.h" #include "plug_footprint.h" static const char pcb_acts_fp_rehash[] = "fp_rehash()" ; @@ -42,7 +43,7 @@ PCB_ACT_IRES(0); if (name == NULL) { - pcb_fp_rehash(NULL); + pcb_fp_rehash(&PCB->hidlib, NULL); return 0; } @@ -65,7 +66,7 @@ return 0; } - if (pcb_fp_rehash(l) != 0) { + if (pcb_fp_rehash(&PCB->hidlib, l) != 0) { pcb_message(PCB_MSG_ERROR, "Failed to rehash %s\n", name); PCB_ACT_IRES(1); return 0; Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 25188) +++ trunk/src/plug_io.c (revision 25189) @@ -146,7 +146,7 @@ } if (gen_event) - pcb_event(PCB_EVENT_LOAD_PRE, "s", Filename); + pcb_event(&PCB->hidlib, PCB_EVENT_LOAD_PRE, "s", Filename); len = pcb_find_io(available, maxav, type, 0, fmt); if (fmt != NULL) { @@ -233,8 +233,8 @@ pcb_set_design_dir(Filename); if (load_settings) - pcb_event(PCB_EVENT_LOAD_POST, "si", Filename, res); - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LOAD_POST, "si", Filename, res); + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); conf_set(CFR_DESIGN, "design/text_font_id", 0, "0", POL_OVERWRITE); /* we have only one font now, make sure it is selected */ plug_io_err(res, "load pcb", Filename); @@ -443,9 +443,9 @@ if (p != NULL) { if (p->write_pcb != NULL) { - pcb_event(PCB_EVENT_SAVE_PRE, "s", fmt); + pcb_event(&PCB->hidlib, PCB_EVENT_SAVE_PRE, "s", fmt); res = p->write_pcb(p, f, old_filename, new_filename, emergency); - pcb_event(PCB_EVENT_SAVE_POST, "si", fmt, res); + pcb_event(&PCB->hidlib, PCB_EVENT_SAVE_POST, "si", fmt, res); } else { pcb_message(PCB_MSG_ERROR, "Can't write PCB: internal error: io plugin %s doesn't implement write_pcb()\n", p->description); @@ -510,7 +510,7 @@ } /* have to be called after pcb_board_resize() so vis update is after a board changed update */ - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); pcb_layervis_reset_stack(); /* enable default font if necessary */ Index: trunk/src/rotate.c =================================================================== --- trunk/src/rotate.c (revision 25188) +++ trunk/src/rotate.c (revision 25189) @@ -96,7 +96,7 @@ ctx.rotate.center_x = X; ctx.rotate.center_y = Y; - pcb_event(PCB_EVENT_RUBBER_ROTATE90, "ipppccip", Type, Ptr1, Ptr2, Ptr2, ctx.rotate.center_x, ctx.rotate.center_y, ctx.rotate.number, &changed); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_ROTATE90, "ipppccip", Type, Ptr1, Ptr2, Ptr2, ctx.rotate.center_x, ctx.rotate.center_y, ctx.rotate.number, &changed); if (Type != PCB_OBJ_PSTK) /* padstack has its own way doing the rotation-undo */ pcb_undo_add_obj_to_rotate90(Type, Ptr1, Ptr2, Ptr3, ctx.rotate.center_x, ctx.rotate.center_y, ctx.rotate.number); @@ -121,7 +121,7 @@ ctx.rotate.center_x = X; ctx.rotate.center_y = Y; - pcb_event(PCB_EVENT_RUBBER_ROTATE, "ipppccip", Type, Ptr1, Ptr2, Ptr2, ctx.rotate.center_x, ctx.rotate.center_y, ctx.rotate.angle, &changed); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_ROTATE, "ipppccip", Type, Ptr1, Ptr2, Ptr2, ctx.rotate.center_x, ctx.rotate.center_y, ctx.rotate.angle, &changed); if (Type != PCB_OBJ_PSTK) /* padstack has its own way doing the rotation-undo */ pcb_undo_add_obj_to_rotate(Type, Ptr1, Ptr2, Ptr3, ctx.rotate.center_x, ctx.rotate.center_y, ctx.rotate.angle); @@ -144,11 +144,11 @@ pcb_message(PCB_MSG_WARNING, "Sorry, %s object is locked\n", pcb_obj_type_name(obj->type)); return; } - pcb_event(PCB_EVENT_RUBBER_RESET, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_RESET, NULL); if (conf_core.editor.rubber_band_mode) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); if (type == PCB_OBJ_SUBC) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", type, ptr1, ptr2, ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", type, ptr1, ptr2, ptr3); pcb_obj_rotate90(type, ptr1, ptr2, ptr3, X, Y, Steps); pcb_board_set_changed_flag(pcb_true); } @@ -164,11 +164,11 @@ pcb_message(PCB_MSG_WARNING, "Sorry, %s object is locked\n", pcb_obj_type_name(obj->type)); return; } - pcb_event(PCB_EVENT_RUBBER_RESET, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_RESET, NULL); if (conf_core.editor.rubber_band_mode) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); if (type == PCB_OBJ_SUBC) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", type, ptr1, ptr2, ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", type, ptr1, ptr2, ptr3); pcb_obj_rotate(type, ptr1, ptr2, ptr3, X, Y, angle); pcb_board_set_changed_flag(pcb_true); } Index: trunk/src/tool.c =================================================================== --- trunk/src/tool.c (revision 25188) +++ trunk/src/tool.c (revision 25189) @@ -279,7 +279,7 @@ pcb_box_t box; pcb_coord_t mx = 0, my = 0; - pcb_event(PCB_EVENT_RUBBER_RESET, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_RESET, NULL); if (!conf_core.editor.snap_pin) { /* dither the grab point so that the mark, center, etc * will end up on a grid coordinate @@ -305,12 +305,12 @@ /* get all attached objects if necessary */ if (do_rubberband && conf_core.editor.rubber_band_mode) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); if (do_rubberband && (pcb_crosshair.AttachedObject.Type == PCB_OBJ_SUBC || pcb_crosshair.AttachedObject.Type == PCB_OBJ_PSTK || pcb_crosshair.AttachedObject.Type == PCB_OBJ_LINE || pcb_crosshair.AttachedObject.Type == PCB_OBJ_LINE_POINT)) - pcb_event(PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); + pcb_event(&PCB->hidlib, PCB_EVENT_RUBBER_LOOKUP_RATS, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); } void pcb_tool_notify_block(void) Index: trunk/src/undo.c =================================================================== --- trunk/src/undo.c (revision 25188) +++ trunk/src/undo.c (revision 25189) @@ -119,7 +119,7 @@ else if (pcb_undo_and_draw) pcb_draw(); - pcb_event(PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_UNDO); + pcb_event(&PCB->hidlib, PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_UNDO); return res; } @@ -168,7 +168,7 @@ else if (pcb_undo_and_draw) pcb_draw(); - pcb_event(PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_REDO); + pcb_event(&PCB->hidlib, PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_REDO); return res; } @@ -221,7 +221,7 @@ { if (pcb_uundo.num_undo && (Force || pcb_hid_message_box("warning", "clear undo buffer", "Do you reall want to clear 'undo' buffer?", "yes", 1, "no", 0, NULL) == 1)) { uundo_list_clear(&pcb_uundo); - pcb_event(PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_CLEAR_LIST); + pcb_event(&PCB->hidlib, PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_CLEAR_LIST); } } @@ -258,7 +258,7 @@ void pcb_undo_truncate_from(uundo_serial_t sfirst) { uundo_list_truncate_from(&pcb_uundo, sfirst); - pcb_event(PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_TRUNCATE); + pcb_event(&PCB->hidlib, PCB_EVENT_UNDO_POST, "i", PCB_UNDO_EV_TRUNCATE); } int undo_check(void) Index: trunk/src_plugins/autoplace/action.c =================================================================== --- trunk/src_plugins/autoplace/action.c (revision 25188) +++ trunk/src_plugins/autoplace/action.c (revision 25189) @@ -44,7 +44,7 @@ /* DOC: autoplaceselected */ static fgw_error_t pcb_act_AutoPlaceSelected(fgw_arg_t *res, int argc, fgw_arg_t *argv) { - pcb_event(PCB_EVENT_BUSY, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BUSY, NULL); if (pcb_hid_message_box("question", "Autoplace start", "Auto-placement can NOT be undone.\nDo you want to continue anyway?", "no", 0, "yes", 1, NULL) == 1) { if (AutoPlaceSelected()) pcb_board_set_changed_flag(pcb_true); Index: trunk/src_plugins/autoroute/action.c =================================================================== --- trunk/src_plugins/autoroute/action.c (revision 25188) +++ trunk/src_plugins/autoroute/action.c (revision 25189) @@ -48,7 +48,7 @@ PCB_ACT_CONVARG(1, FGW_KEYWORD, AutoRoute, op = fgw_keyword(&argv[1])); - pcb_event(PCB_EVENT_BUSY, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BUSY, NULL); switch(op) { case F_AllRats: case F_All: Index: trunk/src_plugins/cam/cam_compile.c =================================================================== --- trunk/src_plugins/cam/cam_compile.c (revision 25188) +++ trunk/src_plugins/cam/cam_compile.c (revision 25189) @@ -134,7 +134,7 @@ if (have_gui) { pcb_hid_restore_layer_ons(save_ons); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); } return 0; } Index: trunk/src_plugins/dialogs/dlg_layer_flags.c =================================================================== --- trunk/src_plugins/dialogs/dlg_layer_flags.c (revision 25188) +++ trunk/src_plugins/dialogs/dlg_layer_flags.c (revision 25189) @@ -206,7 +206,7 @@ if (changed) { pcb_board_set_changed_flag(pcb_true); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } } else Index: trunk/src_plugins/dialogs/dlg_netlist.c =================================================================== --- trunk/src_plugins/dialogs/dlg_netlist.c (revision 25188) +++ trunk/src_plugins/dialogs/dlg_netlist.c (revision 25189) @@ -46,7 +46,7 @@ netlist_ctx_t *ctx = caller_data; PCB_DAD_FREE(ctx->dlg); memset(ctx, 0, sizeof(netlist_ctx_t)); - pcb_event(PCB_EVENT_GUI_LEAD_USER, "cci", 0, 0, 0); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_LEAD_USER, "cci", 0, 0, 0); } /* returns allocated net name for the currently selected net */ @@ -158,7 +158,7 @@ if (netname != NULL) net = pcb_net_get(ctx->pcb, &ctx->pcb->netlist[PCB_NETLIST_EDITED], netname, 0); netlist_data2dlg_connlist(ctx, net); - pcb_event(PCB_EVENT_GUI_LEAD_USER, "cci", 0, 0, 0); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_LEAD_USER, "cci", 0, 0, 0); netlist_force_redraw(ctx); } @@ -169,7 +169,7 @@ char *refdes, *term; pcb_any_obj_t *obj; - pcb_event(PCB_EVENT_GUI_LEAD_USER, "cci", 0, 0, 0); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_LEAD_USER, "cci", 0, 0, 0); if (row == NULL) return; refdes = pcb_strdup(row->cell[0]); @@ -181,7 +181,7 @@ if (obj != NULL) { pcb_coord_t x, y; pcb_obj_center(obj, &x, &y); - pcb_event(PCB_EVENT_GUI_LEAD_USER, "cci", x, y, 1); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_LEAD_USER, "cci", x, y, 1); } } free(refdes); Index: trunk/src_plugins/dialogs/dlg_pref_board.c =================================================================== --- trunk/src_plugins/dialogs/dlg_pref_board.c (revision 25188) +++ trunk/src_plugins/dialogs/dlg_pref_board.c (revision 25189) @@ -64,7 +64,7 @@ if (changed) { PCB->Changed = 1; - pcb_event(PCB_EVENT_BOARD_META_CHANGED, NULL); /* always generate the event to make sure visible changes are flushed */ + pcb_event(&PCB->hidlib, PCB_EVENT_BOARD_META_CHANGED, NULL); /* always generate the event to make sure visible changes are flushed */ } } Index: trunk/src_plugins/djopt/djopt.c =================================================================== --- trunk/src_plugins/djopt/djopt.c (revision 25188) +++ trunk/src_plugins/djopt/djopt.c (revision 25189) @@ -2451,7 +2451,7 @@ SwitchDrawingWindow(PCB->Zoom, Output.drawing_area->window, conf_core.editor.show_solder_side, pcb_false); #endif - pcb_event(PCB_EVENT_BUSY, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BUSY, NULL); lines = 0; corners = 0; Index: trunk/src_plugins/draw_csect/draw_csect.c =================================================================== --- trunk/src_plugins/draw_csect/draw_csect.c (revision 25188) +++ trunk/src_plugins/draw_csect/draw_csect.c (revision 25189) @@ -738,7 +738,7 @@ outline_gactive = pcb_layergrp_id(PCB, g); pcb_layer_create(PCB, outline_gactive, "outline"); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } drag_addoutline = 0; gactive = -1; @@ -775,11 +775,11 @@ else if (drag_addlayer) { if (gactive >= 0) { pcb_layer_create(PCB, gactive, "New Layer"); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } else if (outline_gactive >= 0 && PCB->LayerGroups.grp[outline_gactive].len == 0) { pcb_layer_create(PCB, outline_gactive, "outline"); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } drag_addlayer = 0; gactive = -1; @@ -826,7 +826,7 @@ memmove(g->lid + lactive_idx + 1, g->lid + lactive_idx, (g->len - 1 - lactive_idx) * sizeof(pcb_layer_id_t)); g->lid[lactive_idx] = drag_lid; } - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } } else if (outline_gactive >= 0 && PCB->LayerGroups.grp[outline_gactive].len == 0) { Index: trunk/src_plugins/drc_orig/drc_orig.c =================================================================== --- trunk/src_plugins/drc_orig/drc_orig.c (revision 25188) +++ trunk/src_plugins/drc_orig/drc_orig.c (revision 25189) @@ -407,7 +407,7 @@ pcb_layervis_save_stack(); pcb_layervis_reset_stack(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); /* actual tests */ pcb_hid_progress(0, 0, NULL); @@ -437,7 +437,7 @@ out:; pcb_hid_progress(0, 0, NULL); pcb_layervis_restore_stack(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); pcb_gui->invalidate_all(); } Index: trunk/src_plugins/export_openems/mesh.c =================================================================== --- trunk/src_plugins/export_openems/mesh.c (revision 25188) +++ trunk/src_plugins/export_openems/mesh.c (revision 25189) @@ -1029,7 +1029,7 @@ free(mesh.ui_layer_xy->name); mesh.ui_name_xy = pcb_strdup_printf("mesh 0: %s", mesh.layer->name); mesh.ui_layer_xy->name = pcb_strdup(mesh.ui_name_xy); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); pcb_gui->invalidate_all(); } Index: trunk/src_plugins/fontmode/fontmode.c =================================================================== --- trunk/src_plugins/fontmode/fontmode.c (revision 25188) +++ trunk/src_plugins/fontmode/fontmode.c (revision 25189) @@ -145,8 +145,8 @@ pcb_layergrp_inhibit_dec(); /* Inform the rest about the board change (layer stack, size) */ - pcb_event(PCB_EVENT_BOARD_CHANGED, NULL); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BOARD_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); for (s = 0; s <= PCB_MAX_FONTPOSITION; s++) { char txt[32]; Index: trunk/src_plugins/hid_lesstif/dialogs.c =================================================================== --- trunk/src_plugins/hid_lesstif/dialogs.c (revision 25188) +++ trunk/src_plugins/hid_lesstif/dialogs.c (revision 25189) @@ -33,7 +33,9 @@ #include "plug_io.h" int pcb_ltf_ok; +extern pcb_hidlib_t *ltf_hidlib; + #define COMPONENT_SIDE_NAME "(top)" #define SOLDER_SIDE_NAME "(bottom)" @@ -44,7 +46,7 @@ plc[2] = defx; plc[3] = defy; - pcb_event(PCB_EVENT_DAD_NEW_DIALOG, "psp", NULL, id, plc); + pcb_event(ltf_hidlib, PCB_EVENT_DAD_NEW_DIALOG, "psp", NULL, id, plc); if (pcbhl_conf.editor.auto_place) { if ((plc[2] > 0) && (plc[3] > 0) && (plc[0] >= 0) && (plc[1] >= 0)) { @@ -74,7 +76,7 @@ #endif XGetGeometry(dsp, win, &rw, &x, &y, &w, &h, &brd, &depth); - pcb_event(PCB_EVENT_DAD_NEW_GEO, "psiiii", ctx, id, (int)x, (int)y, (int)w, (int)h); + pcb_event(ltf_hidlib, PCB_EVENT_DAD_NEW_GEO, "psiiii", ctx, id, (int)x, (int)y, (int)w, (int)h); } Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 25188) +++ trunk/src_plugins/hid_lesstif/main.c (revision 25189) @@ -1517,7 +1517,7 @@ pcb_board_changed(0); lesstif_menubar = menu; - pcb_event(PCB_EVENT_GUI_INIT, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_INIT, NULL); lesstif_hid_inited = 1; Index: trunk/src_plugins/io_hyp/io_hyp.c =================================================================== --- trunk/src_plugins/io_hyp/io_hyp.c (revision 25188) +++ trunk/src_plugins/io_hyp/io_hyp.c (revision 25189) @@ -104,13 +104,13 @@ if (debug > 0) pcb_message(PCB_MSG_INFO, "Importing Hyperlynx file '%s', debug level %d\n", fname, debug); - pcb_event(PCB_EVENT_BUSY, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BUSY, NULL); retval = hyp_parse(PCB->Data, fname, debug); /* notify GUI */ - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); - pcb_event(PCB_EVENT_BOARD_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BOARD_CHANGED, NULL); PCB_ACT_IRES(retval); return 0; Index: trunk/src_plugins/io_pcb/file.c =================================================================== --- trunk/src_plugins/io_pcb/file.c (revision 25188) +++ trunk/src_plugins/io_pcb/file.c (revision 25189) @@ -661,7 +661,7 @@ } if (chg) - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } static void WriteLayers(FILE *FP, pcb_data_t *data) Index: trunk/src_plugins/jostle/jostle.c =================================================================== --- trunk/src_plugins/jostle/jostle.c (revision 25188) +++ trunk/src_plugins/jostle/jostle.c (revision 25189) @@ -111,7 +111,7 @@ } } while ((p = p->f) != s); /* ddraw->flush_debug_draw();*/ - pcb_event(PCB_EVENT_BUSY, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BUSY, NULL); /* sleep(3); ddraw->finish_debug_draw();*/ } Index: trunk/src_plugins/lib_gtk_common/bu_menu.c =================================================================== --- trunk/src_plugins/lib_gtk_common/bu_menu.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/bu_menu.c (revision 25189) @@ -432,7 +432,7 @@ pcb_hid_cfg_action(node); - pcb_event(PCB_EVENT_GUI_SYNC, NULL); + pcb_event(NULL, PCB_EVENT_GUI_SYNC, NULL); } Index: trunk/src_plugins/lib_gtk_common/dlg_attribute.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_attribute.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/dlg_attribute.c (revision 25189) @@ -776,7 +776,7 @@ static gint ghid_attr_dlg_configure_event_cb(GtkWidget *widget, GdkEventConfigure *ev, gpointer data) { attr_dlg_t *ctx = (attr_dlg_t *)data; - return pcb_gtk_winplace_cfg(widget, ctx, ctx->id); + return pcb_gtk_winplace_cfg(ctx->com->hidlib, widget, ctx, ctx->id); } static gint ghid_attr_dlg_destroy_event_cb(GtkWidget *widget, gpointer data) @@ -818,7 +818,7 @@ ctx->close_cb = button_cb; ctx->id = pcb_strdup(id); - pcb_event(PCB_EVENT_DAD_NEW_DIALOG, "psp", ctx, ctx->id, plc); + pcb_event(com->hidlib, PCB_EVENT_DAD_NEW_DIALOG, "psp", ctx, ctx->id, plc); /* ctx->dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);*/ ctx->dialog = gtk_dialog_new(); Index: trunk/src_plugins/lib_gtk_common/dlg_library.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_library.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/dlg_library.c (revision 25189) @@ -63,6 +63,7 @@ #include "conf_core.h" #include "buffer.h" +#include "board.h" #include "data.h" #include "plug_footprint.h" #include "compat_misc.h" @@ -94,7 +95,7 @@ /* GtkWidget "configure_event" signal emitted when the size, position or stacking of the widget's window has changed. */ static gint library_window_configure_event_cb(GtkWidget * widget, GdkEventConfigure * ev, gpointer data) { - return pcb_gtk_winplace_cfg(widget, NULL, "library"); + return pcb_gtk_winplace_cfg(&PCB->hidlib, widget, NULL, "library"); } enum { @@ -499,7 +500,7 @@ } } - if (pcb_fp_rehash(entry) != 0) { + if (pcb_fp_rehash(&PCB->hidlib, entry) != 0) { pcb_message(PCB_MSG_ERROR, "Failed to rehash library\n"); return; } @@ -940,7 +941,7 @@ lwcom = com; library_window = (GtkWidget *) g_object_new(GHID_TYPE_LIBRARY_WINDOW, NULL); - pcb_gtk_winplace(library_window, "library"); + pcb_gtk_winplace(&PCB->hidlib, library_window, "library"); g_signal_connect(GTK_DIALOG(library_window), "response", G_CALLBACK(library_window_callback_response), NULL); g_signal_connect(library_window, "configure_event", G_CALLBACK(library_window_configure_event_cb), NULL); Index: trunk/src_plugins/lib_gtk_common/dlg_search.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_search.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/dlg_search.c (revision 25189) @@ -36,6 +36,7 @@ #include #include "compat_misc.h" #include "actions.h" +#include "board.h" #include "misc_util.h" #include "pcb-printf.h" #include "hidlib_conf.h" @@ -854,7 +855,7 @@ GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, NULL); - pcb_gtk_winplace(sdlg.window, "search"); + pcb_gtk_winplace(&PCB->hidlib, sdlg.window, "search"); g_signal_connect(sdlg.window, "response", G_CALLBACK(dialog_cb), NULL); content_area = gtk_dialog_get_content_area(GTK_DIALOG(sdlg.window)); Index: trunk/src_plugins/lib_gtk_common/dlg_topwin.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_topwin.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/dlg_topwin.c (revision 25189) @@ -151,9 +151,10 @@ } /* Save size of top window changes so PCB can restart at its size at exit. */ -static gint top_window_configure_event_cb(GtkWidget *widget, GdkEventConfigure *ev, void *gport) +static gint top_window_configure_event_cb(GtkWidget *widget, GdkEventConfigure *ev, void *tw_) { - return pcb_gtk_winplace_cfg(widget, NULL, "top"); + pcb_gtk_topwin_t *tw = tw_; + return pcb_gtk_winplace_cfg(tw->com->hidlib, widget, NULL, "top"); } gboolean ghid_idle_cb(void *topwin) @@ -562,7 +563,7 @@ g_signal_connect(G_OBJECT(tw->drawing_area), "size-allocate", G_CALLBACK(drawing_area_size_allocate_cb), tw); g_signal_connect(G_OBJECT(tw->drawing_area), "enter-notify-event", G_CALLBACK(drawing_area_enter_cb), tw); - g_signal_connect(G_OBJECT(tw->com->top_window), "configure_event", G_CALLBACK(top_window_configure_event_cb), tw->com->gport); + g_signal_connect(G_OBJECT(tw->com->top_window), "configure_event", G_CALLBACK(top_window_configure_event_cb), tw); g_signal_connect(G_OBJECT(tw->com->top_window), "delete_event", G_CALLBACK(delete_chart_cb), tw->com->gport); g_signal_connect(G_OBJECT(tw->com->top_window), "destroy", G_CALLBACK(destroy_chart_cb), tw); Index: trunk/src_plugins/lib_gtk_common/in_keyboard.c =================================================================== --- trunk/src_plugins/lib_gtk_common/in_keyboard.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/in_keyboard.c (revision 25189) @@ -121,7 +121,7 @@ if (kv == GDK_KEY_KP_Enter) key_raw = kv = GDK_KEY_Return; slen = pcb_hid_cfg_keys_input(&ghid_keymap, mods, key_raw, kv); - pcb_event(PCB_EVENT_GUI_SYNC_STATUS, 0, NULL); + pcb_event(view->com->hidlib, PCB_EVENT_GUI_SYNC_STATUS, 0, NULL); if (slen > 0) { pcb_hid_cfg_keys_action(&ghid_keymap); return TRUE; Index: trunk/src_plugins/lib_gtk_common/win_place.c =================================================================== --- trunk/src_plugins/lib_gtk_common/win_place.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/win_place.c (revision 25189) @@ -30,11 +30,11 @@ #include "event.h" TODO("DAD: the only legitimate user is top window, move this code there once all other gtk-only dialogs are gone"); -void pcb_gtk_winplace(GtkWidget *dialog, const char *id) +void pcb_gtk_winplace(pcb_hidlib_t *hidlib, GtkWidget *dialog, const char *id) { int plc[4] = {-1, -1, -1, -1}; - pcb_event(PCB_EVENT_DAD_NEW_DIALOG, "psp", NULL, id, plc); + pcb_event(hidlib, PCB_EVENT_DAD_NEW_DIALOG, "psp", NULL, id, plc); if (pcbhl_conf.editor.auto_place) { if ((plc[2] > 0) && (plc[3] > 0)) @@ -44,7 +44,7 @@ } } -gint pcb_gtk_winplace_cfg(GtkWidget *widget, void *ctx, const char *id) +gint pcb_gtk_winplace_cfg(pcb_hidlib_t *hidlib, GtkWidget *widget, void *ctx, const char *id) { GtkAllocation allocation; @@ -53,7 +53,7 @@ /* For whatever reason, get_allocation doesn't set these. Gtk. */ gtk_window_get_position(GTK_WINDOW(widget), &allocation.x, &allocation.y); - pcb_event(PCB_EVENT_DAD_NEW_GEO, "psiiii", ctx, id, + pcb_event(hidlib, PCB_EVENT_DAD_NEW_GEO, "psiiii", ctx, id, (int)allocation.x, (int)allocation.y, (int)allocation.width, (int)allocation.height); return 0; Index: trunk/src_plugins/lib_gtk_common/win_place.h =================================================================== --- trunk/src_plugins/lib_gtk_common/win_place.h (revision 25188) +++ trunk/src_plugins/lib_gtk_common/win_place.h (revision 25189) @@ -2,14 +2,15 @@ #define GHID_WIN_PLACE #include +#include "global_typedefs.h" /* Place a dialog box if auto-placement is enabled and there is saved preference for dialog box coord or shape. Call this right after the dialog box is created but before the configure event is bound. */ -void pcb_gtk_winplace(GtkWidget *dialog, const char *id); +void pcb_gtk_winplace(pcb_hidlib_t *hidlib, GtkWidget *dialog, const char *id); /* Report new window coords to the central window placement code emitting an event */ -gint pcb_gtk_winplace_cfg(GtkWidget *widget, void *ctx, const char *id); +gint pcb_gtk_winplace_cfg(pcb_hidlib_t *hidlib, GtkWidget *widget, void *ctx, const char *id); #endif Index: trunk/src_plugins/lib_gtk_common/wt_layersel.c =================================================================== --- trunk/src_plugins/lib_gtk_common/wt_layersel.c (revision 25188) +++ trunk/src_plugins/lib_gtk_common/wt_layersel.c (revision 25189) @@ -258,7 +258,7 @@ layersel_lyr_vis_sync(&lsg->layer[n]); group_vis_sync(lsg); ls->com->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(ls->com->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); break; case 3: if (lsg->grp != &lsg->ls->grp_virt) { @@ -318,7 +318,7 @@ } ls->com->invalidate_all(); - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(ls->com->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); layer_popup(ls, event->button.button, lsl->lid, lsl->lsg->grp); break; } @@ -340,7 +340,7 @@ ls->com->invalidate_all(); pcb_gtk_layersel_vis_update(ls); /* need to do a full redraw because of side effects of special layer selections (e.g. Rats') */ } - pcb_event(PCB_EVENT_LAYERVIS_CHANGED, NULL); + pcb_event(ls->com->hidlib, PCB_EVENT_LAYERVIS_CHANGED, NULL); layer_popup(ls, event->button.button, lsl->lid, lsl->lsg->grp); break; } Index: trunk/src_plugins/lib_gtk_hid/glue_hid.c =================================================================== --- trunk/src_plugins/lib_gtk_hid/glue_hid.c (revision 25188) +++ trunk/src_plugins/lib_gtk_hid/glue_hid.c (revision 25189) @@ -186,7 +186,7 @@ ghidgui->gui_is_up = 1; - pcb_event(PCB_EVENT_GUI_INIT, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_GUI_INIT, NULL); /* Make sure drawing area has keyboard focus so that keys are handled while the mouse cursor is over the top window or children widgets, @@ -260,7 +260,7 @@ ghidgui->topwin.com = &ghidgui->common; ghidgui->common.top_window = window = gport->top_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - pcb_gtk_winplace(window, "top"); + pcb_gtk_winplace(ghidgui->common.hidlib, window, "top"); gtk_window_set_title(GTK_WINDOW(window), "pcb-rnd"); gtk_widget_show_all(gport->top_window); Index: trunk/src_plugins/lib_hid_pcbui/routest_dlg.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/routest_dlg.c (revision 25188) +++ trunk/src_plugins/lib_hid_pcbui/routest_dlg.c (revision 25189) @@ -101,7 +101,7 @@ { if (rst != NULL) pcb_use_route_style(rst); - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); pcb_board_set_changed_flag(1); } Index: trunk/src_plugins/oldactions/oldactions.c =================================================================== --- trunk/src_plugins/oldactions/oldactions.c (revision 25188) +++ trunk/src_plugins/oldactions/oldactions.c (revision 25189) @@ -273,7 +273,7 @@ static const char pcb_acth_RouteStylesChanged[] = "Tells the GUI that the routing styles have changed."; static fgw_error_t pcb_act_RouteStylesChanged(fgw_arg_t *res, int argc, fgw_arg_t *argv) { - pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); return 0; } @@ -281,7 +281,7 @@ static const char pcb_acth_LibraryChanged[] = "Tells the GUI that the libraries have changed."; static fgw_error_t pcb_act_LibraryChanged(fgw_arg_t *res, int argc, fgw_arg_t *argv) { - pcb_event(PCB_EVENT_LIBRARY_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LIBRARY_CHANGED, NULL); return 0; } Index: trunk/src_plugins/sketch_route/sketch_route.c =================================================================== --- trunk/src_plugins/sketch_route/sketch_route.c (revision 25188) +++ trunk/src_plugins/sketch_route/sketch_route.c (revision 25189) @@ -725,7 +725,7 @@ pcb_snprintf(name, sizeof(name), "%s: ERBS", layer->name); sk->ui_layer_erbs = pcb_uilayer_alloc(pcb_sketch_route_cookie, name, &layer->meta.real.color); sketch_update_erbs_layer(sk); - pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_LAYERS_CHANGED, NULL); } static sketch_t *sketch_alloc() Index: trunk/src_plugins/vendordrill/vendor.c =================================================================== --- trunk/src_plugins/vendordrill/vendor.c (revision 25188) +++ trunk/src_plugins/vendordrill/vendor.c (revision 25189) @@ -109,7 +109,7 @@ /* DOC: applyvendor.html */ fgw_error_t pcb_act_ApplyVendor(fgw_arg_t *res, int argc, fgw_arg_t *argv) { - pcb_event(PCB_EVENT_BUSY, NULL); + pcb_event(&PCB->hidlib, PCB_EVENT_BUSY, NULL); apply_vendor_map(); PCB_ACT_IRES(0); return 0;