Index: trunk/scconfig/Rev.h =================================================================== --- trunk/scconfig/Rev.h (revision 12191) +++ trunk/scconfig/Rev.h (revision 12192) @@ -1 +1 @@ -static const int myrev = 12108; +static const int myrev = 12192; Index: trunk/scconfig/Rev.tab =================================================================== --- trunk/scconfig/Rev.tab (revision 12191) +++ trunk/scconfig/Rev.tab (revision 12192) @@ -1,5 +1,5 @@ +12192 configure new source files for padstacks 12108 configure tool code splitup -12106 configure new source files for padstacks 11724 configure new default pcb 11611 configure enforce safe_fs 11529 configure gsch2pcb-rnd uses safe_fs Index: trunk/src/Makefile.dep =================================================================== --- trunk/src/Makefile.dep (revision 12191) +++ trunk/src/Makefile.dep (revision 12192) @@ -2370,7 +2370,8 @@ flag_str.h compat_misc.h macro.h error.h misc_util.h layer.h \ ../src_plugins/io_lihata/common.h polygon.h conf_core.h obj_all.h \ obj_subc.h pcb_minuid.h ../src_plugins/io_lihata/io_lihata.h conf.h \ - ../src_plugins/io_lihata/lht_conf.h safe_fs.h + ../src_plugins/io_lihata/lht_conf.h safe_fs.h plug_footprint.h \ + vtlibrary.h ../src_plugins/io_lihata/write.o: ../src_plugins/io_lihata/write.c \ ../src_3rd/liblihata/tree.h ../src_3rd/liblihata/dom.h \ ../src_3rd/liblihata/lihata.h ../src_3rd/liblihata/parser.h \ @@ -5060,7 +5061,7 @@ ../src_3rd/libuundo/uundo.h undo_old.h stub_stroke.h funchash_core.h \ funchash.h funchash_core_list.h hid_actions.h compat_misc.h compat_nls.h \ event.h obj_pinvia_draw.h obj_pad_draw.h obj_line_draw.h obj_arc_draw.h \ - obj_elem_draw.h obj_text_draw.h obj_rat_draw.h obj_poly_draw.h \ + obj_elem_draw.h obj_text_draw.h obj_rat_draw.h obj_poly_draw.h tool.h \ tool_arc.h tool_arrow.h tool_buffer.h tool_copy.h tool_insert.h \ tool_line.h tool_lock.h tool_move.h tool_poly.h tool_polyhole.h \ tool_rectangle.h tool_remove.h tool_rotate.h tool_text.h tool_thermal.h \ @@ -5319,7 +5320,8 @@ library.h rats_patch.h data.h crosshair.h vtonpoint.h hid.h error.h \ drc.h route.h buffer.h obj_subc_list.h obj_subc.h \ ../src_3rd/libminuid/libminuid.h ../src_3rd/genht/htsp.h rtree.h \ - ht_subc.h vtpadstack.h obj_padstack.h list_common.h obj_all.h layer_it.h \ + ht_subc.h vtpadstack.h obj_padstack.h data_list.h \ + ../src_3rd/genvector/vtp0.h list_common.h obj_all.h layer_it.h \ operation.h draw.o: draw.c ../config.h conf_core.h conf.h global_typedefs.h \ pcb_bool.h unit.h pcb-printf.h ../src_3rd/genvector/gds_char.h \ @@ -6123,7 +6125,28 @@ data_parent.h ../src_3rd/genlist/gentdlist_impl.h \ ../src_3rd/genlist/gendlist.h ../src_3rd/genlist/gentdlist_undef.h \ ../src_3rd/genlist/gentdlist_impl.c -obj_padstack.o: obj_padstack.c ../config.h obj_padstack.h \ +obj_padstack.o: obj_padstack.c ../config.h board.h const.h macro.h \ + global_typedefs.h pcb_bool.h unit.h vtroutestyle.h attrib.h \ + ../src_3rd/genvector/genvector_impl.h \ + ../src_3rd/genvector/genvector_undef.h layer.h globalconst.h \ + obj_all_list.h obj_arc_list.h obj_common.h ../src_3rd/genht/hash.h \ + ../src_3rd/genlist/gendlist.h flag.h data_parent.h obj_arc.h \ + ../src_3rd/genlist/gentdlist_impl.h ../src_3rd/genlist/gendlist.h \ + ../src_3rd/genlist/gentdlist_undef.h obj_elem_list.h obj_elem.h \ + obj_line_list.h obj_line.h obj_pad_list.h obj_pad.h obj_pinvia_list.h \ + obj_pinvia.h obj_text.h font.h ../src_3rd/genht/htip.h \ + ../src_3rd/genht/ht.h obj_poly.h polyarea.h obj_poly_list.h box.h \ + math_helper.h move.h misc_util.h ht_element.h ../src_3rd/genht/ht.h \ + obj_padstack_list.h obj_text_list.h obj_rat_list.h obj_rat.h layer_grp.h \ + library.h rats_patch.h buffer.h conf_core.h conf.h pcb-printf.h \ + ../src_3rd/genvector/gds_char.h ../src_3rd/liblihata/lihata.h \ + ../src_3rd/liblihata/dom.h ../src_3rd/liblihata/lihata.h \ + ../src_3rd/liblihata/parser.h ../src_3rd/genht/htsp.h \ + ../src_3rd/genvector/vtp0.h list_conf.h data.h crosshair.h vtonpoint.h \ + hid.h error.h drc.h route.h obj_subc_list.h obj_subc.h \ + ../src_3rd/libminuid/libminuid.h rtree.h ht_subc.h vtpadstack.h \ + obj_padstack.h data_list.h +obj_padstack_act.o: obj_padstack_act.c ../config.h obj_padstack.h \ obj_padstack_list.h obj_common.h ../src_3rd/genht/hash.h \ ../src_3rd/genlist/gendlist.h flag.h globalconst.h attrib.h \ global_typedefs.h pcb_bool.h unit.h data_parent.h \ @@ -6134,7 +6157,10 @@ obj_text.h font.h ../src_3rd/genht/htip.h ../src_3rd/genht/ht.h \ obj_poly.h polyarea.h obj_poly_list.h box.h math_helper.h macro.h move.h \ misc_util.h ht_element.h ../src_3rd/genht/ht.h obj_text_list.h \ - obj_rat_list.h obj_rat.h + obj_rat_list.h obj_rat.h action_helper.h board.h const.h vtroutestyle.h \ + ../src_3rd/genvector/genvector_impl.h \ + ../src_3rd/genvector/genvector_undef.h layer_grp.h library.h \ + rats_patch.h hid_actions.h hid.h error.h drc.h obj_padstack_list.o: obj_padstack_list.c obj_padstack_list.h obj_common.h \ ../src_3rd/genht/hash.h ../src_3rd/genlist/gendlist.h flag.h \ globalconst.h ../config.h attrib.h global_typedefs.h pcb_bool.h unit.h \ Index: trunk/src/Makefile.in =================================================================== --- trunk/src/Makefile.in (revision 12191) +++ trunk/src/Makefile.in (revision 12192) @@ -97,6 +97,7 @@ obj_line_list.o obj_pad.o obj_padstack.o + obj_padstack_act.o obj_padstack_list.o obj_pad_list.o obj_pinvia.o @@ -214,8 +215,8 @@ # main: action registrations put /local/pcb/ACTION_REG_SRC { action_act.c buffer.c change_act.c conf_act.c file_act.c find_act.c - gui_act.c main_act.c netlist_act.c font_act.c - object_act.c plugins.c polygon_act.c plug_footprint_act.c rats_act.c + gui_act.c main_act.c netlist_act.c font_act.c object_act.c + obj_padstack_act.c plugins.c polygon_act.c plug_footprint_act.c rats_act.c rats_patch.c remove_act.c select_act.c undo_act.c } Index: trunk/src/obj_padstack_act.c =================================================================== --- trunk/src/obj_padstack_act.c (nonexistent) +++ trunk/src/obj_padstack_act.c (revision 12192) @@ -0,0 +1,56 @@ +/* + * COPYRIGHT + * + * pcb-rnd, interactive printed circuit board design + * Copyright (C) 2017 Tibor 'Igor2' Palinkas + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "config.h" + +#include "obj_padstack.h" + +#include "action_helper.h" +#include "board.h" +#include "hid_actions.h" + +static const char pcb_acts_padstackconvert[] = "PadstackConvert(buffer|selected)"; +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) +{ + pcb_cardinal_t pid; + + if (argv[0] == NULL) + PCB_ACT_FAIL(padstackconvert); + if (strcmp(argv[0], "selected") == 0) + pid = pcb_padstack_conv_selection(PCB, 0); + else if (strcmp(argv[0], "buffer") == 0) + pid = pcb_padstack_conv_buffer(0); + else + PCB_ACT_FAIL(padstackconvert); + return 0; +} + +/* --------------------------------------------------------------------------- */ + +pcb_hid_action_t padstack_action_list[] = { + {"PadstackConvert", 0, pcb_act_padstackconvert, + pcb_acth_padstackconvert, pcb_acts_padstackconvert} +}; + +PCB_REGISTER_ACTIONS(padstack_action_list, NULL)