Index: trunk/src/action_act.c =================================================================== --- trunk/src/action_act.c (revision 17328) +++ trunk/src/action_act.c (revision 17329) @@ -55,7 +55,7 @@ %end-doc */ -int pcb_act_ExecuteFile(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_ExecuteFile(int argc, const char **argv) { FILE *fp; const char *fname; Index: trunk/src/brave.c =================================================================== --- trunk/src/brave.c (revision 17328) +++ trunk/src/brave.c (revision 17329) @@ -236,7 +236,7 @@ "Brave()\n" "Brave(setting, on|off)\n"; static const char pcb_acth_Brave[] = "Changes brave settings."; -static int pcb_act_Brave(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Brave(int argc, const char **argv) { desc_t *d; if (argc == 0) Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 17328) +++ trunk/src/buffer.c (revision 17329) @@ -169,7 +169,7 @@ %end-doc */ -int pcb_act_LoadFootprint(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadFootprint(int argc, const char **argv) { const char *name = PCB_ACTION_ARG(0); const char *refdes = PCB_ACTION_ARG(1); @@ -362,7 +362,7 @@ %end-doc */ -int pcb_act_FreeRotateBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_FreeRotateBuffer(int argc, const char **argv) { const char *angle_s; @@ -757,7 +757,7 @@ @end table %end-doc */ -static int pcb_act_PasteBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PasteBuffer(int argc, const char **argv) { const char *function = argc ? argv[0] : ""; const char *sbufnum = argc > 1 ? argv[1] : ""; Index: trunk/src/buffer.h =================================================================== --- trunk/src/buffer.h (revision 17328) +++ trunk/src/buffer.h (revision 17329) @@ -81,7 +81,7 @@ /* This action is called from ActionElementAddIf() */ -int pcb_act_LoadFootprint(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_act_LoadFootprint(int argc, const char **argv); /* pastes the contents of the buffer to the layout. Only visible objects are handled by the routine. */ Index: trunk/src/change_act.c =================================================================== --- trunk/src/change_act.c (revision 17328) +++ trunk/src/change_act.c (revision 17329) @@ -58,8 +58,8 @@ #include "grid.h" static void ChangeFlag(const char *, const char *, int, const char *); -static int pcb_act_ChangeSize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); -static int pcb_act_Change2ndSize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +static int pcb_act_ChangeSize(int argc, const char **argv); +static int pcb_act_Change2ndSize(int argc, const char **argv); /* --------------------------------------------------------------------------- */ @@ -78,7 +78,7 @@ %end-doc */ -static int pcb_act_ChangeClearSize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeClearSize(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *delta = PCB_ACTION_ARG(1); @@ -87,6 +87,8 @@ pcb_coord_t value; int type = PCB_OBJ_VOID; void *ptr1, *ptr2, *ptr3; + pcb_coord_t x, y; + int got_coords = 0; if (function && delta) { int funcid = pcb_funchash_get(function, NULL); @@ -93,10 +95,16 @@ if (funcid == F_Object) { pcb_hid_get_coords(_("Select an Object"), &x, &y); + got_coords = 1; type = pcb_search_screen(x, y, PCB_CHANGECLEARSIZE_TYPES, &ptr1, &ptr2, &ptr3); } if (strcmp(argv[1], "style") == 0) { + if (!got_coords) { + pcb_hid_get_coords(_("Select an Object"), &x, &y); + got_coords = 1; + } + if ((type == PCB_OBJ_VOID) || (type == PCB_OBJ_POLY)) /* workaround: pcb_search_screen(PCB_CHANGECLEARSIZE_TYPES) wouldn't return elements */ type = pcb_search_screen(x, y, PCB_CHANGE2NDSIZE_TYPES, &ptr1, &ptr2, &ptr3); if (pcb_get_style_size(funcid, &value, type, 2) != 0) @@ -157,7 +165,7 @@ %end-doc */ -static int pcb_act_ChangeFlag(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeFlag(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *flag = PCB_ACTION_ARG(1); @@ -237,7 +245,7 @@ /* --------------------------------------------------------------------------- */ static const char changehold_syntax[] = "ChangeHole(ToggleObject|Object|SelectedVias|Selected)"; static const char changehold_help[] = "Changes the hole flag of objects. Not supported anymore; use the propery editor."; -static int pcb_act_ChangeHole(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeHole(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -244,7 +252,7 @@ } static const char pcb_acts_ChangePaste[] = "ChangePaste(ToggleObject|Object|SelectedPads|Selected)"; static const char pcb_acth_ChangePaste[] = "Changes the no paste flag of objects. Not supported anymore."; -static int pcb_act_ChangePaste(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangePaste(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -266,15 +274,15 @@ with the same arguments. If any of them did not fail, return success. %end-doc */ -static int pcb_act_ChangeSizes(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeSizes(int argc, const char **argv) { int a, b, c; pcb_undo_save_serial(); - a = pcb_act_ChangeSize(argc, argv, x, y); + a = pcb_act_ChangeSize(argc, argv); pcb_undo_restore_serial(); - b = pcb_act_Change2ndSize(argc, argv, x, y); + b = pcb_act_Change2ndSize(argc, argv); pcb_undo_restore_serial(); - c = pcb_act_ChangeClearSize(argc, argv, x, y); + c = pcb_act_ChangeClearSize(argc, argv); pcb_undo_restore_serial(); pcb_undo_inc_serial(); return !(!a || !b || !c); @@ -299,7 +307,7 @@ %end-doc */ -static int pcb_act_ChangeSize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeSize(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *delta = PCB_ACTION_ARG(1); @@ -391,7 +399,7 @@ %end-doc */ -static int pcb_act_Change2ndSize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Change2ndSize(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *delta = PCB_ACTION_ARG(1); @@ -406,6 +414,7 @@ int funcid = pcb_funchash_get(function, NULL); if (funcid == F_Object) { + pcb_coord_t x, y; pcb_hid_get_coords(_("Select an Object"), &x, &y); type = pcb_search_screen(x, y, PCB_CHANGE2NDSIZE_TYPES, &ptr1, &ptr2, &ptr3); } @@ -463,7 +472,7 @@ %end-doc */ -static int pcb_act_ChangePinName(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangePinName(int argc, const char **argv) { pcb_cardinal_t changed = 0; const char *refdes, *pinnum, *pinname; @@ -533,7 +542,7 @@ %end-doc */ -int pcb_act_ChangeName(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_ChangeName(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); char *name; @@ -545,13 +554,16 @@ /* change the refdes of a subcircuit */ case F_Subc: + { + pcb_coord_t x, y; pcb_hid_get_coords("Select a subcircuit", &x, &y); type = PCB_OBJ_SUBC; goto do_chg_name; - + } /* change the name of an object */ case F_Object: { + pcb_coord_t x, y; void *ptr1, *ptr2, *ptr3; pcb_hid_get_coords(_("Select an Object"), &x, &y); type = PCB_CHANGENAME_TYPES; @@ -606,7 +618,7 @@ %end-doc */ -static int pcb_act_ChangeJoin(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeJoin(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { @@ -614,6 +626,7 @@ case F_ToggleObject: case F_Object: { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; @@ -657,7 +670,7 @@ %end-doc */ -static int pcb_act_ChangeNonetlist(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeNonetlist(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { @@ -666,6 +679,7 @@ case F_Object: case F_Element: { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; pcb_hid_get_coords(_("Select an Element"), &x, &y); @@ -692,7 +706,7 @@ static const char pcb_acts_ChangeSquare[] = "ChangeSquare(ToggleObject)\n" "ChangeSquare(SelectedElements|SelectedPins)\n" "ChangeSquare(Selected|SelectedObjects)"; static const char pcb_acth_ChangeSquare[] = "Changes the square flag of pins and pads. Not supported anymore."; -static int pcb_act_ChangeSquare(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeSquare(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -699,7 +713,7 @@ } static const char pcb_acts_SetSquare[] = "SetSquare(ToggleObject|SelectedElements|SelectedPins)"; static const char pcb_acth_SetSquare[] = "sets the square-flag of objects. Not supported anymore."; -static int pcb_act_SetSquare(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetSquare(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -707,7 +721,7 @@ static const char pcb_acts_ClearSquare[] = "ClearSquare(ToggleObject|SelectedElements|SelectedPins)"; static const char pcb_acth_ClearSquare[] = "Clears the square-flag of pins and pads. Not supported anymore."; -static int pcb_act_ClearSquare(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ClearSquare(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -714,7 +728,7 @@ } static const char pcb_acts_ChangeOctagon[] = "ChangeOctagon(Object|ToggleObject|SelectedObjects|Selected)\n" "ChangeOctagon(SelectedElements|SelectedPins|SelectedVias)"; static const char pcb_acth_ChangeOctagon[] = "Changes the octagon-flag of pins and vias. Not supported anymore."; -static int pcb_act_ChangeOctagon(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeOctagon(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -721,7 +735,7 @@ } static const char pcb_acts_SetOctagon[] = "SetOctagon(Object|ToggleObject|SelectedElements|Selected)"; static const char pcb_acth_SetOctagon[] = "Sets the octagon-flag of objects. Not supported anymore."; -static int pcb_act_SetOctagon(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetOctagon(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 1; @@ -728,7 +742,7 @@ } static const char pcb_acts_ClearOctagon[] = "ClearOctagon(ToggleObject|Object|SelectedObjects|Selected)\n" "ClearOctagon(SelectedElements|SelectedPins|SelectedVias)"; static const char pcb_acth_ClearOctagon[] = "Clears the octagon-flag of pins and vias. Not supported anymore."; -static int pcb_act_ClearOctagon(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ClearOctagon(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported with padstacks.\n"); return 0; @@ -765,7 +779,7 @@ to connect with. However, they will have no effect without the polygon. %end-doc */ -static int pcb_act_SetThermal(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetThermal(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *style = PCB_ACTION_ARG(1); @@ -831,7 +845,7 @@ %end-doc */ -static int pcb_act_SetFlag(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetFlag(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *flag = PCB_ACTION_ARG(1); @@ -860,7 +874,7 @@ %end-doc */ -static int pcb_act_ClrFlag(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ClrFlag(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *flag = PCB_ACTION_ARG(1); @@ -893,7 +907,7 @@ %end-doc */ -static int pcb_act_SetValue(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetValue(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *val = PCB_ACTION_ARG(1); @@ -971,7 +985,7 @@ "ChangeAngle(SelectedObjects|Selected, start|delta|both, delta)\n" "ChangeAngle(SelectedArcs, start|delta|both, delta)\n"; static const char pcb_acth_ChangeAngle[] = "Changes the start angle, delta angle or both angles of an arc."; -static int pcb_act_ChangeAngle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeAngle(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *prim = PCB_ACTION_ARG(1); @@ -1045,7 +1059,7 @@ "ChangeRadius(SelectedObjects|Selected, width|x|height|y|both, delta)\n" "ChangeRadius(SelectedArcs, width|x|height|y|both, delta)\n"; static const char pcb_acth_ChangeRadius[] = "Changes the width or height (radius) of an arc."; -static int pcb_act_ChangeRadius(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChangeRadius(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *prim = PCB_ACTION_ARG(1); Index: trunk/src/conf_act.c =================================================================== --- trunk/src/conf_act.c (revision 17328) +++ trunk/src/conf_act.c (revision 17329) @@ -53,7 +53,7 @@ return res; } -static int pcb_act_Conf(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Conf(int argc, const char **argv) { const char *cmd = argc > 0 ? argv[0] : 0; @@ -222,7 +222,7 @@ /*------------ get/chk (check flag actions for menus) ------------------*/ static const char GetStyle_syntax[] = "GetStyle()" ; static const char GetStyle_help[] = "Return integer index (>=0) of the currently active style or -1 if no style is selected (== custom style)"; -static int pcb_act_GetStyle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_GetStyle(int argc, const char **argv) { return pcb_route_style_lookup(&PCB->RouteStyle, conf_core.design.line_thickness, conf_core.design.via_thickness, conf_core.design.via_drilling_hole, conf_core.design.clearance, NULL); } @@ -229,7 +229,7 @@ static const char ChkMode_syntax[] = "ChkMode(expected_mode)" ; static const char ChkMode_help[] = "Return 1 if the currently selected mode is the expected_mode"; -static int pcb_act_ChkMode(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkMode(int argc, const char **argv) { #warning cleanup TODO: convert this to a compile-time hash; or make the toolbar configurable from the menu file struct { @@ -272,7 +272,7 @@ "ChkGridSize(none)\n" ; static const char ChkGridSize_help[] = "Return 1 if the currently selected grid matches the expected_size. If argument is \"none\" return 1 if there is no grid."; -static int pcb_act_ChkGridSize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkGridSize(int argc, const char **argv) { assert(argc == 1); if (strcmp(argv[0], "none") == 0) @@ -283,7 +283,7 @@ static const char ChkSubcID_syntax[] = "ChkSubcID(pattern)\n"; static const char ChkSubcID_help[] = "Return 1 if currently shown subc ID matches the requested pattern"; -static int pcb_act_ChkSubcID(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkSubcID(int argc, const char **argv) { const char *have = conf_core.editor.subc_id, *expected; @@ -296,7 +296,7 @@ static const char ChkGridUnits_syntax[] = "ChkGridUnits(expected)"; static const char ChkGridUnits_help[] = "Return 1 if currently selected grid unit matches the expected (normally mm or mil)"; -static int pcb_act_ChkGridUnits(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkGridUnits(int argc, const char **argv) { assert(argc == 1); return strcmp(conf_core.editor.grid_unit->suffix, argv[0]) == 0; @@ -304,7 +304,7 @@ static const char ChkBuffer_syntax[] = "ChkBuffer(idx)"; static const char ChkBuffer_help[] = "Return 1 if currently selected buffer's index matches idx"; -static int pcb_act_ChkBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkBuffer(int argc, const char **argv) { int expected = argv[0][0] - '0'; assert(argc == 1); Index: trunk/src/file_act.c =================================================================== --- trunk/src/file_act.c (revision 17328) +++ trunk/src/file_act.c (revision 17329) @@ -64,7 +64,7 @@ %end-doc */ -static int pcb_act_ExecCommand(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ExecCommand(int argc, const char **argv) { const char *command; @@ -116,7 +116,7 @@ %end-doc */ -static int pcb_act_LoadFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadFrom(int argc, const char **argv) { const char *function, *name, *format = NULL; @@ -179,7 +179,7 @@ %end-doc */ -static int pcb_act_New(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_New(int argc, const char **argv) { const char *argument_name = PCB_ACTION_ARG(0); char *name = NULL; @@ -222,7 +222,7 @@ /* --------------------------------------------------------------------------- */ static const char pcb_acts_normalize[] = "Normalize()"; static const char pcb_acth_normalize[] = "Move all objects within the drawing area, align the drawing to 0;0"; -static int pcb_act_normalize(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_normalize(int argc, const char **argv) { return pcb_board_normalize(PCB); } @@ -261,7 +261,7 @@ %end-doc */ -static int pcb_act_SaveTo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SaveTo(int argc, const char **argv) { const char *function; const char *name; @@ -362,7 +362,7 @@ %end-doc */ -static int pcb_act_Quit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Quit(int argc, const char **argv) { const char *force = PCB_ACTION_ARG(0); if (force && pcb_strcasecmp(force, "force") == 0) { @@ -378,7 +378,7 @@ /* --------------------------------------------------------------------------- */ static const char pcb_acts_Export[] = "Export(exporter, [exporter-args])"; static const char pcb_acth_Export[] = "Export the current layout, e.g. Export(png, --dpi, 600)"; -static int pcb_act_Export(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Export(int argc, const char **argv) { if (argc < 1) { pcb_message(PCB_MSG_ERROR, "Export() needs at least one argument, the name of the export plugin\n"); @@ -405,7 +405,7 @@ static const char pcb_acts_Backup[] = "Backup()"; static const char pcb_acth_Backup[] = "Backup the current layout - save using the same method that the timed backup function uses"; -static int pcb_act_Backup(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Backup(int argc, const char **argv) { pcb_backup(); return 0; Index: trunk/src/find_act.c =================================================================== --- trunk/src/find_act.c (revision 17328) +++ trunk/src/find_act.c (revision 17329) @@ -52,7 +52,7 @@ %end-doc */ -static int pcb_act_DRCheck(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DRCheck(int argc, const char **argv) { int count; Index: trunk/src/font_act.c =================================================================== --- trunk/src/font_act.c (revision 17328) +++ trunk/src/font_act.c (revision 17329) @@ -38,7 +38,7 @@ static const char pcb_acts_load_font_from[] = "LoadFontFrom([file, id])"; static const char pcb_acth_load_font_from[] = "Load PCB font from a file"; -int pcb_act_load_font_from(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_load_font_from(int argc, const char **argv) { const char *fname, *sid; static char *default_file = NULL; @@ -103,7 +103,7 @@ static const char pcb_acts_save_font_to[] = "SaveFontTo([file, id])"; static const char pcb_acth_save_font_to[] = "Save PCB font to a file"; -int pcb_act_save_font_to(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_save_font_to(int argc, const char **argv) { const char *fname, *sid; static char *default_file = NULL; Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 17328) +++ trunk/src/gui_act.c (revision 17329) @@ -224,7 +224,7 @@ } extern pcb_opfunc_t ChgFlagFunctions; -static int pcb_act_Display(int argc, const char **argv, pcb_coord_t childX, pcb_coord_t childY) +static int pcb_act_Display(int argc, const char **argv) { const char *function, *str_dir; int id; @@ -554,7 +554,7 @@ %end-doc */ -static int pcb_act_Mode(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Mode(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); @@ -754,7 +754,7 @@ static const char pcb_acth_CycleDrag[] = "Cycle through which object is being dragged"; #define close_enough(a, b) ((((a)-(b)) > 0) ? ((a)-(b) < (PCB_SLOP * pcb_pixel_slop)) : ((a)-(b) > -(PCB_SLOP * pcb_pixel_slop))) -static int pcb_act_CycleDrag(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_CycleDrag(int argc, const char **argv) { void *ptr1, *ptr2, *ptr3; int over = 0; @@ -840,7 +840,7 @@ %end-doc */ -static int pcb_act_Message(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Message(int argc, const char **argv) { int i; @@ -868,7 +868,7 @@ %end-doc */ -static int pcb_act_ToggleHideName(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ToggleHideName(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "ToggleHideName: deprecated feature removed with subcircuits; just delete\nthe text object if it should not be on the silk of the final board.\n"); return 0; @@ -894,7 +894,7 @@ %end-doc */ -static int pcb_act_MarkCrosshair(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_MarkCrosshair(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (!function || !*function) { @@ -939,7 +939,7 @@ %end-doc */ -static int pcb_act_RouteStyle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_RouteStyle(int argc, const char **argv) { const char *str = PCB_ACTION_ARG(0); pcb_route_style_t *rts; @@ -983,7 +983,7 @@ %end-doc */ -static int pcb_act_CreateMenu(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_CreateMenu(int argc, const char **argv) { if (pcb_gui == NULL) { pcb_message(PCB_MSG_ERROR, "Error: can't create menu, there's no GUI hid loaded\n"); @@ -1014,7 +1014,7 @@ %end-doc */ -static int pcb_act_RemoveMenu(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_RemoveMenu(int argc, const char **argv) { if (pcb_gui == NULL) { pcb_message(PCB_MSG_ERROR, "can't remove menu, there's no GUI hid loaded\n"); @@ -1064,12 +1064,15 @@ pcb_use_route_style_idx(&PCB->RouteStyle, known); } -static int pcb_act_SetSame(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetSame(int argc, const char **argv) { + pcb_coord_t x, y; void *ptr1, *ptr2, *ptr3; int type; pcb_layer_t *layer = CURRENT; + pcb_hid_get_coords("Select item to use properties from", &x, &y); + type = pcb_search_screen(x, y, CLONE_TYPES, &ptr1, &ptr2, &ptr3); /* set layer current and size from line or arc */ switch (type) { @@ -1119,7 +1122,7 @@ %end-doc */ -static int pcb_act_SwitchHID(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SwitchHID(int argc, const char **argv) { pcb_hid_t *ng = pcb_hid_find_gui(argv[0]); int chg; @@ -1145,7 +1148,7 @@ static const char pcb_acth_FullScreen[] = "Hide widgets to get edit area full screen"; -static int pcb_act_FullScreen(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_FullScreen(int argc, const char **argv) { const char *op = argv == NULL ? NULL : argv[0]; @@ -1165,7 +1168,7 @@ "Tells the GUI that the whole PCB has changed. The optional \"revert\"" "parameter can be used as a hint to the GUI that the same design is being" "reloaded, and that it might keep some viewport settings"; -static int pcb_act_PCBChanged(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PCBChanged(int argc, const char **argv) { const char *rv = argv == NULL ? NULL : argv[0]; pcb_board_changed((rv != NULL) && (pcb_strcasecmp(rv, "revert") == 0)); @@ -1174,7 +1177,7 @@ static const char pcb_acts_NetlistChanged[] = "NetlistChanged()"; static const char pcb_acth_NetlistChanged[] = "Tells the GUI that the netlist has changed."; -static int pcb_act_NetlistChanged(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_NetlistChanged(int argc, const char **argv) { pcb_netlist_changed(0); return 0; @@ -1183,7 +1186,7 @@ static const char pcb_acts_RouteStylesChanged[] = "RouteStylesChanged()"; static const char pcb_acth_RouteStylesChanged[] = "Tells the GUI that the routing styles have changed."; -static int pcb_act_RouteStylesChanged(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_RouteStylesChanged(int argc, const char **argv) { pcb_event(PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); return 0; @@ -1191,7 +1194,7 @@ static const char pcb_acts_LibraryChanged[] = "LibraryChanged()"; static const char pcb_acth_LibraryChanged[] = "Tells the GUI that the libraries have changed."; -static int pcb_act_LibraryChanged(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LibraryChanged(int argc, const char **argv) { pcb_event(PCB_EVENT_LIBRARY_CHANGED, NULL); return 0; @@ -1234,7 +1237,7 @@ %end-doc */ -static int pcb_act_Cursor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Cursor(int argc, const char **argv) { pcb_unit_list_t extra_units_x = { {"grid", 0, 0}, @@ -1305,7 +1308,7 @@ static const char pcb_acts_EditLayer[] = "Editlayer([@layer], [name=text|auto=[0|1]|sub=[0|1])]\nEditlayer([@layer], attrib, key=value)"; static const char pcb_acth_EditLayer[] = "Change a property or attribute of a layer. If the first argument starts with @, it is taken as the layer name to manipulate, else the action uses the current layer. Without arguments or if only a layer name is specified, interactive runs editing."; -static int pcb_act_EditLayer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_EditLayer(int argc, const char **argv) { int ret = 0, n, interactive = 1, explicit = 0; pcb_layer_t *ly = CURRENT; @@ -1410,7 +1413,7 @@ pcb_layergrp_id_t pcb_actd_EditGroup_gid = -1; static const char pcb_acts_EditGroup[] = "Editgroup([@group], [name=text|type=+bit|type=-bit])]\nEditlayer([@layer], attrib, key=value)"; static const char pcb_acth_EditGroup[] = "Change a property or attribute of a layer group. If the first argument starts with @, it is taken as the group name to manipulate, else the action uses the current layer's group. Without arguments or if only a layer name is specified, interactive runs editing."; -static int pcb_act_EditGroup(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_EditGroup(int argc, const char **argv) { int ret = 0, n, interactive = 1, explicit = 0; pcb_layergrp_t *g = NULL; @@ -1528,7 +1531,7 @@ %end-doc */ -static int pcb_act_SelectLayer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SelectLayer(int argc, const char **argv) { pcb_layer_id_t lid; const pcb_menu_layers_t *ml; @@ -1571,7 +1574,7 @@ %end-doc */ -static int pcb_act_ChkLayer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkLayer(int argc, const char **argv) { pcb_layer_id_t lid; pcb_layer_t *ly; @@ -1627,7 +1630,7 @@ %end-doc */ -static int pcb_act_ToggleView(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ToggleView(int argc, const char **argv) { pcb_layer_id_t lid; @@ -1710,7 +1713,7 @@ Return 1 if layerid is visible. Intended for meu item 'checked' fields. %end-doc */ -static int pcb_act_ChkView(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkView(int argc, const char **argv) { pcb_layer_id_t lid; pcb_layer_t *ly; @@ -1766,7 +1769,7 @@ %end-doc */ -static int pcb_act_SetUnits(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SetUnits(int argc, const char **argv) { const pcb_unit_t *new_unit; if (argc == 0) @@ -1782,7 +1785,7 @@ "grid(set, [name:]size[@offs][!unit])\n" "grid(+|up)\n" "grid(-|down)\n" "grid(#N)\n" "grid(idx, N)\n"; static const char pcb_acth_grid[] = "Set the grid."; -static int pcb_act_grid(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_grid(int argc, const char **argv) { if (argc == 0) return 0; @@ -1819,7 +1822,7 @@ Return 1 if route_style_id matches pen. %end-doc */ -static int pcb_act_ChkRst(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ChkRst(int argc, const char **argv) { int rid; pcb_route_style_t *rst; @@ -1863,7 +1866,7 @@ {"ToggleHideName", 0, pcb_act_ToggleHideName, pcb_acth_ToggleHideName, pcb_acts_ToggleHideName} , - {"SetSame", N_("Select item to use attributes from"), pcb_act_SetSame, + {"SetSame", 0, pcb_act_SetSame, pcb_acth_SetSame, pcb_acts_SetSame} , {"RouteStyle", 0, pcb_act_RouteStyle, Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 17328) +++ trunk/src/hid.h (revision 17329) @@ -104,7 +104,7 @@ /* Called when the action is triggered. If this function returns non-zero, no further actions will be invoked for this key/mouse event. */ - int (*trigger_cb) (int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); + int (*trigger_cb)(int argc, const char **argv); /* Short description that sometimes accompanies the name. */ const char *description; /* Full allowed syntax; use \n to separate lines. */ Index: trunk/src/hid_actions.c =================================================================== --- trunk/src/hid_actions.c (revision 17328) +++ trunk/src/hid_actions.c (revision 17329) @@ -220,7 +220,7 @@ old_action = pcb_current_action; pcb_current_action = a; - ret = pcb_current_action->trigger_cb(argc, argv, x, y); + ret = pcb_current_action->trigger_cb(argc, argv); pcb_current_action = old_action; return ret; Index: trunk/src/main_act.c =================================================================== --- trunk/src/main_act.c (revision 17328) +++ trunk/src/main_act.c (revision 17329) @@ -57,7 +57,7 @@ static const char pcb_acth_PrintActions[] = "Print all actions available."; -int pcb_act_PrintActions(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_PrintActions(int argc, const char **argv) { pcb_print_actions(); return 0; @@ -68,7 +68,7 @@ static const char pcb_acth_DumpActions[] = "Dump all actions available."; -int pcb_act_DumpActions(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_DumpActions(int argc, const char **argv) { pcb_dump_actions(); return 0; @@ -160,7 +160,7 @@ return 0; } -int pcb_act_PrintUsage(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_PrintUsage(int argc, const char **argv) { u(""); if (argc > 0) { @@ -192,7 +192,7 @@ static const char pcb_acth_PrintVersion[] = "Print version."; -int pcb_act_PrintVersion(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_PrintVersion(int argc, const char **argv) { printf("pcb-rnd version %s rev %s\n", PCB_VERSION, PCB_REVISION); return 0; @@ -203,7 +203,7 @@ static const char pcb_acth_PrintCopyright[] = "Print copyright notice."; -int pcb_act_PrintCopyright(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_PrintCopyright(int argc, const char **argv) { printf("\n" " COPYRIGHT for the original pcb program:\n\n" @@ -245,7 +245,7 @@ printf("\"\n"); } -int pcb_act_PrintPaths(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_PrintPaths(int argc, const char **argv) { htsp_entry_t *e; conf_fields_foreach(e) { @@ -273,7 +273,7 @@ } } -int pcb_act_PrintFiles(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_PrintFiles(int argc, const char **argv) { htsp_entry_t *e; printf("# Data files loaded\n"); @@ -287,7 +287,7 @@ static const char pcb_acth_DumpPlugins[] = "Print plugins loaded in a format digestable by scripts."; -int pcb_act_DumpPlugins(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_DumpPlugins(int argc, const char **argv) { pup_plugin_t *p; const pup_buildin_t **bu; @@ -313,7 +313,7 @@ static const char pcb_acth_DumpPluginDirs[] = "Print plugins directories in a format digestable by scripts."; -int pcb_act_DumpPluginDirs(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_DumpPluginDirs(int argc, const char **argv) { char **p; for(p = pcb_pup_paths; *p != NULL; p++) @@ -329,7 +329,7 @@ printf(" %lx %s %s\n", flg, fb->name, fb->help); } -int pcb_act_DumpObjFlags(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_DumpObjFlags(int argc, const char **argv) { unsigned long ot, max = PCB_OBJ_CLASS_REAL + 1; @@ -346,7 +346,7 @@ static const char pcb_acts_System[] = "System(shell_cmd)"; static const char pcb_acth_System[] = "Run shell command"; -int pcb_act_System(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_System(int argc, const char **argv) { char tmp[128]; if (argc < 1) Index: trunk/src/netlist_act.c =================================================================== --- trunk/src/netlist_act.c (revision 17328) +++ trunk/src/netlist_act.c (revision 17329) @@ -234,7 +234,7 @@ typedef void (*NFunc) (pcb_lib_menu_t *, pcb_lib_entry_t *); -static int pcb_act_Netlist(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Netlist(int argc, const char **argv) { NFunc func; int i, j; Index: trunk/src/obj_pstk_act.c =================================================================== --- trunk/src/obj_pstk_act.c (revision 17328) +++ trunk/src/obj_pstk_act.c (revision 17329) @@ -38,8 +38,9 @@ static const char pcb_acts_padstackconvert[] = "PadstackConvert(buffer|selected, [originx, originy])"; static const char pcb_acth_padstackconvert[] = "Convert selection or current buffer to padstack"; -int pcb_act_padstackconvert(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_padstackconvert(int argc, const char **argv) { + pcb_coord_t x, y; pcb_cardinal_t pid; pcb_pstk_proto_t tmp, *p; @@ -104,10 +105,11 @@ static const char pcb_acts_padstackplace[] = "PadstackPlace([proto_id|default], [x, y])"; static const char pcb_acth_padstackplace[] = "Place a pad stack (either proto_id, or if not specified, the default for style)"; -int pcb_act_padstackplace(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_padstackplace(int argc, const char **argv) { pcb_cardinal_t pid; pcb_pstk_t *ps; + pcb_coord_t x, y; if (argc > 2) { pcb_bool s1, s2; @@ -118,6 +120,10 @@ return -1; } } + else { + x = pcb_crosshair.X; + y = pcb_crosshair.Y; + } if ((argc <= 0) || (strcmp(argv[0], "default") == 0)) { #warning padstack TODO: style default proto Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 17328) +++ trunk/src/object_act.c (revision 17329) @@ -70,7 +70,7 @@ %end-doc */ -static int pcb_act_Attributes(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Attributes(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *layername = PCB_ACTION_ARG(1); @@ -129,6 +129,7 @@ return 1; } if (n_found == 0) { + pcb_coord_t x, y; void *ptrtmp; pcb_hid_get_coords(_("Click on a subcircuit"), &x, &y); if ((pcb_search_screen(x, y, PCB_OBJ_SUBC, &ptrtmp, &ptrtmp, &ptrtmp)) != PCB_OBJ_VOID) @@ -224,7 +225,7 @@ } } -static int pcb_act_DisperseElements(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DisperseElements(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); pcb_coord_t minx = GAP, miny = GAP, maxy = GAP, dx, dy; @@ -295,16 +296,19 @@ %end-doc */ -static int pcb_act_Flip(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Flip(int argc, const char **argv) { + pcb_coord_t x, y; const char *function = PCB_ACTION_ARG(0); void *ptrtmp; int err = 0; + pcb_hid_get_coords("Click on Object or Flip Point", &x, &y); + if (function) { switch (pcb_funchash_get(function, NULL)) { case F_Object: - if ((pcb_search_screen(x, y, PCB_OBJ_SUBC, &ptrtmp, &ptrtmp, &ptrtmp)) != PCB_OBJ_VOID) { + if ((pcb_search_screen(pcb_crosshair.X, pcb_crosshair.Y, PCB_OBJ_SUBC, &ptrtmp, &ptrtmp, &ptrtmp)) != PCB_OBJ_VOID) { pcb_subc_t *subc = (pcb_subc_t *)ptrtmp; pcb_undo_save_serial(); pcb_subc_change_side(&subc, 2 * pcb_crosshair.Y - PCB->MaxHeight); @@ -345,28 +349,30 @@ %end-doc */ -static int pcb_act_MoveObject(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_MoveObject(int argc, const char **argv) { const char *x_str = PCB_ACTION_ARG(0); const char *y_str = PCB_ACTION_ARG(1); const char *units = PCB_ACTION_ARG(2); - pcb_coord_t nx, ny; + pcb_coord_t nx, ny, x, y; pcb_bool absolute1, absolute2; void *ptr1, *ptr2, *ptr3; int type; + pcb_hid_get_coords("Select an Object", &x, &y); + ny = pcb_get_value(y_str, units, &absolute1, NULL); nx = pcb_get_value(x_str, units, &absolute2, NULL); - type = pcb_search_screen(x, y, PCB_MOVE_TYPES, &ptr1, &ptr2, &ptr3); + type = pcb_search_screen(pcb_crosshair.X, pcb_crosshair.Y, PCB_MOVE_TYPES, &ptr1, &ptr2, &ptr3); if (type == PCB_OBJ_VOID) { pcb_message(PCB_MSG_ERROR, _("Nothing found under crosshair\n")); return 1; } if (absolute1) - nx -= x; + nx -= pcb_crosshair.X; if (absolute2) - ny -= y; + ny -= pcb_crosshair.Y; pcb_event(PCB_EVENT_RUBBER_RESET, NULL); if (conf_core.editor.rubber_band_mode) pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", type, ptr1, ptr2, ptr3); @@ -391,7 +397,7 @@ %end-doc */ -static int pcb_act_MoveToCurrentLayer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_MoveToCurrentLayer(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { @@ -398,6 +404,7 @@ switch (pcb_funchash_get(function, NULL)) { case F_Object: { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; @@ -491,7 +498,7 @@ return strcmp(got_name, expect_name); } -static int pcb_act_ElementList(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ElementList(int argc, const char **argv) { pcb_subc_t *sc; const char *refdes, *value, *footprint; @@ -570,7 +577,7 @@ printf(" ... Footprint not on board, need to add it.\n"); #endif /* Not on board, need to add it. */ - if (pcb_act_LoadFootprint(argc, args, x, y)) { + if (pcb_act_LoadFootprint(argc, args)) { number_of_footprints_not_found++; return 1; } @@ -611,7 +618,7 @@ double orig_rot; /* Different footprint, we need to swap them out. */ - if (pcb_act_LoadFootprint(argc, args, x, y) != 0) { + if (pcb_act_LoadFootprint(argc, args) != 0) { number_of_footprints_not_found++; return 1; } @@ -697,7 +704,7 @@ %end-doc */ -static int pcb_act_ElementSetAttr(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ElementSetAttr(int argc, const char **argv) { pcb_subc_t *sc; const char *refdes, *name, *value; @@ -745,7 +752,7 @@ %end-doc */ -static int pcb_act_RipUp(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_RipUp(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); pcb_bool changed = pcb_false; @@ -818,7 +825,7 @@ static const char pcb_acts_MinMaskGap[] = "MinMaskGap(delta)\n" "MinMaskGap(Selected, delta)"; static const char pcb_acth_MinMaskGap[] = "Ensures the mask is a minimum distance from pins and pads. Not supported anymore."; -static int pcb_act_MinMaskGap(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_MinMaskGap(int argc, const char **argv) { pcb_message(PCB_MSG_ERROR, "Feature not supported; use padstackedit()\n"); return 1; @@ -891,7 +898,7 @@ PCB_ENDALL_LOOP; } -static int pcb_act_MinClearGap(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_MinClearGap(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); const char *delta = PCB_ACTION_ARG(1); @@ -972,7 +979,7 @@ %end-doc */ extern pcb_layergrp_id_t pcb_actd_EditGroup_gid; -int pcb_act_MoveLayer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_MoveLayer(int argc, const char **argv) { int old_index, new_index; @@ -1056,8 +1063,9 @@ static const char pcb_acts_CreateText[] = "CreateText(layer, fontID, X, Y, direction, scale, text)\n"; static const char pcb_acth_CreateText[] = "Create a new text object"; -static int pcb_act_CreateText(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_CreateText(int argc, const char **argv) { + pcb_coord_t x, y; pcb_layer_t *ly; int fid = 0, dir = 0, scale = 0; pcb_bool succ; @@ -1099,7 +1107,7 @@ "subc(loose, on|off|toggle|check)\n" ; static const char pcb_acth_subc[] = "Various operations on subc"; -static int pcb_act_subc(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_subc(int argc, const char **argv) { if (argc == 0) PCB_ACT_FAIL(subc); @@ -1199,15 +1207,18 @@ /* %start-doc actions Rotate90 -Rotates the object under the crosshair by 90 degree @code{steps}. +Rotates the object under the mouse pointer by 90 degree @code{steps}. %end-doc */ -static int pcb_act_Rotate90(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Rotate90(int argc, const char **argv) { const char *ssteps = PCB_ACTION_ARG(0); int steps = atoi(ssteps); + pcb_coord_t x, y; + pcb_hid_get_coords("Select an Object", &x, &y); + if (conf_core.editor.show_solder_side) steps = -steps; @@ -1227,10 +1238,10 @@ {"DisperseElements", 0, pcb_act_DisperseElements, pcb_acth_DisperseElements, pcb_acts_DisperseElements} , - {"Flip", N_("Click on Object or Flip Point"), pcb_act_Flip, + {"Flip", 0, pcb_act_Flip, pcb_acth_Flip, pcb_acts_Flip} , - {"MoveObject", N_("Select an Object"), pcb_act_MoveObject, + {"MoveObject", 0, pcb_act_MoveObject, pcb_acth_MoveObject, pcb_acts_MoveObject} , {"MoveToCurrentLayer", 0, pcb_act_MoveToCurrentLayer, @@ -1260,7 +1271,7 @@ {"CreateText", 0, pcb_act_CreateText, pcb_acth_CreateText, pcb_acts_CreateText} , - {"Rotate90", N_("Select an Object"), pcb_act_Rotate90, + {"Rotate90", 0, pcb_act_Rotate90, pcb_acth_Rotate90, pcb_acts_Rotate90} }; Index: trunk/src/plug_footprint_act.c =================================================================== --- trunk/src/plug_footprint_act.c (revision 17328) +++ trunk/src/plug_footprint_act.c (revision 17329) @@ -33,7 +33,7 @@ static const char pcb_acts_fp_rehash[] = "fp_rehash()" ; static const char pcb_acth_fp_rehash[] = "Flush the library index; rescan all library search paths and rebuild the library index. Useful if there are changes in the library during a pcb-rnd session."; -static int pcb_act_fp_rehash(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_fp_rehash(int argc, const char **argv) { pcb_fplibrary_t *l; Index: trunk/src/plugins.c =================================================================== --- trunk/src/plugins.c (revision 17328) +++ trunk/src/plugins.c (revision 17329) @@ -66,7 +66,7 @@ static const char pcb_acth_ManagePlugins[] = "Manage plugins dialog."; -static int pcb_act_ManagePlugins(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ManagePlugins(int argc, const char **argv) { pup_plugin_t *p; int nump = 0, numb = 0; Index: trunk/src/polygon_act.c =================================================================== --- trunk/src/polygon_act.c (revision 17328) +++ trunk/src/polygon_act.c (revision 17329) @@ -66,7 +66,7 @@ %end-doc */ -static int pcb_act_MorphPolygon(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_MorphPolygon(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { @@ -73,6 +73,7 @@ switch (pcb_funchash_get(function, NULL)) { case F_Object: { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; @@ -128,7 +129,7 @@ %end-doc */ -static int pcb_act_Polygon(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Polygon(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function && ((conf_core.editor.mode == PCB_MODE_POLYGON) || (conf_core.editor.mode == PCB_MODE_POLYGON_HOLE))) { Index: trunk/src/rats_act.c =================================================================== --- trunk/src/rats_act.c (revision 17328) +++ trunk/src/rats_act.c (revision 17329) @@ -76,7 +76,7 @@ %end-doc */ -static int pcb_act_AddRats(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_AddRats(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); pcb_rat_t *shorty; @@ -151,7 +151,7 @@ %end-doc */ -static int pcb_act_Connection(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Connection(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { @@ -158,6 +158,7 @@ switch (pcb_funchash_get(function, NULL)) { case F_Find: { + pcb_coord_t x, y; pcb_hid_get_coords(_("Click on a connection"), &x, &y); pcb_lookup_conn(x, y, pcb_true, 1, PCB_FLAG_FOUND); break; @@ -200,7 +201,7 @@ %end-doc */ -static int pcb_act_DeleteRats(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DeleteRats(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { Index: trunk/src/rats_patch.c =================================================================== --- trunk/src/rats_patch.c (revision 17328) +++ trunk/src/rats_patch.c (revision 17329) @@ -382,7 +382,7 @@ static const char pcb_acth_ReplaceFootprint[] = "Replace the footprint of the selected components with the footprint specified."; -static int pcb_act_ReplaceFootprint(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ReplaceFootprint(int argc, const char **argv) { const char *fpname; int found = 0, len; @@ -469,7 +469,7 @@ /* %start-doc actions SavePatch Save netlist patch for back annotation. %end-doc */ -static int pcb_act_SavePatch(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SavePatch(int argc, const char **argv) { const char *fn; FILE *f; Index: trunk/src/remove_act.c =================================================================== --- trunk/src/remove_act.c (revision 17328) +++ trunk/src/remove_act.c (revision 17329) @@ -50,7 +50,7 @@ %end-doc */ -static int pcb_act_Delete(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Delete(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); int id = pcb_funchash_get(function, NULL); @@ -94,7 +94,7 @@ %end-doc */ -static int pcb_act_RemoveSelected(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_RemoveSelected(int argc, const char **argv) { if (pcb_remove_selected()) pcb_board_set_changed_flag(pcb_true); Index: trunk/src/select_act.c =================================================================== --- trunk/src/select_act.c (revision 17328) +++ trunk/src/select_act.c (revision 17329) @@ -85,7 +85,7 @@ %end-doc */ -static int pcb_act_Select(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Select(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { @@ -192,7 +192,7 @@ %end-doc */ -static int pcb_act_Unselect(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Unselect(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (function) { Index: trunk/src/undo_act.c =================================================================== --- trunk/src/undo_act.c (revision 17328) +++ trunk/src/undo_act.c (revision 17329) @@ -87,7 +87,7 @@ %end-doc */ -int pcb_act_Atomic(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_Atomic(int argc, const char **argv) { if (argc != 1) PCB_ACT_FAIL(Atomic); @@ -133,7 +133,7 @@ %end-doc */ -int pcb_act_Undo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_Undo(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); if (!function || !*function) { @@ -175,7 +175,7 @@ %end-doc */ -int pcb_act_Redo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_Redo(int argc, const char **argv) { pcb_notify_crosshair_change(pcb_false); if (pcb_tool_redo_act()) Index: trunk/src/undo_act.h =================================================================== --- trunk/src/undo_act.h (revision 17328) +++ trunk/src/undo_act.h (revision 17329) @@ -1,4 +1,4 @@ /* Publish actions - these may be useful for other actions */ -int pcb_act_Undo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); -int pcb_act_Redo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); -int pcb_act_Atomic(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_act_Undo(int argc, const char **argv); +int pcb_act_Redo(int argc, const char **argv); +int pcb_act_Atomic(int argc, const char **argv); Index: trunk/src_plugins/acompnet/acompnet.c =================================================================== --- trunk/src_plugins/acompnet/acompnet.c (revision 17328) +++ trunk/src_plugins/acompnet/acompnet.c (revision 17329) @@ -85,7 +85,7 @@ static const char pcb_acts_acompnet[] = "acompnet()\n" ; static const char pcb_acth_acompnet[] = "Attempt to auto-complete the current network"; -static int pcb_act_acompnet(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_acompnet(int argc, const char **argv) { acompnet_mesh(); return 0; Index: trunk/src_plugins/autocrop/autocrop.c =================================================================== --- trunk/src_plugins/autocrop/autocrop.c (revision 17328) +++ trunk/src_plugins/autocrop/autocrop.c (revision 17329) @@ -40,7 +40,7 @@ static const char pcb_acth_autocrop[] = "Autocrops the board dimensions to (extants + a margin of 1 grid), keeping the move and board size grid aligned"; static const char pcb_acts_autocrop[] = "autocrop()"; -static int pcb_act_autocrop(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_autocrop(int argc, const char **argv) { pcb_box_t box; pcb_coord_t dx, dy, w, h; Index: trunk/src_plugins/autoplace/action.c =================================================================== --- trunk/src_plugins/autoplace/action.c (revision 17328) +++ trunk/src_plugins/autoplace/action.c (revision 17329) @@ -51,7 +51,7 @@ %end-doc */ -static int pcb_act_AutoPlaceSelected(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_AutoPlaceSelected(int argc, const char **argv) { pcb_event(PCB_EVENT_BUSY, NULL); if (pcb_gui->confirm_dialog(_("Auto-placement can NOT be undone.\n" "Do you want to continue anyway?\n"), 0)) { Index: trunk/src_plugins/autoroute/action.c =================================================================== --- trunk/src_plugins/autoroute/action.c (revision 17328) +++ trunk/src_plugins/autoroute/action.c (revision 17329) @@ -69,7 +69,7 @@ %end-doc */ -static int pcb_act_AutoRoute(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_AutoRoute(int argc, const char **argv) { const char *function = PCB_ACTION_ARG(0); pcb_event(PCB_EVENT_BUSY, NULL); Index: trunk/src_plugins/boardflip/boardflip.c =================================================================== --- trunk/src_plugins/boardflip/boardflip.c (revision 17328) +++ trunk/src_plugins/boardflip/boardflip.c (revision 17329) @@ -166,7 +166,7 @@ PCB_END_LOOP; } -static int pcb_act_boardflip(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_boardflip(int argc, const char **argv) { int h = PCB->MaxHeight; int sides = 0; Index: trunk/src_plugins/diag/diag.c =================================================================== --- trunk/src_plugins/diag/diag.c (revision 17328) +++ trunk/src_plugins/diag/diag.c (revision 17329) @@ -59,7 +59,7 @@ extern lht_doc_t *conf_main_root[]; extern lht_doc_t *conf_plug_root[]; -static int pcb_act_DumpConf(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DumpConf(int argc, const char **argv) { const char *cmd = argc > 0 ? argv[0] : NULL; @@ -112,7 +112,7 @@ static const char eval_conf_help[] = "Perform various operations on the configuration tree."; -static int pcb_act_EvalConf(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_EvalConf(int argc, const char **argv) { const char *path = argc > 0 ? argv[0] : NULL; conf_native_t *nat; @@ -166,7 +166,7 @@ static const char dump_layers_help[] = "Print info about each layer"; extern lht_doc_t *conf_main_root[]; -static int pcb_act_DumpLayers(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DumpLayers(int argc, const char **argv) { int g, n, used; pcb_layer_id_t arr[128]; /* WARNING: this assumes we won't have more than 128 layers */ @@ -262,7 +262,7 @@ static const char dump_fonts_syntax[] = "dumpfonts()\n"; static const char dump_fonts_help[] = "Print info about fonts"; -static int pcb_act_DumpFonts(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DumpFonts(int argc, const char **argv) { printf("Font summary:\n"); print_font(&PCB->fontkit.dflt, " Default"); @@ -280,7 +280,7 @@ extern void undo_dump(void); static const char dump_undo_syntax[] = "dumpfonts()\n"; static const char dump_undo_help[] = "Print info about fonts"; -static int pcb_act_DumpUndo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DumpUndo(int argc, const char **argv) { printf("Undo:\n"); undo_dump(); @@ -335,7 +335,7 @@ static const char dump_data_syntax[] = "dumpdata()\n"; static const char dump_data_help[] = "Dump an aspect of the data"; -static int pcb_act_DumpData(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DumpData(int argc, const char **argv) { dd_flags what = DD_DRC | DD_COPPER_ONLY; printf("DumpData:\n"); @@ -346,7 +346,7 @@ static const char integrity_syntax[] = "integrity()\n"; static const char integrity_help[] = "perform integrirty check on the current board and generate errors if needed"; -static int pcb_act_integrity(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_integrity(int argc, const char **argv) { pcb_check_integrity(PCB); return 0; @@ -369,7 +369,7 @@ static const char dumpflags_syntax[] = "dumpflags([fmt])\n"; static const char dumpflags_help[] = "dump flags, optionally using the format string provided by the user"; -static int pcb_act_dumpflags(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_dumpflags(int argc, const char **argv) { int n; const char *default_fmt = "%m (%M %N) for %t:\n %H\n"; @@ -404,7 +404,7 @@ static const char d1_syntax[] = "d1()\n"; static const char d1_help[] = "debug action for development"; -static int pcb_act_d1(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_d1(int argc, const char **argv) { printf("D1!\n"); return 0; @@ -415,8 +415,9 @@ static const char forcecolor_syntax[] = "forcecolor(#RRGGBB)\n"; static const char forcecolor_help[] = "change selected objects' color to #RRGGBB, reset if does not start with '#'"; -static int pcb_act_forcecolor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_forcecolor(int argc, const char **argv) { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; Index: trunk/src_plugins/dialogs/TEMPLATE.c =================================================================== --- trunk/src_plugins/dialogs/TEMPLATE.c (revision 17328) +++ trunk/src_plugins/dialogs/TEMPLATE.c (revision 17329) @@ -85,7 +85,7 @@ static const char pcb_acts_Foo[] = "Foo(object)\n"; <<<- edit this static const char pcb_acth_Foo[] = ""; <<<- edit this -static int pcb_act_Foo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) <<<- edit this +static int pcb_act_Foo(int argc, const char **argv) <<<- edit this { return 0; } Index: trunk/src_plugins/dialogs/TEMPLATE_MODAL.c =================================================================== --- trunk/src_plugins/dialogs/TEMPLATE_MODAL.c (revision 17328) +++ trunk/src_plugins/dialogs/TEMPLATE_MODAL.c (revision 17329) @@ -68,7 +68,7 @@ static const char pcb_acts_Foo[] = "Foo(object)\n"; <<<- edit this static const char pcb_acth_Foo[] = ""; <<<- edit this -static int pcb_act_Foo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) <<<- edit this +static int pcb_act_Foo(int argc, const char **argv) <<<- edit this { return 0; } Index: trunk/src_plugins/dialogs/dlg_about.c =================================================================== --- trunk/src_plugins/dialogs/dlg_about.c (revision 17328) +++ trunk/src_plugins/dialogs/dlg_about.c (revision 17329) @@ -59,7 +59,7 @@ static const char pcb_acts_About[] = "About()\n"; static const char pcb_acth_About[] = "Present the about box"; -static int pcb_act_About(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_About(int argc, const char **argv) { pcb_dlg_about(); return 0; Index: trunk/src_plugins/dialogs/dlg_flag_edit.c =================================================================== --- trunk/src_plugins/dialogs/dlg_flag_edit.c (revision 17328) +++ trunk/src_plugins/dialogs/dlg_flag_edit.c (revision 17329) @@ -75,7 +75,7 @@ static const char pcb_acts_FlagEdit[] = "FlagEdit(object)\n"; static const char pcb_acth_FlagEdit[] = "Change the layer binding."; -static int pcb_act_FlagEdit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_FlagEdit(int argc, const char **argv) { fe_ctx_t ctx; pcb_hid_attr_val_t val; @@ -84,6 +84,7 @@ memset(&ctx, 0, sizeof(ctx)); if ((argc == 0) || (pcb_strcasecmp(argv[0], "object") == 0)) { + pcb_coord_t x, y; void *ptr1, *ptr2, *ptr3; pcb_hid_get_coords("Click on object to change flags of", &x, &y); type = pcb_search_screen(x, y, PCB_FLAGEDIT_TYPES | PCB_LOOSE_SUBC, &ptr1, &ptr2, &ptr3); Index: trunk/src_plugins/dialogs/dlg_layer_binding.c =================================================================== --- trunk/src_plugins/dialogs/dlg_layer_binding.c (revision 17328) +++ trunk/src_plugins/dialogs/dlg_layer_binding.c (revision 17329) @@ -188,7 +188,7 @@ static const char pcb_acts_LayerBinding[] = "LayerBinding(object)\nLayerBinding(selected)\nLayerBinding(buffer)\n"; static const char pcb_acth_LayerBinding[] = "Change the layer binding."; -static int pcb_act_LayerBinding(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LayerBinding(int argc, const char **argv) { lb_ctx_t ctx; int num_copper; @@ -197,6 +197,7 @@ memset(&ctx, 0, sizeof(ctx)); if ((argc == 0) || (pcb_strcasecmp(argv[0], "object") == 0)) { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; pcb_hid_get_coords("Click on object to change size of", &x, &y); Index: trunk/src_plugins/dialogs/dlg_padstack.c =================================================================== --- trunk/src_plugins/dialogs/dlg_padstack.c (revision 17328) +++ trunk/src_plugins/dialogs/dlg_padstack.c (revision 17329) @@ -579,7 +579,7 @@ static const char pcb_acts_PadstackEdit[] = "PadstackEdit(object)\n"; static const char pcb_acth_PadstackEdit[] = "interactive pad stack editor"; -static int pcb_act_PadstackEdit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PadstackEdit(int argc, const char **argv) { int n, target_tab = -1; pse_t pse; @@ -589,6 +589,7 @@ memset(&pse, 0, sizeof(pse)); if ((argc == 0) || (pcb_strcasecmp(argv[0], "object") == 0)) { + pcb_coord_t x, y; void *ptr1, *ptr2 = NULL, *ptr3; long type; pcb_hid_get_coords("Click on a padstack to edit", &x, &y); Index: trunk/src_plugins/dialogs/dlg_test.c =================================================================== --- trunk/src_plugins/dialogs/dlg_test.c (revision 17328) +++ trunk/src_plugins/dialogs/dlg_test.c (revision 17329) @@ -38,7 +38,7 @@ static void cb_jump(void *hid_ctx, void *caller_data, pcb_hid_attribute_t *attr); static int attr_idx, attr_idx2; -static int pcb_act_dlg_test(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_dlg_test(int argc, const char **argv) { const char *vals[] = { "foo", "bar", "baz", NULL }; const char *tabs[] = { "original test", "new test", NULL }; Index: trunk/src_plugins/distalign/distalign.c =================================================================== --- trunk/src_plugins/distalign/distalign.c (revision 17328) +++ trunk/src_plugins/distalign/distalign.c (revision 17329) @@ -255,7 +255,7 @@ * Defaults are Marks, First. */ static const char pcb_acts_align[] = "Align(X/Y, [Lefts/Rights/Tops/Bottoms/Centers/Marks, [First/Last/pcb_crosshair/Average[, Gridless]]])"; -static int pcb_act_align(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_align(int argc, const char **argv) { int dir; int point; @@ -377,7 +377,7 @@ * before they were distributed. */ static const char pcb_acts_distribute[] = "Distribute(X/Y, [Lefts/Rights/Tops/Bottoms/Centers/Marks/Gaps, [First/Last/pcb_crosshair, First/Last/pcb_crosshair[, Gridless]]])"; -static int pcb_act_distribute(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_distribute(int argc, const char **argv) { int dir; int point; @@ -466,8 +466,8 @@ /* build list of subcircuitss in orthogonal axis order */ sort_subcs_by_pos(K_distribute, dir, point); /* find the endpoints given the above options */ - s = reference_coord(K_distribute, x, y, dir, point, refa); - e = reference_coord(K_distribute, x, y, dir, point, refb); + s = reference_coord(K_distribute, pcb_crosshair.X, pcb_crosshair.Y, dir, point, refa); + e = reference_coord(K_distribute, pcb_crosshair.X, pcb_crosshair.Y, dir, point, refb); slack = e - s; /* use this divisor to calculate spacing (for 1 elt, avoid 1/0) */ divisor = (nsubcs_by_pos > 1) ? (nsubcs_by_pos - 1) : 1; Index: trunk/src_plugins/distaligntext/distaligntext.c =================================================================== --- trunk/src_plugins/distaligntext/distaligntext.c (revision 17328) +++ trunk/src_plugins/distaligntext/distaligntext.c (revision 17329) @@ -273,7 +273,7 @@ * * Defaults are Lefts/Tops, First */ static const char pcb_acts_aligntext[] = "AlignText(X/Y, [Lefts/Rights/Tops/Bottoms/Centers, [First/Last/pcb_crosshair/Average[, Gridless]]])"; -static int pcb_act_aligntext(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_aligntext(int argc, const char **argv) { int dir; int point; @@ -430,7 +430,7 @@ Distributed texts always retain the same relative order they had before they were distributed. */ static const char pcb_acts_distributetext[] = "DistributeText(Y, [Lefts/Rights/Tops/Bottoms/Centers/Gaps, [First/Last/pcb_crosshair, First/Last/pcb_crosshair[, Gridless]]])"; -static int pcb_act_distributetext(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_distributetext(int argc, const char **argv) { int dir; int point; @@ -524,8 +524,8 @@ /* build list of texts in orthogonal axis order */ sort_texts_by_pos(K_distributetext, dir, point); /* find the endpoints given the above options */ - s = reference_coord(K_distributetext, x, y, dir, point, refa); - e = reference_coord(K_distributetext, x, y, dir, point, refb); + s = reference_coord(K_distributetext, pcb_crosshair.X, pcb_crosshair.Y, dir, point, refa); + e = reference_coord(K_distributetext, pcb_crosshair.X, pcb_crosshair.Y, dir, point, refb); slack = e - s; /* use this divisor to calculate spacing (for 1 elt, avoid 1/0) */ divisor = (ntexts_by_pos > 1) ? (ntexts_by_pos - 1) : 1; Index: trunk/src_plugins/djopt/djopt.c =================================================================== --- trunk/src_plugins/djopt/djopt.c (revision 17328) +++ trunk/src_plugins/djopt/djopt.c (revision 17329) @@ -2491,7 +2491,7 @@ %end-doc */ -static int pcb_act_DJopt(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DJopt(int argc, const char **argv) { const char *arg = argc > 0 ? argv[0] : NULL; int layn, saved = 0; Index: trunk/src_plugins/draw_csect/draw_csect.c =================================================================== --- trunk/src_plugins/draw_csect/draw_csect.c (revision 17328) +++ trunk/src_plugins/draw_csect/draw_csect.c (revision 17329) @@ -834,7 +834,7 @@ static const char pcb_acts_dump_csect[] = "DumpCsect()"; static const char pcb_acth_dump_csect[] = "Print the cross-section of the board (layer stack)"; -static int pcb_act_dump_csect(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_dump_csect(int argc, const char **argv) { pcb_layergrp_id_t gid; Index: trunk/src_plugins/expfeat/expfeat.c =================================================================== --- trunk/src_plugins/expfeat/expfeat.c (revision 17328) +++ trunk/src_plugins/expfeat/expfeat.c (revision 17329) @@ -40,7 +40,7 @@ /* %start-doc actions Debug This action is a template, copy and rename this to create new actions. %end-doc */ -static int pcb_act_ExpFeatTmp(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ExpFeatTmp(int argc, const char **argv) { pcb_message(PCB_MSG_INFO, "Hello world from expfeat!\n"); return 0; Index: trunk/src_plugins/export_openems/mesh.c =================================================================== --- trunk/src_plugins/export_openems/mesh.c (revision 17328) +++ trunk/src_plugins/export_openems/mesh.c (revision 17329) @@ -894,7 +894,7 @@ const char pcb_acts_mesh[] = "mesh()"; const char pcb_acth_mesh[] = "generate a mesh for simulation"; -int pcb_act_mesh(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_mesh(int argc, const char **argv) { pcb_mesh_interactive(); return 0; Index: trunk/src_plugins/export_openems/mesh.h =================================================================== --- trunk/src_plugins/export_openems/mesh.h (revision 17328) +++ trunk/src_plugins/export_openems/mesh.h (revision 17329) @@ -33,7 +33,7 @@ extern const char pcb_acts_mesh[]; extern const char pcb_acth_mesh[]; -int pcb_act_mesh(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_act_mesh(int argc, const char **argv); /* Get one of the configured meshes */ pcb_mesh_t *pcb_mesg_get(const char *name); Index: trunk/src_plugins/export_openscad/export_openscad.c =================================================================== --- trunk/src_plugins/export_openscad/export_openscad.c (revision 17328) +++ trunk/src_plugins/export_openscad/export_openscad.c (revision 17329) @@ -597,7 +597,7 @@ static const char pcb_acts_scad_export_poly[] = "ScadExportPoly(filename)\n"; static const char pcb_acth_scad_export_poly[] = "exports all selected polygons to an openscad script; only the outmost contour of each poly is exported"; -static int pcb_act_scad_export_poly(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_scad_export_poly(int argc, const char **argv) { FILE *f; Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 17328) +++ trunk/src_plugins/export_ps/ps.c (revision 17329) @@ -1448,7 +1448,7 @@ { } -static int pcb_act_PSCalib(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PSCalib(int argc, const char **argv) { ps_calibrate(0.0, 0.0); return 0; Index: trunk/src_plugins/extedit/extedit.c =================================================================== --- trunk/src_plugins/extedit/extedit.c (revision 17328) +++ trunk/src_plugins/extedit/extedit.c (revision 17329) @@ -168,7 +168,7 @@ static const char pcb_acts_extedit[] = "extedit(object|selected, [interactive|method])\n"; static const char pcb_acth_extedit[] = "Invoke an external program to edit a specific part of the current board."; -static int pcb_act_extedit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_extedit(int argc, const char **argv) { long type; void *ptr1, *ptr2, *ptr3; @@ -179,6 +179,7 @@ /* pick up the object to edit */ if ((argc == 0) || (pcb_strcasecmp(argv[0], "object") == 0)) { + pcb_coord_t x, y; pcb_hid_get_coords("Click on object to edit", &x, &y); type = pcb_search_screen(x, y, EXTEDIT_TYPES, &ptr1, &ptr2, &ptr3); } Index: trunk/src_plugins/fontmode/fontmode.c =================================================================== --- trunk/src_plugins/fontmode/fontmode.c (revision 17328) +++ trunk/src_plugins/fontmode/fontmode.c (revision 17329) @@ -100,7 +100,7 @@ pcb_poly_invalidate_draw(layer, np); } -static int pcb_act_FontEdit(int argc, const char **argv, pcb_coord_t Ux, pcb_coord_t Uy) +static int pcb_act_FontEdit(int argc, const char **argv) { pcb_font_t *font; pcb_symbol_t *symbol; @@ -238,7 +238,7 @@ %end-doc */ -static int pcb_act_FontSave(int argc, const char **argv, pcb_coord_t Ux, pcb_coord_t Uy) +static int pcb_act_FontSave(int argc, const char **argv) { pcb_font_t *font; pcb_symbol_t *symbol; Index: trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_pkg/actions/actions.c =================================================================== --- trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_pkg/actions/actions.c (revision 17328) +++ trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_pkg/actions/actions.c (revision 17329) @@ -8,6 +8,7 @@ #include "actions.h" #include "src/hid_actions.h" #include "src/compat_misc.h" +#include "src/crosshair.h" #include "../../gpmi_plugin.h" typedef struct acontext_s acontext_t; @@ -30,7 +31,7 @@ } -static int action_cb(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int action_cb(int argc, const char **argv) { acontext_t *ctx = (acontext_t *)pcb_current_action; int action_argc_old; @@ -43,7 +44,7 @@ action_argv = argv; /* call event */ - gpmi_event(ctx->module, ACTE_action, ctx->name, argc, x, y); + gpmi_event(ctx->module, ACTE_action, ctx->name, argc, pcb_crosshair.ptr_x, pcb_crosshair.ptr_y); /* restore argc/argv of action_arg() */ action_argc = action_argc_old; Index: trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_plugin.c =================================================================== --- trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_plugin.c (revision 17328) +++ trunk/src_plugins/gpmi/pcb-gpmi/gpmi_plugin/gpmi_plugin.c (revision 17329) @@ -84,7 +84,7 @@ } } -static int action_gpmi_scripts(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int action_gpmi_scripts(int argc, const char **argv) { if (argc == 0) { gpmi_hid_manage_scripts(); @@ -130,7 +130,7 @@ return 0; } -static int action_gpmi_rehash(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int action_gpmi_rehash(int argc, const char **argv) { cmd_reload(NULL); return 0; Index: trunk/src_plugins/hid_batch/batch.c =================================================================== --- trunk/src_plugins/hid_batch/batch.c (revision 17328) +++ trunk/src_plugins/hid_batch/batch.c (revision 17329) @@ -69,13 +69,13 @@ prompt = pcb_strdup("no-board"); } -static int pcb_act_help(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_help(int argc, const char **argv) { pcb_print_actions(); return 0; } -static int pcb_act_info(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_info(int argc, const char **argv) { int i, j; if (!PCB || !PCB->Data || !PCB->Filename) { Index: trunk/src_plugins/hid_lesstif/dialogs.c =================================================================== --- trunk/src_plugins/hid_lesstif/dialogs.c (revision 17328) +++ trunk/src_plugins/hid_lesstif/dialogs.c (revision 17329) @@ -120,7 +120,7 @@ %end-doc */ -static int pcb_act_Load(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Load(int argc, const char **argv) { const char *function; char *name; @@ -178,7 +178,7 @@ %end-doc */ -static int pcb_act_LoadVendor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadVendor(int argc, const char **argv) { char *name; XmString xmname, pattern; @@ -230,7 +230,7 @@ %end-doc */ -static int pcb_act_Save(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Save(int argc, const char **argv) { const char *function; char *name; @@ -454,7 +454,7 @@ return ok; } -static int pcb_act_ConfirmAction(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ConfirmAction(int argc, const char **argv) { int rv = lesstif_confirm_dialog(argc > 0 ? argv[0] : 0, argc > 1 ? argv[1] : 0, @@ -577,7 +577,7 @@ %end-doc */ -static int pcb_act_PromptFor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PromptFor(int argc, const char **argv) { char *rv = lesstif_prompt_for(argc > 0 ? argv[0] : 0, argc > 1 ? argv[1] : 0); @@ -1275,7 +1275,7 @@ %end-doc */ -static int pcb_act_DoWindows(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DoWindows(int argc, const char **argv) { const char *a = argc == 1 ? argv[0] : ""; if (strcmp(a, "1") == 0 || pcb_strcasecmp(a, "Layout") == 0) { @@ -1311,7 +1311,7 @@ %end-doc */ -static int pcb_act_About(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_About(int argc, const char **argv) { static Widget about = 0; if (!about) { @@ -1341,7 +1341,7 @@ %end-doc */ -static int pcb_act_Print(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Print(int argc, const char **argv) { pcb_hid_attribute_t *opts; pcb_hid_t *printer; @@ -1386,7 +1386,7 @@ %end-doc */ -static int pcb_act_PrintCalibrate(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PrintCalibrate(int argc, const char **argv) { pcb_hid_t *printer = pcb_hid_find_printer(); printer->calibrate(0.0, 0.0); @@ -1409,7 +1409,7 @@ %end-doc */ -static int pcb_act_ExportGUI(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ExportGUI(int argc, const char **argv) { static Widget selector = 0; pcb_hid_attribute_t *opts; @@ -1579,7 +1579,7 @@ %end-doc */ -static int pcb_act_AdjustSizes(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_AdjustSizes(int argc, const char **argv) { if (!sizes_dialog) { Widget inf, sep; @@ -1673,7 +1673,7 @@ %end-doc */ extern void lesstif_show_layergrp_edit(void); -static int pcb_act_EditLayerGroups(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_EditLayerGroups(int argc, const char **argv) { lesstif_show_layergrp_edit(); return 1; @@ -1683,7 +1683,7 @@ static const char pcb_acts_fontsel[] = "EditLayerGroups()"; static const char pcb_acth_fontsel[] = "Let the user change fonts"; extern void lesstif_show_fontsel_edit(pcb_layer_t *txtly, pcb_text_t *txt, int type); -static int pcb_act_fontsel(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_fontsel(int argc, const char **argv) { if (argc > 1) PCB_ACT_FAIL(fontsel); @@ -1690,6 +1690,7 @@ if (argc > 0) { if (pcb_strcasecmp(argv[0], "Object") == 0) { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; pcb_hid_get_coords(_("Select an Object"), &x, &y); @@ -2016,7 +2017,7 @@ %end-doc */ -static int pcb_act_ImportGUI(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ImportGUI(int argc, const char **argv) { static int I_am_recursing = 0; static XmString xms_sch = 0, xms_import = 0; Index: trunk/src_plugins/hid_lesstif/library.c =================================================================== --- trunk/src_plugins/hid_lesstif/library.c (revision 17328) +++ trunk/src_plugins/hid_lesstif/library.c (revision 17329) @@ -166,7 +166,7 @@ %end-doc */ -static int pcb_act_LibraryShow(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LibraryShow(int argc, const char **argv) { if (build_library_dialog()) return 0; Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 17328) +++ trunk/src_plugins/hid_lesstif/main.c (revision 17329) @@ -431,10 +431,14 @@ %end-doc */ -static int pcb_act_Zoom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Zoom(int argc, const char **argv) { + pcb_coord_t x, y; const char *vp; double v; + + pcb_hid_get_coords("Click on a place to zoom in", &x, &y); + if (x == 0 && y == 0) { x = view_width / 2; y = view_height / 2; @@ -499,7 +503,7 @@ %end-doc */ -static int pcb_act_ZoomTo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ZoomTo(int argc, const char **argv) { pcb_coord_t x1, y1, x2, y2; pcb_bool succ; @@ -530,10 +534,13 @@ static int pan_thumb_mode; -static int pcb_act_Pan(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Pan(int argc, const char **argv) { + pcb_coord_t x, y; int mode; + pcb_hid_get_coords("Click on a place to pan", &x, &y); + if (argc == 2) { pan_thumb_mode = (pcb_strcasecmp(argv[0], "thumb") == 0) ? 1 : 0; mode = atoi(argv[1]); @@ -599,7 +606,7 @@ } #warning TODO: ui_zoomplan.c does the same, maybe make the code common? -static int pcb_act_SwapSides(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SwapSides(int argc, const char **argv) { int old_shown_side = conf_core.editor.show_solder_side; pcb_layergrp_id_t comp_group = -1, solder_group = -1; @@ -756,7 +763,7 @@ %end-doc */ -static int pcb_act_Command(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Command(int argc, const char **argv) { XtManageChild(m_cmd_label); XtManageChild(m_cmd); @@ -776,7 +783,7 @@ %end-doc */ -static int pcb_act_Benchmark(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Benchmark(int argc, const char **argv) { int i = 0; time_t start, end; @@ -810,8 +817,12 @@ return 0; } -static int pcb_act_Center(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Center(int argc, const char **argv) { + pcb_coord_t x, y; + + pcb_hid_get_coords("Click on a location to center", &x, &y); + x = pcb_grid_fit(x, PCB->Grid, PCB->GridOffsetX); y = pcb_grid_fit(y, PCB->Grid, PCB->GridOffsetY); view_left_x = x - (view_width * view_zoom) / 2; @@ -825,13 +836,13 @@ } pcb_hid_action_t lesstif_main_action_list[] = { - {"Zoom", "Click on a place to zoom in", pcb_act_Zoom, + {"Zoom", 0, pcb_act_Zoom, pcb_acth_Zoom, pcb_acts_Zoom} , {"ZoomTo", 0, pcb_act_ZoomTo, pcb_acth_ZoomTo, pcb_acts_ZoomTo} , - {"Pan", "Click on a place to pan", pcb_act_Pan, + {"Pan", 0, pcb_act_Pan, pcb_acth_Zoom, pcb_acts_Zoom} , {"SwapSides", 0, pcb_act_SwapSides, @@ -843,7 +854,7 @@ {"Benchmark", 0, pcb_act_Benchmark, pcb_acth_Benchmark, pcb_acts_Benchmark} , - {"Center", "Click on a location to center", pcb_act_Center} + {"Center", 0, pcb_act_Center} , }; Index: trunk/src_plugins/hid_lesstif/menu.c =================================================================== --- trunk/src_plugins/hid_lesstif/menu.c (revision 17328) +++ trunk/src_plugins/hid_lesstif/menu.c (revision 17329) @@ -53,8 +53,9 @@ %end-doc */ -static int pcb_act_GetXY(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_GetXY(int argc, const char **argv) { + pcb_coord_t x, y; pcb_hid_get_coords(argv[0], &x, &y); return 0; } Index: trunk/src_plugins/hid_lesstif/netlist.c =================================================================== --- trunk/src_plugins/hid_lesstif/netlist.c (revision 17328) +++ trunk/src_plugins/hid_lesstif/netlist.c (revision 17329) @@ -373,7 +373,7 @@ %end-doc */ -static int pcb_act_LesstifNetlistShow(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LesstifNetlistShow(int argc, const char **argv) { if (build_netlist_dialog()) return 0; Index: trunk/src_plugins/hid_lesstif/styles.c =================================================================== --- trunk/src_plugins/hid_lesstif/styles.c (revision 17328) +++ trunk/src_plugins/hid_lesstif/styles.c (revision 17329) @@ -310,7 +310,7 @@ %end-doc */ -static int pcb_act_AdjustStyle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_AdjustStyle(int argc, const char **argv) { if ((!mainwind) || (PCB->RouteStyle.array == NULL)) return 1; Index: trunk/src_plugins/import_dsn/dsn.c =================================================================== --- trunk/src_plugins/import_dsn/dsn.c (revision 17328) +++ trunk/src_plugins/import_dsn/dsn.c (revision 17329) @@ -206,7 +206,7 @@ static const char load_dsn_help[] = "Loads the specified routed dsn file."; -int pcb_act_LoadDsnFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadDsnFrom(int argc, const char **argv) { const char *fname = NULL; pcb_coord_t clear; Index: trunk/src_plugins/import_hpgl/hpgl.c =================================================================== --- trunk/src_plugins/import_hpgl/hpgl.c (revision 17328) +++ trunk/src_plugins/import_hpgl/hpgl.c (revision 17329) @@ -149,7 +149,7 @@ static const char pcb_acts_LoadHpglFrom[] = "LoadHpglFrom(filename)"; static const char pcb_acth_LoadHpglFrom[] = "Loads the specified hpgl plot file to the current buffer"; -int pcb_act_LoadHpglFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadHpglFrom(int argc, const char **argv) { const char *fname = NULL; static char *default_file = NULL; Index: trunk/src_plugins/import_ipcd356/ipcd356.c =================================================================== --- trunk/src_plugins/import_ipcd356/ipcd356.c (revision 17328) +++ trunk/src_plugins/import_ipcd356/ipcd356.c (revision 17329) @@ -355,7 +355,7 @@ static const char pcb_acts_LoadIpc356From[] = "LoadIpc356From(filename, [nonet], [nopad], [nosubc])"; static const char pcb_acth_LoadIpc356From[] = "Loads the specified IPC356-D netlist"; -int pcb_act_LoadIpc356From(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadIpc356From(int argc, const char **argv) { FILE *f; static char *default_file = NULL; Index: trunk/src_plugins/import_ltspice/ltspice.c =================================================================== --- trunk/src_plugins/import_ltspice/ltspice.c (revision 17328) +++ trunk/src_plugins/import_ltspice/ltspice.c (revision 17329) @@ -266,7 +266,7 @@ static const char pcb_acts_LoadLtspiceFrom[] = "LoadLtspiceFrom(filename)"; static const char pcb_acth_LoadLtspiceFrom[] = "Loads the specified ltspice .net and .asc file - the netlist must be mentor netlist."; -int pcb_act_LoadLtspiceFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadLtspiceFrom(int argc, const char **argv) { const char *fname = NULL, *end; char *fname_asc, *fname_net, *fname_base; Index: trunk/src_plugins/import_mentor_sch/mentor_sch.c =================================================================== --- trunk/src_plugins/import_mentor_sch/mentor_sch.c (revision 17328) +++ trunk/src_plugins/import_mentor_sch/mentor_sch.c (revision 17329) @@ -257,7 +257,7 @@ static const char pcb_acts_Loadmentor_schFrom[] = "LoadMentorFrom(filename)"; static const char pcb_acth_Loadmentor_schFrom[] = "Loads the specified Mentor Graphics Design Capture schematics flat .edf file."; -int pcb_act_LoadMentorFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadMentorFrom(int argc, const char **argv) { const char *fname = NULL; static char *default_file = NULL; Index: trunk/src_plugins/import_mucs/mucs.c =================================================================== --- trunk/src_plugins/import_mucs/mucs.c (revision 17328) +++ trunk/src_plugins/import_mucs/mucs.c (revision 17329) @@ -56,7 +56,7 @@ static const char pcb_acts_LoadMucsFrom[] = "LoadMucsFrom(filename)"; static const char pcb_acth_LoadMucsFrom[] = "Loads the specified mucs routing file."; -int pcb_act_LoadMucsFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadMucsFrom(int argc, const char **argv) { const char *fname = NULL; static char *default_file = NULL; Index: trunk/src_plugins/import_sch/import_sch.c =================================================================== --- trunk/src_plugins/import_sch/import_sch.c (revision 17328) +++ trunk/src_plugins/import_sch/import_sch.c (revision 17329) @@ -60,7 +60,7 @@ conf_import_sch_t conf_import_sch; -extern int pcb_act_ExecuteFile(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +extern int pcb_act_ExecuteFile(int argc, const char **argv); /* ---------------------------------------------------------------- */ static const char pcb_acts_Import[] = @@ -178,7 +178,7 @@ %end-doc */ -static int pcb_act_Import(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Import(int argc, const char **argv) { const char *mode; const char **sources = NULL; @@ -361,7 +361,7 @@ cmd[0] = tmpfile; cmd[1] = NULL; - pcb_act_ExecuteFile(1, cmd, 0, 0); + pcb_act_ExecuteFile(1, cmd); for(i = 0; i < nsources; i++) free((char *) cmd[8 + i]); @@ -437,7 +437,7 @@ cmd[0] = tmpfile; cmd[1] = NULL; - pcb_act_ExecuteFile(1, cmd, 0, 0); + pcb_act_ExecuteFile(1, cmd); free((char*)cmd[2]); free((char*)cmd[3]); Index: trunk/src_plugins/import_tinycad/tinycad.c =================================================================== --- trunk/src_plugins/import_tinycad/tinycad.c (revision 17328) +++ trunk/src_plugins/import_tinycad/tinycad.c (revision 17329) @@ -172,7 +172,7 @@ static const char pcb_acts_LoadtinycadFrom[] = "LoadTinycadFrom(filename)"; static const char pcb_acth_LoadtinycadFrom[] = "Loads the specified tinycad .net file - the netlist must be tinycad netlist output."; -int pcb_act_LoadtinycadFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadtinycadFrom(int argc, const char **argv) { const char *fname = NULL; static char *default_file = NULL; Index: trunk/src_plugins/io_hyp/io_hyp.c =================================================================== --- trunk/src_plugins/io_hyp/io_hyp.c (revision 17328) +++ trunk/src_plugins/io_hyp/io_hyp.c (revision 17329) @@ -70,7 +70,7 @@ static const char load_hyp_help[] = "Loads the specified Hyperlynx file."; -int pcb_act_LoadhypFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadhypFrom(int argc, const char **argv) { const char *fname = NULL; int debug = 0; Index: trunk/src_plugins/io_kicad/read_net.c =================================================================== --- trunk/src_plugins/io_kicad/read_net.c (revision 17328) +++ trunk/src_plugins/io_kicad/read_net.c (revision 17329) @@ -216,7 +216,7 @@ const char pcb_acts_LoadeeschemaFrom[] = "LoadEeschemaFrom(filename)"; const char pcb_acth_LoadeeschemaFrom[] = "Loads the specified eeschema .net file - the netlist must be an s-expression."; -int pcb_act_LoadeeschemaFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadeeschemaFrom(int argc, const char **argv) { const char *fname = NULL; static char *default_file = NULL; Index: trunk/src_plugins/io_kicad/read_net.h =================================================================== --- trunk/src_plugins/io_kicad/read_net.h (revision 17328) +++ trunk/src_plugins/io_kicad/read_net.h (revision 17329) @@ -2,5 +2,5 @@ extern const char pcb_acts_LoadeeschemaFrom[]; extern const char pcb_acth_LoadeeschemaFrom[]; -int pcb_act_LoadeeschemaFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_act_LoadeeschemaFrom(int argc, const char **argv); Index: trunk/src_plugins/io_tedax/io_tedax.c =================================================================== --- trunk/src_plugins/io_tedax/io_tedax.c (revision 17328) +++ trunk/src_plugins/io_tedax/io_tedax.c (revision 17329) @@ -64,7 +64,7 @@ static const char pcb_acts_Savetedax[] = "SaveTedax(type, filename)"; static const char pcb_acth_Savetedax[] = "Saves the specific type of data in a tEDAx file. Type can be: board-footprints"; -static int pcb_act_Savetedax(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Savetedax(int argc, const char **argv) { const char *fname, *type = argv[0]; if (argc < 1) @@ -96,7 +96,7 @@ static const char pcb_acts_LoadtedaxFrom[] = "LoadTedaxFrom(type, filename)"; static const char pcb_acth_LoadtedaxFrom[] = "Loads the specified block from a tedax file. Type can be: netlist or footprint."; -static int pcb_act_LoadtedaxFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadtedaxFrom(int argc, const char **argv) { const char *fname, *type = argv[0]; Index: trunk/src_plugins/jostle/jostle.c =================================================================== --- trunk/src_plugins/jostle/jostle.c (revision 17328) +++ trunk/src_plugins/jostle/jostle.c (revision 17329) @@ -469,8 +469,9 @@ } static const char pcb_acts_jostle[] = "Jostle(diameter)"; -static int pcb_act_jostle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_jostle(int argc, const char **argv) { + pcb_coord_t x, y; pcb_bool rel; pcb_polyarea_t *expand; float value; Index: trunk/src_plugins/lib_gtk_common/act_fileio.c =================================================================== --- trunk/src_plugins/lib_gtk_common/act_fileio.c (revision 17328) +++ trunk/src_plugins/lib_gtk_common/act_fileio.c (revision 17329) @@ -58,7 +58,7 @@ return pcb_strdup(getcwd(tmp, sizeof(tmp))); } -int pcb_gtk_act_load(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_load(GtkWidget *top_window, int argc, const char **argv) { const char *function; char *name = NULL; @@ -118,7 +118,7 @@ %end-doc */ -int pcb_gtk_act_save(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_save(GtkWidget *top_window, int argc, const char **argv) { const char *function; char *name, *name_in = NULL; @@ -263,7 +263,7 @@ const char pcb_gtk_acts_importgui[] = "ImportGUI()"; const char pcb_gtk_acth_importgui[] = N_("Asks user which schematics to import into PCB.\n"); -int pcb_gtk_act_importgui(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_importgui(GtkWidget *top_window, int argc, const char **argv) { char *name = NULL; static gchar *current_layout_dir = NULL; Index: trunk/src_plugins/lib_gtk_common/act_fileio.h =================================================================== --- trunk/src_plugins/lib_gtk_common/act_fileio.h (revision 17328) +++ trunk/src_plugins/lib_gtk_common/act_fileio.h (revision 17329) @@ -1,12 +1,12 @@ #include #include "unit.h" -int pcb_gtk_act_load(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_load(GtkWidget *top_window, int argc, const char **argv); extern const char pcb_gtk_acts_save[]; extern const char pcb_gtk_acth_save[]; -int pcb_gtk_act_save(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_save(GtkWidget *top_window, int argc, const char **argv); extern const char pcb_gtk_acts_importgui[]; extern const char pcb_gtk_acth_importgui[]; -int pcb_gtk_act_importgui(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_importgui(GtkWidget *top_window, int argc, const char **argv); Index: trunk/src_plugins/lib_gtk_common/act_print.c =================================================================== --- trunk/src_plugins/lib_gtk_common/act_print.c (revision 17328) +++ trunk/src_plugins/lib_gtk_common/act_print.c (revision 17329) @@ -42,7 +42,7 @@ const char pcb_gtk_acts_print[] = "Print()"; const char pcb_gtk_acth_print[] = N_("Print the layout."); -int pcb_gtk_act_print(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_print(GtkWidget *top_window, int argc, const char **argv) { pcb_hid_t **hids; int i; @@ -90,7 +90,7 @@ %end-doc */ -int pcb_gtk_act_printcalibrate(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_printcalibrate(int argc, const char **argv) { pcb_hid_t *printer = pcb_hid_find_printer(); printer->calibrate(0.0, 0.0); Index: trunk/src_plugins/lib_gtk_common/act_print.h =================================================================== --- trunk/src_plugins/lib_gtk_common/act_print.h (revision 17328) +++ trunk/src_plugins/lib_gtk_common/act_print.h (revision 17329) @@ -1,9 +1,9 @@ #include extern const char pcb_gtk_acts_print[]; extern const char pcb_gtk_acth_print[]; -int pcb_gtk_act_print(GtkWidget *top_window, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_print(GtkWidget *top_window, int argc, const char **argv); extern const char pcb_gtk_acts_printcalibrate[]; extern const char pcb_gtk_acth_printcalibrate[]; -int pcb_gtk_act_printcalibrate(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_printcalibrate(int argc, const char **argv); Index: trunk/src_plugins/lib_gtk_common/dlg_log.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_log.c (revision 17328) +++ trunk/src_plugins/lib_gtk_common/dlg_log.c (revision 17329) @@ -171,7 +171,7 @@ const char pcb_gtk_acts_logshowonappend[] = "LogShowOnAppend(true|false)"; const char pcb_gtk_acth_logshowonappend[] = "If true, the log window will be shown whenever something is appended to it. If false, the log will still be updated, but the window won't be shown."; -int pcb_gtk_act_logshowonappend(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_logshowonappend(int argc, const char **argv) { const char *a = argc == 1 ? argv[0] : ""; Index: trunk/src_plugins/lib_gtk_common/dlg_log.h =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_log.h (revision 17328) +++ trunk/src_plugins/lib_gtk_common/dlg_log.h (revision 17329) @@ -14,6 +14,6 @@ /* Actions */ extern const char pcb_gtk_acts_logshowonappend[]; extern const char pcb_gtk_acth_logshowonappend[]; -int pcb_gtk_act_logshowonappend(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_logshowonappend(int argc, const char **argv); #endif /* PCB_GTK_DLG_LOG_H */ Index: trunk/src_plugins/lib_gtk_common/dlg_netlist.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_netlist.c (revision 17328) +++ trunk/src_plugins/lib_gtk_common/dlg_netlist.c (revision 17329) @@ -915,7 +915,7 @@ const char pcb_gtk_acts_netlistshow[] = "NetlistShow(pinname|netname)"; const char pcb_gtk_acth_netlistshow[] = "Selects the given pinname or netname in the netlist window. Does not show the window if it isn't already shown."; -gint pcb_gtk_act_netlistshow(pcb_gtk_common_t *com, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +gint pcb_gtk_act_netlistshow(pcb_gtk_common_t *com, int argc, const char **argv) { ghid_netlist_window_create(com); if (argc > 0) @@ -925,7 +925,7 @@ const char pcb_gtk_acts_netlistpresent[] = "NetlistPresent()"; const char pcb_gtk_acth_netlistpresent[] = "Presents the netlist window."; -gint pcb_gtk_act_netlistpresent(pcb_gtk_common_t *com, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +gint pcb_gtk_act_netlistpresent(pcb_gtk_common_t *com, int argc, const char **argv) { pcb_gtk_dlg_netlist_show(com, TRUE); return 0; Index: trunk/src_plugins/lib_gtk_common/dlg_netlist.h =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_netlist.h (revision 17328) +++ trunk/src_plugins/lib_gtk_common/dlg_netlist.h (revision 17329) @@ -18,10 +18,10 @@ /* Actions */ extern const char pcb_gtk_acts_netlistshow[]; extern const char pcb_gtk_acth_netlistshow[]; -gint pcb_gtk_act_netlistshow(pcb_gtk_common_t *com, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +gint pcb_gtk_act_netlistshow(pcb_gtk_common_t *com, int argc, const char **argv); extern const char pcb_gtk_acts_netlistpresent[]; extern const char pcb_gtk_acth_netlistpresent[]; -gint pcb_gtk_act_netlistpresent(pcb_gtk_common_t *com, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +gint pcb_gtk_act_netlistpresent(pcb_gtk_common_t *com, int argc, const char **argv); #endif /* PCB_GTK_DLG_NETLIST_H */ Index: trunk/src_plugins/lib_gtk_common/ui_zoompan.c =================================================================== --- trunk/src_plugins/lib_gtk_common/ui_zoompan.c (revision 17328) +++ trunk/src_plugins/lib_gtk_common/ui_zoompan.c (revision 17329) @@ -31,6 +31,7 @@ #include "unit.h" #include "action_helper.h" +#include "hid_actions.h" #include "error.h" #include "conf_core.h" #include "board.h" @@ -284,12 +285,12 @@ %end-doc */ -int pcb_gtk_zoom(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_zoom(pcb_gtk_view_t *vw, int argc, const char **argv) { const char *vp; double v; + pcb_coord_t x, y; - if (argc < 1) { pcb_gtk_zoom_view_fit(vw); return 0; @@ -333,6 +334,8 @@ v = g_ascii_strtod(vp, 0); if (v <= 0) return 1; + + pcb_hid_get_coords("Select zoom center", &x, &y); switch (argv[0][0]) { case '-': pcb_gtk_zoom_view_rel(vw, x, y, 1 / v); @@ -426,7 +429,7 @@ %end-doc */ -int pcb_gtk_swap_sides(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_swap_sides(pcb_gtk_view_t *vw, int argc, const char **argv) { pcb_layergrp_id_t active_group = pcb_layer_get_group(PCB, pcb_layer_stack[0]); pcb_layergrp_id_t comp_group = -1, solder_group = -1; @@ -494,7 +497,7 @@ %end-doc */ -int pcb_gtk_act_scroll(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_scroll(pcb_gtk_view_t *vw, int argc, const char **argv) { gdouble dx = 0.0, dy = 0.0; int div = 40; @@ -532,7 +535,7 @@ %end-doc */ -int pcb_gtk_act_pan(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_pan(pcb_gtk_view_t *vw, int argc, const char **argv) { int mode; Index: trunk/src_plugins/lib_gtk_common/ui_zoompan.h =================================================================== --- trunk/src_plugins/lib_gtk_common/ui_zoompan.h (revision 17328) +++ trunk/src_plugins/lib_gtk_common/ui_zoompan.h (revision 17329) @@ -92,7 +92,7 @@ extern const char pcb_acts_zoom[]; extern const char pcb_acth_zoom[]; -int pcb_gtk_zoom(pcb_gtk_view_t *v, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_zoom(pcb_gtk_view_t *v, int argc, const char **argv); extern const char pcb_acts_center[]; extern const char pcb_acth_center[]; @@ -100,15 +100,15 @@ extern const char pcb_acts_swapsides[]; extern const char pcb_acth_swapsides[]; -int pcb_gtk_swap_sides(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_swap_sides(pcb_gtk_view_t *vw, int argc, const char **argv); extern const char pcb_acts_scroll[]; extern const char pcb_acth_scroll[]; -int pcb_gtk_act_scroll(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_scroll(pcb_gtk_view_t *vw, int argc, const char **argv); extern const char pcb_acts_pan[]; extern const char pcb_acth_pan[]; -int pcb_gtk_act_pan(pcb_gtk_view_t *vw, int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_gtk_act_pan(pcb_gtk_view_t *vw, int argc, const char **argv); void pcb_gtk_get_coords(pcb_gtk_mouse_t *mouse, pcb_gtk_view_t *vw, const char *msg, pcb_coord_t * x, pcb_coord_t * y); Index: trunk/src_plugins/lib_gtk_hid/actions.c =================================================================== --- trunk/src_plugins/lib_gtk_hid/actions.c (revision 17328) +++ trunk/src_plugins/lib_gtk_hid/actions.c (revision 17329) @@ -70,7 +70,7 @@ %end-doc */ -static int pcb_act_AdjustStyle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_AdjustStyle(int argc, const char **argv) { if (argc > 1) PCB_ACT_FAIL(AdjustStyle); @@ -83,7 +83,7 @@ static const char pcb_acts_fontsel[] = "FontSel()\n"; static const char pcb_acth_fontsel[] = "Select the font to draw new text with."; -static int pcb_act_fontsel(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_fontsel(int argc, const char **argv) { if (argc > 1) PCB_ACT_FAIL(fontsel); @@ -90,6 +90,7 @@ if (argc > 0) { if (pcb_strcasecmp(argv[0], "Object") == 0) { + pcb_coord_t x, y; int type; void *ptr1, *ptr2, *ptr3; pcb_hid_get_coords(_("Select an Object"), &x, &y); @@ -108,7 +109,7 @@ /* ---------------------------------------------------------------------- */ -static int pcb_act_LayerGroupsChanged(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LayerGroupsChanged(int argc, const char **argv) { printf(_("LayerGroupsChanged -- not implemented\n")); return 0; @@ -116,7 +117,7 @@ /* ---------------------------------------------------------------------- */ -static int pcb_act_Command(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Command(int argc, const char **argv) { ghid_handle_user_command(&ghidgui->topwin.cmd, TRUE); return 0; @@ -124,14 +125,14 @@ /* ------------------------------------------------------------ */ -int pcb_gtk_act_print_(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_gtk_act_print_(int argc, const char **argv) { - return pcb_gtk_act_print(gport->top_window, argc, argv, x, y); + return pcb_gtk_act_print(gport->top_window, argc, argv); } /* ------------------------------------------------------------ */ -static int pcb_act_ExportGUI(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ExportGUI(int argc, const char **argv) { /* check if layout is empty */ @@ -146,7 +147,7 @@ /* ------------------------------------------------------------ */ -static int pcb_act_Benchmark(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Benchmark(int argc, const char **argv) { int i = 0; time_t start, end; @@ -216,7 +217,7 @@ %end-doc */ -static int pcb_act_DoWindows(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DoWindows(int argc, const char **argv) { const char *a = argc >= 1 ? argv[0] : ""; gboolean raise = TRUE; @@ -271,7 +272,7 @@ in the popups subtree in the menu lht file. %end-doc */ -static int pcb_act_Popup(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Popup(int argc, const char **argv) { GtkWidget *menu = NULL; char name[256]; @@ -294,6 +295,7 @@ switch(ctx_sens) { case CTX_OBJ_TYPE: { + pcb_coord_t x, y;; pcb_objtype_t type; void *o1, *o2, *o3; pcb_hid_get_coords("context sensitive popup: select object", &x, &y); @@ -340,7 +342,7 @@ static const char pcb_acth_SaveWinGeo[] = N_("Saves window geometry in the config.\n"); -static int pcb_act_SaveWinGeo(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SaveWinGeo(int argc, const char **argv) { ghid_wgeo_save(1, 0); return 0; @@ -348,17 +350,20 @@ /* ------------------------------------------------------------ */ -static int pcb_act_Zoom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Zoom(int argc, const char **argv) { - return pcb_gtk_zoom(&gport->view, argc, argv, x, y); + return pcb_gtk_zoom(&gport->view, argc, argv); } -static int pcb_act_Center(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Center(int argc, const char **argv) { + pcb_coord_t x, y; int offset_x, offset_y, pointer_x, pointer_y; GdkDisplay *display = gdk_display_get_default(); GdkScreen *screen = gdk_display_get_default_screen(display); + pcb_hid_get_coords("Click to center", &x, &y); + gdk_window_get_origin(gtk_widget_get_window(gport->drawing_area), &offset_x, &offset_y); pcb_gtk_act_center(&gport->view, argc, argv, x, y, offset_x, offset_y, &pointer_x, &pointer_y); gdk_display_warp_pointer(display, screen, pointer_x, pointer_y); @@ -365,7 +370,7 @@ return 0; } -static int pcb_act_SwapSides(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SwapSides(int argc, const char **argv) { int res, oa; @@ -373,52 +378,52 @@ oa = ghidgui->hid_active; ghidgui->hid_active = 0; - res = pcb_gtk_swap_sides(&gport->view, argc, argv, x, y); + res = pcb_gtk_swap_sides(&gport->view, argc, argv); ghidgui->hid_active = oa; return res; } -static int pcb_act_Scroll(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Scroll(int argc, const char **argv) { if (ghidgui == NULL) return 0; - return pcb_gtk_act_scroll(&gport->view, argc, argv, x, y); + return pcb_gtk_act_scroll(&gport->view, argc, argv); } -static int pcb_act_Pan(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Pan(int argc, const char **argv) { if (ghidgui == NULL) return 0; - return pcb_gtk_act_pan(&gport->view, argc, argv, x, y); + return pcb_gtk_act_pan(&gport->view, argc, argv); } -static int pcb_act_NetlistShow(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_NetlistShow(int argc, const char **argv) { - return pcb_gtk_act_netlistshow(&ghidgui->common, argc, argv, x, y); + return pcb_gtk_act_netlistshow(&ghidgui->common, argc, argv); } -static int pcb_act_NetlistPresent(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_NetlistPresent(int argc, const char **argv) { - return pcb_gtk_act_netlistpresent(&ghidgui->common, argc, argv, x, y); + return pcb_gtk_act_netlistpresent(&ghidgui->common, argc, argv); } -static int pcb_act_load(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_load(int argc, const char **argv) { - return pcb_gtk_act_load(ghid_port.top_window, argc, argv, x, y); + return pcb_gtk_act_load(ghid_port.top_window, argc, argv); } -static int pcb_act_save(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_save(int argc, const char **argv) { - return pcb_gtk_act_save(ghid_port.top_window, argc, argv, x, y); + return pcb_gtk_act_save(ghid_port.top_window, argc, argv); } -static int pcb_act_importgui(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_importgui(int argc, const char **argv) { - return pcb_gtk_act_importgui(ghid_port.top_window, argc, argv, x, y); + return pcb_gtk_act_importgui(ghid_port.top_window, argc, argv); } /* ------------------------------------------------------------ @@ -440,7 +445,7 @@ %end-doc */ -static int pcb_act_About(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_About(int argc, const char **argv) { pcb_gtk_dlg_about(gport->top_window); return 0; @@ -456,10 +461,10 @@ %end-doc */ -static int pcb_act_EditLayerGroups(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_EditLayerGroups(int argc, const char **argv) { const char *args[] = {"Preferences", "1", "User PoV/Layers"}; - return pcb_act_DoWindows(sizeof(args)/sizeof(args[0]), args, 0, 0); + return pcb_act_DoWindows(sizeof(args)/sizeof(args[0]), args); } /* ------------------------------------------------------------ */ @@ -473,8 +478,9 @@ %end-doc */ -static int pcb_act_GetXY(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_GetXY(int argc, const char **argv) { + pcb_coord_t x, y; pcb_hid_get_coords(argv[0], &x, &y); return 0; } Index: trunk/src_plugins/lib_polyhelp/polyhelp.c =================================================================== --- trunk/src_plugins/lib_polyhelp/polyhelp.c (revision 17328) +++ trunk/src_plugins/lib_polyhelp/polyhelp.c (revision 17329) @@ -363,7 +363,7 @@ static const char pcb_acts_PolyHatch[] = "PolyHatch([spacing], [hvcp])\nPolyHatch(interactive)\n"; static const char pcb_acth_PolyHatch[] = "hatch the selected polygon(s) with lines of the current style; lines are drawn on the current layer; flags are h:horizontal, v:vertical, c:contour, p:poly"; -static int pcb_act_PolyHatch(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PolyHatch(int argc, const char **argv) { pcb_coord_t period = 0; pcb_cpoly_hatchdir_t dir = 0; @@ -468,7 +468,7 @@ static const char pcb_acts_PolyOffs[] = "PolyOffs(offset)\n"; static const char pcb_acth_PolyOffs[] = "replicate the outer contour of the selected polygon(s) with growing or shrinking them by offset; the new polygon is drawn on the current layer"; -static int pcb_act_PolyOffs(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_PolyOffs(int argc, const char **argv) { pcb_coord_t offs; pcb_bool succ; Index: trunk/src_plugins/lib_polyhelp/topoly.c =================================================================== --- trunk/src_plugins/lib_polyhelp/topoly.c (revision 17328) +++ trunk/src_plugins/lib_polyhelp/topoly.c (revision 17329) @@ -316,11 +316,12 @@ const char pcb_acts_topoly[] = "ToPoly()\nToPoly(outline)\n"; const char pcb_acth_topoly[] = "convert a closed loop of lines and arcs into a polygon"; -int pcb_act_topoly(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_topoly(int argc, const char **argv) { void *r1, *r2, *r3; if (argc == 0) { + pcb_coord_t x, y; pcb_hid_get_coords("Click on a line or arc of the contour loop", &x, &y); if (pcb_search_screen(x, y, CONT_TYPE, &r1, &r2, &r3) == 0) { pcb_message(PCB_MSG_ERROR, "ToPoly(): failed to find a line or arc there\n"); Index: trunk/src_plugins/lib_polyhelp/topoly.h =================================================================== --- trunk/src_plugins/lib_polyhelp/topoly.h (revision 17328) +++ trunk/src_plugins/lib_polyhelp/topoly.h (revision 17329) @@ -45,6 +45,6 @@ extern const char pcb_acts_topoly[]; extern const char pcb_acth_topoly[]; -int pcb_act_topoly(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_act_topoly(int argc, const char **argv); #endif Index: trunk/src_plugins/millpath/millpath.c =================================================================== --- trunk/src_plugins/millpath/millpath.c (revision 17328) +++ trunk/src_plugins/millpath/millpath.c (revision 17329) @@ -45,7 +45,7 @@ static const char pcb_acts_mill[] = "mill()"; static const char pcb_acth_mill[] = "Calculate toolpath for milling away copper"; -int pcb_act_mill(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_mill(int argc, const char **argv) { ctx.edge_clearance = PCB_MM_TO_COORD(0.05); ctx.tools = &tools; Index: trunk/src_plugins/oldactions/oldactions.c =================================================================== --- trunk/src_plugins/oldactions/oldactions.c (revision 17328) +++ trunk/src_plugins/oldactions/oldactions.c (revision 17329) @@ -115,7 +115,7 @@ } -static int pcb_act_DumpLibrary(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_DumpLibrary(int argc, const char **argv) { dump_lib_any(0, &pcb_library); @@ -130,7 +130,7 @@ static const char pcb_acth_Bell[] = "Attempt to produce audible notification (e.g. beep the speaker)."; -static int pcb_act_Bell(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Bell(int argc, const char **argv) { pcb_gui->beep(); return 0; @@ -161,12 +161,14 @@ %end-doc */ -static int pcb_act_Debug(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Debug(int argc, const char **argv) { + pcb_coord_t x, y; int i; printf("Debug:"); for (i = 0; i < argc; i++) printf(" [%d] `%s'", i, argv[i]); + pcb_hid_get_coords("Click X,Y for Debug", &x, &y); pcb_printf(" x,y %$mD\n", x, y); return 0; } @@ -182,7 +184,7 @@ %end-doc */ -static int pcb_act_Return(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Return(int argc, const char **argv) { return atoi(argv[0]); } @@ -206,7 +208,7 @@ -int pcb_act_djopt_set_auto_only(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_djopt_set_auto_only(int argc, const char **argv) { conf_toggle(CFR_DESIGN, "plugins/djopt/auto_only"); return 0; @@ -232,7 +234,7 @@ %end-doc */ -int pcb_act_ToggleVendor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_ToggleVendor(int argc, const char **argv) { conf_toggle(CFR_DESIGN, "plugins/vendor/enable"); return 0; @@ -258,7 +260,7 @@ %end-doc */ -int pcb_act_EnableVendor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_EnableVendor(int argc, const char **argv) { conf_set(CFR_DESIGN, "plugins/vendor/enable", -1, "1", POL_OVERWRITE); return 0; @@ -282,13 +284,13 @@ %end-doc */ -int pcb_act_DisableVendor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_DisableVendor(int argc, const char **argv) { conf_set(CFR_DESIGN, "plugins/vendor/enable", -1, "0", POL_OVERWRITE); return 0; } -int pcb_act_ListRotations(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_ListRotations(int argc, const char **argv) { PCB_SUBC_LOOP(PCB->Data); { @@ -311,7 +313,7 @@ pcb_acth_Bell, pcb_acts_Bell}, {"Debug", 0, pcb_act_Debug, pcb_acth_debug, pcb_acts_debug}, - {"DebugXY", "Click X,Y for Debug", pcb_act_Debug, + {"DebugXY", 0, pcb_act_Debug, pcb_acth_debugxy, pcb_acts_debugxy}, {"Return", 0, pcb_act_Return, pcb_acth_return, pcb_acts_return}, Index: trunk/src_plugins/polycombine/polycombine.c =================================================================== --- trunk/src_plugins/polycombine/polycombine.c (revision 17328) +++ trunk/src_plugins/polycombine/polycombine.c (revision 17329) @@ -264,7 +264,7 @@ return accumulate; } -static int pcb_act_polycombine(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_polycombine(int argc, const char **argv) { pcb_polyarea_t *res; pcb_bool forward; Index: trunk/src_plugins/polystitch/polystitch.c =================================================================== --- trunk/src_plugins/polystitch/polystitch.c (revision 17328) +++ trunk/src_plugins/polystitch/polystitch.c (revision 17329) @@ -89,10 +89,12 @@ } -static int pcb_act_polystitch(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_polystitch(int argc, const char **argv) { + pcb_coord_t x, y; pcb_poly_t *inner_poly, *outer_poly; + pcb_hid_get_coords("Select a corner on the inner polygon", &x, &y); inner_poly = find_crosshair_poly(x, y); if (inner_poly) { @@ -120,7 +122,7 @@ } static pcb_hid_action_t polystitch_action_list[] = { - {"PolyStitch", "Select a corner on the inner polygon", pcb_act_polystitch, + {"PolyStitch", 0, pcb_act_polystitch, NULL, NULL} }; Index: trunk/src_plugins/propedit/propedit.c =================================================================== --- trunk/src_plugins/propedit/propedit.c (revision 17328) +++ trunk/src_plugins/propedit/propedit.c (revision 17329) @@ -41,7 +41,7 @@ static const char pcb_acts_propedit[] = "propedit()"; static const char pcb_acth_propedit[] = "Run the property editor"; -int pcb_act_propedit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_propedit(int argc, const char **argv) { pe_ctx_t ctx; htsp_entry_t *pe; @@ -120,7 +120,7 @@ static const char pcb_acts_propset[] = "propset(name, value)"; static const char pcb_acth_propset[] = "Change the named property of all selected objects to/by value"; -int pcb_act_propset(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_propset(int argc, const char **argv) { int res; /* Index: trunk/src_plugins/puller/puller.c =================================================================== --- trunk/src_plugins/puller/puller.c (revision 17328) +++ trunk/src_plugins/puller/puller.c (revision 17329) @@ -355,8 +355,9 @@ %end-doc */ -static int pcb_act_Puller(int argc, const char **argv, pcb_coord_t Ux, pcb_coord_t Uy) +static int pcb_act_Puller(int argc, const char **argv) { + pcb_coord_t Ux, Uy; double arc_angle, base_angle; #if TRACE1 double line_angle, rel_angle; @@ -364,6 +365,8 @@ double tangent; int new_delta_angle; + pcb_hid_get_coords("Click on a line-arc intersection or line segment", &Ux, &Uy); + if (!find_pair(pcb_crosshair.X, pcb_crosshair.Y)) if (!find_pair(Ux, Uy)) return 0; @@ -2073,7 +2076,7 @@ } #endif -static int pcb_act_GlobalPuller(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_GlobalPuller(int argc, const char **argv) { int select_flags = 0; unsigned int cflg; @@ -2189,7 +2192,7 @@ /*****************************************************************************/ pcb_hid_action_t puller_action_list[] = { - {"Puller", "Click on a line-arc intersection or line segment", pcb_act_Puller, + {"Puller", 0, pcb_act_Puller, pcb_acth_Puller, pcb_acts_Puller} , {"GlobalPuller", 0, pcb_act_GlobalPuller, Index: trunk/src_plugins/query/query_act.c =================================================================== --- trunk/src_plugins/query/query_act.c (revision 17328) +++ trunk/src_plugins/query/query_act.c (revision 17329) @@ -116,7 +116,7 @@ return pcb_qry_run(prg, cb, user_ctx); } -static int pcb_act_query(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_query(int argc, const char **argv) { const char *cmd = argc > 0 ? argv[0] : 0; select_t sel; Index: trunk/src_plugins/renumber/renumber.c =================================================================== --- trunk/src_plugins/renumber/renumber.c (revision 17328) +++ trunk/src_plugins/renumber/renumber.c (revision 17329) @@ -70,7 +70,7 @@ return s; } -static int pcb_act_Renumber(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Renumber(int argc, const char **argv) { pcb_bool changed = pcb_false; pcb_subc_t **subc_list; @@ -363,8 +363,8 @@ return 0; } -int pcb_act_RenumberBlock(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); -int pcb_act_RenumberBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); +int pcb_act_RenumberBlock(int argc, const char **argv); +int pcb_act_RenumberBuffer(int argc, const char **argv); static const char *renumber_cookie = "renumber plugin"; Index: trunk/src_plugins/renumber/renumberblock.c =================================================================== --- trunk/src_plugins/renumber/renumberblock.c (revision 17328) +++ trunk/src_plugins/renumber/renumberblock.c (revision 17329) @@ -33,7 +33,7 @@ #include "change.h" #include "conf_core.h" -int pcb_act_RenumberBlock(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_RenumberBlock(int argc, const char **argv) { char num_buf[15]; int old_base, new_base; @@ -78,7 +78,7 @@ return 0; } -int pcb_act_RenumberBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_RenumberBuffer(int argc, const char **argv) { char num_buf[15]; int old_base, new_base; Index: trunk/src_plugins/report/report.c =================================================================== --- trunk/src_plugins/report/report.c (revision 17328) +++ trunk/src_plugins/report/report.c (revision 17329) @@ -145,12 +145,14 @@ return grp->name; } -static int pcb_act_report_dialog(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_report_dialog(int argc, const char **argv) { void *ptr1, *ptr2, *ptr3; int type = REPORT_TYPES; char *report = NULL; pcb_subc_t *subc; + pcb_coord_t x, y; + pcb_hid_get_coords("Click on object to report on", &x, &y); if ((argv != NULL) && (argv[0] != NULL)) { if (pcb_strncasecmp(argv[0], "Subc", 4) == 0) @@ -788,19 +790,23 @@ %end-doc */ -static int pcb_act_report(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_report(int argc, const char **argv) { + pcb_coord_t x, y; if ((argc < 1) || (argc > 2)) AUSAGE(report); else if (pcb_strcasecmp(argv[0], "Object") == 0) { pcb_hid_get_coords("Click on an object", &x, &y); - return pcb_act_report_dialog(argc, argv, x, y); + return pcb_act_report_dialog(argc, argv); } else if (pcb_strncasecmp(argv[0], "Subc", 4) == 0) { pcb_hid_get_coords("Click on a subcircuit", &x, &y); - return pcb_act_report_dialog(argc, argv, x, y); + return pcb_act_report_dialog(argc, argv); } - else if (pcb_strcasecmp(argv[0], "DrillReport") == 0) + + pcb_hid_get_coords("Click on object to report on", &x, &y); + + if (pcb_strcasecmp(argv[0], "DrillReport") == 0) return report_drills(argc - 1, argv + 1, x, y); else if (pcb_strcasecmp(argv[0], "FoundPins") == 0) return report_found_pins(argc - 1, argv + 1, x, y); @@ -820,7 +826,7 @@ } pcb_hid_action_t report_action_list[] = { - {"ReportObject", "Click on an object", pcb_act_report_dialog, + {"ReportObject", 0, pcb_act_report_dialog, pcb_acth_reportdialog, pcb_acts_reportdialog} , {"Report", 0, pcb_act_report, Index: trunk/src_plugins/shand_cmd/command.c =================================================================== --- trunk/src_plugins/shand_cmd/command.c (revision 17328) +++ trunk/src_plugins/shand_cmd/command.c (revision 17329) @@ -78,7 +78,7 @@ %end-doc */ -static int pcb_act_Help(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Help(int argc, const char **argv) { pcb_message(PCB_MSG_INFO, "following commands are supported:\n" " pcb_act_() execute an action command (too numerous to list)\n" @@ -112,7 +112,7 @@ %end-doc */ -static int pcb_act_LoadLayout(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadLayout(int argc, const char **argv) { const char *filename, *format = NULL; @@ -148,7 +148,7 @@ %end-doc */ -static int pcb_act_LoadElementToBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadElementToBuffer(int argc, const char **argv) { const char *filename; @@ -182,7 +182,7 @@ %end-doc */ -static int pcb_act_LoadLayoutToBuffer(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadLayoutToBuffer(int argc, const char **argv) { const char *filename, *format = NULL; @@ -217,7 +217,7 @@ %end-doc */ -static int pcb_act_Quit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_Quit(int argc, const char **argv) { if (!PCB->Changed || pcb_gui->close_confirm_dialog() == HID_CLOSE_CONFIRM_OK) pcb_quit_app(); @@ -237,7 +237,7 @@ %end-doc */ -static int pcb_act_ReallyQuit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_ReallyQuit(int argc, const char **argv) { pcb_quit_app(); return 0; @@ -263,7 +263,7 @@ %end-doc */ -static int pcb_act_LoadNetlist(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_LoadNetlist(int argc, const char **argv) { const char *filename; @@ -309,7 +309,7 @@ %end-doc */ -static int pcb_act_SaveLayout(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SaveLayout(int argc, const char **argv) { switch (argc) { case 0: @@ -353,10 +353,10 @@ %end-doc */ -static int pcb_act_SaveLayoutAndQuit(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_SaveLayoutAndQuit(int argc, const char **argv) { - if (!pcb_act_SaveLayout(argc, argv, x, y)) - return pcb_act_Quit(0, 0, 0, 0); + if (!pcb_act_SaveLayout(argc, argv)) + return pcb_act_Quit(0, 0); return 1; } Index: trunk/src_plugins/shape/shape.c =================================================================== --- trunk/src_plugins/shape/shape.c (revision 17328) +++ trunk/src_plugins/shape/shape.c (revision 17329) @@ -315,10 +315,10 @@ static const char pcb_acts_regpoly[] = "regpoly([where,] corners, radius [,rotation])"; static const char pcb_acth_regpoly[] = "Generate regular polygon. Where is x;y and radius is either r or rx;ry. Rotation is in degrees."; -int pcb_act_regpoly(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_regpoly(int argc, const char **argv) { double rot = 0; - pcb_coord_t rx, ry = 0; + pcb_coord_t x, y, rx, ry = 0; pcb_bool succ, have_coords = pcb_false; int corners = 0, a; pcb_data_t *data; @@ -372,12 +372,12 @@ static const char pcb_acts_roundrect[] = "roundrect([where,] width[;height] [,rx[;ry] [,rotation]])"; static const char pcb_acth_roundrect[] = "Generate a rectangle with round corners"; -int pcb_act_roundrect(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_roundrect(int argc, const char **argv) { int a; pcb_data_t *data; pcb_bool succ, have_coords = pcb_false; - pcb_coord_t w, h, rx, ry; + pcb_coord_t x, y, w, h, rx, ry; double rot = 0.0; char *end; @@ -433,12 +433,12 @@ static const char pcb_acts_circle[] = "circle([where,] diameter)"; static const char pcb_acth_circle[] = "Generate a filled circle (zero length round cap line)"; -int pcb_act_circle(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_circle(int argc, const char **argv) { int a; pcb_data_t *data; pcb_bool succ, have_coords = pcb_false; - pcb_coord_t dia; + pcb_coord_t x, y, dia; if (argc < 1) { pcb_message(PCB_MSG_ERROR, "circle() needs at least one parameters (diameter)\n"); Index: trunk/src_plugins/shape/shape_dialog.c =================================================================== --- trunk/src_plugins/shape/shape_dialog.c (revision 17328) +++ trunk/src_plugins/shape/shape_dialog.c (revision 17329) @@ -354,7 +354,7 @@ static const char pcb_acts_shape[] = "shape()"; static const char pcb_acth_shape[] = "Interactive shape generator."; -int pcb_act_shape(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_shape(int argc, const char **argv) { pcb_shape_dialog(PCB, PCB_PASTEBUFFER->Data, pcb_shape_current_layer, pcb_false); return 0; Index: trunk/src_plugins/sketch_route/sketch_route.c =================================================================== --- trunk/src_plugins/sketch_route/sketch_route.c (revision 17328) +++ trunk/src_plugins/sketch_route/sketch_route.c (revision 17329) @@ -35,7 +35,7 @@ static const char pcb_acts_skroute[] = "skroute(TODO)"; static const char pcb_acth_skroute[] = "TODO"; -int pcb_act_skroute(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_skroute(int argc, const char **argv) { return 0; } Index: trunk/src_plugins/smartdisperse/smartdisperse.c =================================================================== --- trunk/src_plugins/smartdisperse/smartdisperse.c (revision 17328) +++ trunk/src_plugins/smartdisperse/smartdisperse.c (revision 17329) @@ -117,7 +117,7 @@ #define set_visited(obj) htpi_set(&visited, ((void *)(obj)), 1) #define is_visited(obj) htpi_has(&visited, ((void *)(obj))) -static int pcb_act_smartdisperse(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_smartdisperse(int argc, const char **argv) { const char *function = ARG(0); pcb_netlist_t *Nets; Index: trunk/src_plugins/stroke/stroke.c =================================================================== --- trunk/src_plugins/stroke/stroke.c (revision 17328) +++ trunk/src_plugins/stroke/stroke.c (revision 17329) @@ -99,7 +99,7 @@ static const char pcb_acts_stroke[] = "stroke(gesture, seq)"; static const char pcb_acth_stroke[] = "Various gesture recognition related functions"; -static int pcb_act_stroke(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_stroke(int argc, const char **argv) { if (argc < 1) PCB_ACT_FAIL(stroke); Index: trunk/src_plugins/teardrops/teardrops.c =================================================================== --- trunk/src_plugins/teardrops/teardrops.c (revision 17328) +++ trunk/src_plugins/teardrops/teardrops.c (revision 17329) @@ -248,7 +248,7 @@ } } -static int pcb_act_teardrops(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +static int pcb_act_teardrops(int argc, const char **argv) { pcb_box_t *b; pcb_rtree_it_t it; Index: trunk/src_plugins/vendordrill/vendor.c =================================================================== --- trunk/src_plugins/vendordrill/vendor.c (revision 17328) +++ trunk/src_plugins/vendordrill/vendor.c (revision 17329) @@ -121,7 +121,7 @@ sizes for your vendor. %end-doc */ -int pcb_act_ApplyVendor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_ApplyVendor(int argc, const char **argv) { pcb_event(PCB_EVENT_BUSY, NULL); apply_vendor_map(); @@ -142,7 +142,7 @@ %end-doc */ -int pcb_act_UnloadVendor(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_UnloadVendor(int argc, const char **argv) { cached_drill = -1; @@ -170,7 +170,7 @@ %end-doc */ -int pcb_act_LoadVendorFrom(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y) +int pcb_act_LoadVendorFrom(int argc, const char **argv) { const char *fname = NULL; static char *default_file = NULL;