KiCad PCB EDA Suite
Loading...
Searching...
No Matches
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-2023 CERN
5 * Copyright (C) 2016-2023 KiCad Developers, see AUTHORS.txt for contributors.
6 * @author Maciej Suminski <[email protected]>
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 "tool/tool_action.h"
28#include "tool/tool_event.h"
29#include <pcbnew_id.h>
30#include <bitmaps.h>
31#include <layer_ids.h>
33#include <pcb_reference_image.h>
34#include <tool/tool_manager.h>
36#include <router/pns_router.h>
38
39// Actions, being statically-defined, require specialized I18N handling. We continue to
40// use the _() macro so that string harvesting by the I18N framework doesn't have to be
41// specialized, but we don't translate on initialization and instead do it in the getters.
42
43#undef _
44#define _(s) s
45
46// clang-format off
47
48// CONVERT_TOOL
49//
51 .Name( "pcbnew.Convert.convertToPoly" )
52 .Scope( AS_GLOBAL )
53 .FriendlyName( _( "Create Polygon from Selection..." ) )
54 .Tooltip( _( "Creates a graphic polygon from the selection" ) )
56
58 .Name( "pcbnew.Convert.convertToZone" )
59 .Scope( AS_GLOBAL )
60 .FriendlyName( _( "Create Zone from Selection..." ) )
61 .Tooltip( _( "Creates a copper zone from the selection" ) )
62 .Icon( BITMAPS::add_zone ) );
63
65 .Name( "pcbnew.Convert.convertToKeepout" )
66 .Scope( AS_GLOBAL )
67 .FriendlyName( _( "Create Rule Area from Selection..." ) )
68 .Tooltip( _( "Creates a rule area from the selection" ) )
70
72 .Name( "pcbnew.Convert.convertToLines" )
73 .Scope( AS_GLOBAL )
74 .FriendlyName( _( "Create Lines from Selection..." ) )
75 .Tooltip( _( "Creates graphic lines from the selection" ) )
76 .Icon( BITMAPS::add_line ) );
77
79 .Name( "pcbnew.Convert.convertToArc" )
80 .Scope( AS_GLOBAL )
81 .FriendlyName( _( "Create Arc from Selection" ) )
82 .Tooltip( _( "Creates an arc from the selected line segment" ) )
83 .Icon( BITMAPS::add_arc ) );
84
86 .Name( "pcbnew.Convert.convertToTracks" )
87 .Scope( AS_GLOBAL )
88 .FriendlyName( _( "Create Tracks from Selection" ) )
89 .Tooltip( _( "Creates tracks from the selected graphic lines" ) )
90 .Icon( BITMAPS::add_tracks ) );
91
92
93// DRAWING_TOOL
94//
96 .Name( "pcbnew.InteractiveDrawing.line" )
97 .Scope( AS_GLOBAL )
98 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'L' )
99 .LegacyHotkeyName( "Draw Line" )
100 .FriendlyName( _( "Draw Line" ) )
101 .Tooltip( _( "Draw a line" ) )
103 .Flags( AF_ACTIVATE ) );
104
106 .Name( "pcbnew.InteractiveDrawing.graphicPolygon" )
107 .Scope( AS_GLOBAL )
108 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'P' )
109 .LegacyHotkeyName( "Draw Graphic Polygon" )
110 .FriendlyName( _( "Draw Graphic Polygon" ) )
111 .Tooltip( _( "Draw a graphic polygon" ) )
113 .Flags( AF_ACTIVATE )
114 .Parameter( ZONE_MODE::GRAPHIC_POLYGON ) );
115
117 .Name( "pcbnew.InteractiveDrawing.rectangle" )
118 .Scope( AS_GLOBAL )
119 .FriendlyName( _( "Draw Rectangle" ) )
120 .Tooltip( _( "Draw a rectangle" ) )
122 .Flags( AF_ACTIVATE ) );
123
125 .Name( "pcbnew.InteractiveDrawing.circle" )
126 .Scope( AS_GLOBAL )
127 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'C' )
128 .LegacyHotkeyName( "Draw Circle" )
129 .FriendlyName( _( "Draw Circle" ) )
130 .Tooltip( _( "Draw a circle" ) )
131 .Icon( BITMAPS::add_circle )
132 .Flags( AF_ACTIVATE ) );
133
135 .Name( "pcbnew.InteractiveDrawing.arc" )
136 .Scope( AS_GLOBAL )
137 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'A' )
138 .LegacyHotkeyName( "Draw Arc" )
139 .FriendlyName( _( "Draw Arc" ) )
140 .Tooltip( _( "Draw an arc" ) )
141 .Icon( BITMAPS::add_arc )
142 .Flags( AF_ACTIVATE ) );
143
145 .Name( "pcbnew.InteractiveDrawing.placeCharacteristics" )
146 .Scope( AS_GLOBAL )
147 .LegacyHotkeyName( "Add Board Characteristics" )
148 .FriendlyName( _( "Add Board Characteristics" ) )
149 .Tooltip( _( "Add a board characteristics table on a graphic layer" ) )
150 .Flags( AF_ACTIVATE ) );
151
153 .Name( "pcbnew.InteractiveDrawing.placeStackup" )
154 .Scope( AS_GLOBAL )
155 .LegacyHotkeyName( "Add Stackup Table" )
156 .FriendlyName( _( "Add Stackup Table" ) )
157 .Tooltip( _( "Add a board stackup table on a graphic layer" ) )
158 .Flags( AF_ACTIVATE ) );
159
161 .Name( "pcbnew.InteractiveDrawing.placeReferenceImage" )
162 .Scope( AS_GLOBAL )
163 .FriendlyName( _( "Add Reference Image" ) )
164 .Tooltip( _( "Add a bitmap image to be used as a reference (image will not be included in any output)" ) )
165 .Icon( BITMAPS::image )
166 .Flags( AF_ACTIVATE )
167 .Parameter<PCB_REFERENCE_IMAGE*>( nullptr ) );
168
170 .Name( "pcbnew.InteractiveDrawing.text" )
171 .Scope( AS_GLOBAL )
172 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'T' )
173 .LegacyHotkeyName( "Add Text" )
174 .FriendlyName( _( "Add Text" ) )
175 .Tooltip( _( "Add a text item" ) )
176 .Icon( BITMAPS::text )
177 .Flags( AF_ACTIVATE ) );
178
180 .Name( "pcbnew.InteractiveDrawing.textbox" )
181 .Scope( AS_GLOBAL )
182 .FriendlyName( _( "Add Text Box" ) )
183 .Tooltip( _( "Add a line-wrapped text item" ) )
184 .Icon( BITMAPS::add_textbox )
185 .Flags( AF_ACTIVATE ) );
186
188 .Name( "pcbnew.InteractiveDrawing.drawTable" )
189 .Scope( AS_GLOBAL )
190 .FriendlyName( _( "Add Table" ) )
191 .Tooltip( _( "Draw table" ) )
192 .Icon( BITMAPS::spreadsheet ) // JEY TODO
193 .Flags( AF_ACTIVATE ) );
194
196 .Name( "pcbnew.lengthTuner.SpacingIncrease" )
197 .Scope( AS_GLOBAL )
198 .DefaultHotkey( '1' )
199 .LegacyHotkeyName( "Increase meander spacing by one step." )
200 .FriendlyName( _( "Increase Spacing" ) )
201 .Tooltip( _( "Increase tuning pattern spacing by one step." ) )
203
205 .Name( "pcbnew.lengthTuner.SpacingDecrease" )
206 .Scope( AS_GLOBAL )
207 .DefaultHotkey( '2' )
208 .LegacyHotkeyName( "Decrease meander spacing by one step." )
209 .FriendlyName( _( "Decrease Spacing" ) )
210 .Tooltip( _( "Decrease tuning pattern spacing by one step." ) )
212
214 .Name( "pcbnew.lengthTuner.AmplIncrease" )
215 .Scope( AS_GLOBAL )
216 .DefaultHotkey( '3' )
217 .LegacyHotkeyName( "Increase meander amplitude by one step." )
218 .FriendlyName( _( "Increase Amplitude" ) )
219 .Tooltip( _( "Increase tuning pattern amplitude by one step." ) )
221
223 .Name( "pcbnew.lengthTuner.AmplDecrease" )
224 .Scope( AS_GLOBAL )
225 .DefaultHotkey( '4' )
226 .LegacyHotkeyName( "Decrease meander amplitude by one step." )
227 .FriendlyName( _( "Decrease Amplitude" ) )
228 .Tooltip( _( "Decrease tuning pattern amplitude by one step." ) )
230
231
233 .Name( "pcbnew.InteractiveDrawing.alignedDimension" )
234 .Scope( AS_GLOBAL )
235 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'H' )
236 .LegacyHotkeyName( "Add Dimension" )
237 .FriendlyName( _( "Add Aligned Dimension" ) )
238 .Tooltip( _( "Add an aligned linear dimension" ) )
240 .Flags( AF_ACTIVATE ) );
241
243 .Name( "pcbnew.InteractiveDrawing.centerDimension" )
244 .Scope( AS_GLOBAL )
245 .FriendlyName( _( "Add Center Dimension" ) )
246 .Tooltip( _( "Add a center dimension" ) )
248 .Flags( AF_ACTIVATE ) );
249
251 .Name( "pcbnew.InteractiveDrawing.radialDimension" )
252 .Scope( AS_GLOBAL )
253 .FriendlyName( _( "Add Radial Dimension" ) )
254 .Tooltip( _( "Add a radial dimension" ) )
256 .Flags( AF_ACTIVATE ) );
257
259 .Name( "pcbnew.InteractiveDrawing.orthogonalDimension" )
260 .Scope( AS_GLOBAL )
261 .FriendlyName( _( "Add Orthogonal Dimension" ) )
262 .Tooltip( _( "Add an orthogonal dimension" ) )
264 .Flags( AF_ACTIVATE ) );
265
267 .Name( "pcbnew.InteractiveDrawing.leader" )
268 .Scope( AS_GLOBAL )
269 .FriendlyName( _( "Add Leader" ) )
270 .Tooltip( _( "Add a leader dimension" ) )
271 .Icon( BITMAPS::add_leader )
272 .Flags( AF_ACTIVATE ) );
273
275 .Name( "pcbnew.InteractiveDrawing.zone" )
276 .Scope( AS_GLOBAL )
277#ifdef __WXOSX_MAC__
278 .DefaultHotkey( MD_ALT + 'Z' )
279#else
280 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'Z' )
281#endif
282 .LegacyHotkeyName( "Add Filled Zone" )
283 .FriendlyName( _( "Add Filled Zone" ) )
284 .Tooltip( _( "Add a filled zone" ) )
285 .Icon( BITMAPS::add_zone )
286 .Flags( AF_ACTIVATE )
287 .Parameter( ZONE_MODE::ADD ) );
288
290 .Name( "pcbnew.InteractiveDrawing.via" )
291 .Scope( AS_GLOBAL )
292 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'V' )
293 .LegacyHotkeyName( "Add Vias" )
294 .FriendlyName( _( "Add Vias" ) )
295 .Tooltip( _( "Add free-standing vias" ) )
296 .Icon( BITMAPS::add_via )
297 .Flags( AF_ACTIVATE ) );
298
300 .Name( "pcbnew.InteractiveDrawing.ruleArea" )
301 .Scope( AS_GLOBAL )
302 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'K' )
303 .LegacyHotkeyName( "Add Keepout Area" )
304 .FriendlyName( _( "Add Rule Area" ) )
305 .Tooltip( _( "Add a rule area (keepout)" ) )
307 .Flags( AF_ACTIVATE )
308 .Parameter( ZONE_MODE::ADD ) );
309
311 .Name( "pcbnew.InteractiveDrawing.zoneCutout" )
312 .Scope( AS_GLOBAL )
313 .DefaultHotkey( MD_SHIFT + 'C' )
314 .LegacyHotkeyName( "Add a Zone Cutout" )
315 .FriendlyName( _( "Add a Zone Cutout" ) )
316 .Tooltip( _( "Add a cutout area of an existing zone" ) )
318 .Flags( AF_ACTIVATE )
319 .Parameter( ZONE_MODE::CUTOUT ) );
320
322 .Name( "pcbnew.InteractiveDrawing.similarZone" )
323 .Scope( AS_GLOBAL )
324 .DefaultHotkey( MD_SHIFT + MD_CTRL + '.' )
325 .LegacyHotkeyName( "Add a Similar Zone" )
326 .FriendlyName( _( "Add a Similar Zone" ) )
327 .Tooltip( _( "Add a zone with the same settings as an existing zone" ) )
328 .Icon( BITMAPS::add_zone )
329 .Flags( AF_ACTIVATE )
330 .Parameter( ZONE_MODE::SIMILAR ) );
331
333 .Name( "pcbnew.InteractiveDrawing.placeImportedGraphics" )
334 .Scope( AS_GLOBAL )
335 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'F' )
336 .LegacyHotkeyName( "Place DXF" )
337 .FriendlyName( _( "Import Graphics..." ) )
338 .Tooltip( _( "Import 2D drawing file" ) )
340 .Flags( AF_ACTIVATE ) );
341
343 .Name( "pcbnew.InteractiveDrawing.setAnchor" )
344 .Scope( AS_GLOBAL )
345 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'N' )
346 .LegacyHotkeyName( "Place the Footprint Anchor" )
347 .FriendlyName( _( "Place the Footprint Anchor" ) )
348 .Tooltip( _( "Set the coordinate origin point (anchor) of the footprint" ) )
349 .Icon( BITMAPS::anchor )
350 .Flags( AF_ACTIVATE ) );
351
353 .Name( "pcbnew.InteractiveDrawing.incWidth" )
354 .Scope( AS_CONTEXT )
355 .DefaultHotkey( MD_CTRL + '+' )
356 .LegacyHotkeyName( "Increase Line Width" )
357 .FriendlyName( _( "Increase Line Width" ) )
358 .Tooltip( _( "Increase the line width" ) ) );
359
361 .Name( "pcbnew.InteractiveDrawing.decWidth" )
362 .Scope( AS_CONTEXT )
363 .DefaultHotkey( MD_CTRL + '-' )
364 .LegacyHotkeyName( "Decrease Line Width" )
365 .FriendlyName( _( "Decrease Line Width" ) )
366 .Tooltip( _( "Decrease the line width" ) ) );
367
369 .Name( "pcbnew.InteractiveDrawing.arcPosture" )
370 .Scope( AS_CONTEXT )
371 .DefaultHotkey( '/' )
372 .LegacyHotkeyName( "Switch Track Posture" )
373 .FriendlyName( _( "Switch Arc Posture" ) )
374 .Tooltip( _( "Switch the arc posture" ) ) );
375
376
378 .Name( "common.Control.magneticSnapActiveLayer" )
379 .Scope( AS_GLOBAL )
380 .FriendlyName( _( "Snap to Objects on the Active Layer Only" ) )
381 .Tooltip( _( "Enables snapping to objects on the active layer only" ) ) );
382
384 .Name( "common.Control.magneticSnapAllLayers" )
385 .Scope( AS_GLOBAL )
386 .FriendlyName( _( "Snap to Objects on All Layers" ) )
387 .Tooltip( _( "Enables snapping to objects on all visible layers" ) ) );
388
390 .Name( "common.Control.magneticSnapToggle" )
391 .Scope( AS_GLOBAL )
392 .DefaultHotkey( MD_SHIFT + 'S' )
393 .FriendlyName( _( "Toggle Snapping Between Active and All Layers" ) )
394 .Tooltip( _( "Toggles between snapping on all visible layers and only the active area" ) ) );
395
397 .Name( "pcbnew.InteractiveDrawing.deleteLastPoint" )
398 .Scope( AS_CONTEXT )
399 .DefaultHotkey( WXK_BACK )
400 .FriendlyName( _( "Delete Last Point" ) )
401 .Tooltip( _( "Delete the last point added to the current item" ) )
402 .Icon( BITMAPS::undo ) );
403
405 .Name( "pcbnew.InteractiveDrawing.closeOutline" )
406 .Scope( AS_CONTEXT )
407 .FriendlyName( _( "Close Outline" ) )
408 .Tooltip( _( "Close the in progress outline" ) )
409 .Icon( BITMAPS::checked_ok ) );
410
411// DRC
412//
414 .Name( "pcbnew.DRCTool.runDRC" )
415 .Scope( AS_GLOBAL )
416 .FriendlyName( _( "Design Rules Checker" ) )
417 .Tooltip( _( "Show the design rules checker window" ) )
418 .Icon( BITMAPS::erc ) );
419
420
421// EDIT_TOOL
422//
424 .Name( "pcbnew.EditorControl.EditFpInFpEditor" )
425 .Scope( AS_GLOBAL )
426 .DefaultHotkey( MD_CTRL + 'E' )
427 .LegacyHotkeyName( "Edit with Footprint Editor" )
428 .FriendlyName( _( "Open in Footprint Editor" ) )
429 .Tooltip( _( "Opens the selected footprint in the Footprint Editor" ) )
430 .Icon( BITMAPS::module_editor ) );
431
433 .Name( "pcbnew.EditorControl.EditLibFpInFpEditor" )
434 .Scope( AS_GLOBAL )
435 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'E' )
436 .FriendlyName( _( "Edit Library Footprint..." ) )
437 .Tooltip( _( "Opens the selected footprint in the Footprint Editor" ) )
438 .Icon( BITMAPS::module_editor ) );
439
441 .Name( "pcbnew.InteractiveEdit.FindMove" )
442 .Scope( AS_GLOBAL )
443 .DefaultHotkey( 'T' )
444 .LegacyHotkeyName( "Get and Move Footprint" )
445 .FriendlyName( _( "Get and Move Footprint" ) )
446 .Tooltip( _( "Selects a footprint by reference designator and places it under the cursor for moving" ) )
447 .Icon( BITMAPS::move )
448 .Flags( AF_ACTIVATE ) );
449
451 .Name( "pcbnew.InteractiveMove.move" )
452 .Scope( AS_GLOBAL )
453 .DefaultHotkey( 'M' )
454 .LegacyHotkeyName( "Move Item" )
455 .FriendlyName( _( "Move" ) )
456 .Tooltip( _( "Moves the selected item(s)" ) )
457 .Icon( BITMAPS::move )
458 .Flags( AF_ACTIVATE )
460
462 .Name( "pcbnew.InteractiveMove.moveIndividually" )
463 .Scope( AS_GLOBAL )
464 .DefaultHotkey( MD_CTRL + 'M' )
465 .FriendlyName( _( "Move Individually" ) )
466 .Tooltip( _( "Moves the selected items one-by-one" ) )
467 .Icon( BITMAPS::move )
468 .Flags( AF_ACTIVATE )
470
472 .Name( "pcbnew.InteractiveMove.moveWithReference" )
473 .Scope( AS_GLOBAL )
474 .FriendlyName( _( "Move with Reference" ) )
475 .Tooltip( _( "Moves the selected item(s) with a specified starting point" ) )
476 .Icon( BITMAPS::move )
477 .Flags( AF_ACTIVATE )
479
481 .Name( "pcbnew.InteractiveMove.copyWithReference" )
482 .Scope( AS_GLOBAL )
483 .FriendlyName( _( "Copy with Reference" ) )
484 .Tooltip( _( "Copy selected item(s) to clipboard with a specified starting point" ) )
485 .Icon( BITMAPS::copy )
486 .Flags( AF_ACTIVATE ) );
487
489 .Name( "pcbnew.InteractiveEdit.duplicateIncrementPads" )
490 .Scope( AS_GLOBAL )
491 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'D' )
492 .LegacyHotkeyName( "Duplicate Item and Increment" )
493 .FriendlyName( _( "Duplicate and Increment" ) )
494 .Tooltip( _( "Duplicates the selected item(s), incrementing pad numbers" ) )
495 .Icon( BITMAPS::duplicate ) );
496
498 .Name( "pcbnew.InteractiveEdit.moveExact" )
499 .Scope( AS_GLOBAL )
500 .DefaultHotkey( MD_SHIFT + 'M' )
501 .LegacyHotkeyName( "Move Item Exactly" )
502 .FriendlyName( _( "Move Exactly..." ) )
503 .Tooltip( _( "Moves the selected item(s) by an exact amount" ) )
504 .Icon( BITMAPS::move_exactly ) );
505
507 .Name( "pcbnew.InteractiveEdit.moveCorner" )
508 .Scope( AS_GLOBAL )
509 .FriendlyName( _( "Move Corner To..." ) )
510 .Tooltip( _( "Move the active corner to an exact location" ) )
511 .Icon( BITMAPS::move_exactly ) );
512
514 .Name( "pcbnew.InteractiveEdit.moveMidpoint" )
515 .Scope( AS_GLOBAL )
516 .FriendlyName( _( "Move Midpoint To..." ) )
517 .Tooltip( _( "Move the active midpoint to an exact location" ) )
518 .Icon( BITMAPS::move_exactly ) );
519
521 .Name( "pcbnew.InteractiveEdit.createArray" )
522 .Scope( AS_GLOBAL )
523 .DefaultHotkey( MD_CTRL + 'T' )
524 .LegacyHotkeyName( "Create Array" )
525 .FriendlyName( _( "Create Array..." ) )
526 .Icon( BITMAPS::array )
527 .Flags( AF_ACTIVATE ) );
528
530 .Name( "pcbnew.InteractiveEdit.rotateCw" )
531 .Scope( AS_GLOBAL )
532 .DefaultHotkey( MD_SHIFT + 'R' )
533 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
534 .LegacyHotkeyName( "Rotate Item Clockwise (Modern Toolset only)" )
535 .FriendlyName( _( "Rotate Clockwise" ) )
536 .Tooltip( _( "Rotates selected item(s) clockwise" ) )
537 .Icon( BITMAPS::rotate_cw )
538 .Flags( AF_NONE )
539 .Parameter( -1 ) );
540
542 .Name( "pcbnew.InteractiveEdit.rotateCcw" )
543 .Scope( AS_GLOBAL )
544 .DefaultHotkey( 'R' )
545 .LegacyHotkeyName( "Rotate Item" )
546 .FriendlyName( _( "Rotate Counterclockwise" ) )
547 .Tooltip( _( "Rotates selected item(s) counterclockwise" ) )
548 .Icon( BITMAPS::rotate_ccw )
549 .Flags( AF_NONE )
550 .Parameter( 1 ) );
551
553 .Name( "pcbnew.InteractiveEdit.flip" )
554 .Scope( AS_GLOBAL )
555 .DefaultHotkey( 'F' )
556 .LegacyHotkeyName( "Flip Item" )
557 .FriendlyName( _( "Change Side / Flip" ) )
558 .Tooltip( _( "Flips selected item(s) to opposite side of board" ) )
559 .Icon( BITMAPS::swap_layer ) );
560
562 .Name( "pcbnew.InteractiveEdit.mirrorHoriontally" )
563 .Scope( AS_GLOBAL )
564 .FriendlyName( _( "Mirror Horizontally" ) )
565 .Tooltip( _( "Mirrors selected item across the Y axis" ) )
566 .Icon( BITMAPS::mirror_h ) );
567
569 .Name( "pcbnew.InteractiveEdit.mirrorVertically" )
570 .Scope( AS_GLOBAL )
571 .FriendlyName( _( "Mirror Vertically" ) )
572 .Tooltip( _( "Mirrors selected item across the X axis" ) )
573 .Icon( BITMAPS::mirror_v ) );
574
576 .Name( "pcbnew.InteractiveEdit.swap" )
577 .Scope( AS_GLOBAL )
578 .DefaultHotkey( 'S' )
579 .FriendlyName( _( "Swap" ) )
580 .Tooltip( _( "Swaps selected items' positions" ) )
581 .Icon( BITMAPS::swap ) );
582
584 .Name( "pcbnew.InteractiveEdit.packAndMoveFootprints" )
585 .Scope( AS_GLOBAL )
586 .DefaultHotkey( 'P' )
587 .FriendlyName( _( "Pack and Move Footprints" ) )
588 .Tooltip( _( "Sorts selected footprints by reference, packs based on size and initiates movement" ) )
589 .Icon( BITMAPS::pack_footprints ) );
590
592 .Name( "pcbnew.InteractiveEdit.skip" )
593 .Scope( AS_CONTEXT )
594 .DefaultHotkey( WXK_TAB )
595 .FriendlyName( _( "Skip" ) )
596 .Tooltip( _( "Skip item" ) )
597 .Icon( BITMAPS::right ) );
598
600 .Name( "pcbnew.InteractiveEdit.changeTrackWidth" )
601 .Scope( AS_GLOBAL )
602 .FriendlyName( _( "Change Track Width" ) )
603 .Tooltip( _( "Updates selected track & via sizes" ) ) );
604
606 .Name( "pcbnew.InteractiveEdit.filletTracks" )
607 .Scope( AS_GLOBAL )
608 .FriendlyName( _( "Fillet Tracks" ) )
609 .Tooltip( _( "Adds arcs tangent to the selected straight track segments" ) ) );
610
612 .Name( "pcbnew.InteractiveEdit.filletLines" )
613 .Scope( AS_GLOBAL )
614 .FriendlyName( _( "Fillet Lines..." ) )
615 .Tooltip( _( "Adds arcs tangent to the selected lines" ) )
616 .Icon( BITMAPS::fillet ) );
617
619 .Name( "pcbnew.InteractiveEdit.chamferLines" )
620 .Scope( AS_GLOBAL )
621 .FriendlyName( _( "Chamfer Lines..." ) )
622 .Tooltip( _( "Cut away corners between selected lines" ) )
623 .Icon( BITMAPS::chamfer ) );
624
626 .Name( "pcbnew.InteractiveEdit.healShapes" )
627 .Scope( AS_GLOBAL )
628 .FriendlyName( _( "Heal Shapes" ) )
629 .Tooltip( _( "Connect shapes, possibly extending or cutting them, or adding extra geometry" ) )
630 .Icon( BITMAPS::heal_shapes ) );
631
633 .Name( "pcbnew.InteractiveEdit.extendLines" )
634 .Scope( AS_GLOBAL )
635 .FriendlyName( _( "Extend Lines to Meet" ) )
636 .Tooltip( _( "Extend lines to meet each other" ) ) );
637
639 .Name( "pcbnew.InteractiveEdit.mergePolygons" )
640 .Scope( AS_GLOBAL )
641 .FriendlyName( _( "Merge Polygons" ) )
642 .Tooltip( _( "Merge selected polygons into a single polygon" ) )
643 .Icon( BITMAPS::merge_polygons ) );
644
646 .Name( "pcbnew.InteractiveEdit.subtractPolygons" )
647 .Scope( AS_GLOBAL )
648 .FriendlyName( _( "Subtract Polygons" ) )
649 .Tooltip( _( "Subtract selected polygons from the last one selected" ) )
651
653 .Name( "pcbnew.InteractiveEdit.intersectPolygons" )
654 .Scope( AS_GLOBAL )
655 .FriendlyName( _( "Intersect Polygons" ) )
656 .Tooltip( _( "Create the intersection of the selected polygons" ) )
658
660 .Name( "pcbnew.InteractiveEdit.deleteFull" )
661 .Scope( AS_GLOBAL )
662 .DefaultHotkey( MD_SHIFT + WXK_DELETE )
663 .LegacyHotkeyName( "Delete Full Track" )
664 .FriendlyName( _( "Delete Full Track" ) )
665 .Tooltip( _( "Deletes selected item(s) and copper connections" ) )
667 .Flags( AF_NONE )
668 .Parameter( PCB_ACTIONS::REMOVE_FLAGS::ALT ) );
669
671 .Name( "pcbnew.InteractiveEdit.properties" )
672 .Scope( AS_GLOBAL )
673 .DefaultHotkey( 'E' )
674 .LegacyHotkeyName( "Edit Item" )
675 .FriendlyName( _( "Properties..." ) )
676 .Tooltip( _( "Displays item properties dialog" ) )
677 .Icon( BITMAPS::edit ) );
678
679
680// FOOTPRINT_EDITOR_CONTROL
681//
683 .Name( "pcbnew.ModuleEditor.showFootprintTree" )
684 .Scope( AS_GLOBAL )
685 .FriendlyName( _( "Show Footprint Tree" ) )
686 .Icon( BITMAPS::search_tree ) );
687
689 .Name( "pcbnew.ModuleEditor.hideFootprintTree" )
690 .Scope( AS_GLOBAL )
691 .FriendlyName( _( "Hide Footprint Tree" ) )
692 .Icon( BITMAPS::search_tree ) );
693
695 .Name( "pcbnew.ModuleEditor.newFootprint" )
696 .Scope( AS_GLOBAL )
697 .DefaultHotkey( MD_CTRL + 'N' )
698 .LegacyHotkeyName( "New" )
699 .FriendlyName( _( "New Footprint..." ) )
700 .Tooltip( _( "Create a new, empty footprint" ) )
701 .Icon( BITMAPS::new_footprint ) );
702
704 .Name( "pcbnew.ModuleEditor.createFootprint" )
705 .Scope( AS_GLOBAL )
706 .FriendlyName( _( "Create Footprint..." ) )
707 .Tooltip( _( "Create a new footprint using the Footprint Wizard" ) )
708 .Icon( BITMAPS::module_wizard ) );
709
711 .Name( "pcbnew.ModuleEditor.editFootprint" )
712 .Scope( AS_GLOBAL )
713 .FriendlyName( _( "Edit Footprint" ) )
714 .Tooltip( _( "Show selected footprint on editor canvas" ) )
715 .Icon( BITMAPS::edit ) );
716
718 .Name( "pcbnew.ModuleEditor.duplicateFootprint" )
719 .Scope( AS_GLOBAL )
720 .FriendlyName( _( "Duplicate Footprint" ) )
721 .Tooltip( _( "Make a copy of the selected footprint" ) )
722 .Icon( BITMAPS::duplicate ) );
723
725 .Name( "pcbnew.ModuleEditor.renameFootprint" )
726 .Scope( AS_GLOBAL )
727 .FriendlyName( _( "Rename Footprint..." ) )
728 .Tooltip( _( "Rename the selected footprint" ) )
729 .Icon( BITMAPS::edit ) );
730
732 .Name( "pcbnew.ModuleEditor.deleteFootprint" )
733 .Scope( AS_GLOBAL )
734 .FriendlyName( _( "Delete Footprint from Library" ) )
735 .Tooltip( _( "Delete Footprint from Library" ) )
736 .Icon( BITMAPS::trash ) );
737
739 .Name( "pcbnew.ModuleEditor.cutFootprint" )
740 .Scope( AS_GLOBAL )
741 .FriendlyName( _( "Cut Footprint" ) )
742 .Icon( BITMAPS::cut ) );
743
745 .Name( "pcbnew.ModuleEditor.copyFootprint" )
746 .Scope( AS_GLOBAL )
747 .FriendlyName( _( "Copy Footprint" ) )
748 .Icon( BITMAPS::copy ) );
749
751 .Name( "pcbnew.ModuleEditor.pasteFootprint" )
752 .Scope( AS_GLOBAL )
753 .FriendlyName( _( "Paste Footprint" ) )
754 .Icon( BITMAPS::paste ) );
755
757 .Name( "pcbnew.ModuleEditor.importFootprint" )
758 .Scope( AS_GLOBAL )
759 .FriendlyName( _( "Import Footprint..." ) )
760 .Tooltip( _( "Import footprint from file" ) )
761 .Icon( BITMAPS::import_module ) );
762
764 .Name( "pcbnew.ModuleEditor.exportFootprint" )
765 .Scope( AS_GLOBAL )
766 .FriendlyName( _( "Export Current Footprint..." ) )
767 .Tooltip( _( "Export edited footprint to file" ) )
768 .Icon( BITMAPS::export_module ) );
769
771 .Name( "pcbnew.ModuleEditor.openWithTextEditor" )
772 .Scope( AS_GLOBAL )
773 .FriendlyName( _( "Edit in a Text Editor..." ) )
774 .Tooltip( _( "Open a library file with a text editor" ) )
775 .Icon( BITMAPS::editor ) );
776
778 .Name( "pcbnew.ModuleEditor.footprintProperties" )
779 .Scope( AS_GLOBAL )
780 .FriendlyName( _( "Footprint Properties..." ) )
781 .Icon( BITMAPS::module_options ) );
782
784 .Name( "pcbnew.ModuleEditor.checkFootprint" )
785 .Scope( AS_GLOBAL )
786 .FriendlyName( _( "Footprint Checker" ) )
787 .Tooltip( _( "Show the footprint checker window" ) )
788 .Icon( BITMAPS::erc ) );
789
790// GLOBAL_EDIT_TOOL
791//
793 .Name( "pcbnew.GlobalEdit.updateFootprint" )
794 .Scope( AS_GLOBAL )
795 .FriendlyName( _( "Update Footprint..." ) )
796 .Tooltip( _( "Update footprint to include any changes from the library" ) )
797 .Icon( BITMAPS::refresh ) );
798
800 .Name( "pcbnew.GlobalEdit.updateFootprints" )
801 .Scope( AS_GLOBAL )
802 .FriendlyName( _( "Update Footprints from Library..." ) )
803 .Tooltip( _( "Update footprints to include any changes from the library" ) )
804 .Icon( BITMAPS::refresh ) );
805
807 .Name( "pcbnew.GlobalEdit.removeUnusedPads" )
808 .Scope( AS_GLOBAL )
809 .FriendlyName( _( "Remove Unused Pads..." ) )
810 .Tooltip( _( "Remove or restore the unconnected inner layers on through hole pads and vias" ) )
811 .Icon( BITMAPS::pads_remove ) );
812
814 .Name( "pcbnew.GlobalEdit.changeFootprint" )
815 .Scope( AS_GLOBAL )
816 .FriendlyName( _( "Change Footprint..." ) )
817 .Tooltip( _( "Assign a different footprint from the library" ) )
818 .Icon( BITMAPS::exchange ) );
819
821 .Name( "pcbnew.GlobalEdit.changeFootprints" )
822 .Scope( AS_GLOBAL )
823 .FriendlyName( _( "Change Footprints..." ) )
824 .Tooltip( _( "Assign different footprints from the library" ) )
825 .Icon( BITMAPS::exchange ) );
826
828 .Name( "pcbnew.GlobalEdit.swapLayers" )
829 .Scope( AS_GLOBAL )
830 .FriendlyName( _( "Swap Layers..." ) )
831 .Tooltip( _( "Move tracks or drawings from one layer to another" ) )
832 .Icon( BITMAPS::swap_layer ) );
833
835 .Name( "pcbnew.GlobalEdit.editTracksAndVias" )
836 .Scope( AS_GLOBAL )
837 .FriendlyName( _( "Edit Track & Via Properties..." ) )
838 .Tooltip( _( "Edit track and via properties globally across board" ) )
839 .Icon( BITMAPS::width_track_via ) );
840
842 .Name( "pcbnew.GlobalEdit.editTextAndGraphics" )
843 .Scope( AS_GLOBAL )
844 .FriendlyName( _( "Edit Text & Graphics Properties..." ) )
845 .Tooltip( _( "Edit Text and graphics properties globally across board" ) )
846 .Icon( BITMAPS::text ) );
847
849 .Name( "pcbnew.GlobalEdit.editTeardrops" )
850 .Scope( AS_GLOBAL )
851 .FriendlyName( _( "Edit Teardrops..." ) )
852 .Tooltip( _( "Add, remove or edit teardrops globally across board" ) )
853 .Icon( BITMAPS::via ) );
854
856 .Name( "pcbnew.GlobalEdit.globalDeletions" )
857 .Scope( AS_GLOBAL )
858 .FriendlyName( _( "Global Deletions..." ) )
859 .Tooltip( _( "Delete tracks, footprints and graphic items from board" ) )
861
863 .Name( "pcbnew.GlobalEdit.cleanupTracksAndVias" )
864 .Scope( AS_GLOBAL )
865 .FriendlyName( _( "Cleanup Tracks & Vias..." ) )
866 .Tooltip( _( "Cleanup redundant items, shorting items, etc." ) )
868
870 .Name( "pcbnew.GlobalEdit.cleanupGraphics" )
871 .Scope( AS_GLOBAL )
872 .FriendlyName( _( "Cleanup Graphics..." ) )
873 .Tooltip( _( "Cleanup redundant items, etc." ) )
874 .Icon( BITMAPS::cleanup_graphics ) );
875
876// MICROWAVE_TOOL
877//
879 .Name( "pcbnew.MicrowaveTool.createGap" )
880 .Scope( AS_GLOBAL )
881 .FriendlyName( _( "Add Microwave Gap" ) )
882 .Tooltip( _( "Create gap of specified length for microwave applications" ) )
883 .Icon( BITMAPS::mw_add_gap )
884 .Flags( AF_ACTIVATE )
885 .Parameter( MICROWAVE_FOOTPRINT_SHAPE::GAP ) );
886
888 .Name( "pcbnew.MicrowaveTool.createStub" )
889 .Scope( AS_GLOBAL )
890 .FriendlyName( _( "Add Microwave Stub" ) )
891 .Tooltip( _( "Create stub of specified length for microwave applications" ) )
892 .Icon( BITMAPS::mw_add_stub )
893 .Flags( AF_ACTIVATE )
894 .Parameter( MICROWAVE_FOOTPRINT_SHAPE::STUB ) );
895
897 .Name( "pcbnew.MicrowaveTool.createStubArc" )
898 .Scope( AS_GLOBAL )
899 .FriendlyName( _( "Add Microwave Arc Stub" ) )
900 .Tooltip( _( "Create stub (arc) of specified size for microwave applications" ) )
902 .Flags( AF_ACTIVATE )
904
906 .Name( "pcbnew.MicrowaveTool.createFunctionShape" )
907 .Scope( AS_GLOBAL )
908 .FriendlyName( _( "Add Microwave Polygonal Shape" ) )
909 .Tooltip( _( "Create a microwave polygonal shape from a list of vertices" ) )
910 .Icon( BITMAPS::mw_add_shape )
911 .Flags( AF_ACTIVATE )
913
915 .Name( "pcbnew.MicrowaveTool.createLine" )
916 .Scope( AS_GLOBAL )
917 .FriendlyName( _( "Add Microwave Line" ) )
918 .Tooltip( _( "Create line of specified length for microwave applications" ) )
919 .Icon( BITMAPS::mw_add_line )
920 .Flags( AF_ACTIVATE ) );
921
922
923// PAD_TOOL
924//
926 .Name( "pcbnew.PadTool.CopyPadSettings" )
927 .Scope( AS_GLOBAL )
928 .FriendlyName( _( "Copy Pad Properties to Default" ) )
929 .Tooltip( _( "Copy current pad's properties" ) )
931
933 .Name( "pcbnew.PadTool.ApplyPadSettings" )
934 .Scope( AS_GLOBAL )
935 .FriendlyName( _( "Paste Default Pad Properties to Selected" ) )
936 .Tooltip( _( "Replace the current pad's properties with those copied earlier" ) )
938
940 .Name( "pcbnew.PadTool.PushPadSettings" )
941 .Scope( AS_GLOBAL )
942 .FriendlyName( _( "Push Pad Properties to Other Pads..." ) )
943 .Tooltip( _( "Copy the current pad's properties to other pads" ) )
945
947 .Name( "pcbnew.PadTool.enumeratePads" )
948 .Scope( AS_GLOBAL )
949 .FriendlyName( _( "Renumber Pads..." ) )
950 .Tooltip( _( "Renumber pads by clicking on them in the desired order" ) )
952 .Flags( AF_ACTIVATE ) );
953
955 .Name( "pcbnew.PadTool.placePad" )
956 .Scope( AS_GLOBAL )
957 .FriendlyName( _( "Add Pad" ) )
958 .Tooltip( _( "Add a pad" ) )
959 .Icon( BITMAPS::pad )
960 .Flags( AF_ACTIVATE ) );
961
963 .Name( "pcbnew.PadTool.explodePad" )
964 .Scope( AS_GLOBAL )
965 .DefaultHotkey( MD_CTRL + 'E' )
966 .FriendlyName( _( "Edit Pad as Graphic Shapes" ) )
967 .Tooltip( _( "Ungroups a custom-shaped pad for editing as individual graphic shapes" ) )
969
971 .Name( "pcbnew.PadTool.recombinePad" )
972 .Scope( AS_GLOBAL )
973 .DefaultHotkey( MD_CTRL + 'E' )
974 .FriendlyName( _( "Finish Pad Edit" ) )
975 .Tooltip( _( "Regroups all touching graphic shapes into the edited pad" ) )
977
979 .Name( "pcbnew.PadTool.defaultPadProperties" )
980 .Scope( AS_GLOBAL )
981 .FriendlyName( _( "Default Pad Properties..." ) )
982 .Tooltip( _( "Edit the pad properties used when creating new pads" ) )
983 .Icon( BITMAPS::options_pad ) );
984
985
986// SCRIPTING TOOL
987//
989 .Name( "pcbnew.ScriptingTool.pluginsReload" )
990 .Scope( AS_GLOBAL )
991 .FriendlyName( _( "Refresh Plugins" ) )
992 .Tooltip( _( "Reload all python plugins and refresh plugin menus" ) )
993 .Icon( BITMAPS::reload ) );
994
996 .Name( "pcbnew.ScriptingTool.pluginsShowFolder" )
997 .Scope( AS_GLOBAL )
998#ifdef __WXMAC__
999 .FriendlyName( _( "Reveal Plugin Folder in Finder" ) )
1000 .Tooltip( _( "Reveals the plugins folder in a Finder window" ) )
1001#else
1002 .FriendlyName( _( "Open Plugin Directory" ) )
1003 .Tooltip( _( "Opens the directory in the default system file manager" ) )
1004#endif
1005 .Icon( BITMAPS::directory_open ) );
1006
1007// BOARD_EDITOR_CONTROL
1008//
1010 .Name( "pcbnew.EditorControl.boardSetup" )
1011 .Scope( AS_GLOBAL )
1012 .FriendlyName( _( "Board Setup..." ) )
1013 .Tooltip( _( "Edit board setup including layers, design rules and various defaults" ) )
1014 .Icon( BITMAPS::options_board ) );
1015
1017 .Name( "pcbnew.EditorControl.importNetlist" )
1018 .Scope( AS_GLOBAL )
1019 .FriendlyName( _( "Import Netlist..." ) )
1020 .Tooltip( _( "Read netlist and update board connectivity" ) )
1021 .Icon( BITMAPS::netlist ) );
1022
1024 .Name( "pcbnew.EditorControl.importSpecctraSession" )
1025 .Scope( AS_GLOBAL )
1026 .FriendlyName( _( "Import Specctra Session..." ) )
1027 .Tooltip( _( "Import routed Specctra session (*.ses) file" ) )
1028 .Icon( BITMAPS::import ) );
1029
1031 .Name( "pcbnew.EditorControl.exportSpecctraDSN" )
1032 .Scope( AS_GLOBAL )
1033 .FriendlyName( _( "Export Specctra DSN..." ) )
1034 .Tooltip( _( "Export Specctra DSN routing info" ) )
1035 .Icon( BITMAPS::export_dsn ) );
1036
1038 .Name( "pcbnew.EditorControl.generateGerbers" )
1039 .Scope( AS_GLOBAL )
1040 .FriendlyName( _( "Gerbers (.gbr)..." ) )
1041 .Tooltip( _( "Generate Gerbers for fabrication" ) )
1042 .Icon( BITMAPS::post_gerber ) );
1043
1045 .Name( "pcbnew.EditorControl.generateDrillFiles" )
1046 .Scope( AS_GLOBAL )
1047 .FriendlyName( _( "Drill Files (.drl)..." ) )
1048 .Tooltip( _( "Generate Excellon drill file(s)" ) )
1049 .Icon( BITMAPS::post_drill ) );
1050
1052 .Name( "pcbnew.EditorControl.generatePosFile" )
1053 .Scope( AS_GLOBAL )
1054 .FriendlyName( _( "Component Placement (.pos, .gbr)..." ) )
1055 .Tooltip( _( "Generate component placement file(s) for pick and place" ) )
1056 .Icon( BITMAPS::post_compo ) );
1057
1059 .Name( "pcbnew.EditorControl.generateReportFile" )
1060 .Scope( AS_GLOBAL )
1061 .FriendlyName( _( "Footprint Report (.rpt)..." ) )
1062 .Tooltip( _( "Create report of all footprints from current board" ) )
1063 .Icon( BITMAPS::post_rpt ) );
1064
1066 .Name( "pcbnew.EditorControl.generateIPC2581File" )
1067 .Scope( AS_GLOBAL )
1068 .FriendlyName( _( "IPC-2581 File (.xml)..." ) )
1069 .Tooltip( _( "Generate an IPC-2581 file" ) )
1070 .Icon( BITMAPS::post_xml ) );
1071
1073 .Name( "pcbnew.EditorControl.generateD356File" )
1074 .Scope( AS_GLOBAL )
1075 .FriendlyName( _( "IPC-D-356 Netlist File..." ) )
1076 .Tooltip( _( "Generate IPC-D-356 netlist file" ) )
1077 .Icon( BITMAPS::post_d356 ) );
1078
1080 .Name( "pcbnew.EditorControl.generateBOM" )
1081 .Scope( AS_GLOBAL )
1082 .FriendlyName( _( "Bill of Materials..." ) )
1083 .Tooltip( _( "Create bill of materials from board" ) )
1084 .Icon( BITMAPS::post_bom ) );
1085
1086// Track & via size control
1088 .Name( "pcbnew.EditorControl.trackWidthInc" )
1089 .Scope( AS_GLOBAL )
1090 .DefaultHotkey( 'W' )
1091 .LegacyHotkeyName( "Switch Track Width To Next" )
1092 .FriendlyName( _( "Switch Track Width to Next" ) )
1093 .Tooltip( _( "Change track width to next pre-defined size" ) ) );
1094
1096 .Name( "pcbnew.EditorControl.trackWidthDec" )
1097 .Scope( AS_GLOBAL )
1098 .DefaultHotkey( MD_SHIFT + 'W' )
1099 .LegacyHotkeyName( "Switch Track Width To Previous" )
1100 .FriendlyName( _( "Switch Track Width to Previous" ) )
1101 .Tooltip( _( "Change track width to previous pre-defined size" ) ) );
1102
1104 .Name( "pcbnew.EditorControl.viaSizeInc" )
1105 .Scope( AS_GLOBAL )
1106 .DefaultHotkey( '\'' )
1107 .LegacyHotkeyName( "Increase Via Size" )
1108 .FriendlyName( _( "Increase Via Size" ) )
1109 .Tooltip( _( "Change via size to next pre-defined size" ) ) );
1110
1112 .Name( "pcbnew.EditorControl.viaSizeDec" )
1113 .Scope( AS_GLOBAL )
1114 .DefaultHotkey( '\\' )
1115 .LegacyHotkeyName( "Decrease Via Size" )
1116 .FriendlyName( _( "Decrease Via Size" ) )
1117 .Tooltip( _( "Change via size to previous pre-defined size" ) ) );
1118
1120 .Name( "pcbnew.EditorControl.trackViaSizeChanged" )
1121 .Scope( AS_GLOBAL )
1122 .Flags( AF_NOTIFY ) );
1123
1125 .Name( "pcbnew.EditorControl.assignNetclass" )
1126 .Scope( AS_GLOBAL )
1127 .FriendlyName( _( "Assign Netclass..." ) )
1128 .Tooltip( _( "Assign a netclass to nets matching a pattern" ) )
1129 .Icon( BITMAPS::netlist ) );
1130
1132 .Name( "pcbnew.EditorControl.zoneMerge" )
1133 .Scope( AS_GLOBAL )
1134 .FriendlyName( _( "Merge Zones" ) )
1135 .Tooltip( _( "Merge zones" ) ) );
1136
1138 .Name( "pcbnew.EditorControl.zoneDuplicate" )
1139 .Scope( AS_GLOBAL )
1140 .FriendlyName( _( "Duplicate Zone onto Layer..." ) )
1141 .Tooltip( _( "Duplicate zone outline onto a different layer" ) )
1142 .Icon( BITMAPS::zone_duplicate ) );
1143
1145 .Name( "pcbnew.EditorControl.placeFootprint" )
1146 .Scope( AS_GLOBAL )
1147 .DefaultHotkey( 'A' )
1148 .LegacyHotkeyName( "Add Footprint" )
1149 .FriendlyName( _( "Add Footprint" ) )
1150 .Tooltip( _( "Add a footprint" ) )
1151 .Icon( BITMAPS::module )
1152 .Flags( AF_ACTIVATE )
1153 .Parameter<FOOTPRINT*>( nullptr ) );
1154
1156 .Name( "pcbnew.EditorControl.drillOrigin" )
1157 .Scope( AS_GLOBAL )
1158 .FriendlyName( _( "Drill/Place File Origin" ) )
1159 .Tooltip( _( "Place origin point for drill files and component placement files" ) )
1160 .Icon( BITMAPS::set_origin )
1161 .Flags( AF_ACTIVATE ) );
1162
1164 .Name( "pcbnew.EditorControl.drillResetOrigin" )
1165 .Scope( AS_GLOBAL )
1166 .LegacyHotkeyName( "Reset Drill Origin" )
1167 .FriendlyName( _( "Reset Drill Origin" ) ) );
1168
1170 .Name( "pcbnew.EditorControl.toggleLock" )
1171 .Scope( AS_GLOBAL )
1172 .DefaultHotkey( 'L' )
1173 .LegacyHotkeyName( "Lock/Unlock Footprint" )
1174 .FriendlyName( _( "Toggle Lock" ) )
1175 .Tooltip( _( "Lock or unlock selected items" ) )
1176 .Icon( BITMAPS::lock_unlock ) );
1177
1179 .Name( "pcbnew.EditorControl.toggle45" )
1180 .Scope( AS_GLOBAL )
1181 .DefaultHotkey( MD_SHIFT + ' ' )
1182 .FriendlyName( _( "Constrain to H, V, 45" ) )
1183 .Tooltip( _( "Limit actions to horizontal, vertical, or 45 degrees from the starting point" ) )
1184 .Icon( BITMAPS::hv45mode ) );
1185
1187 .Name( "pcbnew.EditorControl.lock" )
1188 .Scope( AS_GLOBAL )
1189 .FriendlyName( _( "Lock" ) )
1190 .Tooltip( _( "Prevent items from being moved and/or resized on the canvas" ) )
1191 .Icon( BITMAPS::locked ) );
1192
1194 .Name( "pcbnew.EditorControl.unlock" )
1195 .Scope( AS_GLOBAL )
1196 .FriendlyName( _( "Unlock" ) )
1197 .Tooltip( _( "Allow items to be moved and/or resized on the canvas" ) )
1198 .Icon( BITMAPS::unlocked ) );
1199
1201 .Name( "pcbnew.EditorControl.group" )
1202 .Scope( AS_GLOBAL )
1203 .FriendlyName( _( "Group Items" ) )
1204 .Tooltip( _( "Group the selected items so that they are treated as a single item" ) )
1205 .Icon( BITMAPS::group ) );
1206
1208 .Name( "pcbnew.EditorControl.ungroup" )
1209 .Scope( AS_GLOBAL )
1210 .FriendlyName( _( "Ungroup Items" ) )
1211 .Tooltip( _( "Ungroup any selected groups" ) )
1212 .Icon( BITMAPS::group_ungroup ) );
1213
1215 .Name( "pcbnew.EditorControl.removeFromGroup" )
1216 .Scope( AS_GLOBAL )
1217 .FriendlyName( _( "Remove Items" ) )
1218 .Tooltip( _( "Remove items from group" ) )
1219 .Icon( BITMAPS::group_remove ) );
1220
1222 .Name( "pcbnew.EditorControl.groupEnter" )
1223 .Scope( AS_GLOBAL )
1224 .FriendlyName( _( "Enter Group" ) )
1225 .Tooltip( _( "Enter the group to edit items" ) )
1226 .Icon( BITMAPS::group_enter ) );
1227
1229 .Name( "pcbnew.EditorControl.groupLeave" )
1230 .Scope( AS_GLOBAL )
1231 .FriendlyName( _( "Leave Group" ) )
1232 .Tooltip( _( "Leave the current group" ) )
1233 .Icon( BITMAPS::group_leave ) );
1234
1236 .Name( "pcbnew.EditorControl.appendBoard" )
1237 .Scope( AS_GLOBAL )
1238 .FriendlyName( _( "Append Board..." ) )
1239 .Tooltip( _( "Open another board and append its contents to this board" ) )
1240 .Icon( BITMAPS::add_board ) );
1241
1243 .Name( "pcbnew.EditorControl.highlightNet" )
1244 .Scope( AS_GLOBAL )
1245 .DefaultHotkey( '`' )
1246 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1247 .LegacyHotkeyName( "Toggle Highlight of Selected Net (Modern Toolset only)" )
1248 .FriendlyName( _( "Highlight Net" ) )
1249 .Tooltip( _( "Highlight net under cursor" ) )
1250 .Icon( BITMAPS::net_highlight )
1251 .Parameter<int>( 0 ) );
1252
1254 .Name( "pcbnew.EditorControl.toggleLastNetHighlight" )
1255 .Scope( AS_GLOBAL )
1256 .FriendlyName( _( "Toggle Last Net Highlight" ) )
1257 .Tooltip( _( "Toggle between last two highlighted nets" ) )
1258 .Parameter<int>( 0 ) );
1259
1261 .Name( "pcbnew.EditorControl.clearHighlight" )
1262 .Scope( AS_GLOBAL )
1263 .DefaultHotkey( '~' )
1264 .FriendlyName( _( "Clear Net Highlighting" ) )
1265 .Tooltip( _( "Clear any existing net highlighting" ) ) );
1266
1268 .Name( "pcbnew.EditorControl.toggleNetHighlight" )
1269 .Scope( AS_GLOBAL )
1270 .DefaultHotkey( MD_ALT + '`' )
1271 .FriendlyName( _( "Toggle Net Highlight" ) )
1272 .Tooltip( _( "Toggle net highlighting" ) )
1273 .Icon( BITMAPS::net_highlight )
1274 .Parameter<int>( 0 ) );
1275
1277 .Name( "pcbnew.EditorControl.highlightNetSelection" )
1278 .Scope( AS_GLOBAL )
1279 .FriendlyName( _( "Highlight Net" ) )
1280 .Tooltip( _( "Highlight all copper items on the selected net(s)" ) )
1281 .Icon( BITMAPS::net_highlight )
1282 .Parameter<int>( 0 ) );
1283
1285 .Name( "pcbnew.EditorControl.highlightItem" )
1286 .Scope( AS_GLOBAL ) );
1287
1289 .Name( "pcbnew.EditorControl.hideNet" )
1290 .Scope( AS_GLOBAL )
1291 .FriendlyName( _( "Hide Net in Ratsnest" ) )
1292 .Tooltip( _( "Hide the selected net in the ratsnest of unconnected net lines/arcs" ) )
1293 .Icon( BITMAPS::hide_ratsnest )
1294 .Parameter<int>( 0 ) ); // Default to hiding selected net
1295
1297 .Name( "pcbnew.EditorControl.showNet" )
1298 .Scope( AS_GLOBAL )
1299 .FriendlyName( _( "Show Net in Ratsnest" ) )
1300 .Tooltip( _( "Show the selected net in the ratsnest of unconnected net lines/arcs" ) )
1301 .Icon( BITMAPS::show_ratsnest )
1302 .Parameter<int>( 0 ) ); // Default to showing selected net
1303
1305 .Name( "pcbnew.EditorControl.showEeschema" )
1306 .Scope( AS_GLOBAL )
1307 .FriendlyName( _( "Switch to Schematic Editor" ) )
1308 .Tooltip( _( "Open schematic in schematic editor" ) )
1309 .Icon( BITMAPS::icon_eeschema_24 ) );
1310
1311
1312// PCB_CONTROL
1313//
1314
1316 .Name( "pcbnew.Control.localRatsnestTool" )
1317 .Scope( AS_GLOBAL )
1318 .FriendlyName( _( "Local Ratsnest" ) )
1319 .Tooltip( _( "Toggle ratsnest display of selected item(s)" ) )
1320 .Icon( BITMAPS::tool_ratsnest )
1321 .Flags( AF_ACTIVATE ) );
1322
1324 .Name( "pcbnew.Control.hideDynamicRatsnest" )
1325 .Scope( AS_GLOBAL ) );
1326
1328 .Name( "pcbnew.Control.updateLocalRatsnest" )
1329 .Scope( AS_GLOBAL )
1330 .Parameter( VECTOR2I() ) );
1331
1333 .Name( "pcbnew.Control.showPythonConsole" )
1334 .Scope( AS_GLOBAL )
1335 .FriendlyName( _( "Scripting Console" ) )
1336 .Tooltip( _( "Show the Python scripting console" ) )
1337 .Icon( BITMAPS::py_script ) );
1338
1340 .Name( "pcbnew.Control.showLayersManager" )
1341 .Scope( AS_GLOBAL )
1342 .FriendlyName( _( "Show Appearance Manager" ) )
1343 .Tooltip( _( "Show/hide the appearance manager" ) )
1344 .Icon( BITMAPS::layers_manager ) );
1345
1347 .Name( "pcbnew.Control.showNetInspector" )
1348 .Scope( AS_GLOBAL )
1349 .FriendlyName( _( "Show Net Inspector" ) )
1350 .Tooltip( _( "Show/hide the net inspector" ) )
1351 .Icon( BITMAPS::tools ) );
1352
1353TOOL_ACTION PCB_ACTIONS::zonesManager( "pcbnew.Control.zonesManager",
1354 AS_GLOBAL, 0, "",
1355 _( "Zone Manager" ), _( "Show the zone manager dialog" ),
1357
1359 .Name( "pcbnew.Control.flipBoard" )
1360 .Scope( AS_GLOBAL )
1361 .FriendlyName( _( "Flip Board View" ) )
1362 .Tooltip( _( "View board from the opposite side" ) )
1363 .Icon( BITMAPS::flip_board ) );
1364
1365// Display modes
1367 .Name( "pcbnew.Control.showRatsnest" )
1368 .Scope( AS_GLOBAL )
1369 .FriendlyName( _( "Show Ratsnest" ) )
1370 .Tooltip( _( "Show board ratsnest" ) )
1371 .Icon( BITMAPS::general_ratsnest ) );
1372
1374 .Name( "pcbnew.Control.ratsnestLineMode" )
1375 .Scope( AS_GLOBAL )
1376 .FriendlyName( _( "Curved Ratsnest Lines" ) )
1377 .Tooltip( _( "Show ratsnest with curved lines" ) )
1378 .Icon( BITMAPS::curved_ratsnest ) );
1379
1381 .Name( "pcbnew.Control.ratsnestModeCycle" )
1382 .Scope( AS_GLOBAL )
1383 .FriendlyName( _( "Ratsnest Mode (3-state)" ) )
1384 .Tooltip( _( "Cycle between showing ratsnests for all layers, just visible layers, and none" ) ) );
1385
1387 .Name( "pcbnew.Control.netColorMode" )
1388 .Scope( AS_GLOBAL )
1389 .FriendlyName( _( "Net Color Mode (3-state)" ) )
1390 .Tooltip( _( "Cycle between using net and netclass colors for all nets, just ratsnests, and none" ) ) );
1391
1393 .Name( "pcbnew.Control.trackDisplayMode" )
1394 .Scope( AS_GLOBAL )
1395 .DefaultHotkey( 'K' )
1396 .LegacyHotkeyName( "Track Display Mode" )
1397 .FriendlyName( _( "Sketch Tracks" ) )
1398 .Tooltip( _( "Show tracks in outline mode" ) )
1399 .Icon( BITMAPS::showtrack ) );
1400
1402 .Name( "pcbnew.Control.padDisplayMode" )
1403 .Scope( AS_GLOBAL )
1404 .FriendlyName( _( "Sketch Pads" ) )
1405 .Tooltip( _( "Show pads in outline mode" ) )
1406 .Icon( BITMAPS::pad_sketch ) );
1407
1409 .Name( "pcbnew.Control.viaDisplayMode" )
1410 .Scope( AS_GLOBAL )
1411 .FriendlyName( _( "Sketch Vias" ) )
1412 .Tooltip( _( "Show vias in outline mode" ) )
1413 .Icon( BITMAPS::via_sketch ) );
1414
1416 .Name( "pcbnew.Control.graphicOutlines" )
1417 .Scope( AS_GLOBAL )
1418 .FriendlyName( _( "Sketch Graphic Items" ) )
1419 .Tooltip( _( "Show graphic items in outline mode" ) )
1420 .Icon( BITMAPS::show_mod_edge ) );
1421
1423 .Name( "pcbnew.Control.textOutlines" )
1424 .Scope( AS_GLOBAL )
1425 .FriendlyName( _( "Sketch Text Items" ) )
1426 .Tooltip( _( "Show footprint texts in line mode" ) )
1427 .Icon( BITMAPS::text_sketch ) );
1428
1430 .Name( "pcbnew.Control.showPadNumbers" )
1431 .Scope( AS_GLOBAL )
1432 .FriendlyName( _( "Show Pad Numbers" ) )
1433 .Tooltip( _( "Show pad numbers" ) )
1434 .Icon( BITMAPS::pad_number ) );
1435
1437 .Name( "pcbnew.Control.zoneDisplayEnable" )
1438 .Scope( AS_GLOBAL )
1439 .FriendlyName( _( "Draw Zone Fills" ) )
1440 .Tooltip( _( "Show filled areas of zones" ) )
1441 .Icon( BITMAPS::show_zone ) );
1442
1444 .Name( "pcbnew.Control.zoneDisplayDisable" )
1445 .Scope( AS_GLOBAL )
1446 .FriendlyName( _( "Draw Zone Outlines" ) )
1447 .Tooltip( _( "Show only zone boundaries" ) )
1448 .Icon( BITMAPS::show_zone_disable ) );
1449
1451 .Name( "pcbnew.Control.zoneDisplayOutlines" )
1452 .Scope( AS_GLOBAL )
1453 .FriendlyName( _( "Draw Zone Fill Fracture Borders" ) )
1455
1457 .Name( "pcbnew.Control.zoneDisplayTesselation" )
1458 .Scope( AS_GLOBAL )
1459 .FriendlyName( _( "Draw Zone Fill Triangulation" ) )
1461
1463 .Name( "pcbnew.Control.zoneDisplayToggle" )
1464 .Scope( AS_GLOBAL )
1465 .FriendlyName( _( "Toggle Zone Display" ) )
1466 .Tooltip( _( "Cycle between showing zone fills and just their outlines" ) )
1467 .Icon( BITMAPS::show_zone ) );
1468
1469
1470// Layer control
1471
1472// Translate aLayer to the action that switches to it
1474{
1475 switch( aLayer )
1476 {
1477 case F_Cu: return &PCB_ACTIONS::layerTop;
1478 case In1_Cu: return &PCB_ACTIONS::layerInner1;
1479 case In2_Cu: return &PCB_ACTIONS::layerInner2;
1480 case In3_Cu: return &PCB_ACTIONS::layerInner3;
1481 case In4_Cu: return &PCB_ACTIONS::layerInner4;
1482 case In5_Cu: return &PCB_ACTIONS::layerInner5;
1483 case In6_Cu: return &PCB_ACTIONS::layerInner6;
1484 case In7_Cu: return &PCB_ACTIONS::layerInner7;
1485 case In8_Cu: return &PCB_ACTIONS::layerInner8;
1486 case In9_Cu: return &PCB_ACTIONS::layerInner9;
1487 case In10_Cu: return &PCB_ACTIONS::layerInner10;
1488 case In11_Cu: return &PCB_ACTIONS::layerInner11;
1489 case In12_Cu: return &PCB_ACTIONS::layerInner12;
1490 case In13_Cu: return &PCB_ACTIONS::layerInner13;
1491 case In14_Cu: return &PCB_ACTIONS::layerInner14;
1492 case In15_Cu: return &PCB_ACTIONS::layerInner15;
1493 case In16_Cu: return &PCB_ACTIONS::layerInner16;
1494 case In17_Cu: return &PCB_ACTIONS::layerInner17;
1495 case In18_Cu: return &PCB_ACTIONS::layerInner18;
1496 case In19_Cu: return &PCB_ACTIONS::layerInner19;
1497 case In20_Cu: return &PCB_ACTIONS::layerInner20;
1498 case In21_Cu: return &PCB_ACTIONS::layerInner21;
1499 case In22_Cu: return &PCB_ACTIONS::layerInner22;
1500 case In23_Cu: return &PCB_ACTIONS::layerInner23;
1501 case In24_Cu: return &PCB_ACTIONS::layerInner24;
1502 case In25_Cu: return &PCB_ACTIONS::layerInner25;
1503 case In26_Cu: return &PCB_ACTIONS::layerInner26;
1504 case In27_Cu: return &PCB_ACTIONS::layerInner27;
1505 case In28_Cu: return &PCB_ACTIONS::layerInner28;
1506 case In29_Cu: return &PCB_ACTIONS::layerInner29;
1507 case In30_Cu: return &PCB_ACTIONS::layerInner30;
1508 case B_Cu: return &PCB_ACTIONS::layerBottom;
1509 default: return nullptr;
1510 }
1511}
1512
1513// Implemented as an accessor + static variable to ensure it is initialized when used
1514// in static action constructors
1516{
1517 static TOOL_ACTION_GROUP s_toolActionGroup( "pcbnew.Control.DirectLayerActions" );
1518 return s_toolActionGroup;
1519}
1520
1522 .Name( "pcbnew.Control.layerTop" )
1523 .Scope( AS_GLOBAL )
1525 .DefaultHotkey( WXK_PAGEUP )
1526 .LegacyHotkeyName( "Switch to Component (F.Cu) layer" )
1527 .FriendlyName( _( "Switch to Component (F.Cu) layer" ) )
1528 .Flags( AF_NOTIFY )
1529 .Parameter( F_Cu ) );
1530
1532 .Name( "pcbnew.Control.layerInner1" )
1533 .Scope( AS_GLOBAL )
1535 .LegacyHotkeyName( "Switch to Inner layer 1" )
1536 .FriendlyName( _( "Switch to Inner Layer 1" ) )
1537 .Flags( AF_NOTIFY )
1538 .Parameter( In1_Cu ) );
1539
1541 .Name( "pcbnew.Control.layerInner2" )
1542 .Scope( AS_GLOBAL )
1544 .LegacyHotkeyName( "Switch to Inner layer 2" )
1545 .FriendlyName( _( "Switch to Inner Layer 2" ) )
1546 .Flags( AF_NOTIFY )
1547 .Parameter( In2_Cu ) );
1548
1550 .Name( "pcbnew.Control.layerInner3" )
1551 .Scope( AS_GLOBAL )
1553 .LegacyHotkeyName( "Switch to Inner layer 3" )
1554 .FriendlyName( _( "Switch to Inner Layer 3" ) )
1555 .Flags( AF_NOTIFY )
1556 .Parameter( In3_Cu ) );
1557
1559 .Name( "pcbnew.Control.layerInner4" )
1560 .Scope( AS_GLOBAL )
1562 .LegacyHotkeyName( "Switch to Inner layer 4" )
1563 .FriendlyName( _( "Switch to Inner Layer 4" ) )
1564 .Flags( AF_NOTIFY )
1565 .Parameter( In4_Cu ) );
1566
1568 .Name( "pcbnew.Control.layerInner5" )
1569 .Scope( AS_GLOBAL )
1571 .LegacyHotkeyName( "Switch to Inner layer 5" )
1572 .FriendlyName( _( "Switch to Inner Layer 5" ) )
1573 .Flags( AF_NOTIFY )
1574 .Parameter( In5_Cu ) );
1575
1577 .Name( "pcbnew.Control.layerInner6" )
1578 .Scope( AS_GLOBAL )
1580 .LegacyHotkeyName( "Switch to Inner layer 6" )
1581 .FriendlyName( _( "Switch to Inner Layer 6" ) )
1582 .Flags( AF_NOTIFY )
1583 .Parameter( In6_Cu ) );
1584
1586 .Name( "pcbnew.Control.layerInner7" )
1587 .Scope( AS_GLOBAL )
1589 .FriendlyName( _( "Switch to Inner Layer 7" ) )
1590 .Flags( AF_NOTIFY )
1591 .Parameter( In7_Cu ) );
1592
1594 .Name( "pcbnew.Control.layerInner8" )
1595 .Scope( AS_GLOBAL )
1597 .FriendlyName( _( "Switch to Inner Layer 8" ) )
1598 .Flags( AF_NOTIFY )
1599 .Parameter( In8_Cu ) );
1600
1602 .Name( "pcbnew.Control.layerInner9" )
1603 .Scope( AS_GLOBAL )
1605 .FriendlyName( _( "Switch to Inner Layer 9" ) )
1606 .Flags( AF_NOTIFY )
1607 .Parameter( In9_Cu ) );
1608
1610 .Name( "pcbnew.Control.layerInner10" )
1611 .Scope( AS_GLOBAL )
1613 .FriendlyName( _( "Switch to Inner Layer 10" ) )
1614 .Flags( AF_NOTIFY )
1615 .Parameter( In10_Cu ) );
1616
1618 .Name( "pcbnew.Control.layerInner11" )
1619 .Scope( AS_GLOBAL )
1621 .FriendlyName( _( "Switch to Inner Layer 11" ) )
1622 .Flags( AF_NOTIFY )
1623 .Parameter( In11_Cu ) );
1624
1626 .Name( "pcbnew.Control.layerInner12" )
1627 .Scope( AS_GLOBAL )
1629 .FriendlyName( _( "Switch to Inner Layer 12" ) )
1630 .Flags( AF_NOTIFY )
1631 .Parameter( In12_Cu ) );
1632
1634 .Name( "pcbnew.Control.layerInner13" )
1635 .Scope( AS_GLOBAL )
1637 .FriendlyName( _( "Switch to Inner Layer 13" ) )
1638 .Flags( AF_NOTIFY )
1639 .Parameter( In13_Cu ) );
1640
1642 .Name( "pcbnew.Control.layerInner14" )
1643 .Scope( AS_GLOBAL )
1645 .FriendlyName( _( "Switch to Inner Layer 14" ) )
1646 .Flags( AF_NOTIFY )
1647 .Parameter( In14_Cu ) );
1648
1650 .Name( "pcbnew.Control.layerInner15" )
1651 .Scope( AS_GLOBAL )
1653 .FriendlyName( _( "Switch to Inner Layer 15" ) )
1654 .Flags( AF_NOTIFY )
1655 .Parameter( In15_Cu ) );
1656
1658 .Name( "pcbnew.Control.layerInner16" )
1659 .Scope( AS_GLOBAL )
1661 .FriendlyName( _( "Switch to Inner Layer 16" ) )
1662 .Flags( AF_NOTIFY )
1663 .Parameter( In16_Cu ) );
1664
1666 .Name( "pcbnew.Control.layerInner17" )
1667 .Scope( AS_GLOBAL )
1669 .FriendlyName( _( "Switch to Inner Layer 17" ) )
1670 .Flags( AF_NOTIFY )
1671 .Parameter( In17_Cu ) );
1672
1674 .Name( "pcbnew.Control.layerInner18" )
1675 .Scope( AS_GLOBAL )
1677 .FriendlyName( _( "Switch to Inner Layer 18" ) )
1678 .Flags( AF_NOTIFY )
1679 .Parameter( In18_Cu ) );
1680
1682 .Name( "pcbnew.Control.layerInner19" )
1683 .Scope( AS_GLOBAL )
1685 .FriendlyName( _( "Switch to Inner Layer 19" ) )
1686 .Flags( AF_NOTIFY )
1687 .Parameter( In19_Cu ) );
1688
1690 .Name( "pcbnew.Control.layerInner20" )
1691 .Scope( AS_GLOBAL )
1693 .FriendlyName( _( "Switch to Inner Layer 20" ) )
1694 .Flags( AF_NOTIFY )
1695 .Parameter( In20_Cu ) );
1696
1698 .Name( "pcbnew.Control.layerInner21" )
1699 .Scope( AS_GLOBAL )
1701 .FriendlyName( _( "Switch to Inner Layer 21" ) )
1702 .Flags( AF_NOTIFY )
1703 .Parameter( In21_Cu ) );
1704
1706 .Name( "pcbnew.Control.layerInner22" )
1707 .Scope( AS_GLOBAL )
1709 .FriendlyName( _( "Switch to Inner Layer 22" ) )
1710 .Flags( AF_NOTIFY )
1711 .Parameter( In22_Cu ) );
1712
1714 .Name( "pcbnew.Control.layerInner23" )
1715 .Scope( AS_GLOBAL )
1717 .FriendlyName( _( "Switch to Inner Layer 23" ) )
1718 .Flags( AF_NOTIFY )
1719 .Parameter( In23_Cu ) );
1720
1722 .Name( "pcbnew.Control.layerInner24" )
1723 .Scope( AS_GLOBAL )
1725 .FriendlyName( _( "Switch to Inner Layer 24" ) )
1726 .Flags( AF_NOTIFY )
1727 .Parameter( In24_Cu ) );
1728
1730 .Name( "pcbnew.Control.layerInner25" )
1731 .Scope( AS_GLOBAL )
1733 .FriendlyName( _( "Switch to Inner Layer 25" ) )
1734 .Flags( AF_NOTIFY )
1735 .Parameter( In25_Cu ) );
1736
1738 .Name( "pcbnew.Control.layerInner26" )
1739 .Scope( AS_GLOBAL )
1741 .FriendlyName( _( "Switch to Inner Layer 26" ) )
1742 .Flags( AF_NOTIFY )
1743 .Parameter( In26_Cu ) );
1744
1746 .Name( "pcbnew.Control.layerInner27" )
1747 .Scope( AS_GLOBAL )
1749 .FriendlyName( _( "Switch to Inner Layer 27" ) )
1750 .Flags( AF_NOTIFY )
1751 .Parameter( In27_Cu ) );
1752
1754 .Name( "pcbnew.Control.layerInner28" )
1755 .Scope( AS_GLOBAL )
1757 .FriendlyName( _( "Switch to Inner Layer 28" ) )
1758 .Flags( AF_NOTIFY )
1759 .Parameter( In28_Cu ) );
1760
1762 .Name( "pcbnew.Control.layerInner29" )
1763 .Scope( AS_GLOBAL )
1765 .FriendlyName( _( "Switch to Inner Layer 29" ) )
1766 .Flags( AF_NOTIFY )
1767 .Parameter( In29_Cu ) );
1768
1770 .Name( "pcbnew.Control.layerInner30" )
1771 .Scope( AS_GLOBAL )
1773 .FriendlyName( _( "Switch to Inner Layer 30" ) )
1774 .Flags( AF_NOTIFY )
1775 .Parameter( In30_Cu ) );
1776
1778 .Name( "pcbnew.Control.layerBottom" )
1779 .Scope( AS_GLOBAL )
1781 .DefaultHotkey( WXK_PAGEDOWN )
1782 .LegacyHotkeyName( "Switch to Copper (B.Cu) layer" )
1783 .FriendlyName( _( "Switch to Copper (B.Cu) Layer" ) )
1784 .Flags( AF_NOTIFY )
1785 .Parameter( B_Cu ) );
1786
1788 .Name( "pcbnew.Control.layerNext" )
1789 .Scope( AS_GLOBAL )
1790 .DefaultHotkey( '+' )
1791 .LegacyHotkeyName( "Switch to Next Layer" )
1792 .FriendlyName( _( "Switch to Next Layer" ) )
1793 .Flags( AF_NOTIFY ) );
1794
1796 .Name( "pcbnew.Control.layerPrev" )
1797 .Scope( AS_GLOBAL )
1798 .DefaultHotkey( '-' )
1799 .LegacyHotkeyName( "Switch to Previous Layer" )
1800 .FriendlyName( _( "Switch to Previous Layer" ) )
1801 .Flags( AF_NOTIFY ) );
1802
1804 .Name( "pcbnew.Control.layerToggle" )
1805 .Scope( AS_GLOBAL )
1806 .DefaultHotkey( 'V' )
1807 .LegacyHotkeyName( "Add Through Via" )
1808 .FriendlyName( _( "Toggle Layer" ) )
1809 .Tooltip( _( "Switch between layers in active layer pair" ) )
1810 .Flags( AF_NOTIFY ) );
1811
1813 .Name( "pcbnew.Control.layerAlphaInc" )
1814 .Scope( AS_GLOBAL )
1815 .DefaultHotkey( '}' )
1816 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1817 .LegacyHotkeyName( "Increment Layer Transparency (Modern Toolset only)" )
1818 .FriendlyName( _( "Increase Layer Opacity" ) )
1819 .Tooltip( _( "Make the current layer less transparent" ) )
1820 .Icon( BITMAPS::contrast_mode ) );
1821
1823 .Name( "pcbnew.Control.layerAlphaDec" )
1824 .Scope( AS_GLOBAL )
1825 .DefaultHotkey( '{' )
1826 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1827 .LegacyHotkeyName( "Decrement Layer Transparency (Modern Toolset only)" )
1828 .FriendlyName( _( "Decrease Layer Opacity" ) )
1829 .Tooltip( _( "Make the current layer more transparent" ) )
1830 .Icon( BITMAPS::contrast_mode ) );
1831
1833 .Name( "pcbnew.Control.layerChanged" )
1834 .Scope( AS_GLOBAL )
1835 .Flags( AF_NOTIFY ) );
1836
1837//Show board statistics tool
1839 .Name( "pcbnew.InspectionTool.ShowBoardStatistics" )
1840 .Scope( AS_GLOBAL )
1841 .FriendlyName( _( "Show Board Statistics" ) )
1842 .Tooltip( _( "Shows board statistics" ) ) );
1843
1845 .Name( "pcbnew.InspectionTool.InspectClearance" )
1846 .Scope( AS_GLOBAL )
1847 .FriendlyName( _( "Clearance Resolution" ) )
1848 .Tooltip( _( "Show clearance resolution for the active layer between two selected objects" ) )
1849 .Icon( BITMAPS::mw_add_gap ) );
1850
1852 .Name( "pcbnew.InspectionTool.InspectConstraints" )
1853 .Scope( AS_GLOBAL )
1854 .FriendlyName( _( "Constraints Resolution" ) )
1855 .Tooltip( _( "Show constraints resolution for the selected object" ) )
1856 .Icon( BITMAPS::mw_add_gap ) );
1857
1859 .Name( "pcbnew.InspectionTool.DiffFootprint" )
1860 .Scope( AS_GLOBAL )
1861 .FriendlyName( _( "Compare Footprint with Library" ) )
1862 .Tooltip( _( "Show differences between board footprint and its library equivalent" ) )
1863 .Icon( BITMAPS::library ) );
1864
1866 .Name( "pcbnew.InspectionTool.ShowFootprintAssociations" )
1867 .Scope( AS_GLOBAL )
1868 .FriendlyName( _( "Show Footprint Associations" ) )
1869 .Tooltip( _( "Show footprint library and schematic symbol associations" ) )
1871
1872//Geographic re-annotation tool
1874 .Name( "pcbnew.ReannotateTool.ShowReannotateDialog" )
1875 .Scope( AS_GLOBAL )
1876 .FriendlyName( _( "Geographical Reannotate..." ) )
1877 .Tooltip( _( "Reannotate PCB in geographical order" ) )
1878 .Icon( BITMAPS::annotate ) );
1879
1881 .Name( "pcbnew.Control.repairBoard" )
1882 .Scope( AS_GLOBAL )
1883 .FriendlyName( _( "Repair Board" ) )
1884 .Tooltip( _( "Run various diagnostics and attempt to repair board" ) )
1885 .Icon( BITMAPS::rescue )
1886 .Parameter( false ) ); // Don't repair quietly
1887
1889 .Name( "pcbnew.ModuleEditor.repairFootprint" )
1890 .Scope( AS_GLOBAL )
1891 .FriendlyName( _( "Repair Footprint" ) )
1892 .Tooltip( _( "Run various diagnostics and attempt to repair footprint" ) ) );
1893
1894
1895// PLACEMENT_TOOL
1896//
1898 .Name( "pcbnew.AlignAndDistribute.alignTop" )
1899 .Scope( AS_GLOBAL )
1900 .FriendlyName( _( "Align to Top" ) )
1901 .Tooltip( _( "Aligns selected items to the top edge of the item under the cursor" ) )
1902 .Icon( BITMAPS::align_items_top ) );
1903
1905 .Name( "pcbnew.AlignAndDistribute.alignBottom" )
1906 .Scope( AS_GLOBAL )
1907 .FriendlyName( _( "Align to Bottom" ) )
1908 .Tooltip( _( "Aligns selected items to the bottom edge of the item under the cursor" ) )
1909 .Icon( BITMAPS::align_items_bottom ) );
1910
1912 .Name( "pcbnew.AlignAndDistribute.alignLeft" )
1913 .Scope( AS_GLOBAL )
1914 .FriendlyName( _( "Align to Left" ) )
1915 .Tooltip( _( "Aligns selected items to the left edge of the item under the cursor" ) )
1916 .Icon( BITMAPS::align_items_left ) );
1917
1919 .Name( "pcbnew.AlignAndDistribute.alignRight" )
1920 .Scope( AS_GLOBAL )
1921 .FriendlyName( _( "Align to Right" ) )
1922 .Tooltip( _( "Aligns selected items to the right edge of the item under the cursor" ) )
1923 .Icon( BITMAPS::align_items_right ) );
1924
1926 .Name( "pcbnew.AlignAndDistribute.alignCenterY" )
1927 .Scope( AS_GLOBAL )
1928 .FriendlyName( _( "Align to Vertical Center" ) )
1929 .Tooltip( _( "Aligns selected items to the vertical center of the item under the cursor" ) )
1930 .Icon( BITMAPS::align_items_center ) );
1931
1933 .Name( "pcbnew.AlignAndDistribute.alignCenterX" )
1934 .Scope( AS_GLOBAL )
1935 .FriendlyName( _( "Align to Horizontal Center" ) )
1936 .Tooltip( _( "Aligns selected items to the horizontal center of the item under the cursor" ) )
1937 .Icon( BITMAPS::align_items_middle ) );
1938
1940 .Name( "pcbnew.AlignAndDistribute.distributeHorizontally" )
1941 .Scope( AS_GLOBAL )
1942 .FriendlyName( _( "Distribute Horizontally" ) )
1943 .Tooltip( _( "Distributes selected items between the left-most item and the right-most item" ) )
1945
1947 .Name( "pcbnew.AlignAndDistribute.distributeVertically" )
1948 .Scope( AS_GLOBAL )
1949 .FriendlyName( _( "Distribute Vertically" ) )
1950 .Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item" ) )
1952
1953
1954// PCB_POINT_EDITOR
1955//
1957 .Name( "pcbnew.PointEditor.addCorner" )
1958 .Scope( AS_GLOBAL )
1959#ifdef __WXMAC__
1960 .DefaultHotkey( WXK_F1 )
1961#else
1962 .DefaultHotkey( WXK_INSERT )
1963#endif
1964 .FriendlyName( _( "Create Corner" ) )
1965 .Tooltip( _( "Create a corner" ) )
1966 .Icon( BITMAPS::add_corner ) );
1967
1969 .Name( "pcbnew.PointEditor.removeCorner" )
1970 .Scope( AS_GLOBAL )
1971 .FriendlyName( _( "Remove Corner" ) )
1972 .Tooltip( _( "Remove corner" ) )
1973 .Icon( BITMAPS::delete_cursor ) );
1974
1976 .Name( "pcbnew.PointEditor.arcKeepCenter" )
1977 .Scope( AS_GLOBAL )
1978 .FriendlyName( _( "Keep Arc Center, Adjust Radius" ) )
1979 .Tooltip( _( "Switch arc editing mode to keep center, adjust radius and endpoints" ) )
1981
1983 .Name( "pcbnew.PointEditor.arcKeepEndpoint" )
1984 .Scope( AS_GLOBAL )
1985 .FriendlyName( _( "Keep Arc Endpoints or Direction of Starting Point" ) )
1986 .Tooltip( _( "Switch arc editing mode to keep endpoints, or to keep direction of the other point" ) )
1988
1989
1990// GROUP_TOOL
1991//
1993 .Name( "pcbnew.Groups.groupProperties" )
1994 .Scope( AS_GLOBAL ) );
1995
1997 .Name( "pcbnew.Groups.selectNewGroupMember" )
1998 .Scope( AS_GLOBAL ) );
1999
2000
2001
2002// POSITION_RELATIVE_TOOL
2003//
2005 .Name( "pcbnew.PositionRelative.positionRelative" )
2006 .Scope( AS_GLOBAL )
2007 .DefaultHotkey( MD_SHIFT + 'P' )
2008 .LegacyHotkeyName( "Position Item Relative" )
2009 .FriendlyName( _( "Position Relative To..." ) )
2010 .Tooltip( _( "Positions the selected item(s) by an exact amount relative to another" ) )
2011 .Icon( BITMAPS::move_relative ) );
2012
2014 .Name( "pcbnew.PositionRelative.selectpositionRelativeItem" )
2015 .Scope( AS_GLOBAL ) );
2016
2017
2018// PCB_SELECTION_TOOL
2019//
2021 .Name( "pcbnew.InteractiveSelection" )
2022 .Scope( AS_GLOBAL )
2023 // No description, not shown anywhere
2024 .Flags( AF_ACTIVATE ) );
2025
2027 .Name( "pcbnew.InteractiveSelection.Cursor" )
2028 .Scope( AS_GLOBAL )
2029 .Parameter<CLIENT_SELECTION_FILTER>( nullptr ) );
2030
2032 .Name( "pcbnew.InteractiveSelection.SelectItem" )
2033 .Scope( AS_GLOBAL ) );
2034
2036 .Name( "pcbnew.InteractiveSelection.SelectItems" )
2037 .Scope( AS_GLOBAL ) );
2038
2040 .Name( "pcbnew.InteractiveSelection.UnselectItem" )
2041 .Scope( AS_GLOBAL ) );
2042
2044 .Name( "pcbnew.InteractiveSelection.UnselectItems" )
2045 .Scope( AS_GLOBAL ) );
2046
2048 .Name( "pcbnew.InteractiveSelection.ReselectItem" )
2049 .Scope( AS_GLOBAL ) );
2050
2052 .Name( "pcbnew.InteractiveSelection.Clear" )
2053 .Scope( AS_GLOBAL ) );
2054
2056 .Name( "pcbnew.InteractiveSelection.SelectionMenu" )
2057 .Scope( AS_GLOBAL ) );
2058
2060 .Name( "pcbnew.InteractiveSelection.SelectConnection" )
2061 .Scope( AS_GLOBAL )
2062 .DefaultHotkey( 'U' )
2063 .LegacyHotkeyName( "Select Single Track" )
2064 .FriendlyName( _( "Select/Expand Connection" ) )
2065 .Tooltip( _( "Selects a connection or expands an existing selection to junctions, pads, or entire connections" ) )
2066 .Icon( BITMAPS::add_tracks ) );
2067
2069 .Name( "pcbnew.InteractiveSelection.unrouteSelected" )
2070 .Scope( AS_GLOBAL )
2071 .FriendlyName( _( "Unroute Selected" ) )
2072 .Tooltip( _( "Unroutes selected items to the nearest pad." ) )
2073 .Icon( BITMAPS::general_deletions ) );
2074
2076 .Name( "pcbnew.InteractiveSelection.SyncSelection" )
2077 .Scope( AS_GLOBAL ) );
2078
2080 .Name( "pcbnew.InteractiveSelection.SyncSelectionWithNets" )
2081 .Scope( AS_GLOBAL ) );
2082
2084 .Name( "pcbnew.InteractiveSelection.SelectNet" )
2085 .Scope( AS_GLOBAL )
2086 .FriendlyName( _( "Select All Tracks in Net" ) )
2087 .Tooltip( _( "Selects all tracks & vias belonging to the same net." ) )
2088 .Parameter<int>( 0 ) );
2089
2091 .Name( "pcbnew.InteractiveSelection.DeselectNet" )
2092 .Scope( AS_GLOBAL )
2093 .FriendlyName( _( "Deselect All Tracks in Net" ) )
2094 .Tooltip( _( "Deselects all tracks & vias belonging to the same net." ) )
2095 .Parameter<int>( 0 ) );
2096
2098 .Name( "pcbnew.InteractiveSelection.SelectUnconnected" )
2099 .Scope( AS_GLOBAL )
2100 .DefaultHotkey( 'O' )
2101 .FriendlyName( _( "Select All Unconnected Footprints" ) )
2102 .Tooltip( _( "Selects all unconnected footprints belonging to each selected net." ) ) );
2103
2105 .Name( "pcbnew.InteractiveSelection.GrabUnconnected" )
2106 .Scope( AS_GLOBAL )
2107 .DefaultHotkey( MD_SHIFT + 'O' )
2108 .FriendlyName( _( "Grab Nearest Unconnected Footprints" ) )
2109 .Tooltip( _( "Selects and initiates moving the nearest unconnected footprint on each selected net." ) ) );
2110
2112 .Name( "pcbnew.InteractiveSelection.SelectOnSheet" )
2113 .Scope( AS_GLOBAL )
2114 .FriendlyName( _( "Sheet" ) )
2115 .Tooltip( _( "Selects all footprints and tracks in the schematic sheet" ) )
2116 .Icon( BITMAPS::select_same_sheet ) );
2117
2119 .Name( "pcbnew.InteractiveSelection.SelectSameSheet" )
2120 .Scope( AS_GLOBAL )
2121 .FriendlyName( _( "Items in Same Hierarchical Sheet" ) )
2122 .Tooltip( _( "Selects all footprints and tracks in the same schematic sheet" ) )
2123 .Icon( BITMAPS::select_same_sheet ) );
2124
2126 .Name( "pcbnew.InteractiveSelection.SelectOnSchematic" )
2127 .Scope( AS_GLOBAL )
2128 .FriendlyName( _( "Select on Schematic" ) )
2129 .Tooltip( _( "Selects corresponding items in Schematic editor" ) )
2130 .Icon( BITMAPS::select_same_sheet ) );
2131
2133 .Name( "pcbnew.InteractiveSelection.FilterSelection" )
2134 .Scope( AS_GLOBAL )
2135 .FriendlyName( _( "Filter Selected Items..." ) )
2136 .Tooltip( _( "Remove items from the selection by type" ) )
2137 .Icon( BITMAPS::filter ) );
2138
2139
2140// ZONE_FILLER_TOOL
2141//
2143 .Name( "pcbnew.ZoneFiller.zoneFill" )
2144 .Scope( AS_GLOBAL )
2145 .FriendlyName( _( "Draft Fill Selected Zone(s)" ) )
2146 .Tooltip( _( "Update copper fill of selected zone(s) without regard to other interacting zones" ) )
2147 .Icon( BITMAPS::fill_zone )
2148 .Parameter<ZONE*>( nullptr ) );
2149
2151 .Name( "pcbnew.ZoneFiller.zoneFillAll" )
2152 .Scope( AS_GLOBAL )
2153 .DefaultHotkey( 'B' )
2154 .LegacyHotkeyName( "Fill or Refill All Zones" )
2155 .FriendlyName( _( "Fill All Zones" ) )
2156 .Tooltip( _( "Update copper fill of all zones" ) )
2157 .Icon( BITMAPS::fill_zone ) );
2158
2160 .Name( "pcbnew.ZoneFiller.zoneFillDirty" )
2161 .Scope( AS_CONTEXT ) );
2162
2164 .Name( "pcbnew.ZoneFiller.zoneUnfill" )
2165 .Scope( AS_GLOBAL )
2166 .FriendlyName( _( "Unfill Selected Zone(s)" ) )
2167 .Tooltip( _( "Remove copper fill from selected zone(s)" ) )
2168 .Icon( BITMAPS::zone_unfill ) );
2169
2171 .Name( "pcbnew.ZoneFiller.zoneUnfillAll" )
2172 .Scope( AS_GLOBAL )
2173 .DefaultHotkey( MD_CTRL + 'B' )
2174 .LegacyHotkeyName( "Remove Filled Areas in All Zones" )
2175 .FriendlyName( _( "Unfill All Zones" ) )
2176 .Tooltip( _( "Remove copper fill from all zones" ) )
2177 .Icon( BITMAPS::zone_unfill ) );
2178
2179
2180// AUTOPLACER_TOOL
2181//
2183 .Name( "pcbnew.Autoplacer.autoplaceSelected" )
2184 .Scope( AS_GLOBAL )
2185 .FriendlyName( _( "Place Selected Footprints" ) )
2186 .Tooltip( _( "Performs automatic placement of selected components" ) ) );
2187
2189 .Name( "pcbnew.Autoplacer.autoplaceOffboard" )
2190 .Scope( AS_GLOBAL )
2191 .FriendlyName( _( "Place Off-Board Footprints" ) )
2192 .Tooltip( _( "Performs automatic placement of components outside board area" ) ) );
2193
2194
2195// ROUTER_TOOL
2196//
2198 .Name( "pcbnew.InteractiveRouter.SingleTrack" )
2199 .Scope( AS_GLOBAL )
2200 .DefaultHotkey( 'X' )
2201 .LegacyHotkeyName( "Add New Track" )
2202 .FriendlyName( _( "Route Single Track" ) )
2203 .Tooltip( _( "Route tracks" ) )
2204 .Icon( BITMAPS::add_tracks )
2205 .Flags( AF_ACTIVATE )
2206 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2207
2209 .Name( "pcbnew.InteractiveRouter.DiffPair" )
2210 .Scope( AS_GLOBAL )
2211 .DefaultHotkey( '6' )
2212 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2213 .LegacyHotkeyName( "Route Differential Pair (Modern Toolset only)" )
2214 .FriendlyName( _( "Route Differential Pair" ) )
2215 .Tooltip( _( "Route differential pairs" ) )
2216 .Icon( BITMAPS::ps_diff_pair )
2217 .Flags( AF_ACTIVATE )
2218 .Parameter( PNS::PNS_MODE_ROUTE_DIFF_PAIR ) );
2219
2221 .Name( "pcbnew.InteractiveRouter.SettingsDialog" )
2222 .Scope( AS_GLOBAL )
2223 .DefaultHotkey( MD_CTRL + '<' )
2224 .LegacyHotkeyName( "Routing Options" )
2225 .FriendlyName( _( "Interactive Router Settings..." ) )
2226 .Tooltip( _( "Open Interactive Router settings" ) )
2227 .Icon( BITMAPS::tools ) );
2228
2230 .Name( "pcbnew.InteractiveRouter.DiffPairDialog" )
2231 .Scope( AS_GLOBAL )
2232 .FriendlyName( _( "Differential Pair Dimensions..." ) )
2233 .Tooltip( _( "Open Differential Pair Dimension settings" ) )
2234 .Icon( BITMAPS::ps_diff_pair_gap ) );
2235
2237 .Name( "pcbnew.InteractiveRouter.HighlightMode" )
2238 .Scope( AS_GLOBAL )
2239 .FriendlyName( _( "Router Highlight Mode" ) )
2240 .Tooltip( _( "Switch router to highlight mode" ) )
2241 .Flags( AF_NONE )
2242 .Parameter( PNS::RM_MarkObstacles ) );
2243
2245 .Name( "pcbnew.InteractiveRouter.ShoveMode" )
2246 .Scope( AS_GLOBAL )
2247 .FriendlyName( _( "Router Shove Mode" ) )
2248 .Tooltip( _( "Switch router to shove mode" ) )
2249 .Flags( AF_NONE )
2250 .Parameter( PNS::RM_Shove ) );
2251
2253 .Name( "pcbnew.InteractiveRouter.WalkaroundMode" )
2254 .Scope( AS_GLOBAL )
2255 .FriendlyName( _( "Router Walkaround Mode" ) )
2256 .Tooltip( _( "Switch router to walkaround mode" ) )
2257 .Flags( AF_NONE )
2258 .Parameter( PNS::RM_Walkaround ) );
2259
2261 .Name( "pcbnew.InteractiveRouter.CycleRouterMode" )
2262 .Scope( AS_GLOBAL )
2263 .FriendlyName( _( "Cycle Router Mode" ) )
2264 .Tooltip( _( "Cycle router to the next mode" ) ) );
2265
2267 .Name( "pcbnew.InteractiveRouter.SelectLayerPair" )
2268 .Scope( AS_GLOBAL )
2269 .FriendlyName( _( "Set Layer Pair..." ) )
2270 .Tooltip( _( "Change active layer pair for routing" ) )
2272 .Flags( AF_ACTIVATE ) );
2273
2275 .Name( "pcbnew.LengthTuner.TuneSingleTrack" )
2276 .Scope( AS_GLOBAL )
2277 .DefaultHotkey( '7' )
2278 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2279 .LegacyHotkeyName( "Tune Single Track (Modern Toolset only)" )
2280 .FriendlyName( _( "Tune Length of a Single Track" ) )
2281 .Tooltip( _( "Tune length of a single track" ) )
2283 .Flags( AF_ACTIVATE )
2284 .Parameter( PNS::PNS_MODE_TUNE_SINGLE ) );
2285
2287 .Name( "pcbnew.LengthTuner.TuneDiffPair" )
2288 .Scope( AS_GLOBAL )
2289 .DefaultHotkey( '8' )
2290 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2291 .LegacyHotkeyName( "Tune Differential Pair Length (Modern Toolset only)" )
2292 .FriendlyName( _( "Tune Length of a Differential Pair" ) )
2293 .Tooltip( _( "Tune length of a differential pair" ) )
2295 .Flags( AF_ACTIVATE )
2296 .Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR ) );
2297
2299 .Name( "pcbnew.LengthTuner.TuneDiffPairSkew" )
2300 .Scope( AS_GLOBAL )
2301 .DefaultHotkey( '9' )
2302 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2303 .LegacyHotkeyName( "Tune Differential Pair Skew (Modern Toolset only)" )
2304 .FriendlyName( _( "Tune Skew of a Differential Pair" ) )
2305 .Tooltip( _( "Tune skew of a differential pair" ) )
2307 .Flags( AF_ACTIVATE )
2308 .Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW ) );
2309
2311 .Name( "pcbnew.InteractiveRouter.InlineDrag" )
2312 .Scope( AS_CONTEXT )
2313 .Parameter<int>( PNS::DM_ANY ) );
2314
2316 .Name( "pcbnew.InteractiveRouter.UndoLastSegment" )
2317 .Scope( AS_CONTEXT )
2318 .DefaultHotkey( WXK_BACK )
2319 .FriendlyName( _( "Undo Last Segment" ) )
2320 .Tooltip( _( "Walks the current track back one segment." ) ) );
2321
2323 .Name( "pcbnew.InteractiveRouter.ContinueFromEnd" )
2324 .Scope( AS_CONTEXT )
2325 .DefaultHotkey( MD_CTRL + 'E' )
2326 .FriendlyName( _( "Route From Other End" ) )
2327 .Tooltip( _( "Commits current segments and starts next segment from nearest ratsnest end." ) ) );
2328
2330 .Name( "pcbnew.InteractiveRouter.AttemptFinish" )
2331 .Scope( AS_CONTEXT )
2332 .DefaultHotkey( 'F' )
2333 .FriendlyName( _( "Attempt Finish" ) )
2334 .Tooltip( _( "Attempts to complete current route to nearest ratsnest end." ) )
2335 .Parameter<bool*>( nullptr ) );
2336
2338 .Name( "pcbnew.InteractiveRouter.RouteSelected" )
2339 .Scope( AS_GLOBAL )
2340 .DefaultHotkey( MD_SHIFT + 'X' )
2341 .FriendlyName( _( "Route Selected" ) )
2342 .Tooltip( _( "Sequentially route selected items from ratsnest anchor." ) )
2343 .Flags( AF_ACTIVATE )
2344 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2345
2347 .Name( "pcbnew.InteractiveRouter.RouteSelectedFromEnd" )
2348 .Scope( AS_GLOBAL )
2349 .DefaultHotkey( MD_SHIFT + 'E' )
2350 .FriendlyName( _( "Route Selected From Other End" ) )
2351 .Tooltip( _( "Sequentially route selected items from other end of ratsnest anchor." ) )
2352 .Flags( AF_ACTIVATE )
2353 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2354
2356 .Name( "pcbnew.InteractiveRouter.Autoroute" )
2357 .Scope( AS_GLOBAL )
2358 .DefaultHotkey( MD_SHIFT + 'F' )
2359 .FriendlyName( _( "Attempt Finish Selected (Autoroute)" ) )
2360 .Tooltip( _( "Sequentially attempt to automatically route all selected pads." ) )
2361 .Flags( AF_ACTIVATE )
2362 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2363
2365 .Name( "pcbnew.InteractiveRouter.BreakTrack" )
2366 .Scope( AS_GLOBAL )
2367 .FriendlyName( _( "Break Track" ) )
2368 .Tooltip( _( "Splits the track segment into two segments connected at the cursor position." ) )
2369 .Icon( BITMAPS::break_line ) );
2370
2372 .Name( "pcbnew.InteractiveRouter.Drag45Degree" )
2373 .Scope( AS_GLOBAL )
2374 .DefaultHotkey( 'D' )
2375 .LegacyHotkeyName( "Drag Track Keep Slope" )
2376 .FriendlyName( _( "Drag 45 Degree Mode" ) )
2377 .Tooltip( _( "Drags the track segment while keeping connected tracks at 45 degrees." ) )
2379
2381 .Name( "pcbnew.InteractiveRouter.DragFreeAngle" )
2382 .Scope( AS_GLOBAL )
2383 .DefaultHotkey( 'G' )
2384 .LegacyHotkeyName( "Drag Item" )
2385 .FriendlyName( _( "Drag Free Angle" ) )
2386 .Tooltip( _( "Drags the nearest joint in the track without restricting the track angle." ) )
2387 .Icon( BITMAPS::drag_segment ) );
2388
2389
2390// GENERATOR_TOOL
2391//
2392
2394 .Name( "pcbnew.Generator.regenerateAllTuning" )
2395 .Scope( AS_GLOBAL )
2396 .FriendlyName( _( "Update All Tuning Patterns" ) )
2397 .Tooltip( _( "Attempt to re-tune existing tuning patterns within their bounds" ) )
2399 .Parameter( wxString( wxS( "tuning_pattern" ) ) ) );
2400
2402 .Name( "pcbnew.Generator.regenerateAll" )
2403 .Scope( AS_GLOBAL )
2404 .FriendlyName( _( "Rebuild All Generators" ) )
2405 .Tooltip( _( "Rebuilds geometry of all generators" ) )
2406 .Icon( BITMAPS::refresh )
2407 .Parameter( wxString( wxS( "*" ) ) ) );
2408
2410 .Name( "pcbnew.Generator.regenerateSelected" )
2411 .Scope( AS_GLOBAL )
2412 .FriendlyName( _( "Rebuild Selected Generators" ) )
2413 .Tooltip( _( "Rebuilds geometry of selected generator(s)" ) )
2414 .Icon( BITMAPS::refresh ) );
2415
2416
2418 .Name( "pcbnew.Generator.genStartEdit" )
2419 .Scope( AS_CONTEXT ) );
2420
2422 .Name( "pcbnew.Generator.genUpdateEdit" )
2423 .Scope( AS_CONTEXT ) );
2424
2426 .Name( "pcbnew.Generator.genPushEdit" )
2427 .Scope( AS_CONTEXT ) );
2428
2430 .Name( "pcbnew.Generator.genRevertEdit" )
2431 .Scope( AS_CONTEXT ) );
2432
2434 .Name( "pcbnew.Generator.genRemove" )
2435 .Scope( AS_CONTEXT ) );
2436
2437
2439 .Name( "pcbnew.Generator.showManager" )
2440 .Scope( AS_GLOBAL )
2441 .FriendlyName( _( "Generators Manager" ) )
2442 .Tooltip( _( "Show a manager dialog for Generator objects" ) )
2443 .Icon( BITMAPS::pin_table ) );
2444
2445
2446// LENGTH_TUNER_TOOL
2447//
2449 .Name( "pcbnew.Control.DdAppendBoard" )
2450 .Scope( AS_GLOBAL ) );
2451
2452
2454 .Name( "pcbnew.Control.ddImportFootprint" )
2455 .Scope( AS_GLOBAL ) );
2456
2457
2459 "common.Interactive.snappingModeChangedByKey" );
@ KEEP_ENDPOINTS_OR_START_DIRECTION
@ KEEP_CENTER_ADJUST_ANGLE_RADIUS
@ new_footprint
@ copy_pad_settings
@ add_zone_cutout
@ cleanup_tracks_and_vias
@ distribute_horizontal
@ show_mod_edge
@ general_deletions
@ align_items_bottom
@ hide_ratsnest
@ align_items_left
@ show_zone_outline_only
@ push_pad_settings
@ delete_cursor
@ ps_diff_pair_tune_length
@ module_options
@ distribute_vertical
@ add_graphical_polygon
@ move_exactly
@ align_items_middle
@ add_radial_dimension
@ ps_tune_length
@ zone_duplicate
@ import_module
@ ps_diff_pair
@ router_len_tuner_dist_incr
@ drag_segment
@ module_editor
@ subtract_polygons
@ align_items_top
@ export_module
@ pad_enumerate
@ move_relative
@ curved_ratsnest
@ router_len_tuner_dist_decr
@ add_aligned_dimension
@ general_ratsnest
@ add_rectangle
@ mw_add_stub_arc
@ align_items_right
@ apply_pad_settings
@ mw_add_shape
@ icon_eeschema_24
@ add_center_dimension
@ show_ratsnest
@ drag_segment_withslope
@ width_track_via
@ merge_polygons
@ add_graphical_segments
@ intersect_polygons
@ ps_diff_pair_tune_phase
@ contrast_mode
@ add_orthogonal_dimension
@ add_keepout_area
@ group_ungroup
@ group_remove
@ pack_footprints
@ custom_pad_to_primitives
@ directory_open
@ show_zone_disable
@ align_items_center
@ layers_manager
@ net_highlight
@ options_board
@ show_zone_triangulation
@ router_len_tuner
@ select_layer_pair
@ router_len_tuner_amplitude_incr
@ select_same_sheet
@ cleanup_graphics
@ module_wizard
@ import_vector
@ router_len_tuner_amplitude_decr
@ tool_ratsnest
@ edit_cmp_symb_links
@ ps_diff_pair_gap
@ CURSOR_NONE
Definition: actions.h:226
static TOOL_ACTION deleteLastPoint
Definition: pcb_actions.h:223
static TOOL_ACTION toggleHV45Mode
Definition: pcb_actions.h:512
static TOOL_ACTION editTracksAndVias
Definition: pcb_actions.h:407
static TOOL_ACTION_GROUP layerDirectSwitchActions()
static TOOL_ACTION deleteFootprint
Definition: pcb_actions.h:458
static TOOL_ACTION drawRuleArea
Definition: pcb_actions.h:215
static TOOL_ACTION layerToggle
Definition: pcb_actions.h:371
static TOOL_ACTION drag45Degree
Definition: pcb_actions.h:191
static TOOL_ACTION duplicateIncrement
Activation of the duplication tool with incrementing (e.g. pad number)
Definition: pcb_actions.h:180
static TOOL_ACTION layerInner12
Definition: pcb_actions.h:347
static TOOL_ACTION microwaveCreateGap
Definition: pcb_actions.h:501
static TOOL_ACTION recombinePad
Definition: pcb_actions.h:475
static TOOL_ACTION renameFootprint
Definition: pcb_actions.h:457
static TOOL_ACTION routerUndoLastSegment
Definition: pcb_actions.h:252
static TOOL_ACTION placeText
Definition: pcb_actions.h:201
static TOOL_ACTION layerInner8
Definition: pcb_actions.h:343
static TOOL_ACTION swapLayers
Definition: pcb_actions.h:417
static TOOL_ACTION zonesManager
Definition: pcb_actions.h:441
static TOOL_ACTION generateBOM
Definition: pcb_actions.h:431
static TOOL_ACTION pointEditorArcKeepCenter
Definition: pcb_actions.h:290
static TOOL_ACTION highlightItem
Definition: pcb_actions.h:550
static TOOL_ACTION drawOrthogonalDimension
Definition: pcb_actions.h:211
static TOOL_ACTION zoneDisplayToggle
Definition: pcb_actions.h:331
static TOOL_ACTION enumeratePads
Tool for quick pad enumeration.
Definition: pcb_actions.h:478
static TOOL_ACTION distributeVertically
Definition: pcb_actions.h:310
static TOOL_ACTION drawRectangle
Definition: pcb_actions.h:197
static TOOL_ACTION layerInner3
Definition: pcb_actions.h:338
static TOOL_ACTION layerPrev
Definition: pcb_actions.h:368
static TOOL_ACTION setAnchor
Definition: pcb_actions.h:222
static TOOL_ACTION padDisplayMode
Definition: pcb_actions.h:325
static TOOL_ACTION placeReferenceImage
Definition: pcb_actions.h:200
static TOOL_ACTION routerSettingsDialog
Activation of the Push and Shove settings dialogs.
Definition: pcb_actions.h:261
static TOOL_ACTION showRatsnest
Definition: pcb_actions.h:320
static TOOL_ACTION zoneFillAll
Definition: pcb_actions.h:392
static TOOL_ACTION layerInner2
Definition: pcb_actions.h:337
static TOOL_ACTION showLayersManager
Definition: pcb_actions.h:438
static TOOL_ACTION changeTrackWidth
Update selected tracks & vias to the current track & via dimensions.
Definition: pcb_actions.h:152
static TOOL_ACTION trackWidthDec
Definition: pcb_actions.h:382
static TOOL_ACTION routerAttemptFinish
Definition: pcb_actions.h:255
static TOOL_ACTION convertToKeepout
Definition: pcb_actions.h:571
static TOOL_ACTION toggleNetHighlight
Definition: pcb_actions.h:548
static TOOL_ACTION generateDrillFiles
Definition: pcb_actions.h:426
static TOOL_ACTION pushPadSettings
Copy the current pad's settings to other pads in the footprint or on the board.
Definition: pcb_actions.h:498
static TOOL_ACTION unrouteSelected
Removes all tracks from the selected items to the first pad.
Definition: pcb_actions.h:93
static TOOL_ACTION drawCircle
Definition: pcb_actions.h:198
static TOOL_ACTION magneticSnapAllLayers
Definition: pcb_actions.h:237
static TOOL_ACTION mirrorH
Mirroring of selected items.
Definition: pcb_actions.h:139
static TOOL_ACTION routeDiffPair
Activation of the Push and Shove router (differential pair mode)
Definition: pcb_actions.h:246
static TOOL_ACTION selectionCursor
Select a single item under the cursor position.
Definition: pcb_actions.h:65
static TOOL_ACTION generateD356File
Definition: pcb_actions.h:430
static TOOL_ACTION groupLeave
Definition: pcb_actions.h:524
static TOOL_ACTION updateFootprint
Definition: pcb_actions.h:413
static TOOL_ACTION tuneDiffPair
Definition: pcb_actions.h:249
static TOOL_ACTION convertToTracks
Definition: pcb_actions.h:574
static TOOL_ACTION alignTop
Definition: pcb_actions.h:303
static TOOL_ACTION trackViaSizeChanged
Definition: pcb_actions.h:386
static TOOL_ACTION exportSpecctraDSN
Definition: pcb_actions.h:423
static TOOL_ACTION createFootprint
Definition: pcb_actions.h:453
static TOOL_ACTION layerChanged
Definition: pcb_actions.h:376
static TOOL_ACTION trackWidthInc
Definition: pcb_actions.h:381
static TOOL_ACTION hideFootprintTree
Definition: pcb_actions.h:446
static TOOL_ACTION grabUnconnected
Select and move nearest unconnected footprint from ratsnest of selection.
Definition: pcb_actions.h:105
static TOOL_ACTION filterSelection
Filter the items in the current selection (invokes dialog)
Definition: pcb_actions.h:117
static TOOL_ACTION ddAppendBoard
Drag and drop.
Definition: pcb_actions.h:577
static TOOL_ACTION editFootprint
Definition: pcb_actions.h:455
static TOOL_ACTION exportFootprint
Definition: pcb_actions.h:463
static TOOL_ACTION layerInner25
Definition: pcb_actions.h:360
static TOOL_ACTION showFootprintTree
Definition: pcb_actions.h:445
static TOOL_ACTION breakTrack
Break a single track into two segments at the cursor.
Definition: pcb_actions.h:189
static TOOL_ACTION pointEditorMoveMidpoint
Definition: pcb_actions.h:294
static TOOL_ACTION highlightNet
Definition: pcb_actions.h:546
static TOOL_ACTION magneticSnapActiveLayer
Snapping controls.
Definition: pcb_actions.h:236
static TOOL_ACTION generateIPC2581File
Definition: pcb_actions.h:429
static TOOL_ACTION getAndPlace
Find an item and start moving.
Definition: pcb_actions.h:563
static TOOL_ACTION drawTable
Definition: pcb_actions.h:203
static TOOL_ACTION drawTextBox
Definition: pcb_actions.h:202
static TOOL_ACTION copyPadSettings
Copy the selected pad's settings to the board design settings.
Definition: pcb_actions.h:492
static TOOL_ACTION layerAlphaDec
Definition: pcb_actions.h:370
static TOOL_ACTION unselectItem
Definition: pcb_actions.h:72
static TOOL_ACTION routerRouteSelectedFromEnd
Definition: pcb_actions.h:257
static TOOL_ACTION routerHighlightMode
Actions to enable switching modes via hotkey assignments.
Definition: pcb_actions.h:265
static TOOL_ACTION routerWalkaroundMode
Definition: pcb_actions.h:267
static TOOL_ACTION routerShoveMode
Definition: pcb_actions.h:266
static TOOL_ACTION convertToLines
Definition: pcb_actions.h:572
static TOOL_ACTION drawZoneCutout
Definition: pcb_actions.h:216
static TOOL_ACTION genPushEdit
Definition: pcb_actions.h:280
static TOOL_ACTION drawPolygon
Definition: pcb_actions.h:196
static TOOL_ACTION placePad
Activation of the drawing tool (placing a PAD)
Definition: pcb_actions.h:472
static TOOL_ACTION hideNetInRatsnest
Definition: pcb_actions.h:553
static TOOL_ACTION hideLocalRatsnest
Definition: pcb_actions.h:556
static TOOL_ACTION group
Definition: pcb_actions.h:520
static TOOL_ACTION zoneDisplayFilled
Definition: pcb_actions.h:327
static TOOL_ACTION layerInner24
Definition: pcb_actions.h:359
static TOOL_ACTION viaSizeDec
Definition: pcb_actions.h:384
static TOOL_ACTION showNetInRatsnest
Definition: pcb_actions.h:554
static TOOL_ACTION drawRadialDimension
Definition: pcb_actions.h:210
static TOOL_ACTION genStartEdit
Definition: pcb_actions.h:278
static TOOL_ACTION tuneSingleTrack
Definition: pcb_actions.h:248
static TOOL_ACTION zoneFill
Definition: pcb_actions.h:391
static TOOL_ACTION cleanupTracksAndVias
Definition: pcb_actions.h:411
static TOOL_ACTION viaDisplayMode
Definition: pcb_actions.h:326
static TOOL_ACTION editTextAndGraphics
Definition: pcb_actions.h:408
static TOOL_ACTION properties
Activation of the edit tool.
Definition: pcb_actions.h:174
static TOOL_ACTION drawLeader
Definition: pcb_actions.h:212
static TOOL_ACTION editFpInFpEditor
Definition: pcb_actions.h:435
static TOOL_ACTION selectionClear
Clear the current selection.
Definition: pcb_actions.h:68
static TOOL_ACTION moveWithReference
move with a reference point
Definition: pcb_actions.h:126
static TOOL_ACTION toggleLock
Definition: pcb_actions.h:515
static TOOL_ACTION swap
Swapping of selected items.
Definition: pcb_actions.h:143
static TOOL_ACTION toggleLastNetHighlight
Definition: pcb_actions.h:547
static TOOL_ACTION layerInner29
Definition: pcb_actions.h:364
static TOOL_ACTION * LayerIDToAction(PCB_LAYER_ID aLayerID)
Translate a layer ID into the action that switches to that layer.
static TOOL_ACTION drillResetOrigin
Definition: pcb_actions.h:531
static TOOL_ACTION placeCharacteristics
Definition: pcb_actions.h:218
static TOOL_ACTION pluginsShowFolder
Definition: pcb_actions.h:403
static TOOL_ACTION viaSizeInc
Definition: pcb_actions.h:383
static TOOL_ACTION routerAutorouteSelected
Definition: pcb_actions.h:258
static TOOL_ACTION moveExact
Activation of the exact move tool.
Definition: pcb_actions.h:177
static TOOL_ACTION autoplaceOffboardComponents
Definition: pcb_actions.h:565
static TOOL_ACTION layerInner11
Definition: pcb_actions.h:346
static TOOL_ACTION routerDiffPairDialog
Definition: pcb_actions.h:262
static TOOL_ACTION explodePad
Definition: pcb_actions.h:474
static TOOL_ACTION routerContinueFromEnd
Definition: pcb_actions.h:254
static TOOL_ACTION zoneUnfill
Definition: pcb_actions.h:394
static TOOL_ACTION intersectPolygons
Intersection of multiple polygons.
Definition: pcb_actions.h:171
static TOOL_ACTION pointEditorMoveCorner
Definition: pcb_actions.h:293
static TOOL_ACTION layerAlphaInc
Definition: pcb_actions.h:369
static TOOL_ACTION openWithTextEditor
Definition: pcb_actions.h:464
static TOOL_ACTION inspectConstraints
Definition: pcb_actions.h:540
static TOOL_ACTION generatePosFile
Definition: pcb_actions.h:427
static TOOL_ACTION globalDeletions
Definition: pcb_actions.h:410
static TOOL_ACTION newFootprint
Definition: pcb_actions.h:450
static TOOL_ACTION genRemove
Definition: pcb_actions.h:282
static TOOL_ACTION drillOrigin
Definition: pcb_actions.h:530
static TOOL_ACTION selectOnSheetFromEeschema
Select all components on sheet from Eeschema crossprobing.
Definition: pcb_actions.h:108
static TOOL_ACTION layerInner16
Definition: pcb_actions.h:351
static TOOL_ACTION defaultPadProperties
Definition: pcb_actions.h:467
static TOOL_ACTION selectConnection
Select tracks between junctions or expands an existing selection to pads or the entire connection.
Definition: pcb_actions.h:90
static TOOL_ACTION assignNetClass
Definition: pcb_actions.h:388
static TOOL_ACTION packAndMoveFootprints
Pack and start moving selected footprints.
Definition: pcb_actions.h:146
static TOOL_ACTION alignRight
Definition: pcb_actions.h:306
static TOOL_ACTION tuneSkew
Definition: pcb_actions.h:250
static TOOL_ACTION copyWithReference
copy command with manual reference point selection
Definition: pcb_actions.h:129
static TOOL_ACTION layerInner26
Definition: pcb_actions.h:361
static TOOL_ACTION layerInner18
Definition: pcb_actions.h:353
static TOOL_ACTION incWidth
Increase width of currently drawn line.
Definition: pcb_actions.h:227
static TOOL_ACTION repairBoard
Definition: pcb_actions.h:537
static TOOL_ACTION layerInner14
Definition: pcb_actions.h:349
static TOOL_ACTION healShapes
Connect selected shapes, possibly extending or cutting them, or adding extra geometry.
Definition: pcb_actions.h:162
static TOOL_ACTION trackDisplayMode
Definition: pcb_actions.h:324
static TOOL_ACTION showNetInspector
Definition: pcb_actions.h:439
static TOOL_ACTION selectLayerPair
Definition: pcb_actions.h:186
static TOOL_ACTION magneticSnapToggle
Definition: pcb_actions.h:238
static TOOL_ACTION microwaveCreateStubArc
Definition: pcb_actions.h:505
static TOOL_ACTION layerInner6
Definition: pcb_actions.h:341
static TOOL_ACTION dragFreeAngle
Definition: pcb_actions.h:192
static TOOL_ACTION clearHighlight
Definition: pcb_actions.h:545
static TOOL_ACTION generateGerbers
Definition: pcb_actions.h:425
static TOOL_ACTION inspectClearance
Definition: pcb_actions.h:539
static TOOL_ACTION convertToZone
Definition: pcb_actions.h:570
static TOOL_ACTION ddImportFootprint
Definition: pcb_actions.h:578
static TOOL_ACTION generatorsShowManager
Definition: pcb_actions.h:284
static TOOL_ACTION unselectItems
Definition: pcb_actions.h:77
static TOOL_ACTION zoneDisplayTriangulated
Definition: pcb_actions.h:330
static TOOL_ACTION genUpdateEdit
Definition: pcb_actions.h:279
static TOOL_ACTION generateReportFile
Definition: pcb_actions.h:428
static TOOL_ACTION updateLocalRatsnest
Definition: pcb_actions.h:557
static TOOL_ACTION spacingDecrease
Definition: pcb_actions.h:205
static TOOL_ACTION updateFootprints
Definition: pcb_actions.h:414
static TOOL_ACTION ungroup
Definition: pcb_actions.h:521
static TOOL_ACTION groupProperties
Definition: pcb_actions.h:298
static TOOL_ACTION importFootprint
Definition: pcb_actions.h:462
static TOOL_ACTION autoplaceSelectedComponents
Definition: pcb_actions.h:566
static TOOL_ACTION layerInner22
Definition: pcb_actions.h:357
static TOOL_ACTION alignBottom
Definition: pcb_actions.h:304
static TOOL_ACTION pickNewGroupMember
Definition: pcb_actions.h:299
static TOOL_ACTION selectUnconnected
Select unconnected footprints from ratsnest of selection.
Definition: pcb_actions.h:102
static TOOL_ACTION placeImportedGraphics
Definition: pcb_actions.h:221
static TOOL_ACTION layerInner5
Definition: pcb_actions.h:340
static TOOL_ACTION removeUnusedPads
Definition: pcb_actions.h:418
static TOOL_ACTION zoneDisplayFractured
Definition: pcb_actions.h:329
static TOOL_ACTION ratsnestModeCycle
Definition: pcb_actions.h:323
static TOOL_ACTION drawVia
Definition: pcb_actions.h:214
static TOOL_ACTION regenerateAll
Definition: pcb_actions.h:275
static TOOL_ACTION applyPadSettings
Copy the default pad settings to the selected pad.
Definition: pcb_actions.h:495
static TOOL_ACTION alignLeft
Definition: pcb_actions.h:305
static TOOL_ACTION drawArc
Definition: pcb_actions.h:199
static TOOL_ACTION deleteFull
Definition: pcb_actions.h:184
static TOOL_ACTION runDRC
Definition: pcb_actions.h:433
static TOOL_ACTION convertToPoly
Definition: pcb_actions.h:569
static TOOL_ACTION zoneDuplicate
Duplicate zone onto another layer.
Definition: pcb_actions.h:399
static TOOL_ACTION regenerateAllTuning
Generator tool.
Definition: pcb_actions.h:274
static TOOL_ACTION graphicsOutlines
Display footprint graphics as outlines.
Definition: pcb_actions.h:484
static TOOL_ACTION importNetlist
Definition: pcb_actions.h:420
static TOOL_ACTION layerInner20
Definition: pcb_actions.h:355
static TOOL_ACTION pluginsReload
Scripting Actions.
Definition: pcb_actions.h:402
static TOOL_ACTION layerInner7
Definition: pcb_actions.h:342
static TOOL_ACTION layerInner27
Definition: pcb_actions.h:362
static TOOL_ACTION diffFootprint
Definition: pcb_actions.h:541
static TOOL_ACTION moveIndividually
move items one-by-one
Definition: pcb_actions.h:123
static TOOL_ACTION changeFootprints
Definition: pcb_actions.h:416
static TOOL_ACTION drawSimilarZone
Definition: pcb_actions.h:217
static TOOL_ACTION pointEditorArcKeepEndpoint
Definition: pcb_actions.h:291
static TOOL_ACTION syncSelection
Sets selection to specified items, zooms to fit, if enabled.
Definition: pcb_actions.h:80
static TOOL_ACTION boardSetup
Definition: pcb_actions.h:406
static TOOL_ACTION showEeschema
Definition: pcb_actions.h:534
static TOOL_ACTION decWidth
Decrease width of currently drawn line.
Definition: pcb_actions.h:230
static TOOL_ACTION drawCenterDimension
Definition: pcb_actions.h:209
static TOOL_ACTION groupEnter
Definition: pcb_actions.h:523
static TOOL_ACTION zoneUnfillAll
Definition: pcb_actions.h:395
static TOOL_ACTION pasteFootprint
Definition: pcb_actions.h:461
static TOOL_ACTION zoneFillDirty
Definition: pcb_actions.h:393
static TOOL_ACTION selectItem
Select an item (specified as the event parameter).
Definition: pcb_actions.h:71
static TOOL_ACTION chamferLines
Chamfer (i.e. adds a straight line) all selected straight lines by a user defined setback.
Definition: pcb_actions.h:160
static TOOL_ACTION appendBoard
Definition: pcb_actions.h:533
static TOOL_ACTION netColorModeCycle
Definition: pcb_actions.h:322
static TOOL_ACTION selectSameSheet
Select all components on the same sheet as the selected footprint.
Definition: pcb_actions.h:111
static TOOL_ACTION layerInner1
Definition: pcb_actions.h:336
static TOOL_ACTION layerInner10
Definition: pcb_actions.h:345
static TOOL_ACTION microwaveCreateStub
Definition: pcb_actions.h:503
static TOOL_ACTION selectNet
Select all connections belonging to a single net.
Definition: pcb_actions.h:96
static TOOL_ACTION filletTracks
Fillet (i.e. adds an arc tangent to) all selected straight tracks by a user defined radius.
Definition: pcb_actions.h:155
static TOOL_ACTION distributeHorizontally
Definition: pcb_actions.h:309
static TOOL_ACTION layerInner15
Definition: pcb_actions.h:350
static TOOL_ACTION arcPosture
Switch posture when drawing arc.
Definition: pcb_actions.h:233
static TOOL_ACTION microwaveCreateLine
Definition: pcb_actions.h:509
static TOOL_ACTION footprintProperties
Definition: pcb_actions.h:466
static TOOL_ACTION layerInner17
Definition: pcb_actions.h:352
static TOOL_ACTION flipBoard
Definition: pcb_actions.h:378
static TOOL_ACTION layerBottom
Definition: pcb_actions.h:366
static TOOL_ACTION zoneDisplayOutline
Definition: pcb_actions.h:328
static TOOL_ACTION selectionActivate
Activation of the selection tool.
Definition: pcb_actions.h:62
static TOOL_ACTION ratsnestLineMode
Definition: pcb_actions.h:321
static TOOL_ACTION showFootprintAssociations
Definition: pcb_actions.h:542
static TOOL_ACTION layerInner19
Definition: pcb_actions.h:354
static TOOL_ACTION layerInner9
Definition: pcb_actions.h:344
static TOOL_ACTION textOutlines
Display texts as lines.
Definition: pcb_actions.h:487
static TOOL_ACTION showPadNumbers
Definition: pcb_actions.h:332
static TOOL_ACTION checkFootprint
Definition: pcb_actions.h:469
static TOOL_ACTION filletLines
Fillet (i.e. adds an arc tangent to) all selected straight lines by a user defined radius.
Definition: pcb_actions.h:158
static TOOL_ACTION highlightNetSelection
Definition: pcb_actions.h:549
static TOOL_ACTION microwaveCreateFunctionShape
Definition: pcb_actions.h:507
static TOOL_ACTION editLibFpInFpEditor
Definition: pcb_actions.h:436
static TOOL_ACTION zoneMerge
Definition: pcb_actions.h:396
static TOOL_ACTION duplicateFootprint
Definition: pcb_actions.h:456
static TOOL_ACTION closeOutline
Definition: pcb_actions.h:224
static TOOL_ACTION changeFootprint
Definition: pcb_actions.h:415
static TOOL_ACTION routerInlineDrag
Activation of the Push and Shove router (inline dragging mode)
Definition: pcb_actions.h:271
static TOOL_ACTION pointEditorRemoveCorner
Definition: pcb_actions.h:288
static TOOL_ACTION positionRelative
Activation of the position relative tool.
Definition: pcb_actions.h:314
static TOOL_ACTION skip
Definition: pcb_actions.h:149
static TOOL_ACTION amplIncrease
Definition: pcb_actions.h:206
static TOOL_ACTION move
move or drag an item
Definition: pcb_actions.h:120
static TOOL_ACTION mirrorV
Definition: pcb_actions.h:140
static TOOL_ACTION cutFootprint
Definition: pcb_actions.h:459
static TOOL_ACTION amplDecrease
Definition: pcb_actions.h:207
static TOOL_ACTION unlock
Definition: pcb_actions.h:517
static TOOL_ACTION mergePolygons
Merge multiple polygons into a single polygon.
Definition: pcb_actions.h:167
static TOOL_ACTION syncSelectionWithNets
Sets selection to specified items with connected nets, zooms to fit, if enabled.
Definition: pcb_actions.h:83
static TOOL_ACTION spacingIncrease
Definition: pcb_actions.h:204
static TOOL_ACTION layerInner30
Definition: pcb_actions.h:365
static TOOL_ACTION boardReannotate
Definition: pcb_actions.h:536
static TOOL_ACTION subtractPolygons
Subtract polygons from other polygons.
Definition: pcb_actions.h:169
static TOOL_ACTION layerTop
Definition: pcb_actions.h:335
static TOOL_ACTION selectItems
Select a list of items (specified as the event parameter)
Definition: pcb_actions.h:76
static TOOL_ACTION cycleRouterMode
Definition: pcb_actions.h:268
static TOOL_ACTION regenerateSelected
Definition: pcb_actions.h:276
static TOOL_ACTION convertToArc
Definition: pcb_actions.h:573
static TOOL_ACTION layerInner4
Definition: pcb_actions.h:339
static TOOL_ACTION repairFootprint
Definition: pcb_actions.h:538
static TOOL_ACTION flip
Flipping of selected objects.
Definition: pcb_actions.h:136
static TOOL_ACTION alignCenterX
Definition: pcb_actions.h:307
static TOOL_ACTION placeFootprint
Definition: pcb_actions.h:220
static TOOL_ACTION pointEditorAddCorner
Definition: pcb_actions.h:287
static TOOL_ACTION routeSingleTrack
Activation of the Push and Shove router.
Definition: pcb_actions.h:243
static TOOL_ACTION layerInner13
Definition: pcb_actions.h:348
static TOOL_ACTION selectpositionRelativeItem
Selection of anchor item for position relative tool.
Definition: pcb_actions.h:317
static TOOL_ACTION layerInner21
Definition: pcb_actions.h:356
static TOOL_ACTION removeFromGroup
Definition: pcb_actions.h:522
static TOOL_ACTION createArray
Tool for creating an array of objects.
Definition: pcb_actions.h:481
static TOOL_ACTION boardStatistics
Definition: pcb_actions.h:535
static TOOL_ACTION deselectNet
Remove all connections belonging to a single net from the active selection.
Definition: pcb_actions.h:99
static TOOL_ACTION editTeardrops
Definition: pcb_actions.h:409
static TOOL_ACTION layerNext
Definition: pcb_actions.h:367
static TOOL_ACTION selectionMenu
Run a selection menu to select from a list of items.
Definition: pcb_actions.h:86
static TOOL_ACTION showPythonConsole
Definition: pcb_actions.h:440
static TOOL_ACTION copyFootprint
Definition: pcb_actions.h:460
static TOOL_ACTION reselectItem
Definition: pcb_actions.h:73
static TOOL_ACTION extendLines
Extend selected lines to meet at a point.
Definition: pcb_actions.h:164
static TOOL_ACTION drawLine
Definition: pcb_actions.h:195
static TOOL_ACTION placeStackup
Definition: pcb_actions.h:219
static TOOL_ACTION localRatsnestTool
Definition: pcb_actions.h:555
static TOOL_ACTION routerRouteSelected
Definition: pcb_actions.h:256
static TOOL_ACTION cleanupGraphics
Definition: pcb_actions.h:412
static TOOL_ACTION rotateCw
Rotation of selected objects.
Definition: pcb_actions.h:132
static TOOL_ACTION rotateCcw
Definition: pcb_actions.h:133
static TOOL_ACTION drawAlignedDimension
Definition: pcb_actions.h:208
static TOOL_ACTION genRevertEdit
Definition: pcb_actions.h:281
static TOOL_ACTION layerInner23
Definition: pcb_actions.h:358
static TOOL_ACTION drawZone
Definition: pcb_actions.h:213
static TOOL_ACTION alignCenterY
Definition: pcb_actions.h:308
static TOOL_ACTION importSpecctraSession
Definition: pcb_actions.h:422
static TOOL_ACTION selectOnSchematic
Select symbols/pins on schematic corresponding to selected footprints/pads.
Definition: pcb_actions.h:114
static TOOL_ACTION lock
Definition: pcb_actions.h:516
static TOOL_ACTION layerInner28
Definition: pcb_actions.h:363
static const TOOL_EVENT SnappingModeChangedByKeyEvent
Hotkey feedback.
Definition: pcb_actions.h:587
Build up the properties of a TOOL_ACTION in an incremental manner that is static-construction safe.
Definition: tool_action.h:102
Define a group that can be used to group actions (and their events) of similar operations.
Definition: tool_action.h:63
Represent a single user action.
Definition: tool_action.h:269
Generic, UI-independent tool event.
Definition: tool_event.h:167
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:60
@ In22_Cu
Definition: layer_ids.h:87
@ In11_Cu
Definition: layer_ids.h:76
@ In29_Cu
Definition: layer_ids.h:94
@ In30_Cu
Definition: layer_ids.h:95
@ In17_Cu
Definition: layer_ids.h:82
@ In9_Cu
Definition: layer_ids.h:74
@ In19_Cu
Definition: layer_ids.h:84
@ In7_Cu
Definition: layer_ids.h:72
@ In28_Cu
Definition: layer_ids.h:93
@ In26_Cu
Definition: layer_ids.h:91
@ B_Cu
Definition: layer_ids.h:96
@ In21_Cu
Definition: layer_ids.h:86
@ In23_Cu
Definition: layer_ids.h:88
@ In15_Cu
Definition: layer_ids.h:80
@ In2_Cu
Definition: layer_ids.h:67
@ In10_Cu
Definition: layer_ids.h:75
@ In4_Cu
Definition: layer_ids.h:69
@ In16_Cu
Definition: layer_ids.h:81
@ In24_Cu
Definition: layer_ids.h:89
@ In1_Cu
Definition: layer_ids.h:66
@ In13_Cu
Definition: layer_ids.h:78
@ In8_Cu
Definition: layer_ids.h:73
@ In14_Cu
Definition: layer_ids.h:79
@ In12_Cu
Definition: layer_ids.h:77
@ In27_Cu
Definition: layer_ids.h:92
@ In6_Cu
Definition: layer_ids.h:71
@ In5_Cu
Definition: layer_ids.h:70
@ In3_Cu
Definition: layer_ids.h:68
@ In20_Cu
Definition: layer_ids.h:85
@ F_Cu
Definition: layer_ids.h:65
@ In18_Cu
Definition: layer_ids.h:83
@ In25_Cu
Definition: layer_ids.h:90
@ RM_MarkObstacles
Ignore collisions, mark obstacles.
@ RM_Walkaround
Only walk around.
@ RM_Shove
Only shove.
@ PNS_MODE_ROUTE_SINGLE
Definition: pns_router.h:63
@ PNS_MODE_ROUTE_DIFF_PAIR
Definition: pns_router.h:64
@ PNS_MODE_TUNE_DIFF_PAIR
Definition: pns_router.h:66
@ PNS_MODE_TUNE_SINGLE
Definition: pns_router.h:65
@ PNS_MODE_TUNE_DIFF_PAIR_SKEW
Definition: pns_router.h:67
@ DM_ANY
Definition: pns_router.h:77
#define _(s)
Definition: pcb_actions.cpp:44
@ SIMILAR
Add a new zone with the same settings as an existing one.
@ CUTOUT
Make a cutout to an existing zone.
@ ADD
Add a new zone/keepout with fresh settings.
@ AS_GLOBAL
Global action (toolbar/main menu event, global shortcut)
Definition: tool_action.h:48
@ AS_CONTEXT
Action belongs to a particular tool (i.e. a part of a pop-up menu)
Definition: tool_action.h:46
@ AF_ACTIVATE
Action activates a tool.
Definition: tool_action.h:55
@ AF_NOTIFY
Action is a notification (it is by default passed to all tools)
Definition: tool_action.h:56
@ AF_NONE
Definition: tool_action.h:54
@ TA_ACTION
Definition: tool_event.h:111
@ TC_MESSAGE
Definition: tool_event.h:57
@ MD_ALT
Definition: tool_event.h:144
@ MD_CTRL
Definition: tool_event.h:143
@ MD_SHIFT
Definition: tool_event.h:142
VECTOR2< int > VECTOR2I
Definition: vector2d.h:588