KiCad PCB EDA Suite
pcb_actions.cpp
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2013-2016 CERN
5  * Copyright (C) 2016-2019 KiCad Developers, see AUTHORS.txt for contributors.
6  * @author Maciej Suminski <maciej.suminski@cern.ch>
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21  * or you may search the http://www.gnu.org website for the version 2 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25 
26 #include "pcb_actions.h"
27 #include <pcbnew_id.h>
28 #include <bitmaps.h>
30 #include <tool/tool_manager.h>
31 #include <router/pns_router.h>
32 
34 {
35  switch( aId )
36  {
39  }
40 
41  return OPT<TOOL_EVENT>();
42 }
43 
44 
45 // Actions, being statically-defined, require specialized I18N handling. We continue to
46 // use the _() macro so that string harvesting by the I18N framework doesn't have to be
47 // specialized, but we don't translate on initialization and instead do it in the getters.
48 
49 #undef _
50 #define _(s) s
51 
52 
53 // DRAWING_TOOL
54 //
55 TOOL_ACTION PCB_ACTIONS::drawLine( "pcbnew.InteractiveDrawing.line",
56  AS_GLOBAL,
57  MD_SHIFT + MD_CTRL + 'L', LEGACY_HK_NAME( "Draw Line" ),
58  _( "Draw Line" ), _( "Draw a line" ),
59  add_graphical_segments_xpm, AF_ACTIVATE );
60 
61 TOOL_ACTION PCB_ACTIONS::drawPolygon( "pcbnew.InteractiveDrawing.graphicPolygon",
62  AS_GLOBAL,
63  MD_SHIFT + MD_CTRL + 'P', LEGACY_HK_NAME( "Draw Graphic Polygon" ),
64  _( "Draw Graphic Polygon" ), _( "Draw a graphic polygon" ),
65  add_graphical_polygon_xpm, AF_ACTIVATE, (void*) ZONE_MODE::GRAPHIC_POLYGON );
66 
67 TOOL_ACTION PCB_ACTIONS::drawCircle( "pcbnew.InteractiveDrawing.circle",
68  AS_GLOBAL,
69  MD_SHIFT + MD_CTRL + 'C', LEGACY_HK_NAME( "Draw Circle" ),
70  _( "Draw Circle" ), _( "Draw a circle" ),
71  add_circle_xpm, AF_ACTIVATE );
72 
73 TOOL_ACTION PCB_ACTIONS::drawArc( "pcbnew.InteractiveDrawing.arc",
74  AS_GLOBAL,
75  MD_SHIFT + MD_CTRL + 'A', LEGACY_HK_NAME( "Draw Arc" ),
76  _( "Draw Arc" ), _( "Draw an arc" ),
77  add_arc_xpm, AF_ACTIVATE );
78 
79 TOOL_ACTION PCB_ACTIONS::placeText( "pcbnew.InteractiveDrawing.text",
80  AS_GLOBAL,
81  MD_SHIFT + MD_CTRL + 'T', LEGACY_HK_NAME( "Add Text" ),
82  _( "Add Text" ), _( "Add a text item" ),
84 
85 TOOL_ACTION PCB_ACTIONS::drawDimension( "pcbnew.InteractiveDrawing.dimension",
86  AS_GLOBAL,
87  MD_SHIFT + MD_CTRL + 'H', LEGACY_HK_NAME( "Add Dimension" ),
88  _( "Add Dimension" ), _( "Add a dimension" ),
89  add_dimension_xpm, AF_ACTIVATE );
90 
91 TOOL_ACTION PCB_ACTIONS::drawZone( "pcbnew.InteractiveDrawing.zone",
92  AS_GLOBAL,
93 #ifdef __WXOSX_MAC__
94  MD_ALT + 'Z',
95 #else
96  MD_SHIFT + MD_CTRL + 'Z',
97 #endif
98  LEGACY_HK_NAME( "Add Filled Zone" ),
99  _( "Add Filled Zone" ), _( "Add a filled zone" ),
100  add_zone_xpm, AF_ACTIVATE, (void*) ZONE_MODE::ADD );
101 
102 TOOL_ACTION PCB_ACTIONS::drawVia( "pcbnew.InteractiveDrawing.via",
103  AS_GLOBAL,
104  MD_SHIFT + MD_CTRL + 'V', LEGACY_HK_NAME( "Add Vias" ),
105  _( "Add Vias" ), _( "Add free-standing vias" ),
106  add_via_xpm, AF_ACTIVATE );
107 
108 TOOL_ACTION PCB_ACTIONS::drawZoneKeepout( "pcbnew.InteractiveDrawing.keepout",
109  AS_GLOBAL,
110  MD_SHIFT + MD_CTRL + 'K', LEGACY_HK_NAME( "Add Keepout Area" ),
111  _( "Add Keepout Area" ), _( "Add a keepout area" ),
112  add_keepout_area_xpm, AF_ACTIVATE, (void*) ZONE_MODE::ADD );
113 
114 TOOL_ACTION PCB_ACTIONS::drawZoneCutout( "pcbnew.InteractiveDrawing.zoneCutout",
115  AS_GLOBAL,
116  MD_SHIFT + 'C', LEGACY_HK_NAME( "Add a Zone Cutout" ),
117  _( "Add a Zone Cutout" ), _( "Add a cutout area of an existing zone" ),
118  add_zone_cutout_xpm, AF_ACTIVATE, (void*) ZONE_MODE::CUTOUT );
119 
120 TOOL_ACTION PCB_ACTIONS::drawSimilarZone( "pcbnew.InteractiveDrawing.similarZone",
121  AS_GLOBAL,
122  MD_SHIFT + MD_CTRL + '.', LEGACY_HK_NAME( "Add a Similar Zone" ),
123  _( "Add a Similar Zone" ), _( "Add a zone with the same settings as an existing zone" ),
124  add_zone_xpm, AF_ACTIVATE, (void*) ZONE_MODE::SIMILAR );
125 
126 TOOL_ACTION PCB_ACTIONS::placeImportedGraphics( "pcbnew.InteractiveDrawing.placeImportedGraphics",
127  AS_GLOBAL,
128  MD_SHIFT + MD_CTRL + 'F', LEGACY_HK_NAME( "Place DXF" ),
129  _( "Place Imported Graphics" ), "",
130  import_vector_xpm, AF_ACTIVATE );
131 
132 TOOL_ACTION PCB_ACTIONS::setAnchor( "pcbnew.InteractiveDrawing.setAnchor",
133  AS_GLOBAL,
134  MD_SHIFT + MD_CTRL + 'N', LEGACY_HK_NAME( "Place the Footprint Anchor" ),
135  _( "Place the Footprint Anchor" ), "",
136  anchor_xpm, AF_ACTIVATE );
137 
138 TOOL_ACTION PCB_ACTIONS::incWidth( "pcbnew.InteractiveDrawing.incWidth",
139  AS_CONTEXT,
140  MD_CTRL + '+', LEGACY_HK_NAME( "Increase Line Width" ),
141  _( "Increase Line Width" ), _( "Increase the line width" ) );
142 
143 TOOL_ACTION PCB_ACTIONS::decWidth( "pcbnew.InteractiveDrawing.decWidth",
144  AS_CONTEXT,
145  MD_CTRL + '-', LEGACY_HK_NAME( "Decrease Line Width" ),
146  _( "Decrease Line Width" ), _( "Decrease the line width" ) );
147 
148 TOOL_ACTION PCB_ACTIONS::arcPosture( "pcbnew.InteractiveDrawing.arcPosture",
149  AS_CONTEXT,
150  '/', LEGACY_HK_NAME( "Switch Track Posture" ),
151  _( "Switch Arc Posture" ), _( "Switch the arc posture" ) );
152 
153 TOOL_ACTION PCB_ACTIONS::deleteLastPoint( "pcbnew.InteractiveDrawing.deleteLastPoint",
154  AS_CONTEXT,
155  WXK_BACK, "",
156  _( "Delete Last Point" ), _( "Delete the last point added to the current item" ),
157  undo_xpm );
158 
159 TOOL_ACTION PCB_ACTIONS::closeZoneOutline( "pcbnew.InteractiveDrawing.closeZoneOutline",
160  AS_CONTEXT, 0, "",
161  _( "Close Zone Outline" ), _( "Close the outline of a zone in progress" ),
162  checked_ok_xpm );
163 
164 
165 // DRC
166 //
167 TOOL_ACTION PCB_ACTIONS::runDRC( "pcbnew.DRCTool.runDRC",
168  AS_GLOBAL, 0, "",
169  _( "Design Rules Checker" ), _( "Show the design rules checker window" ),
170  erc_xpm );
171 
172 
173 // EDIT_TOOL
174 //
175 TOOL_ACTION PCB_ACTIONS::editFootprintInFpEditor( "pcbnew.InteractiveEdit.EditFpInFpEditor",
176  AS_GLOBAL,
177  MD_CTRL + 'E', LEGACY_HK_NAME( "Edit with Footprint Editor" ),
178  _( "Open in Footprint Editor" ),
179  _( "Opens the selected footprint in the Footprint Editor" ),
180  module_editor_xpm );
181 
182 TOOL_ACTION PCB_ACTIONS::getAndPlace( "pcbnew.InteractiveEdit.FindMove",
183  AS_GLOBAL,
184  'T', LEGACY_HK_NAME( "Get and Move Footprint" ),
185  _( "Get and Move Footprint" ),
186  _( "Selects a footprint by reference and places it under the cursor for moving"),
187  move_xpm );
188 
189 TOOL_ACTION PCB_ACTIONS::move( "pcbnew.InteractiveMove.move",
190  AS_GLOBAL,
191  'M', LEGACY_HK_NAME( "Move Item" ),
192  _( "Move" ), _( "Moves the selected item(s)" ),
193  move_xpm, AF_ACTIVATE );
194 
195 TOOL_ACTION PCB_ACTIONS::drag( "pcbnew.InteractiveMove.drag",
196  AS_GLOBAL, 0, "", "", "",
197  move_xpm, AF_ACTIVATE );
198 
199 TOOL_ACTION PCB_ACTIONS::duplicateIncrement( "pcbnew.InteractiveEdit.duplicateIncrementPads",
200  AS_GLOBAL,
201  MD_SHIFT + MD_CTRL + 'D', LEGACY_HK_NAME( "Duplicate Item and Increment" ),
202  _( "Duplicate and Increment" ), _( "Duplicates the selected item(s), incrementing pad numbers" ),
203  duplicate_xpm );
204 
205 TOOL_ACTION PCB_ACTIONS::moveExact( "pcbnew.InteractiveEdit.moveExact",
206  AS_GLOBAL,
207  MD_CTRL + 'M', LEGACY_HK_NAME( "Move Item Exactly" ),
208  _( "Move Exactly..." ), _( "Moves the selected item(s) by an exact amount" ),
209  move_exactly_xpm );
210 
211 TOOL_ACTION PCB_ACTIONS::createArray( "pcbnew.InteractiveEdit.createArray",
212  AS_GLOBAL,
213  MD_CTRL + 'T', LEGACY_HK_NAME( "Create Array" ),
214  _( "Create Array..." ), _( "Create array" ),
215  array_xpm, AF_ACTIVATE );
216 
217 TOOL_ACTION PCB_ACTIONS::rotateCw( "pcbnew.InteractiveEdit.rotateCw",
218  AS_GLOBAL,
219  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
220  MD_SHIFT + 'R', LEGACY_HK_NAME( "Rotate Item Clockwise (Modern Toolset only)" ),
221  _( "Rotate Clockwise" ), _( "Rotates selected item(s) clockwise" ),
222  rotate_cw_xpm, AF_NONE, (void*) -1 );
223 
224 TOOL_ACTION PCB_ACTIONS::rotateCcw( "pcbnew.InteractiveEdit.rotateCcw",
225  AS_GLOBAL,
226  'R', LEGACY_HK_NAME( "Rotate Item" ),
227  _( "Rotate Counterclockwise" ), _( "Rotates selected item(s) counterclockwise" ),
228  rotate_ccw_xpm, AF_NONE, (void*) 1 );
229 
230 TOOL_ACTION PCB_ACTIONS::flip( "pcbnew.InteractiveEdit.flip",
231  AS_GLOBAL,
232  'F', LEGACY_HK_NAME( "Flip Item" ),
233  _( "Flip" ), _( "Flips selected item(s) to opposite side of board" ),
234  swap_layer_xpm );
235 
236 TOOL_ACTION PCB_ACTIONS::mirror( "pcbnew.InteractiveEdit.mirror",
237  AS_GLOBAL, 0, "",
238  _( "Mirror" ), _( "Mirrors selected item" ),
239  mirror_h_xpm );
240 
241 TOOL_ACTION PCB_ACTIONS::changeTrackWidth( "pcbnew.InteractiveEdit.changeTrackWidth",
242  AS_GLOBAL, 0, "",
243  _( "Change Track Width" ), _( "Updates selected track & via sizes" ) );
244 
245 TOOL_ACTION PCB_ACTIONS::deleteFull( "pcbnew.InteractiveEdit.deleteFull",
246  AS_GLOBAL,
247  WXK_DELETE, LEGACY_HK_NAME( "Delete Full Track" ),
248  _( "Delete Full Track" ), _( "Deletes selected item(s) and copper connections" ),
249  delete_xpm, AF_NONE, (void*) REMOVE_FLAGS::ALT );
250 
251 TOOL_ACTION PCB_ACTIONS::properties( "pcbnew.InteractiveEdit.properties",
252  AS_GLOBAL,
253  'E', LEGACY_HK_NAME( "Edit Item" ),
254  _( "Properties..." ), _( "Displays item properties dialog" ),
255  config_xpm );
256 
257 TOOL_ACTION PCB_ACTIONS::updateUnits( "pcbnew.InteractiveEdit.updateUnits",
258  AS_GLOBAL );
259 
260 
261 // FOOTPRINT_EDITOR_TOOLS
262 //
263 TOOL_ACTION PCB_ACTIONS::toggleFootprintTree( "pcbnew.ModuleEditor.toggleFootprintTree",
264  AS_GLOBAL, 0, "",
265  _( "Show Footprint Tree" ), _( "Toggles the footprint tree visibility" ),
266  search_tree_xpm );
267 
268 TOOL_ACTION PCB_ACTIONS::newFootprint( "pcbnew.ModuleEditor.newFootprint",
269  AS_GLOBAL,
270  MD_CTRL + 'N', LEGACY_HK_NAME( "New" ),
271  _( "New Footprint..." ), _( "Create a new, empty footprint" ),
272  new_footprint_xpm );
273 
274 TOOL_ACTION PCB_ACTIONS::createFootprint( "pcbnew.ModuleEditor.createFootprint",
275  AS_GLOBAL, 0, "",
276  _( "Create Footprint..." ), _( "Create a new footprint using the Footprint Wizard" ),
277  module_wizard_xpm );
278 
279 TOOL_ACTION PCB_ACTIONS::saveToBoard( "pcbnew.ModuleEditor.saveToBoard",
280  AS_GLOBAL, 0, "",
281  _( "Save to Board" ), _( "Update footprint on board" ),
282  save_fp_to_board_xpm );
283 
284 TOOL_ACTION PCB_ACTIONS::saveToLibrary( "pcbnew.ModuleEditor.saveToLibrary",
285  AS_GLOBAL, 0, "",
286  _( "Save to Library" ), _( "Save changes to library" ),
287  save_xpm );
288 
289 TOOL_ACTION PCB_ACTIONS::editFootprint( "pcbnew.ModuleEditor.editFootprint",
290  AS_GLOBAL, 0, "",
291  _( "Edit Footprint" ), _( "Show selected footprint on editor canvas" ),
292  edit_xpm );
293 
294 TOOL_ACTION PCB_ACTIONS::deleteFootprint( "pcbnew.ModuleEditor.deleteFootprint",
295  AS_GLOBAL, 0, "",
296  _( "Delete Footprint from Library" ), "",
297  delete_xpm );
298 
299 TOOL_ACTION PCB_ACTIONS::cutFootprint( "pcbnew.ModuleEditor.cutFootprint",
300  AS_GLOBAL, 0, "",
301  _( "Cut Footprint" ), "",
302  cut_xpm );
303 
304 TOOL_ACTION PCB_ACTIONS::copyFootprint( "pcbnew.ModuleEditor.copyFootprint",
305  AS_GLOBAL, 0, "",
306  _( "Copy Footprint" ), "",
307  copy_xpm );
308 
309 TOOL_ACTION PCB_ACTIONS::pasteFootprint( "pcbnew.ModuleEditor.pasteFootprint",
310  AS_GLOBAL, 0, "",
311  _( "Paste Footprint" ), "",
312  paste_xpm );
313 
314 TOOL_ACTION PCB_ACTIONS::importFootprint( "pcbnew.ModuleEditor.importFootprint",
315  AS_GLOBAL, 0, "",
316  _( "Import Footprint..." ), "",
317  import_module_xpm );
318 
319 TOOL_ACTION PCB_ACTIONS::exportFootprint( "pcbnew.ModuleEditor.exportFootprint",
320  AS_GLOBAL, 0, "",
321  _( "Export Footprint..." ), "",
322  export_module_xpm );
323 
324 TOOL_ACTION PCB_ACTIONS::footprintProperties( "pcbnew.ModuleEditor.footprintProperties",
325  AS_GLOBAL, 0, "",
326  _( "Footprint Properties..." ), "",
327  module_options_xpm );
328 
329 TOOL_ACTION PCB_ACTIONS::placePad( "pcbnew.ModuleEditor.placePad",
330  AS_GLOBAL, 0, "",
331  _( "Add Pad" ), _( "Add a pad" ),
332  pad_xpm, AF_ACTIVATE );
333 
334 TOOL_ACTION PCB_ACTIONS::createPadFromShapes( "pcbnew.ModuleEditor.createPadFromShapes",
335  AS_CONTEXT, 0, "",
336  _( "Create Pad from Selected Shapes" ),
337  _( "Creates a custom-shaped pads from a set of selected shapes" ),
338  primitives_to_custom_pad_xpm );
339 
340 TOOL_ACTION PCB_ACTIONS::explodePadToShapes( "pcbnew.ModuleEditor.explodePadToShapes",
341  AS_CONTEXT, 0, "",
342  _( "Explode Pad to Graphic Shapes" ),
343  _( "Converts a custom-shaped pads to a set of graphical shapes" ),
344  custom_pad_to_primitives_xpm );
345 
346 TOOL_ACTION PCB_ACTIONS::defaultPadProperties( "pcbnew.ModuleEditor.defaultPadProperties",
347  AS_GLOBAL, 0, "",
348  _( "Default Pad Properties..." ), _( "Edit the pad properties used when creating new pads" ),
349  options_pad_xpm );
350 
351 
352 // GLOBAL_EDIT_TOOL
353 //
354 TOOL_ACTION PCB_ACTIONS::updateFootprint( "pcbnew.GlobalEdit.updateFootprint",
355  AS_GLOBAL, 0, "",
356  _( "Update Footprint..." ),
357  _( "Update footprint to include any changes from the library" ),
358  reload_xpm );
359 
360 TOOL_ACTION PCB_ACTIONS::updateFootprints( "pcbnew.GlobalEdit.updateFootprints",
361  AS_GLOBAL, 0, "",
362  _( "Update Footprints from Library..." ),
363  _( "Update footprints to include any changes from the library" ),
364  reload_xpm );
365 
366 TOOL_ACTION PCB_ACTIONS::changeFootprint( "pcbnew.GlobalEdit.changeFootprint",
367  AS_GLOBAL, 0, "",
368  _( "Change Footprint..." ), _( "Assign a different footprint from the library" ),
369  exchange_xpm );
370 
371 TOOL_ACTION PCB_ACTIONS::changeFootprints( "pcbnew.GlobalEdit.changeFootprints",
372  AS_GLOBAL, 0, "",
373  _( "Change Footprints..." ), _( "Assign different footprints from the library" ),
374  exchange_xpm );
375 
376 TOOL_ACTION PCB_ACTIONS::swapLayers( "pcbnew.GlobalEdit.swapLayers",
377  AS_GLOBAL, 0, "",
378  _( "Swap Layers..." ), _( "Move tracks or drawings from one layer to another" ),
379  swap_layer_xpm );
380 
381 TOOL_ACTION PCB_ACTIONS::editTracksAndVias( "pcbnew.GlobalEdit.editTracksAndVias",
382  AS_GLOBAL, 0, "",
383  _( "Edit Track & Via Properties..." ), "",
384  width_track_via_xpm );
385 
386 TOOL_ACTION PCB_ACTIONS::editTextAndGraphics( "pcbnew.GlobalEdit.editTextAndGraphics",
387  AS_GLOBAL, 0, "",
388  _( "Edit Text & Graphics Properties..." ),
389  _( "Edit Text and graphics properties globally across board" ),
390  reset_text_xpm );
391 
392 TOOL_ACTION PCB_ACTIONS::globalDeletions( "pcbnew.GlobalEdit.globalDeletions",
393  AS_GLOBAL, 0, "",
394  _( "Global Deletions..." ),
395  _( "Delete tracks, footprints and graphic items from board" ),
396  general_deletions_xpm );
397 
398 TOOL_ACTION PCB_ACTIONS::cleanupTracksAndVias( "pcbnew.GlobalEdit.cleanupTracksAndVias",
399  AS_GLOBAL, 0, "",
400  _( "Cleanup Tracks & Vias..." ),
401  _( "Clean stubs, vias, delete break points or unconnected tracks" ),
402  delete_xpm );
403 
404 
405 // MICROWAVE_TOOL
406 //
407 TOOL_ACTION PCB_ACTIONS::microwaveCreateGap( "pcbnew.MicrowaveTool.createGap",
408  AS_GLOBAL, 0, "",
409  _( "Add Microwave Gap" ), _( "Create gap of specified length for microwave applications" ),
410  mw_add_gap_xpm, AF_ACTIVATE, (void*) MWAVE_TOOL_SIMPLE_ID::GAP );
411 
412 TOOL_ACTION PCB_ACTIONS::microwaveCreateStub( "pcbnew.MicrowaveTool.createStub",
413  AS_GLOBAL, 0, "",
414  _( "Add Microwave Stub" ), _( "Create stub of specified length for microwave applications" ),
415  mw_add_stub_xpm, AF_ACTIVATE, (void*) MWAVE_TOOL_SIMPLE_ID::STUB );
416 
417 TOOL_ACTION PCB_ACTIONS::microwaveCreateStubArc( "pcbnew.MicrowaveTool.createStubArc",
418  AS_GLOBAL, 0, "",
419  _( "Add Microwave Arc Stub" ), _( "Create stub (arc) of specified size for microwave applications" ),
420  mw_add_stub_arc_xpm, AF_ACTIVATE, (void*) MWAVE_TOOL_SIMPLE_ID::STUB_ARC );
421 
422 TOOL_ACTION PCB_ACTIONS::microwaveCreateFunctionShape( "pcbnew.MicrowaveTool.createFunctionShape",
423  AS_GLOBAL, 0, "",
424  _( "Add Microwave Polygonal Shape" ), _( "Create a microwave polygonal shape from a list of vertices" ),
425  mw_add_gap_xpm, AF_ACTIVATE, (void*) MWAVE_TOOL_SIMPLE_ID::FUNCTION_SHAPE );
426 
427 TOOL_ACTION PCB_ACTIONS::microwaveCreateLine( "pcbnew.MicrowaveTool.createLine",
428  AS_GLOBAL, 0, "",
429  _( "Add Microwave Line" ), _( "Create line of specified length for microwave applications" ),
430  mw_add_line_xpm, AF_ACTIVATE );
431 
432 
433 // PAD_TOOL
434 //
435 TOOL_ACTION PCB_ACTIONS::copyPadSettings( "pcbnew.PadTool.CopyPadSettings",
436  AS_GLOBAL, 0, "",
437  _( "Copy Pad Properties" ), _( "Copy current pad's properties" ),
438  copy_pad_settings_xpm );
439 
440 TOOL_ACTION PCB_ACTIONS::applyPadSettings( "pcbnew.PadTool.ApplyPadSettings",
441  AS_GLOBAL, 0, "",
442  _( "Paste Pad Properties" ), _( "Replace the current pad's properties with those copied earlier" ),
443  apply_pad_settings_xpm );
444 
445 TOOL_ACTION PCB_ACTIONS::pushPadSettings( "pcbnew.PadTool.PushPadSettings",
446  AS_GLOBAL, 0, "",
447  _( "Push Pad Properties..." ), _( "Copy the current pad's properties to other pads" ),
448  push_pad_settings_xpm );
449 
450 TOOL_ACTION PCB_ACTIONS::enumeratePads( "pcbnew.PadTool.enumeratePads",
451  AS_GLOBAL, 0, "",
452  _( "Renumber Pads..." ), _( "Renumber pads by clicking on them in the desired order" ),
453  pad_enumerate_xpm, AF_ACTIVATE );
454 
455 
456 // PCB_EDITOR_CONTROL
457 //
458 TOOL_ACTION PCB_ACTIONS::boardSetup( "pcbnew.EditorControl.boardSetup",
459  AS_GLOBAL, 0, "",
460  _( "Board Setup..." ),
461  _( "Edit board setup including layers, design rules and various defaults" ),
462  options_board_xpm );
463 
464 TOOL_ACTION PCB_ACTIONS::importNetlist( "pcbnew.EditorControl.importNetlist",
465  AS_GLOBAL, 0, "",
466  _( "Netlist..." ), _( "Read netlist and update board connectivity" ),
467  netlist_xpm );
468 
469 TOOL_ACTION PCB_ACTIONS::importSpecctraSession( "pcbnew.EditorControl.importSpecctraSession",
470  AS_GLOBAL, 0, "",
471  _( "Specctra Session..." ), _( "Import routed Specctra session (*.ses) file" ),
472  import_xpm );
473 
474 TOOL_ACTION PCB_ACTIONS::exportSpecctraDSN( "pcbnew.EditorControl.exportSpecctraDSN",
475  AS_GLOBAL, 0, "",
476  _( "Specctra DSN..." ), _( "Export Specctra DSN routing info" ),
477  export_dsn_xpm );
478 
479 TOOL_ACTION PCB_ACTIONS::generateGerbers( "pcbnew.EditorControl.generateGerbers",
480  AS_GLOBAL, 0, "",
481  _( "Gerbers (.gbr)..." ), _( "Generate Gerbers for fabrication" ),
482  post_compo_xpm );
483 
484 TOOL_ACTION PCB_ACTIONS::generateDrillFiles( "pcbnew.EditorControl.generateDrillFiles",
485  AS_GLOBAL, 0, "",
486  _( "Drill Files (.drl)..." ), _( "Generate Excellon drill file(s)" ),
487  post_drill_xpm );
488 
489 TOOL_ACTION PCB_ACTIONS::generatePosFile( "pcbnew.EditorControl.generatePosFile",
490  AS_GLOBAL, 0, "",
491  _( "Footprint Positions (.pos)..." ),
492  _( "Generate footprint position file for pick and place" ),
493  post_compo_xpm );
494 
495 TOOL_ACTION PCB_ACTIONS::generateReportFile( "pcbnew.EditorControl.generateReportFile",
496  AS_GLOBAL, 0, "",
497  _( "Footprint Report (.rpt)..." ),
498  _( "Create report of all footprints from current board" ),
499  tools_xpm );
500 
501 TOOL_ACTION PCB_ACTIONS::generateD356File( "pcbnew.EditorControl.generateD356File",
502  AS_GLOBAL, 0, "",
503  _( "IPC-D-356 Netlist File..." ), _( "Generate IPC-D-356 netlist file" ),
504  netlist_xpm );
505 
506 TOOL_ACTION PCB_ACTIONS::generateBOM( "pcbnew.EditorControl.generateBOM",
507  AS_GLOBAL, 0, "",
508  _( "BOM..." ), _( "Create bill of materials from current schematic" ),
509  bom_xpm );
510 
511 // Track & via size control
512 TOOL_ACTION PCB_ACTIONS::trackWidthInc( "pcbnew.EditorControl.trackWidthInc",
513  AS_GLOBAL,
514  'W', LEGACY_HK_NAME( "Switch Track Width To Next" ),
515  _( "Switch Track Width to Next" ), "" );
516 
517 TOOL_ACTION PCB_ACTIONS::trackWidthDec( "pcbnew.EditorControl.trackWidthDec",
518  AS_GLOBAL,
519  MD_SHIFT + 'W', LEGACY_HK_NAME( "Switch Track Width To Previous" ),
520  _( "Switch Track Width to Previous" ), "" );
521 
522 TOOL_ACTION PCB_ACTIONS::viaSizeInc( "pcbnew.EditorControl.viaSizeInc",
523  AS_GLOBAL,
524  '\'', LEGACY_HK_NAME( "Increase Via Size" ),
525  _( "Increase Via Size" ), "" );
526 
527 TOOL_ACTION PCB_ACTIONS::viaSizeDec( "pcbnew.EditorControl.viaSizeDec",
528  AS_GLOBAL,
529  '\\', LEGACY_HK_NAME( "Decrease Via Size" ),
530  _( "Decrease Via Size" ), "" );
531 
532 TOOL_ACTION PCB_ACTIONS::trackViaSizeChanged( "pcbnew.EditorControl.trackViaSizeChanged",
533  AS_GLOBAL, 0, "",
534  "", "",
535  nullptr, AF_NOTIFY );
536 
537 TOOL_ACTION PCB_ACTIONS::zoneMerge( "pcbnew.EditorControl.zoneMerge",
538  AS_GLOBAL, 0, "",
539  _( "Merge Zones" ), _( "Merge zones" ) );
540 
541 TOOL_ACTION PCB_ACTIONS::zoneDuplicate( "pcbnew.EditorControl.zoneDuplicate",
542  AS_GLOBAL, 0, "",
543  _( "Duplicate Zone onto Layer..." ), _( "Duplicate zone outline onto a different layer" ),
544  zone_duplicate_xpm );
545 
546 TOOL_ACTION PCB_ACTIONS::placeTarget( "pcbnew.EditorControl.placeTarget",
547  AS_GLOBAL, 0, "",
548  _( "Add Layer Alignment Target" ), _( "Add a layer alignment target" ),
549  add_pcb_target_xpm, AF_ACTIVATE );
550 
551 TOOL_ACTION PCB_ACTIONS::placeModule( "pcbnew.EditorControl.placeModule",
552  AS_GLOBAL,
553  'O', LEGACY_HK_NAME( "Add Footprint" ),
554  _( "Add Footprint" ), _( "Add a footprint" ),
555  module_xpm, AF_ACTIVATE );
556 
557 TOOL_ACTION PCB_ACTIONS::drillOrigin( "pcbnew.EditorControl.drillOrigin",
558  AS_GLOBAL, 0, "",
559  _( "Drill and Place Offset" ), _( "Place origin point for drill and place files" ),
560  pcb_offset_xpm, AF_ACTIVATE );
561 
562 TOOL_ACTION PCB_ACTIONS::toggleLock( "pcbnew.EditorControl.toggleLock",
563  AS_GLOBAL,
564  'L', LEGACY_HK_NAME( "Lock/Unlock Footprint" ),
565  _( "Toggle Lock" ), "",
566  lock_unlock_xpm );
567 
568 TOOL_ACTION PCB_ACTIONS::lock( "pcbnew.EditorControl.lock",
569  AS_GLOBAL, 0, "",
570  _( "Lock" ), "",
571  locked_xpm );
572 
573 TOOL_ACTION PCB_ACTIONS::unlock( "pcbnew.EditorControl.unlock",
574  AS_GLOBAL, 0, "",
575  _( "Unlock" ), "",
576  unlocked_xpm );
577 
578 TOOL_ACTION PCB_ACTIONS::appendBoard( "pcbnew.EditorControl.appendBoard",
579  AS_GLOBAL, 0, "",
580  _( "Append Board..." ), "",
581  add_board_xpm );
582 
583 TOOL_ACTION PCB_ACTIONS::highlightNet( "pcbnew.EditorControl.highlightNet",
584  AS_GLOBAL );
585 
586 TOOL_ACTION PCB_ACTIONS::toggleLastNetHighlight( "pcbnew.EditorControl.toggleLastNetHighlight",
587  AS_GLOBAL, 0, "",
588  _( "Toggle Last Net Highlight" ), _( "Toggle between last two highlighted nets" ) );
589 
590 TOOL_ACTION PCB_ACTIONS::clearHighlight( "pcbnew.EditorControl.clearHighlight",
591  AS_GLOBAL, 0, "",
592  _( "Clear Net Highlighting" ), "" );
593 
594 TOOL_ACTION PCB_ACTIONS::highlightNetTool( "pcbnew.EditorControl.highlightNetTool",
595  AS_GLOBAL, 0, "",
596  _( "Highlight Nets" ), _( "Highlight all copper items of a net" ),
597  net_highlight_xpm, AF_ACTIVATE );
598 
599 TOOL_ACTION PCB_ACTIONS::highlightNetSelection( "pcbnew.EditorControl.highlightNetSelection",
600  AS_GLOBAL,
601  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
602  '`', LEGACY_HK_NAME( "Toggle Highlight of Selected Net (Modern Toolset only)" ),
603  _( "Highlight Net" ), _( "Highlight all copper items of a net" ),
604  net_highlight_xpm );
605 
606 TOOL_ACTION PCB_ACTIONS::highlightItem( "pcbnew.EditorControl.highlightItem",
607  AS_GLOBAL );
608 
609 TOOL_ACTION PCB_ACTIONS::showEeschema( "pcbnew.EditorControl.showEeschema",
610  AS_GLOBAL, 0, "",
611  _( "Switch to Schematic Editor" ), _( "Open schematic in Eeschema" ),
612  eeschema_xpm );
613 
614 
615 // PCBNEW_CONTROL
616 //
617 
618 TOOL_ACTION PCB_ACTIONS::localRatsnestTool( "pcbnew.Control.localRatsnestTool",
619  AS_GLOBAL, 0, "",
620  _( "Highlight Ratsnest" ), _( "Show ratsnest of selected item(s)" ),
621  tool_ratsnest_xpm, AF_ACTIVATE );
622 
623 TOOL_ACTION PCB_ACTIONS::hideDynamicRatsnest( "pcbnew.Control.hideDynamicRatsnest",
624  AS_GLOBAL );
625 
626 TOOL_ACTION PCB_ACTIONS::updateLocalRatsnest( "pcbnew.Control.updateLocalRatsnest",
627  AS_GLOBAL );
628 
629 TOOL_ACTION PCB_ACTIONS::listNets( "pcbnew.Control.listNets",
630  AS_GLOBAL, 0, "",
631  _( "List Nets" ), _( "Show a list of nets with names and IDs" ),
632  list_nets_xpm );
633 
634 TOOL_ACTION PCB_ACTIONS::showPythonConsole( "pcbnew.Control.showPythonConsole",
635  AS_GLOBAL, 0, "",
636  _( "Scripting Console" ), _( "Show the Python scripting console" ),
637  py_script_xpm );
638 
639 TOOL_ACTION PCB_ACTIONS::showLayersManager( "pcbnew.Control.showLayersManager",
640  AS_GLOBAL, 0, "",
641  _( "Show Layers Manager" ), _( "Show/hide the layers manager" ),
642  layers_manager_xpm );
643 
644 TOOL_ACTION PCB_ACTIONS::showMicrowaveToolbar( "pcbnew.Control.showMicrowaveToolbar",
645  AS_GLOBAL, 0, "",
646  _( "Show Microwave Toolbar" ), _( "Show/hide microwave toolbar\n(Experimental feature)" ),
647  mw_toolbar_xpm );
648 
649 TOOL_ACTION PCB_ACTIONS::flipBoard( "pcbnew.Control.flipBoard",
650  AS_GLOBAL, 0, "",
651  _( "Flip Board View" ), _( "Flip (mirror) the board view" ),
652  flip_board_xpm );
653 
654 // Display modes
655 TOOL_ACTION PCB_ACTIONS::showRatsnest( "pcbnew.Control.showRatsnest",
656  AS_GLOBAL, 0, "",
657  _( "Show Ratsnest" ), _( "Show board ratsnest" ),
658  general_ratsnest_xpm );
659 
660 TOOL_ACTION PCB_ACTIONS::ratsnestLineMode( "pcbnew.Control.ratsnestLineMode",
661  AS_GLOBAL, 0, "",
662  _( "Curved Ratsnest Lines" ), _( "Show ratsnest with curved lines" ),
663  curved_ratsnest_xpm );
664 
665 TOOL_ACTION PCB_ACTIONS::trackDisplayMode( "pcbnew.Control.trackDisplayMode",
666  AS_GLOBAL,
667  'K', LEGACY_HK_NAME( "Track Display Mode" ),
668  _( "Sketch Tracks" ), _( "Show tracks in outline mode" ),
669  showtrack_xpm );
670 
671 TOOL_ACTION PCB_ACTIONS::padDisplayMode( "pcbnew.Control.padDisplayMode",
672  AS_GLOBAL, 0, "",
673  _( "Sketch Pads" ), _( "Show pads in outline mode" ),
674  pad_sketch_xpm );
675 
676 TOOL_ACTION PCB_ACTIONS::viaDisplayMode( "pcbnew.Control.viaDisplayMode",
677  AS_GLOBAL, 0, "",
678  _( "Sketch Vias" ), _( "Show vias in outline mode" ),
679  via_sketch_xpm );
680 
681 TOOL_ACTION PCB_ACTIONS::graphicDisplayMode( "pcbnew.Control.graphicDisplayMode",
682  AS_GLOBAL );
683 
684 TOOL_ACTION PCB_ACTIONS::moduleEdgeOutlines( "pcbnew.Control.graphicOutlines",
685  AS_GLOBAL, 0, "",
686  _( "Sketch Graphics" ), _( "Show footprint graphic items in outline mode" ),
687  show_mod_edge_xpm );
688 
689 TOOL_ACTION PCB_ACTIONS::zoneDisplayEnable( "pcbnew.Control.zoneDisplayEnable",
690  AS_GLOBAL, 0, "",
691  _( "Fill Zones" ), _( "Show filled areas of zones" ),
692  show_zone_xpm );
693 
694 TOOL_ACTION PCB_ACTIONS::zoneDisplayDisable( "pcbnew.Control.zoneDisplayDisable",
695  AS_GLOBAL, 0, "",
696  _( "Wireframe Zones" ), _( "Show only zone boundaries" ),
697  show_zone_disable_xpm );
698 
699 TOOL_ACTION PCB_ACTIONS::zoneDisplayOutlines( "pcbnew.Control.zoneDisplayOutlines",
700  AS_GLOBAL, 0, "",
701  _( "Sketch Zones" ), _( "Show solid areas of zones in outline mode" ),
702  show_zone_outline_only_xpm );
703 
704 TOOL_ACTION PCB_ACTIONS::zoneDisplayToggle( "pcbnew.Control.zoneDisplayToggle",
705  AS_GLOBAL,
706  'A', "",
707  _( "Toggle Zone Display" ),
708  _( "Cycle between showing filled zones, wireframed zones and sketched zones" ),
709  show_zone_xpm );
710 
711 
712 // Layer control
713 TOOL_ACTION PCB_ACTIONS::layerTop( "pcbnew.Control.layerTop",
714  AS_GLOBAL,
715  WXK_PAGEUP, LEGACY_HK_NAME( "Switch to Component (F.Cu) layer" ),
716  _( "Switch to Component (F.Cu) layer" ), "",
717  nullptr, AF_NONE, (void*) F_Cu );
718 
719 TOOL_ACTION PCB_ACTIONS::layerInner1( "pcbnew.Control.layerInner1",
720  AS_GLOBAL,
721  WXK_F5, LEGACY_HK_NAME( "Switch to Inner layer 1" ),
722  _( "Switch to Inner layer 1" ), "",
723  nullptr, AF_NONE, (void*) In1_Cu );
724 
725 TOOL_ACTION PCB_ACTIONS::layerInner2( "pcbnew.Control.layerInner2",
726  AS_GLOBAL,
727  WXK_F6, LEGACY_HK_NAME( "Switch to Inner layer 2" ),
728  _( "Switch to Inner layer 2" ), "",
729  nullptr, AF_NONE, (void*) In2_Cu );
730 
731 TOOL_ACTION PCB_ACTIONS::layerInner3( "pcbnew.Control.layerInner3",
732  AS_GLOBAL,
733  WXK_F7, LEGACY_HK_NAME( "Switch to Inner layer 3" ),
734  _( "Switch to Inner layer 3" ), "",
735  nullptr, AF_NONE, (void*) In3_Cu );
736 
737 TOOL_ACTION PCB_ACTIONS::layerInner4( "pcbnew.Control.layerInner4",
738  AS_GLOBAL,
739  WXK_F8, LEGACY_HK_NAME( "Switch to Inner layer 4" ),
740  _( "Switch to Inner layer 4" ), "",
741  nullptr, AF_NONE, (void*) In4_Cu );
742 
743 TOOL_ACTION PCB_ACTIONS::layerInner5( "pcbnew.Control.layerInner5",
744  AS_GLOBAL,
745  MD_SHIFT + WXK_F5, LEGACY_HK_NAME( "Switch to Inner layer 5" ),
746  _( "Switch to Inner layer 5" ), "",
747  nullptr, AF_NONE, (void*) In5_Cu );
748 
749 TOOL_ACTION PCB_ACTIONS::layerInner6( "pcbnew.Control.layerInner6",
750  AS_GLOBAL,
751  MD_SHIFT + WXK_F6, LEGACY_HK_NAME( "Switch to Inner layer 6" ),
752  _( "Switch to Inner layer 6" ), "",
753  nullptr, AF_NONE, (void*) In6_Cu );
754 
755 TOOL_ACTION PCB_ACTIONS::layerInner7( "pcbnew.Control.layerInner7",
756  AS_GLOBAL, 0, "",
757  _( "Switch to Inner layer 7" ), "",
758  nullptr, AF_NONE, (void*) In7_Cu );
759 
760 TOOL_ACTION PCB_ACTIONS::layerInner8( "pcbnew.Control.layerInner8",
761  AS_GLOBAL, 0, "",
762  _( "Switch to Inner layer 8" ), "",
763  nullptr, AF_NONE, (void*) In8_Cu );
764 
765 TOOL_ACTION PCB_ACTIONS::layerInner9( "pcbnew.Control.layerInner9",
766  AS_GLOBAL, 0, "",
767  _( "Switch to Inner layer 9" ), "",
768  nullptr, AF_NONE, (void*) In9_Cu );
769 
770 TOOL_ACTION PCB_ACTIONS::layerInner10( "pcbnew.Control.layerInner10",
771  AS_GLOBAL, 0, "",
772  _( "Switch to Inner layer 10" ), "",
773  nullptr, AF_NONE, (void*) In10_Cu );
774 
775 TOOL_ACTION PCB_ACTIONS::layerInner11( "pcbnew.Control.layerInner11",
776  AS_GLOBAL, 0, "",
777  _( "Switch to Inner layer 11" ), "",
778  nullptr, AF_NONE, (void*) In11_Cu );
779 
780 TOOL_ACTION PCB_ACTIONS::layerInner12( "pcbnew.Control.layerInner12",
781  AS_GLOBAL, 0, "",
782  _( "Switch to Inner layer 12" ), "",
783  nullptr, AF_NONE, (void*) In12_Cu );
784 
785 TOOL_ACTION PCB_ACTIONS::layerInner13( "pcbnew.Control.layerInner13",
786  AS_GLOBAL, 0, "",
787  _( "Switch to Inner layer 13" ), "",
788  nullptr, AF_NONE, (void*) In13_Cu );
789 
790 TOOL_ACTION PCB_ACTIONS::layerInner14( "pcbnew.Control.layerInner14",
791  AS_GLOBAL, 0, "",
792  _( "Switch to Inner layer 14" ), "",
793  nullptr, AF_NONE, (void*) In14_Cu );
794 
795 TOOL_ACTION PCB_ACTIONS::layerInner15( "pcbnew.Control.layerInner15",
796  AS_GLOBAL, 0, "",
797  _( "Switch to Inner layer 15" ), "",
798  nullptr, AF_NONE, (void*) In15_Cu );
799 
800 TOOL_ACTION PCB_ACTIONS::layerInner16( "pcbnew.Control.layerInner16",
801  AS_GLOBAL, 0, "",
802  _( "Switch to Inner layer 16" ), "",
803  nullptr, AF_NONE, (void*) In16_Cu );
804 
805 TOOL_ACTION PCB_ACTIONS::layerInner17( "pcbnew.Control.layerInner17",
806  AS_GLOBAL, 0, "",
807  _( "Switch to Inner layer 17" ), "",
808  nullptr, AF_NONE, (void*) In17_Cu );
809 
810 TOOL_ACTION PCB_ACTIONS::layerInner18( "pcbnew.Control.layerInner18",
811  AS_GLOBAL, 0, "",
812  _( "Switch to Inner layer 18" ), "",
813  nullptr, AF_NONE, (void*) In18_Cu );
814 
815 TOOL_ACTION PCB_ACTIONS::layerInner19( "pcbnew.Control.layerInner19",
816  AS_GLOBAL, 0, "",
817  _( "Switch to Inner layer 19" ), "",
818  nullptr, AF_NONE, (void*) In19_Cu );
819 
820 TOOL_ACTION PCB_ACTIONS::layerInner20( "pcbnew.Control.layerInner20",
821  AS_GLOBAL, 0, "",
822  _( "Switch to Inner layer 20" ), "",
823  nullptr, AF_NONE, (void*) In20_Cu );
824 
825 TOOL_ACTION PCB_ACTIONS::layerInner21( "pcbnew.Control.layerInner21",
826  AS_GLOBAL, 0, "",
827  _( "Switch to Inner layer 21" ), "",
828  nullptr, AF_NONE, (void*) In21_Cu );
829 
830 TOOL_ACTION PCB_ACTIONS::layerInner22( "pcbnew.Control.layerInner22",
831  AS_GLOBAL, 0, "",
832  _( "Switch to Inner layer 22" ), "",
833  nullptr, AF_NONE, (void*) In22_Cu );
834 
835 TOOL_ACTION PCB_ACTIONS::layerInner23( "pcbnew.Control.layerInner23",
836  AS_GLOBAL, 0, "",
837  _( "Switch to Inner layer 23" ), "",
838  nullptr, AF_NONE, (void*) In23_Cu );
839 
840 TOOL_ACTION PCB_ACTIONS::layerInner24( "pcbnew.Control.layerInner24",
841  AS_GLOBAL, 0, "",
842  _( "Switch to Inner layer 24" ), "",
843  nullptr, AF_NONE, (void*) In24_Cu );
844 
845 TOOL_ACTION PCB_ACTIONS::layerInner25( "pcbnew.Control.layerInner25",
846  AS_GLOBAL, 0, "",
847  _( "Switch to Inner layer 25" ), "",
848  nullptr, AF_NONE, (void*) In25_Cu );
849 
850 TOOL_ACTION PCB_ACTIONS::layerInner26( "pcbnew.Control.layerInner26",
851  AS_GLOBAL, 0, "",
852  _( "Switch to Inner layer 26" ), "",
853  nullptr, AF_NONE, (void*) In26_Cu );
854 
855 TOOL_ACTION PCB_ACTIONS::layerInner27( "pcbnew.Control.layerInner27",
856  AS_GLOBAL, 0, "",
857  _( "Switch to Inner layer 27" ), "",
858  nullptr, AF_NONE, (void*) In27_Cu );
859 
860 TOOL_ACTION PCB_ACTIONS::layerInner28( "pcbnew.Control.layerInner28",
861  AS_GLOBAL, 0, "",
862  _( "Switch to Inner layer 28" ), "",
863  nullptr, AF_NONE, (void*) In28_Cu );
864 
865 TOOL_ACTION PCB_ACTIONS::layerInner29( "pcbnew.Control.layerInner29",
866  AS_GLOBAL, 0, "",
867  _( "Switch to Inner layer 29" ), "",
868  nullptr, AF_NONE, (void*) In29_Cu );
869 
870 TOOL_ACTION PCB_ACTIONS::layerInner30( "pcbnew.Control.layerInner30",
871  AS_GLOBAL, 0, "",
872  _( "Switch to Inner layer 30" ), "",
873  nullptr, AF_NONE, (void*) In30_Cu );
874 
875 TOOL_ACTION PCB_ACTIONS::layerBottom( "pcbnew.Control.layerBottom",
876  AS_GLOBAL,
877  WXK_PAGEDOWN, LEGACY_HK_NAME( "Switch to Copper (B.Cu) layer" ),
878  _( "Switch to Copper (B.Cu) layer" ), "",
879  nullptr, AF_NONE, (void*) B_Cu );
880 
881 TOOL_ACTION PCB_ACTIONS::layerNext( "pcbnew.Control.layerNext",
882  AS_GLOBAL,
883  '+', LEGACY_HK_NAME( "Switch to Next Layer" ),
884  _( "Switch to Next Layer" ), "" );
885 
886 TOOL_ACTION PCB_ACTIONS::layerPrev( "pcbnew.Control.layerPrev",
887  AS_GLOBAL,
888  '-', LEGACY_HK_NAME( "Switch to Previous Layer" ),
889  _( "Switch to Previous Layer" ), "" );
890 
891 TOOL_ACTION PCB_ACTIONS::layerToggle( "pcbnew.Control.layerToggle",
892  AS_GLOBAL,
893  'V', LEGACY_HK_NAME( "Add Through Via" ),
894  _( "Add Through Via" ), "" );
895 
896 TOOL_ACTION PCB_ACTIONS::layerAlphaInc( "pcbnew.Control.layerAlphaInc",
897  AS_GLOBAL,
898  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
899  '}', LEGACY_HK_NAME( "Increment Layer Transparency (Modern Toolset only)" ),
900  _( "Increase Layer Opacity" ), _( "Make the current layer more transparent" ),
901  contrast_mode_xpm );
902 
903 TOOL_ACTION PCB_ACTIONS::layerAlphaDec( "pcbnew.Control.layerAlphaDec",
904  AS_GLOBAL,
905  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
906  '{', LEGACY_HK_NAME( "Decrement Layer Transparency (Modern Toolset only)" ),
907  _( "Decrease Layer Opacity" ), _( "Make the current layer more transparent" ),
908  contrast_mode_xpm );
909 
910 TOOL_ACTION PCB_ACTIONS::layerChanged( "pcbnew.Control.layerChanged",
911  AS_GLOBAL, 0, "",
912  "", "",
913  nullptr, AF_NOTIFY );
914 
915 //Show board statistics tool
916 TOOL_ACTION PCB_ACTIONS::boardStatistics( "pcbnew.InspectionTool.ShowStatisticsDialog", AS_GLOBAL,
917  0, LEGACY_HK_NAME( "Show Board Statistics" ), _( "Show Board Statistics" ),
918  _( "Shows board statistics" ), pcbnew_xpm );
919 
920 
921 // PLACEMENT_TOOL
922 //
923 TOOL_ACTION PCB_ACTIONS::alignTop( "pcbnew.AlignAndDistribute.alignTop",
924  AS_GLOBAL, 0, "",
925  _( "Align to Top" ),
926  _( "Aligns selected items to the top edge" ), align_items_top_xpm );
927 
928 TOOL_ACTION PCB_ACTIONS::alignBottom( "pcbnew.AlignAndDistribute.alignBottom",
929  AS_GLOBAL, 0, "",
930  _( "Align to Bottom" ),
931  _( "Aligns selected items to the bottom edge" ), align_items_bottom_xpm );
932 
933 TOOL_ACTION PCB_ACTIONS::alignLeft( "pcbnew.AlignAndDistribute.alignLeft",
934  AS_GLOBAL, 0, "",
935  _( "Align to Left" ),
936  _( "Aligns selected items to the left edge" ), align_items_left_xpm );
937 
938 TOOL_ACTION PCB_ACTIONS::alignRight( "pcbnew.AlignAndDistribute.alignRight",
939  AS_GLOBAL, 0, "",
940  _( "Align to Right" ),
941  _( "Aligns selected items to the right edge" ), align_items_right_xpm );
942 
943 TOOL_ACTION PCB_ACTIONS::alignCenterX( "pcbnew.AlignAndDistribute.alignCenterX",
944  AS_GLOBAL, 0, "",
945  _( "Align to Middle" ),
946  _( "Aligns selected items to the vertical center" ), align_items_middle_xpm );
947 
948 TOOL_ACTION PCB_ACTIONS::alignCenterY( "pcbnew.AlignAndDistribute.alignCenterY",
949  AS_GLOBAL, 0, "",
950  _( "Align to Center" ),
951  _( "Aligns selected items to the horizontal center" ), align_items_center_xpm );
952 
953 TOOL_ACTION PCB_ACTIONS::distributeHorizontally( "pcbnew.AlignAndDistribute.distributeHorizontally",
954  AS_GLOBAL, 0, "",
955  _( "Distribute Horizontally" ),
956  _( "Distributes selected items along the horizontal axis" ), distribute_horizontal_xpm );
957 
958 TOOL_ACTION PCB_ACTIONS::distributeVertically( "pcbnew.AlignAndDistribute.distributeVertically",
959  AS_GLOBAL, 0, "",
960  _( "Distribute Vertically" ),
961  _( "Distributes selected items along the vertical axis" ), distribute_vertical_xpm );
962 
963 
964 // POINT_EDITOR
965 //
966 TOOL_ACTION PCB_ACTIONS::pointEditorAddCorner( "pcbnew.PointEditor.addCorner",
967  AS_GLOBAL,
968  WXK_INSERT, "",
969  _( "Create Corner" ), _( "Create a corner" ), add_corner_xpm );
970 
971 TOOL_ACTION PCB_ACTIONS::pointEditorRemoveCorner( "pcbnew.PointEditor.removeCorner",
972  AS_GLOBAL, 0, "",
973  _( "Remove Corner" ), _( "Remove corner" ), delete_xpm );
974 
975 
976 // POSITION_RELATIVE_TOOL
977 //
978 TOOL_ACTION PCB_ACTIONS::positionRelative( "pcbnew.PositionRelative.positionRelative",
979  AS_GLOBAL,
980  MD_SHIFT + 'P', LEGACY_HK_NAME( "Position Item Relative" ),
981  _( "Position Relative To..." ),
982  _( "Positions the selected item(s) by an exact amount relative to another" ),
983  move_relative_xpm );
984 
985 TOOL_ACTION PCB_ACTIONS::selectpositionRelativeItem( "pcbnew.PositionRelative.selectpositionRelativeItem",
986  AS_GLOBAL );
987 
988 
989 // SELECTION_TOOL
990 //
991 TOOL_ACTION PCB_ACTIONS::selectionActivate( "pcbnew.InteractiveSelection",
992  AS_GLOBAL, 0, "", "", "", nullptr, AF_ACTIVATE ); // No description, not shown anywhere
993 
994 TOOL_ACTION PCB_ACTIONS::selectionCursor( "pcbnew.InteractiveSelection.Cursor",
995  AS_GLOBAL );
996 
997 TOOL_ACTION PCB_ACTIONS::selectItem( "pcbnew.InteractiveSelection.SelectItem",
998  AS_GLOBAL );
999 
1000 TOOL_ACTION PCB_ACTIONS::selectItems( "pcbnew.InteractiveSelection.SelectItems",
1001  AS_GLOBAL );
1002 
1003 TOOL_ACTION PCB_ACTIONS::unselectItem( "pcbnew.InteractiveSelection.UnselectItem",
1004  AS_GLOBAL );
1005 
1006 TOOL_ACTION PCB_ACTIONS::unselectItems( "pcbnew.InteractiveSelection.UnselectItems",
1007  AS_GLOBAL );
1008 
1009 TOOL_ACTION PCB_ACTIONS::selectionClear( "pcbnew.InteractiveSelection.Clear",
1010  AS_GLOBAL );
1011 
1012 TOOL_ACTION PCB_ACTIONS::selectionMenu( "pcbnew.InteractiveSelection.SelectionMenu",
1013  AS_GLOBAL );
1014 
1015 TOOL_ACTION PCB_ACTIONS::selectConnection( "pcbnew.InteractiveSelection.SelectConnection",
1016  AS_GLOBAL,
1017  'U', LEGACY_HK_NAME( "Select Single Track" ),
1018  _( "Select Single Track" ),
1019  _( "Selects all track segments & vias between two junctions." ),
1020  add_tracks_xpm );
1021 
1022 TOOL_ACTION PCB_ACTIONS::selectCopper( "pcbnew.InteractiveSelection.SelectCopper",
1023  AS_GLOBAL,
1024  'I', LEGACY_HK_NAME( "Select Connected Tracks" ),
1025  _( "Select Connected Tracks" ),
1026  _( "Selects all connected tracks & vias." ),
1027  net_highlight_xpm );
1028 
1029 TOOL_ACTION PCB_ACTIONS::expandSelectedConnection( "pcbnew.InteractiveSelection.ExpandConnection",
1030  AS_GLOBAL, 0, "",
1031  _( "Expand Selected Connection" ),
1032  _( "Expands the current selection to select a connection between two junctions." ) );
1033 
1034 TOOL_ACTION PCB_ACTIONS::selectNet( "pcbnew.InteractiveSelection.SelectNet",
1035  AS_GLOBAL, 0, "",
1036  _( "Select All Tracks in Net" ),
1037  _( "Selects all tracks & vias belonging to the same net." ),
1038  mode_track_xpm );
1039 
1040 TOOL_ACTION PCB_ACTIONS::selectOnSheetFromEeschema( "pcbnew.InteractiveSelection.SelectOnSheet",
1041  AS_GLOBAL, 0, "",
1042  _( "Sheet" ),
1043  _( "Selects all modules and tracks in the schematic sheet" ),
1044  select_same_sheet_xpm );
1045 
1046 TOOL_ACTION PCB_ACTIONS::selectSameSheet( "pcbnew.InteractiveSelection.SelectSameSheet",
1047  AS_GLOBAL, 0, "",
1048  _( "Items in Same Hierarchical Sheet" ),
1049  _( "Selects all modules and tracks in the same schematic sheet" ),
1050  select_same_sheet_xpm );
1051 
1052 TOOL_ACTION PCB_ACTIONS::filterSelection( "pcbnew.InteractiveSelection.FilterSelection",
1053  AS_GLOBAL, 0, "",
1054  _( "Filter Selection..." ), _( "Filter the types of items in the selection" ),
1055  options_generic_xpm );
1056 
1057 
1058 // ZONE_FILLER_TOOL
1059 //
1060 TOOL_ACTION PCB_ACTIONS::zoneFill( "pcbnew.ZoneFiller.zoneFill",
1061  AS_GLOBAL, 0, "",
1062  _( "Fill" ), _( "Fill zone(s)" ),
1063  fill_zone_xpm );
1064 
1065 TOOL_ACTION PCB_ACTIONS::zoneFillAll( "pcbnew.ZoneFiller.zoneFillAll",
1066  AS_GLOBAL,
1067  'B', LEGACY_HK_NAME( "Fill or Refill All Zones" ),
1068  _( "Fill All" ), _( "Fill all zones" ),
1069  fill_zone_xpm );
1070 
1071 TOOL_ACTION PCB_ACTIONS::zoneUnfill( "pcbnew.ZoneFiller.zoneUnfill",
1072  AS_GLOBAL, 0, "",
1073  _( "Unfill" ), _( "Unfill zone(s)" ),
1074  zone_unfill_xpm );
1075 
1076 TOOL_ACTION PCB_ACTIONS::zoneUnfillAll( "pcbnew.ZoneFiller.zoneUnfillAll",
1077  AS_GLOBAL,
1078  MD_CTRL + 'B', LEGACY_HK_NAME( "Remove Filled Areas in All Zones" ),
1079  _( "Unfill All" ), _( "Unfill all zones" ),
1080  zone_unfill_xpm );
1081 
1082 
1083 // AUTOPLACER_TOOL
1084 //
1085 TOOL_ACTION PCB_ACTIONS::autoplaceSelectedComponents( "pcbnew.Autoplacer.autoplaceSelected",
1086  AS_GLOBAL, 0, "",
1087  _( "Place Selected Footprints" ),
1088  _( "Performs automatic placement of selected components" ),
1089  module_check_xpm );
1090 
1091 TOOL_ACTION PCB_ACTIONS::autoplaceOffboardComponents( "pcbnew.Autoplacer.autoplaceOffboard",
1092  AS_GLOBAL, 0, "",
1093  _( "Place Off-Board Footprints" ),
1094  _( "Performs automatic placement of components outside board area" ),
1095  module_xpm );
1096 
1097 
1098 // ROUTER_TOOL
1099 //
1100 TOOL_ACTION PCB_ACTIONS::routeSingleTrack( "pcbnew.InteractiveRouter.SingleTrack",
1101  AS_GLOBAL,
1102  'X', LEGACY_HK_NAME( "Add New Track" ),
1103  _( "Route Single Track" ), _( "Run push & shove router (single tracks)" ),
1104  add_tracks_xpm, AF_ACTIVATE, (void*) PNS::PNS_MODE_ROUTE_SINGLE );
1105 
1106 TOOL_ACTION PCB_ACTIONS::routeDiffPair( "pcbnew.InteractiveRouter.DiffPair",
1107  AS_GLOBAL,
1108  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1109  '6', LEGACY_HK_NAME( "Route Differential Pair (Modern Toolset only)" ),
1110  _( "Route Differential Pair" ), _( "Run push & shove router (differential pairs)" ),
1111  ps_diff_pair_xpm, AF_ACTIVATE, (void*) PNS::PNS_MODE_ROUTE_DIFF_PAIR );
1112 
1113 TOOL_ACTION PCB_ACTIONS::routerSettingsDialog( "pcbnew.InteractiveRouter.SettingsDialog",
1114  AS_GLOBAL,
1115  MD_CTRL + MD_SHIFT + ',', LEGACY_HK_NAME( "Routing Options" ),
1116  _( "Interactive Router Settings..." ), _( "Open Interactive Router settings" ),
1117  tools_xpm );
1118 
1119 TOOL_ACTION PCB_ACTIONS::routerDiffPairDialog( "pcbnew.InteractiveRouter.DiffPairDialog",
1120  AS_GLOBAL, 0, "",
1121  _( "Differential Pair Dimensions..." ), _( "Open Differential Pair Dimension settings" ),
1122  ps_diff_pair_gap_xpm );
1123 
1124 TOOL_ACTION PCB_ACTIONS::selectLayerPair( "pcbnew.InteractiveRouter.SelectLayerPair",
1125  AS_GLOBAL, 0, "",
1126  _( "Set Layer Pair..." ), _( "Change active layer pair for routing" ),
1127  select_layer_pair_xpm, AF_ACTIVATE );
1128 
1129 TOOL_ACTION PCB_ACTIONS::routerTuneSingleTrace( "pcbnew.LengthTuner.TuneSingleTrack",
1130  AS_GLOBAL,
1131  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1132  '7', LEGACY_HK_NAME( "Tune Single Track (Modern Toolset only)" ),
1133  _( "Tune length of a single track" ), "",
1134  ps_tune_length_xpm, AF_ACTIVATE, (void*) PNS::PNS_MODE_TUNE_SINGLE );
1135 
1136 TOOL_ACTION PCB_ACTIONS::routerTuneDiffPair( "pcbnew.LengthTuner.TuneDiffPair",
1137  AS_GLOBAL,
1138  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1139  '8', LEGACY_HK_NAME( "Tune Differential Pair Length (Modern Toolset only)" ),
1140  _( "Tune length of a differential pair" ), "",
1141  ps_diff_pair_tune_length_xpm, AF_ACTIVATE, (void*) PNS::PNS_MODE_TUNE_DIFF_PAIR );
1142 
1143 TOOL_ACTION PCB_ACTIONS::routerTuneDiffPairSkew( "pcbnew.LengthTuner.TuneDiffPairSkew",
1144  AS_GLOBAL,
1145  // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1146  '9', LEGACY_HK_NAME( "Tune Differential Pair Skew (Modern Toolset only)" ),
1147  _( "Tune skew of a differential pair" ), "",
1148  ps_diff_pair_tune_phase_xpm, AF_ACTIVATE, (void*) PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW );
1149 
1150 TOOL_ACTION PCB_ACTIONS::routerInlineDrag( "pcbnew.InteractiveRouter.InlineDrag",
1151  AS_CONTEXT, 0, "",
1152  _( "Drag Track/Via" ), _( "Drags tracks and vias without breaking connections" ),
1153  drag_xpm );
1154 
1155 TOOL_ACTION PCB_ACTIONS::inlineBreakTrack( "pcbnew.InteractiveRouter.InlineBreakTrack",
1156  AS_GLOBAL, 0, "",
1157  _( "Break Track" ),
1158  _( "Splits the track segment into two segments connected at the cursor position." ),
1159  break_line_xpm );
1160 
1161 TOOL_ACTION PCB_ACTIONS::breakTrack( "pcbnew.InteractiveRouter.BreakTrack",
1162  AS_GLOBAL, 0, "",
1163  _( "Break Track" ),
1164  _( "Splits the track segment into two segments connected at the cursor position." ),
1165  break_line_xpm );
1166 
1167 TOOL_ACTION PCB_ACTIONS::drag45Degree( "pcbnew.InteractiveRouter.Drag45Degree",
1168  AS_GLOBAL,
1169  'D', LEGACY_HK_NAME( "Drag Track Keep Slope" ),
1170  _( "Drag (45 degree mode)" ),
1171  _( "Drags the track segment while keeping connected tracks at 45 degrees." ),
1172  drag_segment_withslope_xpm );
1173 
1174 TOOL_ACTION PCB_ACTIONS::dragFreeAngle( "pcbnew.InteractiveRouter.DragFreeAngle",
1175  AS_GLOBAL,
1176  'G', LEGACY_HK_NAME( "Drag Item" ),
1177  _( "Drag (free angle)" ),
1178  _( "Drags the nearest joint in the track without restricting the track angle." ),
1179  move_xpm );
1180 
static TOOL_ACTION selectItems
Selects a list of items (specified as the event parameter)
Definition: pcb_actions.h:80
static TOOL_ACTION alignRight
Definition: pcb_actions.h:216
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:73
static TOOL_ACTION selectionActivate
Activation of the selection tool.
Definition: pcb_actions.h:67
static TOOL_ACTION layerBottom
Definition: pcb_actions.h:273
static TOOL_ACTION toggleLock
Definition: pcb_actions.h:399
static TOOL_ACTION layerInner26
Definition: pcb_actions.h:268
static TOOL_ACTION drawLine
Definition: pcb_actions.h:153
static TOOL_ACTION saveToBoard
Definition: pcb_actions.h:347
static TOOL_ACTION placeModule
Definition: pcb_actions.h:165
static TOOL_ACTION placeImportedGraphics
Definition: pcb_actions.h:166
static TOOL_ACTION move
move or drag an item
Definition: pcb_actions.h:108
static TOOL_ACTION footprintProperties
Definition: pcb_actions.h:358
static TOOL_ACTION deleteFull
Definition: pcb_actions.h:138
static TOOL_ACTION unlock
Definition: pcb_actions.h:401
static TOOL_ACTION layerNext
Definition: pcb_actions.h:274
static TOOL_ACTION globalDeletions
Definition: pcb_actions.h:306
static TOOL_ACTION layerInner2
Definition: pcb_actions.h:244
static TOOL_ACTION selectLayerPair
Definition: pcb_actions.h:140
static TOOL_ACTION generateGerbers
Definition: pcb_actions.h:319
Add a new zone with the same settings as an existing one.
#define LEGACY_HK_NAME(x)
Definition: actions.h:35
static TOOL_ACTION incWidth
Increase width of currently drawn line.
Definition: pcb_actions.h:172
static TOOL_ACTION layerInner5
Definition: pcb_actions.h:247
static TOOL_ACTION changeTrackWidth
Updates selected tracks & vias to the current track & via dimensions.
Definition: pcb_actions.h:122
static TOOL_ACTION autoplaceOffboardComponents
Definition: pcb_actions.h:430
static TOOL_ACTION drawSimilarZone
Definition: pcb_actions.h:163
static TOOL_ACTION drillOrigin
Definition: pcb_actions.h:414
static TOOL_ACTION lock
Definition: pcb_actions.h:400
static TOOL_ACTION layerInner6
Definition: pcb_actions.h:248
static TOOL_ACTION routerDiffPairDialog
Definition: pcb_actions.h:199
static TOOL_ACTION zoneFillAll
Definition: pcb_actions.h:294
static TOOL_ACTION viaSizeInc
Definition: pcb_actions.h:287
static TOOL_ACTION drawArc
Definition: pcb_actions.h:156
static TOOL_ACTION layerInner7
Definition: pcb_actions.h:249
static TOOL_ACTION layerInner8
Definition: pcb_actions.h:250
static TOOL_ACTION microwaveCreateStubArc
Definition: pcb_actions.h:392
static TOOL_ACTION highlightItem
Definition: pcb_actions.h:413
static TOOL_ACTION layerInner21
Definition: pcb_actions.h:263
static TOOL_ACTION ratsnestLineMode
Definition: pcb_actions.h:231
static TOOL_ACTION autoplaceSelectedComponents
Definition: pcb_actions.h:431
static TOOL_ACTION layerAlphaDec
Definition: pcb_actions.h:277
static TOOL_ACTION boardStatistics
Definition: pcb_actions.h:417
static TOOL_ACTION zoneDisplayOutlines
Definition: pcb_actions.h:238
static TOOL_ACTION unselectItem
Definition: pcb_actions.h:77
static TOOL_ACTION selectNet
Selects all connections belonging to a single net.
Definition: pcb_actions.h:96
static TOOL_ACTION dragFreeAngle
Definition: pcb_actions.h:149
static TOOL_ACTION explodePadToShapes
Definition: pcb_actions.h:365
static TOOL_ACTION drawZoneKeepout
Definition: pcb_actions.h:161
static TOOL_ACTION enumeratePads
Tool for quick pad enumeration.
Definition: pcb_actions.h:368
static TOOL_ACTION unselectItems
Definition: pcb_actions.h:81
static TOOL_ACTION layerAlphaInc
Definition: pcb_actions.h:276
static TOOL_ACTION routerTuneDiffPair
Activation of the Push and Shove router (diff pair tuning mode)
Definition: pcb_actions.h:192
static TOOL_ACTION alignCenterY
Definition: pcb_actions.h:218
static TOOL_ACTION properties
Activation of the edit tool.
Definition: pcb_actions.h:125
static TOOL_ACTION zoneDisplayDisable
Definition: pcb_actions.h:237
static TOOL_ACTION trackWidthDec
Definition: pcb_actions.h:286
Action activates a tool
Definition: tool_event.h:155
static TOOL_ACTION selectionMenu
Runs a selection menu to select from a list of items.
Definition: pcb_actions.h:84
static TOOL_ACTION drawPolygon
Definition: pcb_actions.h:154
static TOOL_ACTION selectConnection
Selects a connection between junctions.
Definition: pcb_actions.h:87
static TOOL_ACTION selectpositionRelativeItem
Selection of anchor item for position relative tool.
Definition: pcb_actions.h:227
static TOOL_ACTION getAndPlace
Find an item and start moving.
Definition: pcb_actions.h:428
static TOOL_ACTION microwaveCreateLine
Definition: pcb_actions.h:396
static TOOL_ACTION trackViaSizeChanged
Definition: pcb_actions.h:290
static TOOL_ACTION showPythonConsole
Definition: pcb_actions.h:332
static TOOL_ACTION placePad
Activation of the drawing tool (placing a PAD)
Definition: pcb_actions.h:362
static TOOL_ACTION drag45Degree
Definition: pcb_actions.h:148
static TOOL_ACTION mirror
Mirroring of selected items.
Definition: pcb_actions.h:119
static TOOL_ACTION changeFootprint
Definition: pcb_actions.h:310
static TOOL_ACTION showLayersManager
Definition: pcb_actions.h:330
static TOOL_ACTION updateFootprint
Definition: pcb_actions.h:308
static TOOL_ACTION distributeVertically
Definition: pcb_actions.h:220
static TOOL_ACTION updateUnits
Definition: pcb_actions.h:407
static TOOL_ACTION swapLayers
Definition: pcb_actions.h:312
static TOOL_ACTION localRatsnestTool
Definition: pcb_actions.h:420
static TOOL_ACTION toggleLastNetHighlight
Definition: pcb_actions.h:410
static TOOL_ACTION changeFootprints
Definition: pcb_actions.h:311
static TOOL_ACTION layerInner3
Definition: pcb_actions.h:245
static TOOL_ACTION setAnchor
Definition: pcb_actions.h:167
static TOOL_ACTION layerInner24
Definition: pcb_actions.h:266
static TOOL_ACTION editTracksAndVias
Definition: pcb_actions.h:304
static TOOL_ACTION generateReportFile
Definition: pcb_actions.h:322
static TOOL_ACTION placeText
Definition: pcb_actions.h:157
static TOOL_ACTION zoneFill
Definition: pcb_actions.h:293
static TOOL_ACTION layerInner11
Definition: pcb_actions.h:253
static TOOL_ACTION alignBottom
Definition: pcb_actions.h:214
static TOOL_ACTION generateD356File
Definition: pcb_actions.h:323
static TOOL_ACTION createFootprint
Definition: pcb_actions.h:343
static TOOL_ACTION decWidth
Decrease width of currently drawn line.
Definition: pcb_actions.h:175
static TOOL_ACTION cutFootprint
Definition: pcb_actions.h:352
static TOOL_ACTION routerTuneDiffPairSkew
Activation of the Push and Shove router (skew tuning mode)
Definition: pcb_actions.h:195
static TOOL_ACTION moveExact
Activation of the exact move tool.
Definition: pcb_actions.h:128
static TOOL_ACTION copyFootprint
Definition: pcb_actions.h:353
static TOOL_ACTION layerTop
Definition: pcb_actions.h:242
static TOOL_ACTION distributeHorizontally
Definition: pcb_actions.h:219
static TOOL_ACTION pushPadSettings
Copy the current pad's settings to other pads in the module or on the board.
Definition: pcb_actions.h:385
static TOOL_ACTION cleanupTracksAndVias
Definition: pcb_actions.h:307
static TOOL_ACTION layerInner23
Definition: pcb_actions.h:265
static TOOL_ACTION highlightNetTool
Definition: pcb_actions.h:411
static TOOL_ACTION trackWidthInc
Definition: pcb_actions.h:285
static TOOL_ACTION duplicateIncrement
Activation of the duplication tool with incrementing (e.g. pad number)
Definition: pcb_actions.h:134
static TOOL_ACTION appendBoard
Definition: pcb_actions.h:415
static TOOL_ACTION zoneDisplayToggle
Definition: pcb_actions.h:239
static TOOL_ACTION routerSettingsDialog
Activation of the Push and Shove settings dialogs.
Definition: pcb_actions.h:198
static TOOL_ACTION toggleFootprintTree
Definition: pcb_actions.h:336
static TOOL_ACTION rotateCw
Rotation of selected objects.
Definition: pcb_actions.h:112
static TOOL_ACTION layerInner13
Definition: pcb_actions.h:255
static TOOL_ACTION layerPrev
Definition: pcb_actions.h:275
static TOOL_ACTION drawDimension
Definition: pcb_actions.h:158
static TOOL_ACTION importNetlist
Definition: pcb_actions.h:314
static TOOL_ACTION copyPadSettings
Copy the selected pad's settings to the board design settings.
Definition: pcb_actions.h:379
static TOOL_ACTION exportFootprint
Definition: pcb_actions.h:356
static TOOL_ACTION layerInner25
Definition: pcb_actions.h:267
static TOOL_ACTION editFootprint
Definition: pcb_actions.h:350
static TOOL_ACTION layerInner18
Definition: pcb_actions.h:260
static TOOL_ACTION pointEditorAddCorner
Break outline (insert additional points to an edge)
Definition: pcb_actions.h:207
static TOOL_ACTION pointEditorRemoveCorner
Removes a corner.
Definition: pcb_actions.h:210
static TOOL_ACTION createArray
Tool for creating an array of objects.
Definition: pcb_actions.h:371
static TOOL_ACTION applyPadSettings
Copy the default pad settings to the selected pad.
Definition: pcb_actions.h:382
static TOOL_ACTION zoneMerge
Definition: pcb_actions.h:297
static TOOL_ACTION alignLeft
Definition: pcb_actions.h:215
static TOOL_ACTION layerInner30
Definition: pcb_actions.h:272
static TOOL_ACTION layerInner29
Definition: pcb_actions.h:271
static TOOL_ACTION showRatsnest
Definition: pcb_actions.h:230
Add a new zone/keepout with fresh settings.
static TOOL_ACTION microwaveCreateGap
Definition: pcb_actions.h:388
static TOOL_ACTION layerInner10
Definition: pcb_actions.h:252
static TOOL_ACTION drawVia
Definition: pcb_actions.h:160
static TOOL_ACTION alignTop
Definition: pcb_actions.h:213
static TOOL_ACTION selectCopper
Selects whole copper connection.
Definition: pcb_actions.h:93
static TOOL_ACTION showEeschema
Definition: pcb_actions.h:416
All active tools
Definition: tool_event.h:147
static TOOL_ACTION generatePosFile
Definition: pcb_actions.h:321
static TOOL_ACTION drawZoneCutout
Definition: pcb_actions.h:162
static TOOL_ACTION layerInner15
Definition: pcb_actions.h:257
static TOOL_ACTION placeTarget
Definition: pcb_actions.h:164
static TOOL_ACTION routerInlineDrag
Activation of the Push and Shove router (inline dragging mode)
Definition: pcb_actions.h:203
static TOOL_ACTION hideDynamicRatsnest
Definition: pcb_actions.h:421
static TOOL_ACTION layerInner28
Definition: pcb_actions.h:270
static TOOL_ACTION zoneUnfillAll
Definition: pcb_actions.h:296
static TOOL_ACTION importFootprint
Definition: pcb_actions.h:355
static TOOL_ACTION boardSetup
Definition: pcb_actions.h:303
static TOOL_ACTION layerInner27
Definition: pcb_actions.h:269
static TOOL_ACTION moduleEdgeOutlines
Display module edges as outlines.
Definition: pcb_actions.h:374
Make a cutout to an existing zone.
static TOOL_ACTION inlineBreakTrack
Breaks track when router is not activated.
Definition: pcb_actions.h:146
static TOOL_ACTION layerInner17
Definition: pcb_actions.h:259
static TOOL_ACTION drag
Definition: pcb_actions.h:109
static TOOL_ACTION microwaveCreateStub
Definition: pcb_actions.h:390
static TOOL_ACTION zoneUnfill
Definition: pcb_actions.h:295
static TOOL_ACTION expandSelectedConnection
Expands the current selection to select a connection between two junctions.
Definition: pcb_actions.h:90
static TOOL_ACTION breakTrack
Break a single track into two segments at the cursor.
Definition: pcb_actions.h:143
static TOOL_ACTION clearHighlight
Definition: pcb_actions.h:408
static TOOL_ACTION layerInner20
Definition: pcb_actions.h:262
static TOOL_ACTION updateFootprints
Definition: pcb_actions.h:309
static TOOL_ACTION padDisplayMode
Definition: pcb_actions.h:233
static TOOL_ACTION closeZoneOutline
Definition: pcb_actions.h:169
static TOOL_ACTION importSpecctraSession
Definition: pcb_actions.h:316
static TOOL_ACTION rotateCcw
Definition: pcb_actions.h:113
static TOOL_ACTION drawCircle
Definition: pcb_actions.h:155
static TOOL_ACTION viaDisplayMode
Definition: pcb_actions.h:234
static TOOL_ACTION filterSelection
Filters the items in the current selection (invokes dialog)
Definition: pcb_actions.h:105
static TOOL_ACTION zoneDuplicate
Duplicate zone onto another layer.
Definition: pcb_actions.h:300
static TOOL_ACTION saveToLibrary
Definition: pcb_actions.h:348
static TOOL_ACTION createPadFromShapes
Definition: pcb_actions.h:364
static TOOL_ACTION flip
Flipping of selected objects.
Definition: pcb_actions.h:116
static TOOL_ACTION generateBOM
Definition: pcb_actions.h:324
static TOOL_ACTION layerInner22
Definition: pcb_actions.h:264
static TOOL_ACTION microwaveCreateFunctionShape
Definition: pcb_actions.h:394
static TOOL_ACTION defaultPadProperties
Definition: pcb_actions.h:359
static TOOL_ACTION arcPosture
Switch posture when drawing arc.
Definition: pcb_actions.h:178
static TOOL_ACTION layerChanged
Definition: pcb_actions.h:280
static TOOL_ACTION exportSpecctraDSN
Definition: pcb_actions.h:317
static TOOL_ACTION showMicrowaveToolbar
Definition: pcb_actions.h:331
static TOOL_ACTION editTextAndGraphics
Definition: pcb_actions.h:305
Board layer functions and definitions.
static TOOL_ACTION highlightNet
Definition: pcb_actions.h:409
static TOOL_ACTION highlightNetSelection
Definition: pcb_actions.h:412
#define _(s)
Definition: pcb_actions.cpp:50
static TOOL_ACTION selectOnSheetFromEeschema
Selects all components on sheet from Eeschema crossprobing.
Definition: pcb_actions.h:99
static TOOL_ACTION routeSingleTrack
Activation of the Push and Shove router.
Definition: pcb_actions.h:183
static TOOL_ACTION editFootprintInFpEditor
Definition: pcb_actions.h:329
static TOOL_ACTION listNets
Definition: pcb_actions.h:326
static TOOL_ACTION layerInner14
Definition: pcb_actions.h:256
Class TOOL_ACTION.
Definition: tool_action.h:46
static TOOL_ACTION layerInner9
Definition: pcb_actions.h:251
static TOOL_ACTION selectItem
Selects an item (specified as the event parameter).
Definition: pcb_actions.h:76
TOOL_EVENT MakeEvent() const
Function MakeEvent() Returns the event associated with the action (i.e.
Definition: tool_action.h:107
static TOOL_ACTION runDRC
Definition: pcb_actions.h:327
static TOOL_ACTION graphicDisplayMode
Definition: pcb_actions.h:235
static TOOL_ACTION positionRelative
Activation of the position relative tool.
Definition: pcb_actions.h:224
static TOOL_ACTION layerInner16
Definition: pcb_actions.h:258
static TOOL_ACTION deleteLastPoint
Definition: pcb_actions.h:168
boost::optional< T > OPT
Definition: optional.h:7
static TOOL_ACTION pasteFootprint
Definition: pcb_actions.h:354
static TOOL_ACTION layerInner4
Definition: pcb_actions.h:246
static TOOL_ACTION updateLocalRatsnest
Definition: pcb_actions.h:422
static TOOL_ACTION flipBoard
Definition: pcb_actions.h:282
static TOOL_ACTION layerInner19
Definition: pcb_actions.h:261
virtual OPT< TOOL_EVENT > TranslateLegacyId(int aId) override
Definition: pcb_actions.cpp:33
static TOOL_ACTION layerInner1
Definition: pcb_actions.h:243
static const char * text_xpm[]
static TOOL_ACTION alignCenterX
Definition: pcb_actions.h:217
static TOOL_ACTION viaSizeDec
Definition: pcb_actions.h:288
static TOOL_ACTION drawZone
Definition: pcb_actions.h:159
static TOOL_ACTION deleteFootprint
Definition: pcb_actions.h:351
static TOOL_ACTION selectionCursor
Select a single item under the cursor position.
Definition: pcb_actions.h:70
static TOOL_ACTION trackDisplayMode
Definition: pcb_actions.h:232
static TOOL_ACTION newFootprint
Definition: pcb_actions.h:340
static TOOL_ACTION generateDrillFiles
Definition: pcb_actions.h:320
static TOOL_ACTION layerInner12
Definition: pcb_actions.h:254
static TOOL_ACTION selectSameSheet
Selects all components on the same sheet as the selected footprint.
Definition: pcb_actions.h:102
static TOOL_ACTION layerToggle
Definition: pcb_actions.h:278
static TOOL_ACTION zoneDisplayEnable
Definition: pcb_actions.h:236
static TOOL_ACTION routerTuneSingleTrace
Activation of the Push and Shove router (tune single line mode)
Definition: pcb_actions.h:189
static TOOL_ACTION routeDiffPair
Activation of the Push and Shove router (differential pair mode)
Definition: pcb_actions.h:186