Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 26797) +++ trunk/src/gui_act.c (revision 26798) @@ -956,7 +956,7 @@ extra_units_y[0].scale = PCB->hidlib.grid; extra_units_y[2].scale = PCB->hidlib.size_y; - pcb_gui->view_get(&PCB->hidlib, &vbx); + pcb_gui->view_get(pcb_gui, &PCB->hidlib, &vbx); view_width = vbx.X2 - vbx.X1; view_height = vbx.Y2 - vbx.Y1; Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 26797) +++ trunk/src/hid.h (revision 26798) @@ -512,21 +512,21 @@ /* side-correct zoom to show a window of the board. If set_crosshair is true, also update the crosshair to be on the center of the window */ - void (*zoom_win)(pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair); + void (*zoom_win)(pcb_hid_t *hid, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair); /* Zoom relative or absolute by factor; relative means current zoom is multiplied by factor */ - void (*zoom)(pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative); + void (*zoom)(pcb_hid_t *hid, pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative); /* Pan relative/absolute by x and y; relative means x and y are added to the current pan */ - void (*pan)(pcb_coord_t x, pcb_coord_t y, int relative); + void (*pan)(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int relative); /* Start or stop panning at x;y - stop is mode=0, start is mode=1 */ - void (*pan_mode)(pcb_coord_t x, pcb_coord_t y, pcb_bool mode); + void (*pan_mode)(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, pcb_bool mode); /* Load viewbox with the extents of visible pixels translated to board coords */ - void (*view_get)(pcb_hidlib_t *hidlib, pcb_box_t *viewbox); + void (*view_get)(pcb_hid_t *hid, pcb_hidlib_t *hidlib, pcb_box_t *viewbox); /*** misc GUI ***/ /* Open the command line */ Index: trunk/src_plugins/hid_batch/batch.c =================================================================== --- trunk/src_plugins/hid_batch/batch.c (revision 26797) +++ trunk/src_plugins/hid_batch/batch.c (revision 26798) @@ -283,23 +283,23 @@ { } -static void batch_zoom_win(pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair) +static void batch_zoom_win(pcb_hid_t *hid, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair) { } -static void batch_zoom(pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative) +static void batch_zoom(pcb_hid_t *hid, pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative) { } -static void batch_pan(pcb_coord_t x, pcb_coord_t y, int relative) +static void batch_pan(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int relative) { } -static void batch_pan_mode(pcb_coord_t x, pcb_coord_t y, pcb_bool mode) +static void batch_pan_mode(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, pcb_bool mode) { } -static void batch_view_get(pcb_hidlib_t *hidlib, pcb_box_t *viewbox) +static void batch_view_get(pcb_hid_t *hid, pcb_hidlib_t *hidlib, pcb_box_t *viewbox) { viewbox->X1 = 0; viewbox->Y1 = 0; Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 26797) +++ trunk/src_plugins/hid_lesstif/main.c (revision 26798) @@ -286,7 +286,7 @@ static void zoom_max(); static void zoom_to(double factor, pcb_coord_t x, pcb_coord_t y); -static void zoom_win(pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, int setch); +static void zoom_win(pcb_hid_t *hid, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, int setch); static void zoom_by(double factor, pcb_coord_t x, pcb_coord_t y); static void Pan(int mode, pcb_coord_t x, pcb_coord_t y); @@ -869,7 +869,7 @@ lesstif_pan_fixup(); } -static void zoom_win(pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, int setch) +static void zoom_win(pcb_hid_t *hid, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, int setch) { pcb_coord_t w = x2 - x1, h = y2 - y1; double new_zoom = w / view_width; @@ -2945,12 +2945,12 @@ free(data); } -static void ltf_zoom_win(pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair) +static void ltf_zoom_win(pcb_hid_t *hid, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair) { - zoom_win(x1, y1, x2, y2, 1); + zoom_win(hid, x1, y1, x2, y2, 1); } -static void ltf_zoom(pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative) +static void ltf_zoom(pcb_hid_t *hid, pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative) { if (relative) zoom_by(factor, Vx(center_x), Vy(center_y)); @@ -2958,7 +2958,7 @@ zoom_to(factor, Vx(center_x), Vy(center_y)); } -static void ltf_pan(pcb_coord_t x, pcb_coord_t y, int relative) +static void ltf_pan(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int relative) { if (relative) { view_left_x += x; @@ -2974,13 +2974,13 @@ } } -static void ltf_pan_mode(pcb_coord_t x, pcb_coord_t y, pcb_bool mode) +static void ltf_pan_mode(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, pcb_bool mode) { Pan(mode, Vx(x), Vy(y)); } -static void ltf_view_get(pcb_hidlib_t *hidlib, pcb_box_t *viewbox) +static void ltf_view_get(pcb_hid_t *hid, pcb_hidlib_t *hidlib, pcb_box_t *viewbox) { viewbox->X1 = view_left_x; viewbox->Y1 = view_top_y; Index: trunk/src_plugins/lib_gtk_common/glue_hid.c =================================================================== --- trunk/src_plugins/lib_gtk_common/glue_hid.c (revision 26797) +++ trunk/src_plugins/lib_gtk_common/glue_hid.c (revision 26798) @@ -442,12 +442,12 @@ pcb_gtk_tw_dock_leave(&ghidgui->topwin, sub); } -static void ghid_zoom_win(pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair) +static void ghid_zoom_win(pcb_hid_t *hid, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_bool set_crosshair) { pcb_gtk_zoom_view_win_side(&ghidgui->port.view, x1, y1, x2, y2, set_crosshair); } -static void ghid_zoom(pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative) +static void ghid_zoom(pcb_hid_t *hid, pcb_coord_t center_x, pcb_coord_t center_y, double factor, int relative) { if (relative) pcb_gtk_zoom_view_rel(&ghidgui->port.view, center_x, center_y, factor); @@ -455,7 +455,7 @@ pcb_gtk_zoom_view_abs(&ghidgui->port.view, center_x, center_y, factor); } -static void ghid_pan(pcb_coord_t x, pcb_coord_t y, int relative) +static void ghid_pan(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, int relative) { if (relative) pcb_gtk_pan_view_rel(&ghidgui->port.view, x, y); @@ -463,12 +463,12 @@ pcb_gtk_pan_view_abs(&ghidgui->port.view, x, y, ghidgui->port.view.canvas_width/2.0, ghidgui->port.view.canvas_height/2.0); } -static void ghid_pan_mode(pcb_coord_t x, pcb_coord_t y, pcb_bool mode) +static void ghid_pan_mode(pcb_hid_t *hid, pcb_coord_t x, pcb_coord_t y, pcb_bool mode) { ghidgui->port.view.panning = mode; } -static void ghid_view_get(pcb_hidlib_t *hidlib, pcb_box_t *viewbox) +static void ghid_view_get(pcb_hid_t *hid, pcb_hidlib_t *hidlib, pcb_box_t *viewbox) { viewbox->X1 = ghidgui->port.view.x0; viewbox->Y1 = ghidgui->port.view.y0; Index: trunk/src_plugins/lib_hid_pcbui/act.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/act.c (revision 26797) +++ trunk/src_plugins/lib_hid_pcbui/act.c (revision 26798) @@ -68,7 +68,7 @@ NOGUI(); if (argc < 2) { - pcb_gui->zoom_win(0, 0, PCB->hidlib.size_x, PCB->hidlib.size_y, 1); + pcb_gui->zoom_win(pcb_gui, 0, 0, PCB->hidlib.size_x, PCB->hidlib.size_y, 1); return 0; } @@ -80,7 +80,7 @@ PCB_ACT_CONVARG(3, FGW_COORD, Zoom, x2 = fgw_coord(&argv[3])); PCB_ACT_CONVARG(4, FGW_COORD, Zoom, y2 = fgw_coord(&argv[4])); - pcb_gui->zoom_win(x1, y1, x2, y2, 1); + pcb_gui->zoom_win(pcb_gui, x1, y1, x2, y2, 1); return 0; } @@ -92,7 +92,7 @@ if (pcb_strcasecmp(vp, "selected") == 0) { pcb_box_t sb; if (pcb_get_selection_bbox(&sb, PCB->Data) > 0) - pcb_gui->zoom_win(sb.X1, sb.Y1, sb.X2, sb.Y2, 1); + pcb_gui->zoom_win(pcb_gui, sb.X1, sb.Y1, sb.X2, sb.Y2, 1); else pcb_message(PCB_MSG_ERROR, "Can't zoom to selection: nothing selected\n"); return 0; @@ -101,7 +101,7 @@ if (pcb_strcasecmp(vp, "found") == 0) { pcb_box_t sb; if (pcb_get_found_bbox(&sb, PCB->Data) > 0) - pcb_gui->zoom_win(sb.X1, sb.Y1, sb.X2, sb.Y2, 1); + pcb_gui->zoom_win(pcb_gui, sb.X1, sb.Y1, sb.X2, sb.Y2, 1); else pcb_message(PCB_MSG_ERROR, "Can't zoom to 'found': nothing found\n"); return 0; @@ -127,14 +127,14 @@ pcb_hid_get_coords("Select zoom center", &x, &y, 0); switch (ovp[0]) { case '-': - pcb_gui->zoom(x, y, 1 / v, 1); + pcb_gui->zoom(pcb_gui, x, y, 1 / v, 1); break; default: case '+': - pcb_gui->zoom(x, y, v, 1); + pcb_gui->zoom(pcb_gui, x, y, v, 1); break; case '=': - pcb_gui->zoom(x, y, v, 0); + pcb_gui->zoom(pcb_gui, x, y, v, 0); break; } @@ -155,7 +155,7 @@ pcb_hid_get_coords("Click on a place to pan", &x, &y, 0); PCB_ACT_CONVARG(1, FGW_INT, Pan, mode = argv[1].val.nat_int); - pcb_gui->pan_mode(x, y, mode); + pcb_gui->pan_mode(pcb_gui, x, y, mode); PCB_ACT_IRES(0); return 0; @@ -174,7 +174,7 @@ if (argc != 1) PCB_ACT_FAIL(Center); - pcb_gui->pan(x, y, 0); + pcb_gui->pan(pcb_gui, x, y, 0); PCB_ACT_IRES(0); return 0; @@ -202,7 +202,7 @@ else PCB_ACT_FAIL(Scroll); - pcb_gui->pan(dx, dy, 1); + pcb_gui->pan(pcb_gui, dx, dy, 1); PCB_ACT_IRES(0); return 0; @@ -228,7 +228,7 @@ x = pcb_crosshair.X; y = pcb_crosshair.Y; - pcb_gui->view_get(&PCB->hidlib, &vb); + pcb_gui->view_get(pcb_gui, &PCB->hidlib, &vb); xcent = (double)(vb.X1 + vb.X2)/2.0; ycent = (double)(vb.Y1 + vb.Y2)/2.0; xoffs = xcent - x; @@ -296,7 +296,7 @@ pcb_draw_inhibit_dec(); /*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->pan(pcb_gui, pcb_round(x + xoffs), pcb_round(y + yoffs), 0); pcb_gui->set_crosshair(pcb_gui, x, y, HID_SC_PAN_VIEWPORT); pcb_gui->invalidate_all(pcb_gui, &PCB->hidlib);