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