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 The 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, see <https://www.gnu.org/licenses/>.
20 */
21
22#include "pcb_actions.h"
23#include "tool/tool_action.h"
24#include "tool/tool_event.h"
25#include <tool/arc_draw_mode.h>
26#include <pcbnew_id.h>
27#include <bitmaps.h>
28#include <layer_ids.h>
31#include <pcb_reference_image.h>
32#include <tool/tool_manager.h>
36#include <router/pns_router.h>
39
40// Actions, being statically-defined, require specialized I18N handling. We continue to
41// use the _() macro so that string harvesting by the I18N framework doesn't have to be
42// specialized, but we don't translate on initialization and instead do it in the getters.
43
44#undef _
45#define _(s) s
46
47// clang-format off
48
49// CONVERT_TOOL
50//
52 .Name( "pcbnew.Convert.convertToPoly" )
53 .Scope( AS_GLOBAL )
54 .FriendlyName( _( "Create Polygon from Selection..." ) )
55 .Tooltip( _( "Creates a graphic polygon from the selection" ) )
57
59 .Name( "pcbnew.Convert.convertToZone" )
60 .Scope( AS_GLOBAL )
61 .FriendlyName( _( "Create Zone from Selection..." ) )
62 .Tooltip( _( "Creates a copper zone from the selection" ) )
63 .Icon( BITMAPS::add_zone ) );
64
66 .Name( "pcbnew.ConstraintEditor.addParallel" )
67 .Scope( AS_GLOBAL )
68 .FriendlyName( _( "Parallel" ) )
69 .Tooltip( _( "Constrain the two selected segments to be parallel" ) )
71 .ToolbarState( TOOLBAR_STATE::TOGGLE )
72 .Flags( AF_ACTIVATE )
73 .Parameter( PCB_CONSTRAINT_TYPE::PARALLEL ) );
74
76 .Name( "pcbnew.ConstraintEditor.addPerpendicular" )
77 .Scope( AS_GLOBAL )
78 .FriendlyName( _( "Perpendicular" ) )
79 .Tooltip( _( "Constrain the two selected segments to be perpendicular" ) )
81 .ToolbarState( TOOLBAR_STATE::TOGGLE )
82 .Flags( AF_ACTIVATE )
84
86 .Name( "pcbnew.ConstraintEditor.addEqualLength" )
87 .Scope( AS_GLOBAL )
88 .FriendlyName( _( "Equal Length" ) )
89 .Tooltip( _( "Constrain the two selected segments to be of equal length" ) )
91 .ToolbarState( TOOLBAR_STATE::TOGGLE )
92 .Flags( AF_ACTIVATE )
94
96 .Name( "pcbnew.ConstraintEditor.addCollinear" )
97 .Scope( AS_GLOBAL )
98 .FriendlyName( _( "Collinear" ) )
99 .Tooltip( _( "Constrain the two selected segments to be collinear" ) )
101 .ToolbarState( TOOLBAR_STATE::TOGGLE )
102 .Flags( AF_ACTIVATE )
103 .Parameter( PCB_CONSTRAINT_TYPE::COLLINEAR ) );
104
106 .Name( "pcbnew.ConstraintEditor.addAngular" )
107 .Scope( AS_GLOBAL )
108 .FriendlyName( _( "Angular Dimension" ) )
109 .Tooltip( _( "Constrain the angle between the two selected segments" ) )
111 .ToolbarState( TOOLBAR_STATE::TOGGLE )
112 .Flags( AF_ACTIVATE )
114
116 .Name( "pcbnew.ConstraintEditor.addTangent" )
117 .Scope( AS_GLOBAL )
118 .FriendlyName( _( "Tangent" ) )
119 .Tooltip( _( "Constrain the selected line and curve, or two curves, to touch tangentially" ) )
121 .ToolbarState( TOOLBAR_STATE::TOGGLE )
122 .Flags( AF_ACTIVATE )
123 .Parameter( PCB_CONSTRAINT_TYPE::TANGENT ) );
124
126 .Name( "pcbnew.ConstraintEditor.addHorizontal" )
127 .Scope( AS_GLOBAL )
128 .FriendlyName( _( "Horizontal" ) )
129 .Tooltip( _( "Constrain the selected segment to be horizontal" ) )
131 .ToolbarState( TOOLBAR_STATE::TOGGLE )
132 .Flags( AF_ACTIVATE )
133 .Parameter( PCB_CONSTRAINT_TYPE::HORIZONTAL ) );
134
136 .Name( "pcbnew.ConstraintEditor.addVertical" )
137 .Scope( AS_GLOBAL )
138 .FriendlyName( _( "Vertical" ) )
139 .Tooltip( _( "Constrain the selected segment to be vertical" ) )
141 .ToolbarState( TOOLBAR_STATE::TOGGLE )
142 .Flags( AF_ACTIVATE )
143 .Parameter( PCB_CONSTRAINT_TYPE::VERTICAL ) );
144
146 .Name( "pcbnew.ConstraintEditor.addFixedLength" )
147 .Scope( AS_GLOBAL )
148 .FriendlyName( _( "Fixed Length" ) )
149 .Tooltip( _( "Lock the selected segment to its current length" ) )
151 .ToolbarState( TOOLBAR_STATE::TOGGLE )
152 .Flags( AF_ACTIVATE )
153 .Parameter( PCB_CONSTRAINT_TYPE::FIXED_LENGTH ) );
154
156 .Name( "pcbnew.ConstraintEditor.addConcentric" )
157 .Scope( AS_GLOBAL )
158 .FriendlyName( _( "Concentric" ) )
159 .Tooltip( _( "Constrain the two selected circles, arcs or ellipses to share a center" ) )
161 .ToolbarState( TOOLBAR_STATE::TOGGLE )
162 .Flags( AF_ACTIVATE )
163 .Parameter( PCB_CONSTRAINT_TYPE::CONCENTRIC ) );
164
166 .Name( "pcbnew.ConstraintEditor.addEqualRadius" )
167 .Scope( AS_GLOBAL )
168 .FriendlyName( _( "Equal Radius" ) )
169 .Tooltip( _( "Constrain the two selected circles or arcs to be of equal radius" ) )
171 .ToolbarState( TOOLBAR_STATE::TOGGLE )
172 .Flags( AF_ACTIVATE )
173 .Parameter( PCB_CONSTRAINT_TYPE::EQUAL_RADIUS ) );
174
176 .Name( "pcbnew.ConstraintEditor.addFixedRadius" )
177 .Scope( AS_GLOBAL )
178 .FriendlyName( _( "Fixed Radius" ) )
179 .Tooltip( _( "Lock the selected circle or arc to its current radius" ) )
181 .ToolbarState( TOOLBAR_STATE::TOGGLE )
182 .Flags( AF_ACTIVATE )
183 .Parameter( PCB_CONSTRAINT_TYPE::FIXED_RADIUS ) );
184
186 .Name( "pcbnew.ConstraintEditor.addArcAngle" )
187 .Scope( AS_GLOBAL )
188 .FriendlyName( _( "Arc Angle" ) )
189 .Tooltip( _( "Drive the selected arc's swept angle" ) )
191 .ToolbarState( TOOLBAR_STATE::TOGGLE )
192 .Flags( AF_ACTIVATE )
193 .Parameter( PCB_CONSTRAINT_TYPE::ARC_ANGLE ) );
194
196 .Name( "pcbnew.ConstraintEditor.addFixedPosition" )
197 .Scope( AS_GLOBAL )
198 .FriendlyName( _( "Fix in Place..." ) )
199 .Tooltip( _( "Click a point to pin it where it is, grounding the shapes constrained to it" ) )
201 .ToolbarState( TOOLBAR_STATE::TOGGLE )
202 .Flags( AF_ACTIVATE )
204
206 .Name( "pcbnew.ConstraintEditor.addCoincident" )
207 .Scope( AS_GLOBAL )
208 .FriendlyName( _( "Coincident..." ) )
209 .Tooltip( _( "Click two shape endpoints to make them coincide" ) )
211 .ToolbarState( TOOLBAR_STATE::TOGGLE )
212 .Flags( AF_ACTIVATE )
213 .Parameter( PCB_CONSTRAINT_TYPE::COINCIDENT ) );
214
216 .Name( "pcbnew.ConstraintEditor.addPointOnLine" )
217 .Scope( AS_GLOBAL )
218 .FriendlyName( _( "Point on Line..." ) )
219 .Tooltip( _( "Click an endpoint, then a segment or circle, to put the point on it" ) )
221 .ToolbarState( TOOLBAR_STATE::TOGGLE )
222 .Flags( AF_ACTIVATE )
224
226 .Name( "pcbnew.ConstraintEditor.addMidpoint" )
227 .Scope( AS_GLOBAL )
228 .FriendlyName( _( "Midpoint..." ) )
229 .Tooltip( _( "Click an endpoint, then a segment, to put the point at its midpoint" ) )
231 .ToolbarState( TOOLBAR_STATE::TOGGLE )
232 .Flags( AF_ACTIVATE )
233 .Parameter( PCB_CONSTRAINT_TYPE::MIDPOINT ) );
234
236 .Name( "pcbnew.ConstraintEditor.addSymmetric" )
237 .Scope( AS_GLOBAL )
238 .FriendlyName( _( "Symmetric..." ) )
239 .Tooltip( _( "Click two endpoints, then a segment axis, to mirror them across it" ) )
241 .ToolbarState( TOOLBAR_STATE::TOGGLE )
242 .Flags( AF_ACTIVATE )
243 .Parameter( PCB_CONSTRAINT_TYPE::SYMMETRIC ) );
244
246 .Name( "pcbnew.ConstraintEditor.showConstraints" )
247 .Scope( AS_GLOBAL )
248 .FriendlyName( _( "Always Show Geometric Constraints" ) )
249 .Tooltip( _( "Always show the geometric-constraint diagnostics overlay" ) )
250 .Flags( AF_NONE )
251 .Icon( BITMAPS::measurement ) );
252
254 .Name( "pcbnew.ConstraintEditor.hideConstraints" )
255 .Scope( AS_GLOBAL )
256 .FriendlyName( _( "Show Geometric Constraints on Hover Only" ) )
257 .Tooltip( _( "Reveal a shape's geometric constraints only while hovering it" ) )
258 .Flags( AF_NONE )
259 .Icon( BITMAPS::measurement ) );
260
262 .Name( "pcbnew.ConstraintEditor.manageConstraints" )
263 .Scope( AS_GLOBAL )
264 .FriendlyName( _( "Geometric Constraints..." ) )
265 .Tooltip( _( "List, locate and delete the board's geometric constraints" ) )
266 .Icon( BITMAPS::measurement ) );
267
269 .Name( "pcbnew.ConstraintEditor.removeConstraints" )
270 .Scope( AS_GLOBAL )
271 .FriendlyName( _( "Remove Geometric Constraints" ) )
272 .Tooltip( _( "Remove geometric constraints referencing the selected items" ) )
273 .Icon( BITMAPS::measurement ) );
274
276 .Name( "pcbnew.EditorControl.showConstraintsPanel" )
277 .Scope( AS_GLOBAL )
278 .FriendlyName( _( "Geometric Constraints" ) )
279 .Tooltip( _( "Show/hide the geometric constraints panel" ) )
280 .Icon( BITMAPS::measurement ) );
281
283 .Name( "pcbnew.ConstraintEditor.toggleAutoConstraints" )
284 .Scope( AS_GLOBAL )
285 .FriendlyName( _( "Automatic Constraints" ) )
286 .Tooltip( _( "Automatically add geometric constraints while drawing" ) )
288 .ToolbarState( TOOLBAR_STATE::TOGGLE ) );
289
291 .Name( "pcbnew.Convert.convertToKeepout" )
292 .Scope( AS_GLOBAL )
293 .FriendlyName( _( "Create Rule Area from Selection..." ) )
294 .Tooltip( _( "Creates a rule area from the selection" ) )
295 .Icon( BITMAPS::add_keepout_area ) );
296
298 .Name( "pcbnew.Convert.convertToLines" )
299 .Scope( AS_GLOBAL )
300 .FriendlyName( _( "Create Lines from Selection..." ) )
301 .Tooltip( _( "Creates graphic lines from the selection" ) )
302 .Icon( BITMAPS::add_line ) );
303
305 .Name( "pcbnew.Convert.convertToArc" )
306 .Scope( AS_GLOBAL )
307 .FriendlyName( _( "Create Arc from Selection" ) )
308 .Tooltip( _( "Creates an arc from the selected line segment" ) )
309 .Icon( BITMAPS::add_arc ) );
310
312 .Name( "pcbnew.Convert.convertToTracks" )
313 .Scope( AS_GLOBAL )
314 .FriendlyName( _( "Create Tracks from Selection" ) )
315 .Tooltip( _( "Creates tracks from the selected graphic lines" ) )
316 .Icon( BITMAPS::add_tracks ) );
317
319 .Name( "pcbnew.Convert.outsetItems" )
320 .Scope( AS_GLOBAL )
321 .FriendlyName( _( "Create Outsets from Selection..." ) )
322 .Tooltip( _( "Create outset lines from the selected item" ) )
324
325
326// DRAWING_TOOL
327//
329 .Name( "pcbnew.InteractiveDrawing.line" )
330 .Scope( AS_GLOBAL )
331 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'L' )
332 .LegacyHotkeyName( "Draw Line" )
333 .FriendlyName( _( "Draw Lines" ) )
334 .ToolbarState( TOOLBAR_STATE::TOGGLE )
336 .Flags( AF_ACTIVATE ) );
337
339 .Name( "pcbnew.InteractiveDrawing.graphicPolygon" )
340 .Scope( AS_GLOBAL )
341 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'P' )
342 .LegacyHotkeyName( "Draw Graphic Polygon" )
343 .FriendlyName( _( "Draw Polygons" ) )
344 .ToolbarState( TOOLBAR_STATE::TOGGLE )
346 .Flags( AF_ACTIVATE )
347 .Parameter( ZONE_MODE::GRAPHIC_POLYGON ) );
348
350 .Name( "pcbnew.InteractiveDrawing.drawViaStitchArea" )
351 .Scope( AS_GLOBAL )
352 .DefaultHotkey( MD_SHIFT + MD_CTRL + 'N' )
353 .LegacyHotkeyName( "Draw Via Stitch area" )
354 .FriendlyName( _( "Draw Via Stitch area" ) )
355 .Tooltip( _( "Draw a via stitch area" ) )
357 .Flags( AF_ACTIVATE )
358 .Parameter( ZONE_MODE::STITCH ) );
359
361 .Name( "pcbnew.InteractiveDrawing.rectangle" )
362 .Scope( AS_GLOBAL )
363 .FriendlyName( _( "Draw Rectangles" ) )
364 .ToolbarState( TOOLBAR_STATE::TOGGLE )
366 .Flags( AF_ACTIVATE ) );
367
369 .Name( "pcbnew.InteractiveDrawing.circle" )
370 .Scope( AS_GLOBAL )
371 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'C' )
372 .LegacyHotkeyName( "Draw Circle" )
373 .FriendlyName( _( "Draw Circles" ) )
374 .ToolbarState( TOOLBAR_STATE::TOGGLE )
375 .Icon( BITMAPS::add_circle )
376 .Flags( AF_ACTIVATE ) );
377
379 .Name( "pcbnew.InteractiveDrawing.ellipse" )
380 .Scope( AS_GLOBAL )
381 .FriendlyName( _( "Draw Ellipse" ) )
382 .Tooltip( _( "Draw an ellipse" ) )
383 .ToolbarState( TOOLBAR_STATE::TOGGLE )
384 .Icon( BITMAPS::add_ellipse )
385 .Flags( AF_ACTIVATE ) );
386
388 .Name( "pcbnew.InteractiveDrawing.ellipseArc" )
389 .Scope( AS_GLOBAL )
390 .FriendlyName( _( "Draw Elliptical Arcs" ) )
391 .Tooltip( _( "Draw an elliptical arc" ) )
392 .ToolbarState( TOOLBAR_STATE::TOGGLE )
394 .Flags( AF_ACTIVATE ) );
395
397 .Name( "pcbnew.InteractiveDrawing.arc" )
398 .Scope( AS_GLOBAL )
399 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'A' )
400 .LegacyHotkeyName( "Draw Arc" )
401 .FriendlyName( _( "Draw Arcs" ) )
402 .ToolbarState( TOOLBAR_STATE::TOGGLE )
403 .Icon( BITMAPS::add_arc )
404 .Flags( AF_ACTIVATE ) );
405
407 .Name( "pcbnew.InteractiveDrawing.arcCenter" )
408 .Scope( AS_GLOBAL )
409 .FriendlyName( _( "Draw Arc: Center, Start, End" ) )
410 .Tooltip( _( "Draw arcs by clicking the center, the start point, then the end point" ) )
411 .ToolbarState( TOOLBAR_STATE::TOGGLE )
413 .Flags( AF_ACTIVATE )
414 .Parameter( ARC_DRAW_MODE::CENTER_START_END ) );
415
417 .Name( "pcbnew.InteractiveDrawing.arcStartEndMid" )
418 .Scope( AS_GLOBAL )
419 .FriendlyName( _( "Draw Arc: Start, End, Midpoint" ) )
420 .Tooltip( _( "Draw arcs by clicking the start point, the end point, then a point on the arc" ) )
421 .ToolbarState( TOOLBAR_STATE::TOGGLE )
423 .Flags( AF_ACTIVATE )
424 .Parameter( ARC_DRAW_MODE::START_END_MID ) );
425
427 .Name( "pcbnew.InteractiveDrawing.arcStartEndCenter" )
428 .Scope( AS_GLOBAL )
429 .FriendlyName( _( "Draw Arc: Start, End, Center" ) )
430 .Tooltip( _( "Draw arcs by clicking the start point, the end point, then the center" ) )
431 .ToolbarState( TOOLBAR_STATE::TOGGLE )
433 .Flags( AF_ACTIVATE )
434 .Parameter( ARC_DRAW_MODE::START_END_CENTER ) );
435
437 .Name( "pcbnew.InteractiveDrawing.arcTangent" )
438 .Scope( AS_GLOBAL )
439 .FriendlyName( _( "Draw Arc: Tangent" ) )
440 .Tooltip( _( "Draw arcs tangent to the previous arc or to the line or arc ending at the start point" ) )
441 .ToolbarState( TOOLBAR_STATE::TOGGLE )
443 .Flags( AF_ACTIVATE )
444 .Parameter( ARC_DRAW_MODE::TANGENT ) );
445
447 .Name( "pcbnew.InteractiveDrawing.arcStartDirEnd" )
448 .Scope( AS_GLOBAL )
449 .FriendlyName( _( "Draw Arc: Start, Direction, End" ) )
450 .Tooltip( _( "Draw arcs by clicking the start point, a point giving the start direction, then the end point" ) )
451 .ToolbarState( TOOLBAR_STATE::TOGGLE )
453 .Flags( AF_ACTIVATE )
454 .Parameter( ARC_DRAW_MODE::START_DIR_END ) );
455
469
470
472 .Name( "pcbnew.InteractiveDrawing.bezier" )
473 .Scope( AS_GLOBAL )
474 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'B' )
475 .FriendlyName( _( "Draw Bezier Curve" ) )
476 .ToolbarState( TOOLBAR_STATE::TOGGLE )
477 .Icon( BITMAPS::add_bezier )
478 .Flags( AF_ACTIVATE ) );
479
481 .Name( "pcbnew.InteractiveDrawing.barcode" )
482 .Scope( AS_GLOBAL )
483 .LegacyHotkeyName( "Add Barcode" )
484 .FriendlyName( _( "Add Barcode" ) )
485 .Tooltip( _( "Add a barcode" ) )
486 .Icon( BITMAPS::add_barcode )
487 .Flags( AF_ACTIVATE ) );
488
489
491 .Name( "pcbnew.InteractiveDrawing.placeCharacteristics" )
492 .Scope( AS_GLOBAL )
493 .LegacyHotkeyName( "Add Board Characteristics" )
494 .FriendlyName( _( "Add Board Characteristics" ) )
495 .Tooltip( _( "Add a board characteristics table on a graphic layer" ) )
496 .ToolbarState( TOOLBAR_STATE::TOGGLE )
497 .Flags( AF_ACTIVATE ) );
498
500 .Name( "pcbnew.InteractiveDrawing.placeStackup" )
501 .Scope( AS_GLOBAL )
502 .LegacyHotkeyName( "Add Stackup Table" )
503 .FriendlyName( _( "Add Stackup Table" ) )
504 .Tooltip( _( "Add a board stackup table on a graphic layer" ) )
505 .ToolbarState( TOOLBAR_STATE::TOGGLE )
506 .Flags( AF_ACTIVATE ) );
507
509 .Name( "pcbnew.InteractiveDrawing.placeDrillChart" )
510 .Scope( AS_GLOBAL )
511 .FriendlyName( _( "Add Drill Chart" ) )
512 .Tooltip( _( "Add a drill chart that tracks the board's holes" ) )
513 .ToolbarState( TOOLBAR_STATE::TOGGLE )
514 .Flags( AF_ACTIVATE ) );
515
517 .Name( "pcbnew.InteractiveDrawing.placeDrillMap" )
518 .Scope( AS_GLOBAL )
519 .FriendlyName( _( "Add Drill Map" ) )
520 .Tooltip( _( "Draw drill symbols at the holes on a documentation layer" ) )
521 .ToolbarState( TOOLBAR_STATE::TOGGLE )
522 .Flags( AF_ACTIVATE ) );
523
525 .Name( "pcbnew.InteractiveDrawing.showDrillGroups" )
526 .Scope( AS_GLOBAL )
527 .FriendlyName( _( "Drill Groups..." ) )
528 .Tooltip( _( "Inspect drill groups and assign symbols" ) ) );
529
531 .Name( "pcbnew.InteractiveDrawing.placePoint" )
532 .Scope( AS_GLOBAL )
533 .FriendlyName( _( "Place Point" ) )
534 .Tooltip( _( "Add reference/snap points" ) )
535 .ToolbarState( TOOLBAR_STATE::TOGGLE )
536 .Icon( BITMAPS::add_point )
537 .Flags( AF_ACTIVATE ) );
538
540 .Name( "pcbnew.InteractiveDrawing.placeReferenceImage" )
541 .Scope( AS_GLOBAL )
542 .FriendlyName( _( "Place Reference Images" ) )
543 .Tooltip( _( "Add bitmap images to be used as reference (images will not be included in any output)" ) )
544 .ToolbarState( TOOLBAR_STATE::TOGGLE )
545 .Icon( BITMAPS::image )
546 .Flags( AF_ACTIVATE )
547 .Parameter<PCB_REFERENCE_IMAGE*>( nullptr ) );
548
550 .Name( "pcbnew.InteractiveDrawing.text" )
551 .Scope( AS_GLOBAL )
552 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'T' )
553 .LegacyHotkeyName( "Add Text" )
554 .FriendlyName( _( "Draw Text" ) )
555 .ToolbarState( TOOLBAR_STATE::TOGGLE )
556 .Icon( BITMAPS::text )
557 .Flags( AF_ACTIVATE ) );
558
560 .Name( "pcbnew.InteractiveDrawing.textbox" )
561 .Scope( AS_GLOBAL )
562 .FriendlyName( _( "Draw Text Boxes" ) )
563 .ToolbarState( TOOLBAR_STATE::TOGGLE )
564 .Icon( BITMAPS::add_textbox )
565 .Flags( AF_ACTIVATE ) );
566
568 .Name( "pcbnew.InteractiveDrawing.drawTable" )
569 .Scope( AS_GLOBAL )
570 .FriendlyName( _( "Draw Tables" ) )
571 .ToolbarState( TOOLBAR_STATE::TOGGLE )
572 .Icon( BITMAPS::table )
573 .Flags( AF_ACTIVATE ) );
574
576 .Name( "pcbnew.lengthTuner.SpacingIncrease" )
577 .Scope( AS_GLOBAL )
578 .DefaultHotkey( '1' )
579 .LegacyHotkeyName( "Increase meander spacing by one step." )
580 .FriendlyName( _( "Increase Spacing" ) )
581 .Tooltip( _( "Increase tuning pattern spacing by one step." ) )
583
585 .Name( "pcbnew.lengthTuner.SpacingDecrease" )
586 .Scope( AS_GLOBAL )
587 .DefaultHotkey( '2' )
588 .LegacyHotkeyName( "Decrease meander spacing by one step." )
589 .FriendlyName( _( "Decrease Spacing" ) )
590 .Tooltip( _( "Decrease tuning pattern spacing by one step." ) )
592
594 .Name( "pcbnew.lengthTuner.AmplIncrease" )
595 .Scope( AS_GLOBAL )
596 .DefaultHotkey( '3' )
597 .LegacyHotkeyName( "Increase meander amplitude by one step." )
598 .FriendlyName( _( "Increase Amplitude" ) )
599 .Tooltip( _( "Increase tuning pattern amplitude by one step." ) )
601
603 .Name( "pcbnew.lengthTuner.AmplDecrease" )
604 .Scope( AS_GLOBAL )
605 .DefaultHotkey( '4' )
606 .LegacyHotkeyName( "Decrease meander amplitude by one step." )
607 .FriendlyName( _( "Decrease Amplitude" ) )
608 .Tooltip( _( "Decrease tuning pattern amplitude by one step." ) )
610
611
613 .Name( "pcbnew.InteractiveDrawing.alignedDimension" )
614 .Scope( AS_GLOBAL )
615 .LegacyHotkeyName( "Add Dimension" )
616 .FriendlyName( _( "Draw Aligned Dimensions" ) )
617 .ToolbarState( TOOLBAR_STATE::TOGGLE )
619 .Flags( AF_ACTIVATE ) );
620
622 .Name( "pcbnew.InteractiveDrawing.centerDimension" )
623 .Scope( AS_GLOBAL )
624 .FriendlyName( _( "Draw Center Dimensions" ) )
625 .ToolbarState( TOOLBAR_STATE::TOGGLE )
627 .Flags( AF_ACTIVATE ) );
628
630 .Name( "pcbnew.InteractiveDrawing.radialDimension" )
631 .Scope( AS_GLOBAL )
632 .FriendlyName( _( "Draw Radial Dimensions" ) )
633 .ToolbarState( TOOLBAR_STATE::TOGGLE )
635 .Flags( AF_ACTIVATE ) );
636
638 .Name( "pcbnew.InteractiveDrawing.orthogonalDimension" )
639 .Scope( AS_GLOBAL )
640 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'H' )
641 .FriendlyName( _( "Draw Orthogonal Dimensions" ) )
642 .ToolbarState( TOOLBAR_STATE::TOGGLE )
644 .Flags( AF_ACTIVATE ) );
645
647 .Name( "pcbnew.InteractiveDrawing.leader" )
648 .Scope( AS_GLOBAL )
649 .FriendlyName( _( "Draw Leaders" ) )
650 .ToolbarState( TOOLBAR_STATE::TOGGLE )
651 .Icon( BITMAPS::add_leader )
652 .Flags( AF_ACTIVATE ) );
653
655 .Name( "pcbnew.InteractiveDrawing.zone" )
656 .Scope( AS_GLOBAL )
657#ifdef __WXOSX_MAC__
658 .DefaultHotkey( MD_ALT + 'Z' )
659#else
660 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'Z' )
661#endif
662 .LegacyHotkeyName( "Add Filled Zone" )
663 .FriendlyName( _( "Draw Filled Zones" ) )
664 .ToolbarState( TOOLBAR_STATE::TOGGLE )
665 .Icon( BITMAPS::add_zone )
666 .Flags( AF_ACTIVATE )
667 .Parameter( ZONE_MODE::ADD ) );
668
670 .Name( "pcbnew.InteractiveDrawing.copperThievingZone" )
671 .Scope( AS_GLOBAL )
672 .FriendlyName( _( "Draw Copper Thieving Zone" ) )
673 .Tooltip( _( "Add a non-electrical thieving zone for plating-balance copper" ) )
674 .ToolbarState( TOOLBAR_STATE::TOGGLE )
675 .Icon( BITMAPS::add_zone )
676 .Flags( AF_ACTIVATE )
677 .Parameter( ZONE_MODE::ADD ) );
678
680 .Name( "pcbnew.InteractiveDrawing.via" )
681 .Scope( AS_GLOBAL )
682 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'X' )
683 .LegacyHotkeyName( "Add Vias" )
684 .FriendlyName( _( "Place Vias" ) )
685 .Tooltip( _( "Place free-standing vias" ) )
686 .ToolbarState( TOOLBAR_STATE::TOGGLE )
687 .Icon( BITMAPS::add_via )
688 .Flags( AF_ACTIVATE ) );
689
691 .Name( "pcbnew.InteractiveDrawing.viaStack" )
692 .Scope( AS_GLOBAL )
693 .FriendlyName( _( "Place Microvia Stack" ) )
694 .Tooltip( _( "Place a stacked or staggered microvia stack" ) )
695 .ToolbarState( TOOLBAR_STATE::TOGGLE )
697 .Flags( AF_ACTIVATE ) );
698
700 .Name( "pcbnew.Generator.makeViaStack" )
701 .Scope( AS_GLOBAL )
702 .FriendlyName( _( "Create Stack from Selection" ) )
703 .Tooltip( _( "Wrap the selected microvias and traces into a microvia stack" ) )
704 .Icon( BITMAPS::add_via_stack ) );
705
707 .Name( "pcbnew.InteractiveDrawing.ruleArea" )
708 .Scope( AS_GLOBAL )
709 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'K' )
710 .LegacyHotkeyName( "Add Keepout Area" )
711 .FriendlyName( _( "Draw Rule Areas" ) )
712 .ToolbarState( TOOLBAR_STATE::TOGGLE )
714 .Flags( AF_ACTIVATE )
715 .Parameter( ZONE_MODE::ADD ) );
716
718 .Name( "pcbnew.InteractiveDrawing.zoneCutout" )
719 .Scope( AS_GLOBAL )
720 .DefaultHotkey( MD_SHIFT + 'C' )
721 .LegacyHotkeyName( "Add a Zone Cutout" )
722 .FriendlyName( _( "Add a Zone Cutout" ) )
723 .Tooltip( _( "Add a cutout to an existing zone or rule area" ) )
724 .ToolbarState( TOOLBAR_STATE::TOGGLE )
726 .Flags( AF_ACTIVATE )
727 .Parameter( ZONE_MODE::CUTOUT ) );
728
730 .Name( "pcbnew.InteractiveDrawing.similarZone" )
731 .Scope( AS_GLOBAL )
732 .DefaultHotkey( MD_CTRL + MD_SHIFT + '.' )
733 .LegacyHotkeyName( "Add a Similar Zone" )
734 .FriendlyName( _( "Add a Similar Zone" ) )
735 .Tooltip( _( "Add a zone with the same settings as an existing zone" ) )
736 .Icon( BITMAPS::add_zone )
737 .Flags( AF_ACTIVATE )
738 .Parameter( ZONE_MODE::SIMILAR ) );
739
741 .Name( "pcbnew.InteractiveDrawing.placeImportedGraphics" )
742 .Scope( AS_GLOBAL )
743 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'F' )
744 .LegacyHotkeyName( "Place DXF" )
745 .FriendlyName( _( "Import Graphics..." ) )
746 .Tooltip( _( "Import 2D drawing file" ) )
748 .Flags( AF_ACTIVATE ) );
749
751 .Name( "pcbnew.InteractiveDrawing.setAnchor" )
752 .Scope( AS_GLOBAL )
753 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'N' )
754 .LegacyHotkeyName( "Place the Footprint Anchor" )
755 .FriendlyName( _( "Place the Footprint Anchor" ) )
756 .Tooltip( _( "Set the anchor point of the footprint" ) )
757 .ToolbarState( TOOLBAR_STATE::TOGGLE )
758 .Icon( BITMAPS::anchor )
759 .Flags( AF_ACTIVATE ) );
760
762 .Name( "pcbnew.InteractiveDrawing.incWidth" )
763 .Scope( AS_CONTEXT )
764 .DefaultHotkey( MD_CTRL + '+' )
765 .LegacyHotkeyName( "Increase Line Width" )
766 .FriendlyName( _( "Increase Line Width" ) ) );
767
769 .Name( "pcbnew.InteractiveDrawing.decWidth" )
770 .Scope( AS_CONTEXT )
771 .DefaultHotkey( MD_CTRL + '-' )
772 .LegacyHotkeyName( "Decrease Line Width" )
773 .FriendlyName( _( "Decrease Line Width" ) ) );
774
775
777 .Name( "pcbnew.InteractiveDrawing.changeDimensionArrows" )
778 .Scope( AS_CONTEXT )
779 .FriendlyName( "Switch Dimension Arrows" )
780 .Tooltip( "Switch between inward and outward dimension arrows" ) );
781
782
784 .Name( "common.Control.magneticSnapActiveLayer" )
785 .Scope( AS_GLOBAL )
786 .FriendlyName( _( "Snap to Objects on the Active Layer Only" ) )
787 .Tooltip( _( "Enables snapping to objects on the active layer only" ) ) );
788
790 .Name( "common.Control.magneticSnapAllLayers" )
791 .Scope( AS_GLOBAL )
792 .FriendlyName( _( "Snap to Objects on All Layers" ) )
793 .Tooltip( _( "Enables snapping to objects on all visible layers" ) ) );
794
796 .Name( "common.Control.magneticSnapToggle" )
797 .Scope( AS_GLOBAL )
798 .DefaultHotkey( MD_SHIFT + 'S' )
799 .FriendlyName( _( "Toggle Snapping Between Active and All Layers" ) )
800 .Tooltip( _( "Toggles between snapping on all visible layers and only the active area" ) ) );
801
803 .Name( "pcbnew.InteractiveDrawing.closeOutline" )
804 .Scope( AS_CONTEXT )
805 .FriendlyName( _( "Close Outline" ) )
806 .Tooltip( _( "Close the in progress outline" ) )
807 .Icon( BITMAPS::checked_ok ) );
808
809// DRC
810//
812 .Name( "pcbnew.DRCTool.runDRC" )
813 .Scope( AS_GLOBAL )
814 .FriendlyName( _( "Design Rules Checker" ) )
815 .Tooltip( _( "Show the design rules checker window" ) )
816 .Icon( BITMAPS::erc ) );
817
818// PCB_DESIGN_BLOCK_CONTROL
820 .Name( "pcbnew.InteractiveDrawing.placeDesignBlock" )
821 .Scope( AS_GLOBAL )
822 .DefaultHotkey( MD_SHIFT + 'B' )
823 .FriendlyName( _( "Place Design Block" ) )
824 .Tooltip( _( "Add selected design block to current board" ) )
826 .Flags( AF_ACTIVATE )
827 .Parameter<DESIGN_BLOCK*>( nullptr ) );
828
830 .Name( "pcbnew.InteractiveDrawing.placeLinkedDesignBlock" )
831 .Scope( AS_GLOBAL )
832 .FriendlyName( _( "Place Linked Design Block" ) )
833 .Tooltip( _( "Place design block linked to selected group" ) )
835 .Flags( AF_ACTIVATE )
836 .Parameter<bool*>( nullptr ) );
837
839 .Name( "pcbnew.InteractiveDrawing.applyDesignBlockLayout" )
840 .Scope( AS_GLOBAL )
841 .FriendlyName( _( "Apply Design Block Layout" ) )
842 .Tooltip( _( "Apply linked design block layout to selected group" ) )
844 .Flags( AF_ACTIVATE ) );
845
847 .Name( "pcbnew.InteractiveDrawing.saveToLinkedDesignBlock" )
848 .Scope( AS_GLOBAL )
849 .FriendlyName( _( "Save to Linked Design Block" ) )
850 .Tooltip( _( "Save selected group to linked design block" ) )
852 .Flags( AF_ACTIVATE ) );
853
855 .Name( "pcbnew.PcbDesignBlockControl.showDesignBlockPanel" )
856 .Scope( AS_GLOBAL )
857 .FriendlyName( _( "Design Blocks" ) )
858 .Tooltip( _( "Show/hide design blocks library" ) )
859 .Icon( BITMAPS::search_tree ) );
860
862 .Name( "pcbnew.PcbDesignBlockControl.saveBoardAsDesignBlock" )
863 .Scope( AS_GLOBAL )
864 .FriendlyName( _( "Save Board as Design Block..." ) )
865 .Tooltip( _( "Create a new design block from the current board" ) )
866 .Icon( BITMAPS::new_component ) );
867
869 .Name( "pcbnew.PcbDesignBlockControl.saveSelectionAsDesignBlock" )
870 .Scope( AS_GLOBAL )
871 .FriendlyName( _( "Save Selection as Design Block..." ) )
872 .Tooltip( _( "Create a new design block from the current selection" ) )
873 .Icon( BITMAPS::new_component ) );
874
876 .Name( "pcbnew.PcbDesignBlockControl.updateDesignBlockFromBoard" )
877 .Scope( AS_GLOBAL )
878 .FriendlyName( _( "Update Design Block from Board" ) )
879 .Tooltip( _( "Set design block layout to current board" ) )
880 .Icon( BITMAPS::save ) );
881
883 .Name( "pcbnew.PcbDesignBlockControl.updateDesignBlockFromSelection" )
884 .Scope( AS_GLOBAL )
885 .FriendlyName( _( "Update Design Block from Selection" ) )
886 .Tooltip( _( "Set design block layout to current selection" ) )
887 .Icon( BITMAPS::save ) );
888
890 .Name( "pcbnew.PcbDesignBlockControl.deleteDesignBlock" )
891 .Scope( AS_GLOBAL )
892 .FriendlyName( _( "Delete Design Block" ) )
893 .Tooltip( _( "Remove the selected design block from its library" ) )
894 .Icon( BITMAPS::trash ) );
895
897 .Name( "pcbnew.PcbDesignBlockControl.editDesignBlockProperties" )
898 .Scope( AS_GLOBAL )
899 .FriendlyName( _( "Properties..." ) )
900 .Tooltip( _( "Edit properties of design block" ) )
901 .Icon( BITMAPS::edit ) );
902
903// EDIT_TOOL
904//
906 .Name( "pcbnew.EditorControl.EditFpInFpEditor" )
907 .Scope( AS_GLOBAL )
908 .DefaultHotkey( MD_CTRL + 'E' )
909 .LegacyHotkeyName( "Edit with Footprint Editor" )
910 .FriendlyName( _( "Open in Footprint Editor" ) )
911 .Icon( BITMAPS::module_editor ) );
912
914 .Name( "pcbnew.EditorControl.EditLibFpInFpEditor" )
915 .Scope( AS_GLOBAL )
916 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'E' )
917 .FriendlyName( _( "Edit Library Footprint..." ) )
918 .Icon( BITMAPS::module_editor ) );
919
921 .Name( "pcbnew.InteractiveEdit.toggleExcludeFromBOM" )
922 .Scope( AS_GLOBAL )
923 .FriendlyName( _( "Exclude from Bill of Materials" ) )
924 .Tooltip( _( "Toggle the exclude from bill of materials attribute" ) ) );
925
927 .Name( "pcbnew.InteractiveEdit.toggleExcludeFromSim" )
928 .Scope( AS_GLOBAL )
929 .FriendlyName( _( "Exclude from Simulation" ) )
930 .Tooltip( _( "Toggle the exclude from simulation attribute" ) ) );
931
933 .Name( "pcbnew.InteractiveEdit.toggleExcludeFromPosFiles" )
934 .Scope( AS_GLOBAL )
935 .FriendlyName( _( "Exclude from Position Files" ) )
936 .Tooltip( _( "Toggle the exclude from position files attribute" ) ) );
937
939 .Name( "pcbnew.EditorControl.findByProperties" )
940 .Scope( AS_GLOBAL )
941 .FriendlyName( _( "Find by Properties..." ) )
942 .Tooltip( _( "Find board items matching property criteria or expressions" ) )
943 .Icon( BITMAPS::find ) );
944
946 .Name( "pcbnew.InteractiveEdit.FindMove" )
947 .Scope( AS_GLOBAL )
948 .DefaultHotkey( 'T' )
949 .LegacyHotkeyName( "Get and Move Footprint" )
950 .FriendlyName( _( "Get and Move Footprint" ) )
951 .Tooltip( _( "Selects a footprint by reference designator and places it under the cursor for moving" ) )
952 .Icon( BITMAPS::move )
953 .Flags( AF_ACTIVATE ) );
954
956 .Name( "pcbnew.InteractiveMove.move" )
957 .Scope( AS_GLOBAL )
958 .DefaultHotkey( 'M' )
959 .LegacyHotkeyName( "Move Item" )
960 .FriendlyName( _( "Move" ) )
961 .Icon( BITMAPS::move )
962 .Flags( AF_ACTIVATE )
964
966 .Name( "pcbnew.InteractiveMove.moveIndividually" )
967 .Scope( AS_GLOBAL )
968 .DefaultHotkey( MD_CTRL + 'M' )
969 .FriendlyName( _( "Move Individually" ) )
970 .Tooltip( _( "Moves the selected items one-by-one" ) )
971 .Icon( BITMAPS::move )
972 .Flags( AF_ACTIVATE )
974
976 .Name( "pcbnew.InteractiveMove.moveWithReference" )
977 .Scope( AS_GLOBAL )
978 .FriendlyName( _( "Move with Reference..." ) )
979 .Tooltip( _( "Moves the selected item(s) with a specified starting point" ) )
980 .Icon( BITMAPS::move )
981 .Flags( AF_ACTIVATE )
983
985 .Name( "pcbnew.InteractiveMove.copyWithReference" )
986 .Scope( AS_GLOBAL )
987 .FriendlyName( _( "Copy with Reference..." ) )
988 .Tooltip( _( "Copy selected item(s) to clipboard with a specified starting point" ) )
989 .Icon( BITMAPS::copy )
990 .Flags( AF_ACTIVATE ) );
991
993 .Name( "pcbnew.InteractiveEdit.duplicateIncrementPads" )
994 .Scope( AS_GLOBAL )
995 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'D' )
996 .LegacyHotkeyName( "Duplicate Item and Increment" )
997 .FriendlyName( _( "Duplicate and Increment" ) )
998 .Tooltip( _( "Duplicates the selected item(s), incrementing pad numbers" ) )
999 .Icon( BITMAPS::duplicate ) );
1000
1002 .Name( "pcbnew.InteractiveEdit.moveExact" )
1003 .Scope( AS_GLOBAL )
1004 .DefaultHotkey( MD_SHIFT + 'M' )
1005 .LegacyHotkeyName( "Move Item Exactly" )
1006 .FriendlyName( _( "Move Exactly..." ) )
1007 .Tooltip( _( "Moves the selected item(s) by an exact amount" ) )
1008 .Icon( BITMAPS::move_exactly ) );
1009
1011 .Name( "pcbnew.InteractiveEdit.moveCorner" )
1012 .Scope( AS_GLOBAL )
1013 .FriendlyName( _( "Move Corner To..." ) )
1014 .Tooltip( _( "Move the active corner to an exact location" ) )
1015 .Icon( BITMAPS::move_exactly ) );
1016
1018 .Name( "pcbnew.InteractiveEdit.moveMidpoint" )
1019 .Scope( AS_GLOBAL )
1020 .FriendlyName( _( "Move Midpoint To..." ) )
1021 .Tooltip( _( "Move the active midpoint to an exact location" ) )
1022 .Icon( BITMAPS::move_exactly ) );
1023
1025 .Name( "pcbnew.InteractiveEdit.rotateCw" )
1026 .Scope( AS_GLOBAL )
1027 .DefaultHotkey( MD_SHIFT + 'R' )
1028 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1029 .LegacyHotkeyName( "Rotate Item Clockwise (Modern Toolset only)" )
1030 .FriendlyName( _( "Rotate Clockwise" ) )
1031 .Icon( BITMAPS::rotate_cw )
1032 .Flags( AF_NONE )
1033 .Parameter( -1 ) );
1034
1036 .Name( "pcbnew.InteractiveEdit.rotateCcw" )
1037 .Scope( AS_GLOBAL )
1038 .DefaultHotkey( 'R' )
1039 .LegacyHotkeyName( "Rotate Item" )
1040 .FriendlyName( _( "Rotate Counterclockwise" ) )
1041 .Icon( BITMAPS::rotate_ccw )
1042 .Flags( AF_NONE )
1043 .Parameter( 1 ) );
1044
1046 .Name( "pcbnew.InteractiveEdit.flip" )
1047 .Scope( AS_GLOBAL )
1048 .DefaultHotkey( 'F' )
1049 .LegacyHotkeyName( "Flip Item" )
1050 .FriendlyName( _( "Change Side / Flip" ) )
1051 .Tooltip( _( "Flips selected item(s) to opposite side of board" ) )
1052 .Icon( BITMAPS::swap_layer ) );
1053
1055 .Name( "pcbnew.InteractiveEdit.mirrorHoriontally" )
1056 .Scope( AS_GLOBAL )
1057 .FriendlyName( _( "Mirror Horizontally" ) )
1058 .Tooltip( _( "Mirrors selected item(s) across the Y axis" ) )
1059 .Icon( BITMAPS::mirror_h ) );
1060
1062 .Name( "pcbnew.InteractiveEdit.mirrorVertically" )
1063 .Scope( AS_GLOBAL )
1064 .FriendlyName( _( "Mirror Vertically" ) )
1065 .Tooltip( _( "Mirrors selected item(s) across the X axis" ) )
1066 .Icon( BITMAPS::mirror_v ) );
1067
1069 .Name( "pcbnew.InteractiveEdit.swap" )
1070 .Scope( AS_GLOBAL )
1071 .DefaultHotkey( MD_ALT + 'S' )
1072 .FriendlyName( _( "Swap" ) )
1073 .Tooltip( _( "Swap positions of selected items" ) )
1074 .Icon( BITMAPS::swap ) );
1075
1077 .Name( "pcbnew.InteractiveEdit.swapPadNets" )
1078 .Scope( AS_GLOBAL )
1079 .FriendlyName( _( "Swap Pad Nets" ) )
1080 .Tooltip( _( "Swap nets between two selected pads and their connected copper" ) )
1081 .Icon( BITMAPS::swap ) );
1082
1084 .Name( "pcbnew.InteractiveEdit.swapGateNets" )
1085 .Scope( AS_GLOBAL )
1086 .FriendlyName( _( "Swap Gate Nets" ) )
1087 .Tooltip( _( "Swap nets between gates of a footprint and their connected copper" ) )
1088 .Parameter<wxString>( wxString() )
1089 .Icon( BITMAPS::swap ) );
1090
1092 .Name( "pcbnew.InteractiveEdit.packAndMoveFootprints" )
1093 .Scope( AS_GLOBAL )
1094 .DefaultHotkey( 'P' )
1095 .FriendlyName( _( "Pack and Move Footprints" ) )
1096 .Tooltip( _( "Sorts selected footprints by reference, packs based on size and initiates movement" ) )
1097 .Icon( BITMAPS::pack_footprints ) );
1098
1100 .Name( "pcbnew.InteractiveEdit.skip" )
1101 .Scope( AS_CONTEXT )
1102 .DefaultHotkey( WXK_TAB )
1103 .FriendlyName( _( "Skip" ) )
1104 .Tooltip( _( "Skip to next item" ) )
1105 .Icon( BITMAPS::right ) );
1106
1108 .Name( "pcbnew.InteractiveEdit.changeTrackWidth" )
1109 .Scope( AS_GLOBAL )
1110 .FriendlyName( _( "Change Track Width" ) )
1111 .Tooltip( _( "Updates selected track & via sizes" ) ) );
1112
1114 .Name( "pcbnew.Control.changeTrackLayerNext" )
1115 .Scope( AS_GLOBAL )
1116 .DefaultHotkey( MD_CTRL + '+' )
1117 .FriendlyName( "Switch Track to Next Layer" )
1118 .Tooltip( _( "Switch track to next enabled copper layer" ) ) );
1119
1121 .Name( "pcbnew.Control.changeTrackLayerPrev" )
1122 .Scope( AS_GLOBAL )
1123 .DefaultHotkey( MD_CTRL + '-' )
1124 .FriendlyName( "Switch Track to Previous Layer" )
1125 .Tooltip( _( "Switch track to previous enabled copper layer" ) ) );
1126
1128 .Name( "pcbnew.InteractiveEdit.filletTracks" )
1129 .Scope( AS_GLOBAL )
1130 .FriendlyName( _( "Fillet Tracks" ) )
1131 .Tooltip( _( "Adds arcs tangent to the selected straight track segments" ) ) );
1132
1134 .Name( "pcbnew.InteractiveEdit.filletLines" )
1135 .Scope( AS_GLOBAL )
1136 .FriendlyName( _( "Fillet Lines..." ) )
1137 .Tooltip( _( "Adds arcs tangent to the selected lines" ) )
1138 .Icon( BITMAPS::fillet ) );
1139
1141 .Name( "pcbnew.InteractiveEdit.chamferLines" )
1142 .Scope( AS_GLOBAL )
1143 .FriendlyName( _( "Chamfer Lines..." ) )
1144 .Tooltip( _( "Cut away corners between selected lines" ) )
1145 .Icon( BITMAPS::chamfer ) );
1146
1148 .Name( "pcbnew.InteractiveEdit.dogboneCorners" )
1149 .Scope( AS_GLOBAL )
1150 .FriendlyName( _( "Dogbone Corners..." ) )
1151 .Tooltip( _( "Add dogbone corners to selected lines" ) ) );
1152
1154 .Name( "pcbnew.InteractiveEdit.simplifyPolygons" )
1155 .Scope( AS_GLOBAL )
1156 .FriendlyName( _( "Simplify Polygons" ) )
1157 .Tooltip( _( "Simplify polygon outlines, removing superfluous points" ) ) );
1158
1160 .Name( "pcbnew.InteractiveEdit.editVertices" )
1161 .Scope( AS_GLOBAL )
1162 .FriendlyName( _( "Edit Corners..." ) )
1163 .Tooltip( _( "Edit polygon corners using a table" ) )
1164 .Icon( BITMAPS::edit ) );
1165
1167 .Name( "pcbnew.InteractiveEdit.healShapes" )
1168 .Scope( AS_GLOBAL )
1169 .FriendlyName( _( "Heal Shapes" ) )
1170 .Tooltip( _( "Connect shapes, possibly extending or cutting them, or adding extra geometry" ) )
1171 .Icon( BITMAPS::heal_shapes ) );
1172
1174 .Name( "pcbnew.InteractiveEdit.extendLines" )
1175 .Scope( AS_GLOBAL )
1176 .FriendlyName( _( "Extend Lines to Meet" ) )
1177 .Tooltip( _( "Extend lines to meet each other" ) ) );
1178
1180 .Name( "pcbnew.GraphicEdit.extend" )
1181 .Scope( AS_GLOBAL )
1182 .FriendlyName( _( "Extend Line or Arc" ) )
1183 .Tooltip( _( "Hover a graphical line or arc to extend it until it meets another" ) )
1184 .Flags( AF_ACTIVATE ) );
1185
1187 .Name( "pcbnew.GraphicEdit.trim" )
1188 .Scope( AS_GLOBAL )
1189 .FriendlyName( _( "Trim Shape" ) )
1190 .Tooltip( _( "Hover the part of a graphical shape to remove between the nearest crossings" ) )
1191 .Flags( AF_ACTIVATE ) );
1192
1194 .Name( "pcbnew.InteractiveEdit.mergePolygons" )
1195 .Scope( AS_GLOBAL )
1196 .FriendlyName( _( "Merge Polygons" ) )
1197 .Tooltip( _( "Merge selected polygons into a single polygon" ) )
1198 .Icon( BITMAPS::merge_polygons ) );
1199
1201 .Name( "pcbnew.InteractiveEdit.subtractPolygons" )
1202 .Scope( AS_GLOBAL )
1203 .FriendlyName( _( "Subtract Polygons" ) )
1204 .Tooltip( _( "Subtract selected polygons from the last one selected" ) )
1205 .Icon( BITMAPS::subtract_polygons ) );
1206
1208 .Name( "pcbnew.InteractiveEdit.intersectPolygons" )
1209 .Scope( AS_GLOBAL )
1210 .FriendlyName( _( "Intersect Polygons" ) )
1211 .Tooltip( _( "Create the intersection of the selected polygons" ) )
1212 .Icon( BITMAPS::intersect_polygons ) );
1213
1215 .Name( "pcbnew.InteractiveEdit.deleteFull" )
1216 .Scope( AS_GLOBAL )
1217 .DefaultHotkey( MD_SHIFT + static_cast<int>( WXK_DELETE ) )
1218 .LegacyHotkeyName( "Delete Full Track" )
1219 .FriendlyName( _( "Delete Full Track" ) )
1220 .Tooltip( _( "Deletes selected item(s) and copper connections" ) )
1221 .Icon( BITMAPS::delete_cursor )
1222 .Flags( AF_NONE )
1223 .Parameter( PCB_ACTIONS::REMOVE_FLAGS::ALT ) );
1224
1226 .Name( "pcbnew.InteractiveEdit.properties" )
1227 .Scope( AS_GLOBAL )
1228 .DefaultHotkey( 'E' )
1229 .LegacyHotkeyName( "Edit Item" )
1230 .FriendlyName( _( "Properties..." ) )
1231 .Icon( BITMAPS::edit ) );
1232
1234 .Name( "pcbnew.MatchProperties.match" )
1235 .Scope( AS_GLOBAL )
1236 .FriendlyName( _( "Match Properties" ) )
1237 .Tooltip( _( "Copy selected properties from a source item to compatible target items" ) )
1238 .Flags( AF_ACTIVATE ) );
1239
1240// Context scope so the hotkey only takes over from Preferences while the tool has the pointer.
1242 .Name( "pcbnew.MatchProperties.settings" )
1243 .Scope( AS_CONTEXT )
1244 .DefaultHotkey( MD_CTRL + ',' )
1245 .FriendlyName( _( "Match Properties Settings..." ) )
1246 .Tooltip( _( "Choose the properties copied by Match Properties" ) ) );
1247
1248// ARRAY
1249//
1251 .Name( "pcbnew.Array.createArray" )
1252 .Scope( AS_GLOBAL )
1253 .DefaultHotkey( MD_CTRL + 'T' )
1254 .LegacyHotkeyName( "Create Array" )
1255 .FriendlyName( _( "Create Array..." ) )
1256 .Icon( BITMAPS::array )
1257 .Flags( AF_ACTIVATE ) );
1258
1259// FOOTPRINT_EDITOR_CONTROL
1260//
1262 .Name( "pcbnew.ModuleEditor.newFootprint" )
1263 .Scope( AS_GLOBAL )
1264 .DefaultHotkey( MD_CTRL + 'N' )
1265 .LegacyHotkeyName( "New" )
1266 .FriendlyName( _( "New Footprint" ) )
1267 .Tooltip( _( "Create a new, empty footprint" ) )
1268 .Icon( BITMAPS::new_footprint ) );
1269
1271 .Name( "pcbnew.ModuleEditor.createFootprint" )
1272 .Scope( AS_GLOBAL )
1273 .FriendlyName( _( "Create Footprint..." ) )
1274 .Tooltip( _( "Create a new footprint using the Footprint Wizard" ) )
1275 .Icon( BITMAPS::module_wizard ) );
1276
1278 .Name( "pcbnew.ModuleEditor.editFootprint" )
1279 .Scope( AS_GLOBAL )
1280 .FriendlyName( _( "Edit Footprint" ) )
1281 .Tooltip( _( "Show selected footprint on editor canvas" ) )
1282 .Icon( BITMAPS::edit ) );
1283
1285 .Name( "pcbnew.ModuleEditor.duplicateFootprint" )
1286 .Scope( AS_GLOBAL )
1287 .FriendlyName( _( "Duplicate Footprint" ) )
1288 .Icon( BITMAPS::duplicate ) );
1289
1291 .Name( "pcbnew.ModuleEditor.renameFootprint" )
1292 .Scope( AS_GLOBAL )
1293 .FriendlyName( _( "Rename Footprint..." ) )
1294 .Icon( BITMAPS::edit ) );
1295
1297 .Name( "pcbnew.ModuleEditor.deleteFootprint" )
1298 .Scope( AS_GLOBAL )
1299 .FriendlyName( _( "Delete Footprint from Library" ) )
1300 .Icon( BITMAPS::trash ) );
1301
1303 .Name( "pcbnew.ModuleEditor.cutFootprint" )
1304 .Scope( AS_GLOBAL )
1305 .FriendlyName( _( "Cut Footprint" ) )
1306 .Icon( BITMAPS::cut ) );
1307
1309 .Name( "pcbnew.ModuleEditor.copyFootprint" )
1310 .Scope( AS_GLOBAL )
1311 .FriendlyName( _( "Copy Footprint" ) )
1312 .Icon( BITMAPS::copy ) );
1313
1315 .Name( "pcbnew.ModuleEditor.pasteFootprint" )
1316 .Scope( AS_GLOBAL )
1317 .FriendlyName( _( "Paste Footprint" ) )
1318 .Icon( BITMAPS::paste ) );
1319
1321 .Name( "pcbnew.ModuleEditor.importFootprint" )
1322 .Scope( AS_GLOBAL )
1323 .FriendlyName( _( "Import Footprint..." ) )
1324 .Tooltip( _( "Import footprint from file" ) )
1325 .Icon( BITMAPS::import_module ) );
1326
1328 .Name( "pcbnew.ModuleEditor.exportFootprint" )
1329 .Scope( AS_GLOBAL )
1330 .FriendlyName( _( "Export Current Footprint..." ) )
1331 .Tooltip( _( "Export edited footprint to file" ) )
1332 .Icon( BITMAPS::export_module ) );
1333
1335 .Name( "pcbnew.ModuleEditor.exportFootprintAsSVG" )
1336 .Scope( AS_GLOBAL )
1337 .FriendlyName( _( "Export Current Footprint as SVG..." ) )
1338 .Tooltip( _( "Export the current footprint to an SVG file" ) )
1339 .Icon( BITMAPS::export_svg ) );
1340
1342 .Name( "pcbnew.ModuleEditor.CompareFpLibraryWithFile" )
1343 .Scope( AS_GLOBAL )
1344 .FriendlyName( _( "Compare Library with File..." ) )
1345 .Tooltip( _( "Diff the current footprint library against another .pretty directory" ) )
1346 .Icon( BITMAPS::library ) );
1347
1349 .Name( "pcbnew.ModuleEditor.showLibraryFootprintFieldsTable" )
1350 .Scope( AS_GLOBAL )
1351 .FriendlyName( _( "Bulk Edit Footprint Fields..." ) )
1352 .Tooltip( _( "Edit a table of fields from all footprints in the library" ) )
1353 .Icon( BITMAPS::table ) );
1354
1356 .Name( "pcbnew.ModuleEditor.footprintProperties" )
1357 .Scope( AS_GLOBAL )
1358 .FriendlyName( _( "Footprint Properties..." ) )
1359 .Icon( BITMAPS::module_options ) );
1360
1362 .Name( "pcbnew.ModuleEditor.padTable" )
1363 .Scope( AS_GLOBAL )
1364 .FriendlyName( _( "Pad Table..." ) )
1365 .Tooltip( _( "Displays pad table for bulk editing of pads" ) )
1366 .Icon( BITMAPS::pad_table ) );
1367
1369 .Name( "pcbnew.ModuleEditor.checkFootprint" )
1370 .Scope( AS_GLOBAL )
1371 .FriendlyName( _( "Footprint Checker" ) )
1372 .Tooltip( _( "Show the footprint checker window" ) )
1373 .Icon( BITMAPS::erc ) );
1374
1376 .Name( "pcbnew.ModuleEditor.loadFootprintFromBoard" )
1377 .Scope( AS_GLOBAL )
1378 .FriendlyName( _( "Load footprint from current PCB" ) )
1379 .Tooltip( _( "Load footprint from current board" ) )
1380 .Icon( BITMAPS::load_module_board ) );
1381
1383 .Name( "pcbnew.ModuleEditor.saveFootprintToBoard" )
1384 .Scope( AS_GLOBAL )
1385 .FriendlyName( _( "Insert footprint into PCB" ) )
1386 .Tooltip( _( "Insert footprint into current board" ) )
1388
1390 .Name( "pcbnew.Control.previousFootprint" )
1391 .Scope( AS_GLOBAL )
1392 .FriendlyName( _( "Display previous footprint" ) )
1393 .Icon( BITMAPS::lib_previous )
1394 .Parameter<FPVIEWER_CONSTANTS>( FPVIEWER_CONSTANTS::PREVIOUS_PART ) );
1395
1397 .Name( "pcbnew.Control.nextFootprint" )
1398 .Scope( AS_GLOBAL )
1399 .FriendlyName( _( "Display next footprint" ) )
1400 .Icon( BITMAPS::lib_next )
1401 .Parameter<FPVIEWER_CONSTANTS>( FPVIEWER_CONSTANTS::NEXT_PART ) );
1402
1403// GLOBAL_EDIT_TOOL
1404//
1406 .Name( "pcbnew.GlobalEdit.updateFootprint" )
1407 .Scope( AS_GLOBAL )
1408 .FriendlyName( _( "Update Footprint..." ) )
1409 .Tooltip( _( "Update footprint to include any changes from the library" ) )
1410 .Icon( BITMAPS::refresh ) );
1411
1413 .Name( "pcbnew.GlobalEdit.updateFootprints" )
1414 .Scope( AS_GLOBAL )
1415 .FriendlyName( _( "Update Footprints from Library..." ) )
1416 .Tooltip( _( "Update footprints to include any changes from the library" ) )
1417 .Icon( BITMAPS::refresh ) );
1418
1420 .Name( "pcbnew.GlobalEdit.migrate3DModels" )
1421 .Scope( AS_GLOBAL )
1422 .FriendlyName( _( "Migrate 3D Models..." ) )
1423 .Tooltip( _( "Replace obsolete WRL 3D model references with current STEP models" ) )
1424 .Icon( BITMAPS::refresh ) );
1425
1427 .Name( "pcbnew.GlobalEdit.removeUnusedPads" )
1428 .Scope( AS_GLOBAL )
1429 .FriendlyName( _( "Remove Unused Pads..." ) )
1430 .Tooltip( _( "Remove or restore the unconnected inner layers on through hole pads and vias" ) )
1431 .Icon( BITMAPS::pads_remove ) );
1432
1434 .Name( "pcbnew.GlobalEdit.changeFootprint" )
1435 .Scope( AS_GLOBAL )
1436 .FriendlyName( _( "Change Footprint..." ) )
1437 .Tooltip( _( "Assign a different footprint from the library" ) )
1438 .Icon( BITMAPS::exchange ) );
1439
1441 .Name( "pcbnew.GlobalEdit.changeFootprints" )
1442 .Scope( AS_GLOBAL )
1443 .FriendlyName( _( "Change Footprints..." ) )
1444 .Tooltip( _( "Assign different footprints from the library" ) )
1445 .Icon( BITMAPS::exchange ) );
1446
1448 .Name( "pcbnew.GlobalEdit.swapLayers" )
1449 .Scope( AS_GLOBAL )
1450 .FriendlyName( _( "Swap Layers..." ) )
1451 .Tooltip( _( "Move tracks or drawings from one layer to another" ) )
1452 .Icon( BITMAPS::swap_layer ) );
1453
1455 .Name( "pcbnew.GlobalEdit.editTracksAndVias" )
1456 .Scope( AS_GLOBAL )
1457 .FriendlyName( _( "Edit Track & Via Properties..." ) )
1458 .Tooltip( _( "Edit track and via properties globally across board" ) )
1459 .Icon( BITMAPS::width_track_via ) );
1460
1462 .Name( "pcbnew.GlobalEdit.editTextAndGraphics" )
1463 .Scope( AS_GLOBAL )
1464 .FriendlyName( _( "Edit Text & Graphics Properties..." ) )
1465 .Tooltip( _( "Edit Text and graphics properties globally across board" ) )
1466 .Icon( BITMAPS::text ) );
1467
1469 .Name( "pcbnew.GlobalEdit.editTeardrops" )
1470 .Scope( AS_GLOBAL )
1471 .FriendlyName( _( "Edit Teardrops..." ) )
1472 .Tooltip( _( "Add, remove or edit teardrops globally across board" ) )
1473 .Icon( BITMAPS::via ) );
1474
1476 .Name( "pcbnew.GlobalEdit.globalDeletions" )
1477 .Scope( AS_GLOBAL )
1478 .FriendlyName( _( "Global Deletions..." ) )
1479 .Tooltip( _( "Delete tracks, footprints and graphic items from board" ) )
1480 .Icon( BITMAPS::general_deletions ) );
1481
1483 .Name( "pcbnew.GlobalEdit.cleanupTracksAndVias" )
1484 .Scope( AS_GLOBAL )
1485 .FriendlyName( _( "Cleanup Tracks & Vias..." ) )
1486 .Tooltip( _( "Cleanup redundant items, shorting items, etc." ) )
1488
1490 .Name( "pcbnew.GlobalEdit.cleanupGraphics" )
1491 .Scope( AS_GLOBAL )
1492 .FriendlyName( _( "Cleanup Graphics..." ) )
1493 .Tooltip( _( "Cleanup redundant items, etc." ) )
1494 .Icon( BITMAPS::cleanup_graphics ) );
1495
1496// MICROWAVE_TOOL
1497//
1499 .Name( "pcbnew.MicrowaveTool.createGap" )
1500 .Scope( AS_GLOBAL )
1501 .FriendlyName( _( "Draw Microwave Gaps" ) )
1502 .Tooltip( _( "Create gap of specified length for microwave applications" ) )
1503 .Icon( BITMAPS::mw_add_gap )
1504 .Flags( AF_ACTIVATE )
1505 .Parameter( MICROWAVE_FOOTPRINT_SHAPE::GAP ) );
1506
1508 .Name( "pcbnew.MicrowaveTool.createStub" )
1509 .Scope( AS_GLOBAL )
1510 .FriendlyName( _( "Draw Microwave Stubs" ) )
1511 .Tooltip( _( "Create stub of specified length for microwave applications" ) )
1512 .Icon( BITMAPS::mw_add_stub )
1513 .Flags( AF_ACTIVATE )
1514 .Parameter( MICROWAVE_FOOTPRINT_SHAPE::STUB ) );
1515
1517 .Name( "pcbnew.MicrowaveTool.createStubArc" )
1518 .Scope( AS_GLOBAL )
1519 .FriendlyName( _( "Draw Microwave Arc Stubs" ) )
1520 .Tooltip( _( "Create stub (arc) of specified size for microwave applications" ) )
1522 .Flags( AF_ACTIVATE )
1524
1526 .Name( "pcbnew.MicrowaveTool.createFunctionShape" )
1527 .Scope( AS_GLOBAL )
1528 .FriendlyName( _( "Draw Microwave Polygonal Shapes" ) )
1529 .Tooltip( _( "Create a microwave polygonal shape from a list of vertices" ) )
1530 .Icon( BITMAPS::mw_add_shape )
1531 .Flags( AF_ACTIVATE )
1533
1535 .Name( "pcbnew.MicrowaveTool.createLine" )
1536 .Scope( AS_GLOBAL )
1537 .FriendlyName( _( "Draw Microwave Lines" ) )
1538 .Tooltip( _( "Create line of specified length for microwave applications" ) )
1539 .Icon( BITMAPS::mw_add_line )
1540 .Flags( AF_ACTIVATE ) );
1541
1542
1543// PAD_TOOL
1544//
1546 .Name( "pcbnew.PadTool.CopyPadSettings" )
1547 .Scope( AS_GLOBAL )
1548 .FriendlyName( _( "Copy Pad Properties to Default" ) )
1549 .Tooltip( _( "Copy current pad's properties" ) )
1550 .Icon( BITMAPS::copy_pad_settings ) );
1551
1553 .Name( "pcbnew.PadTool.ApplyPadSettings" )
1554 .Scope( AS_GLOBAL )
1555 .FriendlyName( _( "Paste Default Pad Properties to Selected" ) )
1556 .Tooltip( _( "Replace the current pad's properties with those copied earlier" ) )
1557 .Icon( BITMAPS::apply_pad_settings ) );
1558
1560 .Name( "pcbnew.PadTool.PushPadSettings" )
1561 .Scope( AS_GLOBAL )
1562 .FriendlyName( _( "Push Pad Properties to Other Pads..." ) )
1563 .Tooltip( _( "Copy the current pad's properties to other pads" ) )
1564 .Icon( BITMAPS::push_pad_settings ) );
1565
1567 .Name( "pcbnew.PadTool.enumeratePads" )
1568 .Scope( AS_GLOBAL )
1569 .FriendlyName( _( "Renumber Pads..." ) )
1570 .Tooltip( _( "Renumber pads by clicking on them in the desired order" ) )
1571 .Icon( BITMAPS::pad_enumerate )
1572 .Flags( AF_ACTIVATE ) );
1573
1575 .Name( "pcbnew.PadTool.placePad" )
1576 .Scope( AS_GLOBAL )
1577 .FriendlyName( _( "Add Pad" ) )
1578 .Tooltip( _( "Add a pad" ) )
1579 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1580 .Icon( BITMAPS::pad )
1581 .Flags( AF_ACTIVATE ) );
1582
1584 .Name( "pcbnew.PadTool.explodePad" )
1585 .Scope( AS_GLOBAL )
1586 .DefaultHotkey( MD_CTRL + 'E' )
1587 .FriendlyName( _( "Edit Pad as Graphic Shapes" ) )
1588 .Tooltip( _( "Ungroups a custom-shaped pad for editing as individual graphic shapes" ) )
1590
1592 .Name( "pcbnew.PadTool.recombinePad" )
1593 .Scope( AS_GLOBAL )
1594 .DefaultHotkey( MD_CTRL + 'E' )
1595 .FriendlyName( _( "Finish Pad Edit" ) )
1596 .Tooltip( _( "Regroups all touching graphic shapes into the edited pad" ) )
1598
1600 .Name( "pcbnew.PadTool.defaultPadProperties" )
1601 .Scope( AS_GLOBAL )
1602 .FriendlyName( _( "Default Pad Properties..." ) )
1603 .Tooltip( _( "Edit the pad properties used when creating new pads" ) )
1604 .Icon( BITMAPS::options_pad ) );
1605
1606
1607// BOARD_EDITOR_CONTROL
1608//
1610 .Name( "pcbnew.EditorControl.appendBoard" )
1611 .Scope( AS_GLOBAL )
1612 .FriendlyName( _( "Append Board..." ) )
1613 .Tooltip( _( "Open another board and append its contents to this board" ) )
1614 .Icon( BITMAPS::add_board ) );
1615
1617 .Name( "pcbnew.EditorControl.rescueAutosave" )
1618 .Scope( AS_GLOBAL )
1619 .FriendlyName( _( "Rescue" ) )
1620 .Tooltip( _( "Clear board and get last rescue file automatically saved by PCB editor" ) )
1621 .Icon( BITMAPS::rescue ) );
1622
1624 .Name( "pcbnew.EditorControl.openNonKicadBoard" )
1625 .Scope( AS_GLOBAL )
1626 .FriendlyName( _( "Import Non-KiCad Board File..." ) )
1627 .Tooltip( _( "Import board file from other applications" ) )
1628 .Icon( BITMAPS::import_brd_file ) );
1629
1631 .Name( "pcbnew.EditorControl.exportFootprints" )
1632 .Scope( AS_GLOBAL )
1633 .FriendlyName( _( "Export Footprints..." ) )
1634 .Tooltip( _( "Add footprints from board to a new or an existing footprint library\n"
1635 "(does not remove other footprints from this library)" ) )
1636 .Icon( BITMAPS::library_archive ) );
1637
1639 .Name( "pcbnew.EditorControl.boardSetup" )
1640 .Scope( AS_GLOBAL )
1641 .FriendlyName( _( "Board Setup..." ) )
1642 .Tooltip( _( "Edit board setup including layers, design rules and various defaults" ) )
1643 .Icon( BITMAPS::options_board ) );
1644
1646 .Name( "pcbnew.EditorControl.importNetlist" )
1647 .Scope( AS_GLOBAL )
1648 .FriendlyName( _( "Import Netlist..." ) )
1649 .Tooltip( _( "Read netlist and update board connectivity" ) )
1650 .Icon( BITMAPS::netlist ) );
1651
1653 .Name( "pcbnew.EditorControl.importSpecctraSession" )
1654 .Scope( AS_GLOBAL )
1655 .FriendlyName( _( "Import Specctra Session..." ) )
1656 .Tooltip( _( "Import routed Specctra session (*.ses) file" ) )
1657 .Icon( BITMAPS::import ) );
1658
1660 .Name( "pcbnew.EditorControl.exportSpecctraDSN" )
1661 .Scope( AS_GLOBAL )
1662 .FriendlyName( _( "Export Specctra DSN..." ) )
1663 .Tooltip( _( "Export Specctra DSN routing info" ) )
1664 .Icon( BITMAPS::export_dsn ) );
1665
1667 .Name( "pcbnew.EditorControl.editFootprintFields" )
1668 .Scope( AS_GLOBAL )
1669 .FriendlyName( _( "Bulk Edit Footprint Fields..." ) )
1670 .Tooltip( _( "Edit a table of fields from all footprints in the board" ) )
1671 .Icon( BITMAPS::spreadsheet ) );
1672
1674 .Name( "pcbnew.EditorControl.generateGerbers" )
1675 .Scope( AS_GLOBAL )
1676 .FriendlyName( _( "Gerbers (.gbr)..." ) )
1677 .Tooltip( _( "Generate Gerbers for fabrication" ) )
1678 .Icon( BITMAPS::post_gerber ) );
1679
1681 .Name( "pcbnew.EditorControl.generateDrillFiles" )
1682 .Scope( AS_GLOBAL )
1683 .FriendlyName( _( "Drill Files (.drl)..." ) )
1684 .Tooltip( _( "Generate Excellon drill file(s)" ) )
1685 .Icon( BITMAPS::post_drill ) );
1686
1688 .Name( "pcbnew.EditorControl.generatePosFile" )
1689 .Scope( AS_GLOBAL )
1690 .FriendlyName( _( "Component Placement (.pos, .gbr)..." ) )
1691 .Tooltip( _( "Generate component placement file(s) for pick and place" ) )
1692 .Icon( BITMAPS::post_compo ) );
1693
1695 .Name( "pcbnew.EditorControl.generateReportFile" )
1696 .Scope( AS_GLOBAL )
1697 .FriendlyName( _( "Footprint Report (.rpt)..." ) )
1698 .Tooltip( _( "Create report of all footprints from current board" ) )
1699 .Icon( BITMAPS::post_rpt ) );
1700
1702 .Name( "pcbnew.EditorControl.generateIPC2581File" )
1703 .Scope( AS_GLOBAL )
1704 .FriendlyName( _( "IPC-2581 File (.xml)..." ) )
1705 .Tooltip( _( "Generate an IPC-2581 file" ) )
1706 .Icon( BITMAPS::post_xml ) );
1707
1709 .Name( "pcbnew.EditorControl.generateODBPPFile" )
1710 .Scope( AS_GLOBAL )
1711 .FriendlyName( _( "ODB++ Output File..." ) )
1712 .Tooltip( _( "Generate ODB++ output files" ) )
1713 .Icon( BITMAPS::post_odb ) );
1714
1716 .Name( "pcbnew.EditorControl.generateD356File" )
1717 .Scope( AS_GLOBAL )
1718 .FriendlyName( _( "IPC-D-356 Netlist File..." ) )
1719 .Tooltip( _( "Generate IPC-D-356 netlist file" ) )
1720 .Icon( BITMAPS::post_d356 ) );
1721
1723 .Name( "pcbnew.EditorControl.generateBOM" )
1724 .Scope( AS_GLOBAL )
1725 .FriendlyName( _( "Bill of Materials..." ) )
1726 .Tooltip( _( "Create bill of materials from board" ) )
1727 .Icon( BITMAPS::post_bom ) );
1728
1730 .Name( "pcbnew.EditorControl.generateBOMLegacy" )
1731 .Scope( AS_GLOBAL )
1732 .FriendlyName( _( "Generate Legacy Bill of Materials..." ) )
1733 .Tooltip( _( "Generate a bill of materials for the current board using the legacy exporter" ) )
1734 .Icon( BITMAPS::file_bom ) );
1735
1737 .Name( "pcbnew.EditorControl.exportGenCAD" )
1738 .Scope( AS_GLOBAL )
1739 .FriendlyName( _( "Export GenCAD..." ) )
1740 .Tooltip( _( "Export GenCAD board representation" ) )
1741 .Icon( BITMAPS::post_gencad ) );
1742
1744 .Name( "pcbnew.EditorControl.exportVRML" )
1745 .Scope( AS_GLOBAL )
1746 .FriendlyName( _( "Export VRML..." ) )
1747 .Tooltip( _( "Export VRML 3D board representation" ) )
1748 .Icon( BITMAPS::export3d ) );
1749
1751 .Name( "pcbnew.EditorControl.exportIDF" )
1752 .Scope( AS_GLOBAL )
1753 .FriendlyName( _( "Export IDFv3..." ) )
1754 .Tooltip( _( "Export IDF 3D board representation" ) )
1755 .Icon( BITMAPS::export_idf ) );
1756
1758 .Name( "pcbnew.EditorControl.exportSTEP" )
1759 .Scope( AS_GLOBAL )
1760 .FriendlyName( _( "Export STEP/GLB/BREP/XAO/PLY/STL..." ) )
1761 .Tooltip( _( "Export STEP, GLB, BREP, XAO, PLY or STL 3D board representation" ) )
1762 .Icon( BITMAPS::export_step ) );
1763
1765 .Name( "pcbnew.EditorControl.exportFootprintAssociations" )
1766 .Scope( AS_GLOBAL )
1767 .FriendlyName( _( "Export Footprint Association (.cmp) File..." ) )
1768 .Tooltip( _( "Export footprint association file (*.cmp) for schematic back annotation" ) )
1769 .Icon( BITMAPS::export_cmp ) );
1770
1772 .Name( "pcbnew.EditorControl.exportHyperlynx" )
1773 .Scope( AS_GLOBAL )
1774 .FriendlyName( _( "Hyperlynx..." ) )
1775 .Icon( BITMAPS::export_step ) );
1776
1778 .Name( "pcbnew.EditorControl.collect3DModels" )
1779 .Scope( AS_GLOBAL )
1780 .FriendlyName( _( "Collect And Embed 3D Models" ) )
1781 .Tooltip( _( "Collect footprint 3D models and embed them into the board" ) )
1782 .Icon( BITMAPS::import3d ) );
1783
1784
1785// Track & via size control
1787 .Name( "pcbnew.EditorControl.trackWidthInc" )
1788 .Scope( AS_GLOBAL )
1789 .DefaultHotkey( 'W' )
1790 .LegacyHotkeyName( "Switch Track Width To Next" )
1791 .FriendlyName( _( "Switch Track Width to Next" ) )
1792 .Tooltip( _( "Change track width to next pre-defined size" ) ) );
1793
1795 .Name( "pcbnew.EditorControl.trackWidthDec" )
1796 .Scope( AS_GLOBAL )
1797 .DefaultHotkey( MD_SHIFT + 'W' )
1798 .LegacyHotkeyName( "Switch Track Width To Previous" )
1799 .FriendlyName( _( "Switch Track Width to Previous" ) )
1800 .Tooltip( _( "Change track width to previous pre-defined size" ) ) );
1801
1803 .Name( "pcbnew.EditorControl.viaSizeInc" )
1804 .Scope( AS_GLOBAL )
1805 .DefaultHotkey( '\'' )
1806 .LegacyHotkeyName( "Increase Via Size" )
1807 .FriendlyName( _( "Increase Via Size" ) )
1808 .Tooltip( _( "Change via size to next pre-defined size" ) ) );
1809
1811 .Name( "pcbnew.EditorControl.viaSizeDec" )
1812 .Scope( AS_GLOBAL )
1813 .DefaultHotkey( '\\' )
1814 .LegacyHotkeyName( "Decrease Via Size" )
1815 .FriendlyName( _( "Decrease Via Size" ) )
1816 .Tooltip( _( "Change via size to previous pre-defined size" ) ) );
1817
1819 .Name( "pcbnew.EditorControl.autoTrackWidth" )
1820 .Scope( AS_GLOBAL )
1821 .FriendlyName( _( "Automatically select track width" ) )
1822 .Tooltip( _( "When routing from an existing track use its width instead "
1823 "of the current width setting" ) )
1825 .ToolbarState( TOOLBAR_STATE::TOGGLE ) );
1826
1828 .Name( "pcbnew.EditorControl.trackViaSizeChanged" )
1829 .Scope( AS_GLOBAL )
1830 .Flags( AF_NOTIFY ) );
1831
1833 .Name( "pcbnew.EditorControl.assignNetclass" )
1834 .Scope( AS_GLOBAL )
1835 .FriendlyName( _( "Assign Netclass..." ) )
1836 .Tooltip( _( "Assign a netclass to nets matching a pattern" ) )
1837 .Icon( BITMAPS::netlist ) );
1838
1840 .Name( "pcbnew.EditorControl.zoneMerge" )
1841 .Scope( AS_GLOBAL )
1842 .FriendlyName( _( "Merge Zones" ) ) );
1843
1845 .Name( "pcbnew.EditorControl.zoneDuplicate" )
1846 .Scope( AS_GLOBAL )
1847 .FriendlyName( _( "Duplicate Zone onto Layer..." ) )
1848 .Icon( BITMAPS::zone_duplicate ) );
1849
1851 .Name( "pcbnew.EditorControl.zonePriorityMoveToTop" )
1852 .Scope( AS_GLOBAL )
1853 .FriendlyName( _( "Move to Top" ) )
1854 .Icon( BITMAPS::small_up ) );
1855
1857 .Name( "pcbnew.EditorControl.zonePriorityRaise" )
1858 .Scope( AS_GLOBAL )
1859 .FriendlyName( _( "Raise" ) )
1860 .Icon( BITMAPS::small_up ) );
1861
1863 .Name( "pcbnew.EditorControl.zonePriorityLower" )
1864 .Scope( AS_GLOBAL )
1865 .FriendlyName( _( "Lower" ) )
1866 .Icon( BITMAPS::small_down ) );
1867
1869 .Name( "pcbnew.EditorControl.zonePriorityMoveToBottom" )
1870 .Scope( AS_GLOBAL )
1871 .FriendlyName( _( "Move to Bottom" ) )
1872 .Icon( BITMAPS::small_down ) );
1873
1875 .Name( "pcbnew.EditorControl.placeFootprint" )
1876 .Scope( AS_GLOBAL )
1877 .DefaultHotkey( 'A' )
1878 .LegacyHotkeyName( "Add Footprint" )
1879 .FriendlyName( _( "Place Footprints" ) )
1880 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1881 .Icon( BITMAPS::module )
1882 .Flags( AF_ACTIVATE )
1883 .Parameter<FOOTPRINT*>( nullptr ) );
1884
1886 .Name( "pcbnew.EditorControl.drillOrigin" )
1887 .Scope( AS_GLOBAL )
1888 .FriendlyName( _( "Drill/Place File Origin" ) )
1889 .Tooltip( _( "Place origin point for drill files and component placement files" ) )
1890 .Icon( BITMAPS::set_origin )
1891 .Flags( AF_ACTIVATE ) );
1892
1894 .Name( "pcbnew.EditorControl.drillResetOrigin" )
1895 .Scope( AS_GLOBAL )
1896 .LegacyHotkeyName( "Reset Drill Origin" )
1897 .FriendlyName( _( "Reset Drill Origin" ) ) );
1898
1900 .Name( "pcbnew.EditorControl.drillSetOrigin" )
1901 .Scope( AS_CONTEXT )
1902 .Parameter( VECTOR2I() ) );
1903
1905 .Name( "pcbnew.EditorControl.toggleLock" )
1906 .Scope( AS_GLOBAL )
1907 .DefaultHotkey( 'L' )
1908 .LegacyHotkeyName( "Lock/Unlock Footprint" )
1909 .FriendlyName( _( "Toggle Lock" ) )
1910 .Tooltip( _( "Lock or unlock selected items" ) )
1911 .Icon( BITMAPS::lock_unlock ) );
1912
1913// Line mode grouping and events (for PCB and Footprint editors)
1915 .Name( "pcbnew.EditorControl.lineModeFree" )
1916 .Scope( AS_GLOBAL )
1917 .FriendlyName( _( "Line Modes" ) )
1918 .Tooltip( _( "Draw and drag at any angle" ) )
1919 .Icon( BITMAPS::lines_any )
1920 .Flags( AF_NONE )
1921 .Parameter( LEADER_MODE::DIRECT ) );
1922
1924 .Name( "pcbnew.EditorControl.lineModeOrthonal" )
1925 .Scope( AS_GLOBAL )
1926 .FriendlyName( _( "Line Modes" ) )
1927 .Tooltip( _( "Constrain drawing and dragging to horizontal or vertical motions" ) )
1928 .Icon( BITMAPS::lines90 )
1929 .Flags( AF_NONE )
1930 .Parameter( LEADER_MODE::DEG90 ) );
1931
1933 .Name( "pcbnew.EditorControl.lineMode45" )
1934 .Scope( AS_GLOBAL )
1935 .FriendlyName( _( "Line Modes" ) )
1936 .Tooltip( _( "Constrain drawing and dragging to horizontal, vertical, or 45-degree angle motions" ) )
1937 .Icon( BITMAPS::hv45mode )
1938 .Flags( AF_NONE )
1939 .Parameter( LEADER_MODE::DEG45 ) );
1940
1942 .Name( "pcbnew.EditorControl.lineModeNext" )
1943 .DefaultHotkey( MD_SHIFT + ' ' )
1944 .Scope( AS_GLOBAL )
1945 .FriendlyName( _( "Line Modes" ) )
1946 .Tooltip( _( "Switch to next angle snapping mode" ) ) );
1947
1949 .Name( "pcbnew.EditorControl.angleSnapModeChanged" )
1950 .Scope( AS_GLOBAL )
1951 .Flags( AF_NOTIFY ) );
1952
1954 .Name( "pcbnew.EditorControl.lock" )
1955 .Scope( AS_GLOBAL )
1956 .FriendlyName( _( "Lock" ) )
1957 .Tooltip( _( "Prevent items from being moved and/or resized on the canvas" ) )
1958 .Icon( BITMAPS::locked ) );
1959
1961 .Name( "pcbnew.EditorControl.unlock" )
1962 .Scope( AS_GLOBAL )
1963 .FriendlyName( _( "Unlock" ) )
1964 .Tooltip( _( "Allow items to be moved and/or resized on the canvas" ) )
1965 .Icon( BITMAPS::unlocked ) );
1966
1968 .Name( "pcbnew.EditorControl.highlightNet" )
1969 .Scope( AS_GLOBAL )
1970 .DefaultHotkey( '`' )
1971 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1972 .LegacyHotkeyName( "Toggle Highlight of Selected Net (Modern Toolset only)" )
1973 .FriendlyName( _( "Highlight Net" ) )
1974 .Tooltip( _( "Highlight net under cursor" ) )
1975 .Icon( BITMAPS::net_highlight )
1976 .Parameter<int>( 0 ) );
1977
1979 .Name( "pcbnew.EditorControl.toggleLastNetHighlight" )
1980 .Scope( AS_GLOBAL )
1981 .FriendlyName( _( "Toggle Last Net Highlight" ) )
1982 .Tooltip( _( "Toggle between last two highlighted nets" ) )
1983 .Parameter<int>( 0 ) );
1984
1986 .Name( "pcbnew.EditorControl.clearHighlight" )
1987 .Scope( AS_GLOBAL )
1988 .DefaultHotkey( '~' )
1989 .FriendlyName( _( "Clear Net Highlighting" ) ) );
1990
1992 .Name( "pcbnew.EditorControl.toggleNetHighlight" )
1993 .Scope( AS_GLOBAL )
1994 .DefaultHotkey( MD_ALT + '`' )
1995 .FriendlyName( _( "Toggle Net Highlight" ) )
1996 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1997 .Icon( BITMAPS::net_highlight )
1998 .Parameter<int>( 0 ) );
1999
2001 .Name( "pcbnew.EditorControl.highlightNetSelection" )
2002 .Scope( AS_GLOBAL )
2003 .FriendlyName( _( "Highlight Net" ) )
2004 .Tooltip( _( "Highlight all copper items on the selected net(s)" ) )
2005 .Icon( BITMAPS::net_highlight )
2006 .Parameter<int>( 0 ) );
2007
2009 .Name( "pcbnew.EditorControl.highlightNetChain" )
2010 .Scope( AS_GLOBAL )
2011 .FriendlyName( _( "Highlight Net Chain" ) )
2012 .Tooltip( _( "Highlight every net in the net chain" ) )
2013 .Icon( BITMAPS::net_highlight ) );
2014
2016 .Name( "pcbnew.EditorControl.setTerminalPad" )
2017 .Scope( AS_GLOBAL )
2018 .Parameter<std::pair<KIID, KIID>>( { niluuid, niluuid } )
2019 .FriendlyName( _( "Set Terminal Pad" ) ) );
2020
2022 .Name( "pcbnew.EditorControl.highlightItem" )
2023 .Scope( AS_GLOBAL ) );
2024
2026 .Name( "pcbnew.EditorControl.hideNet" )
2027 .Scope( AS_GLOBAL )
2028 .FriendlyName( _( "Hide Net in Ratsnest" ) )
2029 .Tooltip( _( "Hide the selected net in the ratsnest of unconnected net lines/arcs" ) )
2030 .Icon( BITMAPS::hide_ratsnest )
2031 .Parameter<int>( 0 ) ); // Default to hiding selected net
2032
2034 .Name( "pcbnew.EditorControl.showNet" )
2035 .Scope( AS_GLOBAL )
2036 .FriendlyName( _( "Show Net in Ratsnest" ) )
2037 .Tooltip( _( "Show the selected net in the ratsnest of unconnected net lines/arcs" ) )
2038 .Icon( BITMAPS::show_ratsnest )
2039 .Parameter<int>( 0 ) ); // Default to showing selected net
2040
2042 .Name( "pcbnew.EditorControl.showEeschema" )
2043 .Scope( AS_GLOBAL )
2044 .FriendlyName( _( "Switch to Schematic Editor" ) )
2045 .Tooltip( _( "Open schematic in schematic editor" ) )
2046 .Icon( BITMAPS::icon_eeschema_24 ) );
2047
2048// DESIGN RULE EDITOR
2050 .Name( "pcbnew.DRETool.drcRuleEditor" )
2051 .Scope( AS_GLOBAL )
2052 .FriendlyName( _( "DRC Rule Editor" ) )
2053 .Tooltip( _( "Open DRC rule editor window" ) ) );
2054
2055// PCB_CONTROL
2056//
2057
2059 .Name( "pcbnew.Control.localRatsnestTool" )
2060 .Scope( AS_GLOBAL )
2061 .FriendlyName( _( "Local Ratsnest" ) )
2062 .Tooltip( _( "Toggle ratsnest display of selected item(s)" ) )
2063 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2064 .Icon( BITMAPS::tool_ratsnest )
2065 .Flags( AF_ACTIVATE ) );
2066
2068 .Name( "pcbnew.Control.hideDynamicRatsnest" )
2069 .Scope( AS_GLOBAL ) );
2070
2072 .Name( "pcbnew.Control.updateLocalRatsnest" )
2073 .Scope( AS_GLOBAL )
2074 .Parameter( VECTOR2I() ) );
2075
2077 .Name( "pcbnew.Control.showLayersManager" )
2078 .Scope( AS_GLOBAL )
2079 .FriendlyName( _( "Appearance" ) )
2080 .Tooltip( _( "Show/hide the appearance manager" ) )
2081 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2082 .Icon( BITMAPS::layers_manager ) );
2083
2085 .Name( "pcbnew.Control.showNetInspector" )
2086 .Scope( AS_GLOBAL )
2087 .FriendlyName( _( "Net Inspector" ) )
2088 .Tooltip( _( "Show/hide the net inspector" ) )
2089 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2090 .Icon( BITMAPS::tools ) );
2091
2093 .Name( "pcbnew.Control.zonesManager" )
2094 .Scope( AS_GLOBAL )
2095 .FriendlyName( _( "Zone Manager..." ) )
2096 .Tooltip( _( "Show the zone manager dialog" ) )
2097 .Icon( BITMAPS::show_zone ) );
2098
2100 .Name( "pcbnew.Control.flipBoard" )
2101 .Scope( AS_GLOBAL )
2102 .FriendlyName( _( "Flip Board View" ) )
2103 .Tooltip( _( "View board from the opposite side" ) )
2104 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2105 .Icon( BITMAPS::flip_board ) );
2106
2108 .Name( "pcbnew.Control.rehatchShapes" )
2109 .Scope( AS_CONTEXT ) );
2110
2111
2112// Display modes
2114 .Name( "pcbnew.Control.showRatsnest" )
2115 .Scope( AS_GLOBAL )
2116 .FriendlyName( _( "Show Ratsnest" ) )
2117 .Tooltip( _( "Show lines/arcs representing missing connections on the board" ) )
2118 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2119 .Icon( BITMAPS::general_ratsnest ) );
2120
2122 .Name( "pcbnew.Control.ratsnestLineMode" )
2123 .Scope( AS_GLOBAL )
2124 .FriendlyName( _( "Curved Ratsnest Lines" ) )
2125 .Tooltip( _( "Show ratsnest with curved lines" ) )
2126 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2127 .Icon( BITMAPS::curved_ratsnest ) );
2128
2130 .Name( "pcbnew.Control.ratsnestModeCycle" )
2131 .Scope( AS_GLOBAL )
2132 .FriendlyName( _( "Ratsnest Mode (3-state)" ) )
2133 .Tooltip( _( "Cycle between showing ratsnests for all layers, just visible layers, and none" ) ) );
2134
2136 .Name( "pcbnew.Control.netColorMode" )
2137 .Scope( AS_GLOBAL )
2138 .FriendlyName( _( "Net Color Mode (3-state)" ) )
2139 .Tooltip( _( "Cycle between using net and netclass colors for all nets, just ratsnests, and none" ) ) );
2140
2142 .Name( "pcbnew.Control.trackDisplayMode" )
2143 .Scope( AS_GLOBAL )
2144 .DefaultHotkey( 'K' )
2145 .LegacyHotkeyName( "Track Display Mode" )
2146 .FriendlyName( _( "Sketch Tracks" ) )
2147 .Tooltip( _( "Show tracks in outline mode" ) )
2148 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2149 .Icon( BITMAPS::showtrack ) );
2150
2152 .Name( "pcbnew.Control.padDisplayMode" )
2153 .Scope( AS_GLOBAL )
2154 .FriendlyName( _( "Sketch Pads" ) )
2155 .Tooltip( _( "Show pads in outline mode" ) )
2156 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2157 .Icon( BITMAPS::pad_sketch ) );
2158
2160 .Name( "pcbnew.Control.viaDisplayMode" )
2161 .Scope( AS_GLOBAL )
2162 .FriendlyName( _( "Sketch Vias" ) )
2163 .Tooltip( _( "Show vias in outline mode" ) )
2164 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2165 .Icon( BITMAPS::via_sketch ) );
2166
2168 .Name( "pcbnew.Control.graphicOutlines" )
2169 .Scope( AS_GLOBAL )
2170 .FriendlyName( _( "Sketch Graphic Items" ) )
2171 .Tooltip( _( "Show graphic items in outline mode" ) )
2172 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2173 .Icon( BITMAPS::show_mod_edge ) );
2174
2176 .Name( "pcbnew.Control.textOutlines" )
2177 .Scope( AS_GLOBAL )
2178 .FriendlyName( _( "Sketch Text Items" ) )
2179 .Tooltip( _( "Show footprint texts in line mode" ) )
2180 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2181 .Icon( BITMAPS::text_sketch ) );
2182
2184 .Name( "pcbnew.Control.showPadNumbers" )
2185 .Scope( AS_GLOBAL )
2186 .FriendlyName( _( "Show Pad Numbers" ) )
2187 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2188 .Icon( BITMAPS::pad_number ) );
2189
2191 .Name( "pcbnew.Control.zoneDisplayEnable" )
2192 .Scope( AS_GLOBAL )
2193 .FriendlyName( _( "Draw Zone Fills" ) )
2194 .Tooltip( _( "Show filled areas of zones" ) )
2195 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2196 .Icon( BITMAPS::show_zone ) );
2197
2199 .Name( "pcbnew.Control.zoneDisplayDisable" )
2200 .Scope( AS_GLOBAL )
2201 .FriendlyName( _( "Draw Zone Outlines" ) )
2202 .Tooltip( _( "Show only zone boundaries" ) )
2203 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2204 .Icon( BITMAPS::show_zone_disable ) );
2205
2207 .Name( "pcbnew.Control.zoneDisplayOutlines" )
2208 .Scope( AS_GLOBAL )
2209 .FriendlyName( _( "Draw Zone Fill Fracture Borders" ) )
2210 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2212
2214 .Name( "pcbnew.Control.zoneDisplayTesselation" )
2215 .Scope( AS_GLOBAL )
2216 .FriendlyName( _( "Draw Zone Fill Triangulation" ) )
2217 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2219
2221 .Name( "pcbnew.Control.zoneDisplayToggle" )
2222 .Scope( AS_GLOBAL )
2223 .FriendlyName( _( "Toggle Zone Display" ) )
2224 .Tooltip( _( "Cycle between showing zone fills and just their outlines" ) )
2225 .Icon( BITMAPS::show_zone ) );
2226
2227
2229 .Name( "pcbnew.Control.fpAutoZoom" )
2230 .Scope( AS_GLOBAL )
2231 .FriendlyName( _( "Automatic zoom" ) )
2232 .Tooltip( _( "Automatic Zoom on footprint change" ) )
2234 .ToolbarState( TOOLBAR_STATE::TOGGLE ) );
2235
2236// Layer control
2237
2238// Translate aLayer to the action that switches to it
2240{
2241 switch( aLayer )
2242 {
2243 case F_Cu: return &PCB_ACTIONS::layerTop;
2244 case In1_Cu: return &PCB_ACTIONS::layerInner1;
2245 case In2_Cu: return &PCB_ACTIONS::layerInner2;
2246 case In3_Cu: return &PCB_ACTIONS::layerInner3;
2247 case In4_Cu: return &PCB_ACTIONS::layerInner4;
2248 case In5_Cu: return &PCB_ACTIONS::layerInner5;
2249 case In6_Cu: return &PCB_ACTIONS::layerInner6;
2250 case In7_Cu: return &PCB_ACTIONS::layerInner7;
2251 case In8_Cu: return &PCB_ACTIONS::layerInner8;
2252 case In9_Cu: return &PCB_ACTIONS::layerInner9;
2253 case In10_Cu: return &PCB_ACTIONS::layerInner10;
2254 case In11_Cu: return &PCB_ACTIONS::layerInner11;
2255 case In12_Cu: return &PCB_ACTIONS::layerInner12;
2256 case In13_Cu: return &PCB_ACTIONS::layerInner13;
2257 case In14_Cu: return &PCB_ACTIONS::layerInner14;
2258 case In15_Cu: return &PCB_ACTIONS::layerInner15;
2259 case In16_Cu: return &PCB_ACTIONS::layerInner16;
2260 case In17_Cu: return &PCB_ACTIONS::layerInner17;
2261 case In18_Cu: return &PCB_ACTIONS::layerInner18;
2262 case In19_Cu: return &PCB_ACTIONS::layerInner19;
2263 case In20_Cu: return &PCB_ACTIONS::layerInner20;
2264 case In21_Cu: return &PCB_ACTIONS::layerInner21;
2265 case In22_Cu: return &PCB_ACTIONS::layerInner22;
2266 case In23_Cu: return &PCB_ACTIONS::layerInner23;
2267 case In24_Cu: return &PCB_ACTIONS::layerInner24;
2268 case In25_Cu: return &PCB_ACTIONS::layerInner25;
2269 case In26_Cu: return &PCB_ACTIONS::layerInner26;
2270 case In27_Cu: return &PCB_ACTIONS::layerInner27;
2271 case In28_Cu: return &PCB_ACTIONS::layerInner28;
2272 case In29_Cu: return &PCB_ACTIONS::layerInner29;
2273 case In30_Cu: return &PCB_ACTIONS::layerInner30;
2274 case B_Cu: return &PCB_ACTIONS::layerBottom;
2275 default: return nullptr;
2276 }
2277}
2278
2279// Implemented as an accessor + static variable to ensure it is initialized when used
2280// in static action constructors
2282{
2283 static TOOL_ACTION_GROUP s_toolActionGroup( "pcbnew.Control.DirectLayerActions" );
2284 return s_toolActionGroup;
2285}
2286
2288 .Name( "pcbnew.Control.layerTop" )
2289 .Scope( AS_GLOBAL )
2291 .DefaultHotkey( WXK_PAGEUP )
2292 .LegacyHotkeyName( "Switch to Component (F.Cu) layer" )
2293 .FriendlyName( _( "Switch to Component (F.Cu) layer" ) )
2294 .Flags( AF_NOTIFY )
2295 .Parameter( F_Cu ) );
2296
2298 .Name( "pcbnew.Control.layerInner1" )
2299 .Scope( AS_GLOBAL )
2301 .LegacyHotkeyName( "Switch to Inner layer 1" )
2302 .FriendlyName( _( "Switch to Inner Layer 1" ) )
2303 .Flags( AF_NOTIFY )
2304 .Parameter( In1_Cu ) );
2305
2307 .Name( "pcbnew.Control.layerInner2" )
2308 .Scope( AS_GLOBAL )
2310 .LegacyHotkeyName( "Switch to Inner layer 2" )
2311 .FriendlyName( _( "Switch to Inner Layer 2" ) )
2312 .Flags( AF_NOTIFY )
2313 .Parameter( In2_Cu ) );
2314
2316 .Name( "pcbnew.Control.layerInner3" )
2317 .Scope( AS_GLOBAL )
2319 .LegacyHotkeyName( "Switch to Inner layer 3" )
2320 .FriendlyName( _( "Switch to Inner Layer 3" ) )
2321 .Flags( AF_NOTIFY )
2322 .Parameter( In3_Cu ) );
2323
2325 .Name( "pcbnew.Control.layerInner4" )
2326 .Scope( AS_GLOBAL )
2328 .LegacyHotkeyName( "Switch to Inner layer 4" )
2329 .FriendlyName( _( "Switch to Inner Layer 4" ) )
2330 .Flags( AF_NOTIFY )
2331 .Parameter( In4_Cu ) );
2332
2334 .Name( "pcbnew.Control.layerInner5" )
2335 .Scope( AS_GLOBAL )
2337 .LegacyHotkeyName( "Switch to Inner layer 5" )
2338 .FriendlyName( _( "Switch to Inner Layer 5" ) )
2339 .Flags( AF_NOTIFY )
2340 .Parameter( In5_Cu ) );
2341
2343 .Name( "pcbnew.Control.layerInner6" )
2344 .Scope( AS_GLOBAL )
2346 .LegacyHotkeyName( "Switch to Inner layer 6" )
2347 .FriendlyName( _( "Switch to Inner Layer 6" ) )
2348 .Flags( AF_NOTIFY )
2349 .Parameter( In6_Cu ) );
2350
2352 .Name( "pcbnew.Control.layerInner7" )
2353 .Scope( AS_GLOBAL )
2355 .FriendlyName( _( "Switch to Inner Layer 7" ) )
2356 .Flags( AF_NOTIFY )
2357 .Parameter( In7_Cu ) );
2358
2360 .Name( "pcbnew.Control.layerInner8" )
2361 .Scope( AS_GLOBAL )
2363 .FriendlyName( _( "Switch to Inner Layer 8" ) )
2364 .Flags( AF_NOTIFY )
2365 .Parameter( In8_Cu ) );
2366
2368 .Name( "pcbnew.Control.layerInner9" )
2369 .Scope( AS_GLOBAL )
2371 .FriendlyName( _( "Switch to Inner Layer 9" ) )
2372 .Flags( AF_NOTIFY )
2373 .Parameter( In9_Cu ) );
2374
2376 .Name( "pcbnew.Control.layerInner10" )
2377 .Scope( AS_GLOBAL )
2379 .FriendlyName( _( "Switch to Inner Layer 10" ) )
2380 .Flags( AF_NOTIFY )
2381 .Parameter( In10_Cu ) );
2382
2384 .Name( "pcbnew.Control.layerInner11" )
2385 .Scope( AS_GLOBAL )
2387 .FriendlyName( _( "Switch to Inner Layer 11" ) )
2388 .Flags( AF_NOTIFY )
2389 .Parameter( In11_Cu ) );
2390
2392 .Name( "pcbnew.Control.layerInner12" )
2393 .Scope( AS_GLOBAL )
2395 .FriendlyName( _( "Switch to Inner Layer 12" ) )
2396 .Flags( AF_NOTIFY )
2397 .Parameter( In12_Cu ) );
2398
2400 .Name( "pcbnew.Control.layerInner13" )
2401 .Scope( AS_GLOBAL )
2403 .FriendlyName( _( "Switch to Inner Layer 13" ) )
2404 .Flags( AF_NOTIFY )
2405 .Parameter( In13_Cu ) );
2406
2408 .Name( "pcbnew.Control.layerInner14" )
2409 .Scope( AS_GLOBAL )
2411 .FriendlyName( _( "Switch to Inner Layer 14" ) )
2412 .Flags( AF_NOTIFY )
2413 .Parameter( In14_Cu ) );
2414
2416 .Name( "pcbnew.Control.layerInner15" )
2417 .Scope( AS_GLOBAL )
2419 .FriendlyName( _( "Switch to Inner Layer 15" ) )
2420 .Flags( AF_NOTIFY )
2421 .Parameter( In15_Cu ) );
2422
2424 .Name( "pcbnew.Control.layerInner16" )
2425 .Scope( AS_GLOBAL )
2427 .FriendlyName( _( "Switch to Inner Layer 16" ) )
2428 .Flags( AF_NOTIFY )
2429 .Parameter( In16_Cu ) );
2430
2432 .Name( "pcbnew.Control.layerInner17" )
2433 .Scope( AS_GLOBAL )
2435 .FriendlyName( _( "Switch to Inner Layer 17" ) )
2436 .Flags( AF_NOTIFY )
2437 .Parameter( In17_Cu ) );
2438
2440 .Name( "pcbnew.Control.layerInner18" )
2441 .Scope( AS_GLOBAL )
2443 .FriendlyName( _( "Switch to Inner Layer 18" ) )
2444 .Flags( AF_NOTIFY )
2445 .Parameter( In18_Cu ) );
2446
2448 .Name( "pcbnew.Control.layerInner19" )
2449 .Scope( AS_GLOBAL )
2451 .FriendlyName( _( "Switch to Inner Layer 19" ) )
2452 .Flags( AF_NOTIFY )
2453 .Parameter( In19_Cu ) );
2454
2456 .Name( "pcbnew.Control.layerInner20" )
2457 .Scope( AS_GLOBAL )
2459 .FriendlyName( _( "Switch to Inner Layer 20" ) )
2460 .Flags( AF_NOTIFY )
2461 .Parameter( In20_Cu ) );
2462
2464 .Name( "pcbnew.Control.layerInner21" )
2465 .Scope( AS_GLOBAL )
2467 .FriendlyName( _( "Switch to Inner Layer 21" ) )
2468 .Flags( AF_NOTIFY )
2469 .Parameter( In21_Cu ) );
2470
2472 .Name( "pcbnew.Control.layerInner22" )
2473 .Scope( AS_GLOBAL )
2475 .FriendlyName( _( "Switch to Inner Layer 22" ) )
2476 .Flags( AF_NOTIFY )
2477 .Parameter( In22_Cu ) );
2478
2480 .Name( "pcbnew.Control.layerInner23" )
2481 .Scope( AS_GLOBAL )
2483 .FriendlyName( _( "Switch to Inner Layer 23" ) )
2484 .Flags( AF_NOTIFY )
2485 .Parameter( In23_Cu ) );
2486
2488 .Name( "pcbnew.Control.layerInner24" )
2489 .Scope( AS_GLOBAL )
2491 .FriendlyName( _( "Switch to Inner Layer 24" ) )
2492 .Flags( AF_NOTIFY )
2493 .Parameter( In24_Cu ) );
2494
2496 .Name( "pcbnew.Control.layerInner25" )
2497 .Scope( AS_GLOBAL )
2499 .FriendlyName( _( "Switch to Inner Layer 25" ) )
2500 .Flags( AF_NOTIFY )
2501 .Parameter( In25_Cu ) );
2502
2504 .Name( "pcbnew.Control.layerInner26" )
2505 .Scope( AS_GLOBAL )
2507 .FriendlyName( _( "Switch to Inner Layer 26" ) )
2508 .Flags( AF_NOTIFY )
2509 .Parameter( In26_Cu ) );
2510
2512 .Name( "pcbnew.Control.layerInner27" )
2513 .Scope( AS_GLOBAL )
2515 .FriendlyName( _( "Switch to Inner Layer 27" ) )
2516 .Flags( AF_NOTIFY )
2517 .Parameter( In27_Cu ) );
2518
2520 .Name( "pcbnew.Control.layerInner28" )
2521 .Scope( AS_GLOBAL )
2523 .FriendlyName( _( "Switch to Inner Layer 28" ) )
2524 .Flags( AF_NOTIFY )
2525 .Parameter( In28_Cu ) );
2526
2528 .Name( "pcbnew.Control.layerInner29" )
2529 .Scope( AS_GLOBAL )
2531 .FriendlyName( _( "Switch to Inner Layer 29" ) )
2532 .Flags( AF_NOTIFY )
2533 .Parameter( In29_Cu ) );
2534
2536 .Name( "pcbnew.Control.layerInner30" )
2537 .Scope( AS_GLOBAL )
2539 .FriendlyName( _( "Switch to Inner Layer 30" ) )
2540 .Flags( AF_NOTIFY )
2541 .Parameter( In30_Cu ) );
2542
2544 .Name( "pcbnew.Control.layerBottom" )
2545 .Scope( AS_GLOBAL )
2547 .DefaultHotkey( WXK_PAGEDOWN )
2548 .LegacyHotkeyName( "Switch to Copper (B.Cu) layer" )
2549 .FriendlyName( _( "Switch to Copper (B.Cu) Layer" ) )
2550 .Flags( AF_NOTIFY )
2551 .Parameter( B_Cu ) );
2552
2554 .Name( "pcbnew.Control.layerNext" )
2555 .Scope( AS_GLOBAL )
2556 .DefaultHotkey( '+' )
2557 .LegacyHotkeyName( "Switch to Next Layer" )
2558 .FriendlyName( _( "Switch to Next Layer" ) )
2559 .Flags( AF_NOTIFY ) );
2560
2562 .Name( "pcbnew.Control.layerPrev" )
2563 .Scope( AS_GLOBAL )
2564 .DefaultHotkey( '-' )
2565 .LegacyHotkeyName( "Switch to Previous Layer" )
2566 .FriendlyName( _( "Switch to Previous Layer" ) )
2567 .Flags( AF_NOTIFY ) );
2568
2570 .Name( "pcbnew.Control.layerToggle" )
2571 .Scope( AS_GLOBAL )
2572 .DefaultHotkey( 'V' )
2573 .LegacyHotkeyName( "Add Through Via" )
2574 .FriendlyName( _( "Toggle Layer" ) )
2575 .Tooltip( _( "Switch between layers in active layer pair" ) )
2576 .Flags( AF_NOTIFY ) );
2577
2579 .Name( "pcbnew.Control.layerAlphaInc" )
2580 .Scope( AS_GLOBAL )
2581 .DefaultHotkey( '}' )
2582 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2583 .LegacyHotkeyName( "Increment Layer Transparency (Modern Toolset only)" )
2584 .FriendlyName( _( "Increase Layer Opacity" ) )
2585 .Tooltip( _( "Make the current layer less transparent" ) )
2586 .Icon( BITMAPS::contrast_mode ) );
2587
2589 .Name( "pcbnew.Control.layerAlphaDec" )
2590 .Scope( AS_GLOBAL )
2591 .DefaultHotkey( '{' )
2592 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2593 .LegacyHotkeyName( "Decrement Layer Transparency (Modern Toolset only)" )
2594 .FriendlyName( _( "Decrease Layer Opacity" ) )
2595 .Tooltip( _( "Make the current layer more transparent" ) )
2596 .Icon( BITMAPS::contrast_mode ) );
2597
2599 .Name( "pcbnew.Control.layerPairPresetCycle" )
2600 .Scope( AS_GLOBAL )
2601 .DefaultHotkey( MD_SHIFT + 'V' )
2602 .FriendlyName( _( "Cycle Layer Pair Presets" ) )
2603 .Tooltip( _( "Cycle between preset layer pairs" ) ) );
2604
2606 .Name( "pcbnew.Control.layerChanged" )
2607 .Scope( AS_GLOBAL )
2608 .Flags( AF_NOTIFY ) );
2609
2610//Show board statistics tool
2612 .Name( "pcbnew.InspectionTool.ShowBoardStatistics" )
2613 .Scope( AS_GLOBAL )
2614 .FriendlyName( _( "Show Board Statistics" ) )
2615 .Tooltip( _( "Shows board statistics" ) )
2616 .Icon( BITMAPS::editor ) );
2617
2619 .Name( "pcbnew.InspectionTool.InspectClearance" )
2620 .Scope( AS_GLOBAL )
2621 .FriendlyName( _( "Clearance Resolution" ) )
2622 .Tooltip( _( "Show clearance resolution for the active layer between two selected objects" ) )
2623 .Icon( BITMAPS::mw_add_gap ) );
2624
2626 .Name( "pcbnew.InspectionTool.InspectConstraints" )
2627 .Scope( AS_GLOBAL )
2628 .FriendlyName( _( "Constraints Resolution" ) )
2629 .Tooltip( _( "Show constraints resolution for the selected object" ) )
2630 .Icon( BITMAPS::mw_add_stub ) );
2631
2633 .Name( "pcbnew.InspectionTool.DiffFootprint" )
2634 .Scope( AS_GLOBAL )
2635 .FriendlyName( _( "Compare Footprint with Library" ) )
2636 .Tooltip( _( "Show differences between board footprint and its library equivalent" ) )
2637 .Icon( BITMAPS::library ) );
2638
2640 .Name( "pcbnew.InspectionTool.CompareBoardWithFile" )
2641 .Scope( AS_GLOBAL )
2642 .FriendlyName( _( "Compare Board with File..." ) )
2643 .Tooltip( _( "Diff the current PCB against another .kicad_pcb file" ) )
2644 .Icon( BITMAPS::library ) );
2645
2647 .Name( "pcbnew.InspectionTool.CompareBoardWithHistory" )
2648 .Scope( AS_GLOBAL )
2649 .FriendlyName( _( "Compare Board with Local History..." ) )
2650 .Tooltip( _( "Diff the current PCB against the most recent local-history snapshot" ) )
2651 .Icon( BITMAPS::library ) );
2652
2654 .Name( "pcbnew.InspectionTool.ShowFootprintAssociations" )
2655 .Scope( AS_GLOBAL )
2656 .FriendlyName( _( "Show Footprint Associations" ) )
2657 .Tooltip( _( "Show footprint library and schematic symbol associations" ) )
2659
2660//Geographic re-annotation tool
2662 .Name( "pcbnew.ReannotateTool.ShowReannotateDialog" )
2663 .Scope( AS_GLOBAL )
2664 .FriendlyName( _( "Geographical Reannotate..." ) )
2665 .Tooltip( _( "Reannotate PCB in geographical order" ) )
2666 .Icon( BITMAPS::annotate ) );
2667
2669 .Name( "pcbnew.Control.repairBoard" )
2670 .Scope( AS_GLOBAL )
2671 .FriendlyName( _( "Repair Board" ) )
2672 .Tooltip( _( "Run various diagnostics and attempt to repair board" ) )
2673 .Icon( BITMAPS::rescue )
2674 .Parameter( false ) ); // Don't repair quietly
2675
2677 .Name( "pcbnew.ModuleEditor.repairFootprint" )
2678 .Scope( AS_GLOBAL )
2679 .FriendlyName( _( "Repair Footprint" ) )
2680 .Tooltip( _( "Run various diagnostics and attempt to repair footprint" ) )
2681 .Icon( BITMAPS::rescue ) );
2682
2683// These carry no DefaultHotkey because GTK refuses WXK_TAB as a menu accelerator. Ctrl+Tab is
2684// routed through a frame char-hook handler instead.
2686 .Name( "pcbnew.ModuleEditor.nextFootprintTab" )
2687 .Scope( AS_GLOBAL )
2688 .FriendlyName( _( "Next Footprint Tab" ) )
2689 .Tooltip( _( "Switch to the next open footprint tab" ) ) );
2690
2692 .Name( "pcbnew.ModuleEditor.prevFootprintTab" )
2693 .Scope( AS_GLOBAL )
2694 .FriendlyName( _( "Previous Footprint Tab" ) )
2695 .Tooltip( _( "Switch to the previous open footprint tab" ) ) );
2696
2698 .Name( "pcbnew.ModuleEditor.closeFootprintTab" )
2699 .Scope( AS_GLOBAL )
2700 .FriendlyName( _( "Close Footprint Tab" ) )
2701 .Tooltip( _( "Close the active footprint tab" ) ) );
2702
2703
2704// PLACEMENT_TOOL
2705//
2707 .Name( "pcbnew.AlignAndDistribute.alignTop" )
2708 .Scope( AS_GLOBAL )
2709 .FriendlyName( _( "Align to Top" ) )
2710 .Tooltip( _( "Aligns selected items to the top edge of the item under the cursor" ) )
2711 .Icon( BITMAPS::align_items_top ) );
2712
2714 .Name( "pcbnew.AlignAndDistribute.alignBottom" )
2715 .Scope( AS_GLOBAL )
2716 .FriendlyName( _( "Align to Bottom" ) )
2717 .Tooltip( _( "Aligns selected items to the bottom edge of the item under the cursor" ) )
2718 .Icon( BITMAPS::align_items_bottom ) );
2719
2721 .Name( "pcbnew.AlignAndDistribute.alignLeft" )
2722 .Scope( AS_GLOBAL )
2723 .FriendlyName( _( "Align to Left" ) )
2724 .Tooltip( _( "Aligns selected items to the left edge of the item under the cursor" ) )
2725 .Icon( BITMAPS::align_items_left ) );
2726
2728 .Name( "pcbnew.AlignAndDistribute.alignRight" )
2729 .Scope( AS_GLOBAL )
2730 .FriendlyName( _( "Align to Right" ) )
2731 .Tooltip( _( "Aligns selected items to the right edge of the item under the cursor" ) )
2732 .Icon( BITMAPS::align_items_right ) );
2733
2735 .Name( "pcbnew.AlignAndDistribute.alignCenterY" )
2736 .Scope( AS_GLOBAL )
2737 .FriendlyName( _( "Align to Vertical Center" ) )
2738 .Tooltip( _( "Aligns selected items to the vertical center of the item under the cursor" ) )
2739 .Icon( BITMAPS::align_items_center ) );
2740
2742 .Name( "pcbnew.AlignAndDistribute.alignCenterX" )
2743 .Scope( AS_GLOBAL )
2744 .FriendlyName( _( "Align to Horizontal Center" ) )
2745 .Tooltip( _( "Aligns selected items to the horizontal center of the item under the cursor" ) )
2746 .Icon( BITMAPS::align_items_middle ) );
2747
2749 .Name( "pcbnew.AlignAndDistribute.distributeHorizontallyCenters" )
2750 .Scope( AS_GLOBAL )
2751 .FriendlyName( _( "Distribute Horizontally by Centers" ) )
2752 .Tooltip( _( "Distributes selected items between the left-most item and the right-most item "
2753 "so that the item centers are equally distributed" ) )
2755
2757 .Name( "pcbnew.AlignAndDistribute.distributeHorizontallyGaps" )
2758 .Scope( AS_GLOBAL )
2759 .FriendlyName( _( "Distribute Horizontally with Even Gaps" ) )
2760 .Tooltip( _( "Distributes selected items between the left-most item and the right-most item "
2761 "so that the gaps between items are equal" ) )
2763
2765 .Name( "pcbnew.AlignAndDistribute.distributeVerticallyGaps" )
2766 .Scope( AS_GLOBAL )
2767 .FriendlyName( _( "Distribute Vertically with Even Gaps" ) )
2768 .Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item "
2769 "so that the gaps between items are equal" ) )
2771
2773 .Name( "pcbnew.AlignAndDistribute.distributeVerticallyCenters" )
2774 .Scope( AS_GLOBAL )
2775 .FriendlyName( _( "Distribute Vertically by Centers" ) )
2776 .Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item "
2777 "so that the item centers are equally distributed" ) )
2779
2780// PCB_POINT_EDITOR
2781//
2783 .Name( "pcbnew.PointEditor.addCorner" )
2784 .Scope( AS_GLOBAL )
2785#ifdef __WXMAC__
2786 .DefaultHotkey( WXK_F1 )
2787#else
2788 .DefaultHotkey( WXK_INSERT )
2789#endif
2790 .FriendlyName( _( "Create Corner" ) )
2791 .Tooltip( _( "Create a corner" ) )
2792 .Icon( BITMAPS::add_corner ) );
2793
2795 .Name( "pcbnew.PointEditor.removeCorner" )
2796 .Scope( AS_GLOBAL )
2797 .FriendlyName( _( "Remove Corner" ) )
2798 .Tooltip( _( "Remove corner" ) )
2799 .Icon( BITMAPS::delete_cursor ) );
2800
2802 .Name( "pcbnew.PointEditor.chamferCorner" )
2803 .Scope( AS_GLOBAL )
2804 .FriendlyName( _( "Chamfer Corner" ) )
2805 .Tooltip( _( "Chamfer corner" ) )
2806 .Icon( BITMAPS::chamfer ) );
2807
2808// POSITION_RELATIVE_TOOL
2809//
2811 .Name( "pcbnew.PositionRelative.positionRelative" )
2812 .Scope( AS_GLOBAL )
2813 .DefaultHotkey( MD_SHIFT + 'P' )
2814 .LegacyHotkeyName( "Position Item Relative" )
2815 .FriendlyName( _( "Position Relative To..." ) )
2816 .Tooltip( _( "Positions the selected item(s) by an exact amount relative to another" ) )
2817 .Icon( BITMAPS::move_relative ) );
2818
2820 .Name( "pcbnew.PositionRelative.interactiveOffsetTool" )
2821 .Scope( AS_GLOBAL )
2822 .FriendlyName( _( "Interactive Offset Tool" ) )
2823 .Tooltip( _( "Interactive tool for offsetting items by exact amounts" ) )
2824 .Icon( BITMAPS::move_relative ) );
2825
2826// PCIKER_TOOL
2827//
2829 .Name( "pcbnew.Picker.selectItemInteractively" )
2830 .Scope( AS_GLOBAL )
2831 .Parameter<PCB_PICKER_TOOL::INTERACTIVE_PARAMS>( {} ) );
2832
2834 .Name( "pcbnew.Picker.selectPointInteractively" )
2835 .Scope( AS_GLOBAL )
2836 .Parameter<PCB_PICKER_TOOL::INTERACTIVE_PARAMS>( {} ));
2837
2838
2840 .Name( "pcbnew.InteractiveSelection.SelectConnection" )
2841 .Scope( AS_GLOBAL )
2842 .DefaultHotkey( 'U' )
2843 .LegacyHotkeyName( "Select Single Track" )
2844 .FriendlyName( _( "Select/Expand Connection" ) )
2845 .Tooltip( _( "Selects a connection or expands an existing selection to junctions, pads, or entire connections" ) )
2846 .Icon( BITMAPS::add_tracks ) );
2847
2849 .Name( "pcbnew.InteractiveSelection.unrouteSelected" )
2850 .Scope( AS_GLOBAL )
2851 .FriendlyName( _( "Unroute Selected" ) )
2852 .Tooltip( _( "Unroutes selected items to the nearest pad." ) )
2853 .Icon( BITMAPS::general_deletions ) );
2854
2856 .Name( "pcbnew.InteractiveSelection.unrouteSegment" )
2857 .Scope( AS_GLOBAL )
2858 .DefaultHotkey( WXK_BACK )
2859 .FriendlyName( _( "Unroute Segment" ) )
2860 .Tooltip( _( "Unroutes segment to the nearest segment." ) )
2861 .Icon( BITMAPS::general_deletions ) );
2862
2864 .Name( "pcbnew.InteractiveSelection.SyncSelection" )
2865 .Scope( AS_GLOBAL ) );
2866
2868 .Name( "pcbnew.InteractiveSelection.SyncSelectionWithNets" )
2869 .Scope( AS_GLOBAL ) );
2870
2872 .Name( "pcbnew.InteractiveSelection.SelectNet" )
2873 .Scope( AS_GLOBAL )
2874 .FriendlyName( _( "Select All Tracks in Net" ) )
2875 .Tooltip( _( "Selects all tracks & vias belonging to the same net." ) )
2876 .Parameter<int>( 0 ) );
2877
2879 .Name( "pcbnew.InteractiveSelection.DeselectNet" )
2880 .Scope( AS_GLOBAL )
2881 .FriendlyName( _( "Deselect All Tracks in Net" ) )
2882 .Tooltip( _( "Deselects all tracks & vias belonging to the same net." ) )
2883 .Parameter<int>( 0 ) );
2884
2886 .Name( "pcbnew.InteractiveSelection.SelectNetChain" )
2887 .Scope( AS_GLOBAL )
2888 .FriendlyName( _( "Select All Tracks in Net Chain" ) )
2889 .Tooltip( _( "Selects all tracks & vias belonging to every net in the same net "
2890 "chain (nets joined through series passives)." ) ) );
2891
2893 .Name( "pcbnew.InteractiveSelection.SelectUnconnected" )
2894 .Scope( AS_GLOBAL )
2895 .DefaultHotkey( 'O' )
2896 .FriendlyName( _( "Select All Unconnected Footprints" ) )
2897 .Tooltip( _( "Selects all unconnected footprints belonging to each selected net." ) ) );
2898
2900 .Name( "pcbnew.InteractiveSelection.GrabUnconnected" )
2901 .Scope( AS_GLOBAL )
2902 .DefaultHotkey( MD_SHIFT + 'O' )
2903 .FriendlyName( _( "Grab Nearest Unconnected Footprints" ) )
2904 .Tooltip( _( "Selects and initiates moving the nearest unconnected footprint on each selected net." ) ) );
2905
2907 .Name( "pcbnew.InteractiveSelection.SelectOnSheet" )
2908 .Scope( AS_GLOBAL )
2909 .FriendlyName( _( "Sheet" ) )
2910 .Tooltip( _( "Selects all footprints and tracks in the schematic sheet" ) )
2911 .Icon( BITMAPS::select_same_sheet ) );
2912
2914 .Name( "pcbnew.InteractiveSelection.SelectSameSheet" )
2915 .Scope( AS_GLOBAL )
2916 .FriendlyName( _( "Items in Same Hierarchical Sheet" ) )
2917 .Tooltip( _( "Selects all footprints and tracks in the same schematic sheet" ) )
2918 .Icon( BITMAPS::select_same_sheet ) );
2919
2921 .Name( "pcbnew.InteractiveSelection.SelectOnSchematic" )
2922 .Scope( AS_GLOBAL )
2923 .FriendlyName( _( "Select on Schematic" ) )
2924 .Tooltip( _( "Selects corresponding items in Schematic editor" ) )
2925 .Icon( BITMAPS::select_same_sheet ) );
2926
2928 .Name( "pcbnew.InteractiveSelection.FilterSelection" )
2929 .Scope( AS_GLOBAL )
2930 .FriendlyName( _( "Filter Selected Items..." ) )
2931 .Tooltip( _( "Remove items from the selection by type" ) )
2932 .Icon( BITMAPS::filter ) );
2933
2934
2935// ZONE_FILLER_TOOL
2936//
2938 .Name( "pcbnew.ZoneFiller.zoneFill" )
2939 .Scope( AS_GLOBAL )
2940 .FriendlyName( _( "Draft Fill Selected Zone(s)" ) )
2941 .Tooltip( _( "Update copper fill of selected zone(s) without regard to other interacting zones" ) )
2942 .Icon( BITMAPS::fill_zone )
2943 .Parameter<ZONE*>( nullptr ) );
2944
2946 .Name( "pcbnew.ZoneFiller.zoneFillAll" )
2947 .Scope( AS_GLOBAL )
2948 .DefaultHotkey( 'B' )
2949 .LegacyHotkeyName( "Fill or Refill All Zones" )
2950 .FriendlyName( _( "Fill All Zones" ) )
2951 .Tooltip( _( "Update copper fill of all zones" ) )
2952 .Icon( BITMAPS::fill_zone ) );
2953
2955 .Name( "pcbnew.ZoneFiller.zoneFillDirty" )
2956 .Scope( AS_CONTEXT ) );
2957
2959 .Name( "pcbnew.ZoneFiller.zoneUnfill" )
2960 .Scope( AS_GLOBAL )
2961 .FriendlyName( _( "Unfill Selected Zone(s)" ) )
2962 .Tooltip( _( "Remove copper fill from selected zone(s)" ) )
2963 .Icon( BITMAPS::zone_unfill ) );
2964
2966 .Name( "pcbnew.ZoneFiller.zoneUnfillAll" )
2967 .Scope( AS_GLOBAL )
2968 .DefaultHotkey( MD_CTRL + 'B' )
2969 .LegacyHotkeyName( "Remove Filled Areas in All Zones" )
2970 .FriendlyName( _( "Unfill All Zones" ) )
2971 .Tooltip( _( "Remove copper fill from all zones" ) )
2972 .Icon( BITMAPS::zone_unfill ) );
2973
2974
2975// AUTOPLACER_TOOL
2976//
2978 .Name( "pcbnew.Autoplacer.autoplaceSelected" )
2979 .Scope( AS_GLOBAL )
2980 .FriendlyName( _( "Place Selected Footprints" ) )
2981 .Tooltip( _( "Performs automatic placement of selected components" ) ) );
2982
2984 .Name( "pcbnew.Autoplacer.autoplaceOffboard" )
2985 .Scope( AS_GLOBAL )
2986 .FriendlyName( _( "Place Off-Board Footprints" ) )
2987 .Tooltip( _( "Performs automatic placement of components outside board area" ) ) );
2988
2990 .Name( "pcbnew.Multichannel.generatePlacementRuleAreas" )
2991 .Scope( AS_GLOBAL )
2992 .FriendlyName( _( "Generate Placement Rule Areas..." ) )
2993 .Tooltip( _( "Creates best-fit placement rule areas" ) )
2995 .Flags( AF_ACTIVATE ) );
2996
2998 .Name( "pcbnew.Multichannel.repeatLayout" )
2999 .Scope( AS_GLOBAL )
3000 .FriendlyName( _( "Repeat Layout..." ) )
3001 .Tooltip( _( "Clones placement & routing across multiple identical channels" ) )
3002 .Icon( BITMAPS::copy )
3003 );
3004
3005// ROUTER_TOOL
3006//
3008 .Name( "pcbnew.InteractiveRouter.SingleTrack" )
3009 .Scope( AS_GLOBAL )
3010 .DefaultHotkey( 'X' )
3011 .LegacyHotkeyName( "Add New Track" )
3012 .FriendlyName( _( "Route Single Track" ) )
3013 .Tooltip( _( "Route tracks" ) )
3014 .Icon( BITMAPS::add_tracks )
3015 .ToolbarState( TOOLBAR_STATE::TOGGLE )
3016 .Flags( AF_ACTIVATE )
3017 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
3018
3020 .Name( "pcbnew.InteractiveRouter.DiffPair" )
3021 .Scope( AS_GLOBAL )
3022 .DefaultHotkey( '6' )
3023 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
3024 .LegacyHotkeyName( "Route Differential Pair (Modern Toolset only)" )
3025 .FriendlyName( _( "Route Differential Pair" ) )
3026 .Tooltip( _( "Route differential pairs" ) )
3027 .Icon( BITMAPS::ps_diff_pair )
3028 .ToolbarState( TOOLBAR_STATE::TOGGLE )
3029 .Flags( AF_ACTIVATE )
3030 .Parameter( PNS::PNS_MODE_ROUTE_DIFF_PAIR ) );
3031
3033 .Name( "pcbnew.InteractiveRouter.SettingsDialog" )
3034 .Scope( AS_GLOBAL )
3035 .DefaultHotkey( MD_CTRL + '<' )
3036 .LegacyHotkeyName( "Routing Options" )
3037 .FriendlyName( _( "Interactive Router Settings..." ) )
3038 .Tooltip( _( "Open Interactive Router settings" ) )
3039 .Icon( BITMAPS::tools ) );
3040
3042 .Name( "pcbnew.InteractiveRouter.DiffPairDialog" )
3043 .Scope( AS_GLOBAL )
3044 .FriendlyName( _( "Differential Pair Dimensions..." ) )
3045 .Tooltip( _( "Open Differential Pair Dimension settings" ) )
3046 .Icon( BITMAPS::ps_diff_pair_gap ) );
3047
3049 .Name( "pcbnew.InteractiveRouter.HighlightMode" )
3050 .Scope( AS_GLOBAL )
3051 .FriendlyName( _( "Router Highlight Mode" ) )
3052 .Tooltip( _( "Switch router to highlight mode" ) )
3053 .Flags( AF_NONE )
3054 .Parameter( PNS::RM_MarkObstacles ) );
3055
3057 .Name( "pcbnew.InteractiveRouter.ShoveMode" )
3058 .Scope( AS_GLOBAL )
3059 .FriendlyName( _( "Router Shove Mode" ) )
3060 .Tooltip( _( "Switch router to shove mode" ) )
3061 .Flags( AF_NONE )
3062 .Parameter( PNS::RM_Shove ) );
3063
3065 .Name( "pcbnew.InteractiveRouter.WalkaroundMode" )
3066 .Scope( AS_GLOBAL )
3067 .FriendlyName( _( "Router Walkaround Mode" ) )
3068 .Tooltip( _( "Switch router to walkaround mode" ) )
3069 .Flags( AF_NONE )
3070 .Parameter( PNS::RM_Walkaround ) );
3071
3073 .Name( "pcbnew.InteractiveRouter.CycleRouterMode" )
3074 .Scope( AS_GLOBAL )
3075 .FriendlyName( _( "Cycle Router Mode" ) )
3076 .Tooltip( _( "Cycle router to the next mode" ) ) );
3077
3079 .Name( "pcbnew.InteractiveRouter.SelectLayerPair" )
3080 .Scope( AS_GLOBAL )
3081 .FriendlyName( _( "Set Layer Pair..." ) )
3082 .Tooltip( _( "Change active layer pair for routing" ) )
3084 .Flags( AF_ACTIVATE ) );
3085
3087 .Name( "pcbnew.LengthTuner.TuneSingleTrack" )
3088 .Scope( AS_GLOBAL )
3089 .DefaultHotkey( '7' )
3090 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
3091 .LegacyHotkeyName( "Tune Single Track (Modern Toolset only)" )
3092 .FriendlyName( _( "Tune Length of a Single Track" ) )
3094 .ToolbarState( TOOLBAR_STATE::TOGGLE )
3095 .Flags( AF_ACTIVATE )
3096 .Parameter( PNS::PNS_MODE_TUNE_SINGLE ) );
3097
3099 .Name( "pcbnew.LengthTuner.TuneDiffPair" )
3100 .Scope( AS_GLOBAL )
3101 .DefaultHotkey( '8' )
3102 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
3103 .LegacyHotkeyName( "Tune Differential Pair Length (Modern Toolset only)" )
3104 .FriendlyName( _( "Tune Length of a Differential Pair" ) )
3106 .ToolbarState( TOOLBAR_STATE::TOGGLE )
3107 .Flags( AF_ACTIVATE )
3108 .Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR ) );
3109
3111 .Name( "pcbnew.LengthTuner.TuneDiffPairSkew" )
3112 .Scope( AS_GLOBAL )
3113 .DefaultHotkey( '9' )
3114 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
3115 .LegacyHotkeyName( "Tune Differential Pair Skew (Modern Toolset only)" )
3116 .FriendlyName( _( "Tune Skew of a Differential Pair" ) )
3118 .ToolbarState( TOOLBAR_STATE::TOGGLE )
3119 .Flags( AF_ACTIVATE )
3120 .Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW ) );
3121
3123 .Name( "pcbnew.InteractiveRouter.InlineDrag" )
3124 .Scope( AS_CONTEXT )
3125 .Parameter<int>( PNS::DM_ANY ) );
3126
3128 .Name( "pcbnew.InteractiveRouter.UndoLastSegment" )
3129 .Scope( AS_CONTEXT )
3130 .DefaultHotkey( WXK_BACK )
3131 .FriendlyName( _( "Undo Last Segment" ) )
3132 .Tooltip( _( "Walks the current track back one segment." ) ) );
3133
3135 .Name( "pcbnew.InteractiveRouter.ContinueFromEnd" )
3136 .Scope( AS_CONTEXT )
3137 .DefaultHotkey( MD_CTRL + 'E' )
3138 .FriendlyName( _( "Route From Other End" ) )
3139 .Tooltip( _( "Commits current segments and starts next segment from nearest ratsnest end." ) ) );
3140
3142 .Name( "pcbnew.InteractiveRouter.AttemptFinish" )
3143 .Scope( AS_CONTEXT )
3144 .DefaultHotkey( 'F' )
3145 .FriendlyName( _( "Attempt Finish" ) )
3146 .Tooltip( _( "Attempts to complete current route to nearest ratsnest end." ) )
3147 .Parameter<bool*>( nullptr ) );
3148
3150 .Name( "pcbnew.InteractiveRouter.RouteSelected" )
3151 .Scope( AS_GLOBAL )
3152 .DefaultHotkey( MD_SHIFT + 'X' )
3153 .FriendlyName( _( "Route Selected" ) )
3154 .Tooltip( _( "Sequentially route selected items from ratsnest anchor." ) )
3155 .Flags( AF_ACTIVATE )
3156 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
3157
3159 .Name( "pcbnew.InteractiveRouter.RouteSelectedFromEnd" )
3160 .Scope( AS_GLOBAL )
3161 .DefaultHotkey( MD_SHIFT + 'E' )
3162 .FriendlyName( _( "Route Selected From Other End" ) )
3163 .Tooltip( _( "Sequentially route selected items from other end of ratsnest anchor." ) )
3164 .Flags( AF_ACTIVATE )
3165 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
3166
3168 .Name( "pcbnew.InteractiveRouter.Autoroute" )
3169 .Scope( AS_GLOBAL )
3170 .DefaultHotkey( MD_SHIFT + 'F' )
3171 .FriendlyName( _( "Attempt Finish Selected (Autoroute)" ) )
3172 .Tooltip( _( "Sequentially attempt to automatically route all selected pads." ) )
3173 .Flags( AF_ACTIVATE )
3174 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
3175
3177 .Name( "pcbnew.InteractiveRouter.OptimizeSelected" )
3178 .Scope( AS_GLOBAL )
3179 .DefaultHotkey( MD_SHIFT + 'T' )
3180 .FriendlyName( _( "Optimize Selected Track(s)" ) )
3181 .Tooltip( _( "Simplify selected routed track(s)." ) )
3182 .Flags( AF_ACTIVATE )
3183 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
3184
3186 .Name( "pcbnew.InteractiveRouter.CancelCurrentItem" )
3187 .Scope( AS_GLOBAL )
3188 .FriendlyName( _( "Cancel Current Item" ) )
3189 .Tooltip( _( "Skip current item and route next selected item." ) ) );
3190
3192 .Name( "pcbnew.InteractiveRouter.BreakTrack" )
3193 .Scope( AS_GLOBAL )
3194 .FriendlyName( _( "Break Track" ) )
3195 .Tooltip( _( "Splits the track segment into two segments connected at the cursor position." ) )
3196 .Icon( BITMAPS::break_line ) );
3197
3199 .Name( "pcbnew.InteractiveRouter.Drag45Degree" )
3200 .Scope( AS_GLOBAL )
3201 .DefaultHotkey( 'D' )
3202 .LegacyHotkeyName( "Drag Track Keep Slope" )
3203 .FriendlyName( _( "Drag 45 Degree Mode" ) )
3204 .Tooltip( _( "Drags the track segment while keeping connected tracks at 45 degrees." ) )
3206
3208 .Name( "pcbnew.InteractiveRouter.DragFreeAngle" )
3209 .Scope( AS_GLOBAL )
3210 .DefaultHotkey( 'G' )
3211 .LegacyHotkeyName( "Drag Item" )
3212 .FriendlyName( _( "Drag Free Angle" ) )
3213 .Tooltip( _( "Drags the nearest joint in the track without restricting the track angle." ) )
3214 .Icon( BITMAPS::drag_segment ) );
3215
3216
3217// GENERATOR_TOOL
3218//
3219
3221 .Name( "pcbnew.Generator.regenerateAllTuning" )
3222 .Scope( AS_GLOBAL )
3223 .FriendlyName( _( "Update All Tuning Patterns" ) )
3224 .Tooltip( _( "Attempt to re-tune existing tuning patterns within their bounds" ) )
3226 .Parameter( wxString( wxS( "tuning_pattern" ) ) ) );
3227
3229 .Name( "pcbnew.Generator.regenerateAll" )
3230 .Scope( AS_GLOBAL )
3231 .FriendlyName( _( "Rebuild All Generators" ) )
3232 .Tooltip( _( "Rebuilds geometry of all generators" ) )
3233 .Icon( BITMAPS::refresh )
3234 .Parameter( wxString( wxS( "*" ) ) ) );
3235
3237 .Name( "pcbnew.Generator.regenerateSelected" )
3238 .Scope( AS_GLOBAL )
3239 .FriendlyName( _( "Rebuild Selected Generators" ) )
3240 .Tooltip( _( "Rebuilds geometry of selected generator(s)" ) )
3241 .Icon( BITMAPS::refresh ) );
3242
3243
3245 .Name( "pcbnew.Generator.genStartEdit" )
3246 .Scope( AS_CONTEXT ) );
3247
3249 .Name( "pcbnew.Generator.genUpdateEdit" )
3250 .Scope( AS_CONTEXT ) );
3251
3253 .Name( "pcbnew.Generator.genFinishEdit" )
3254 .Scope( AS_CONTEXT ) );
3255
3257 .Name( "pcbnew.Generator.genCacnelEdit" )
3258 .Scope( AS_CONTEXT ) );
3259
3261 .Name( "pcbnew.Generator.genRemove" )
3262 .Scope( AS_CONTEXT ) );
3263
3264
3266 .Name( "pcbnew.Generator.showManager" )
3267 .Scope( AS_GLOBAL )
3268 .FriendlyName( _( "Generators Manager" ) )
3269 .Tooltip( _( "Show a manager dialog for Generator objects" ) )
3270 .Icon( BITMAPS::pin_table ) );
3271
3273 .Name( "pcbnew.Generator.excludeStitchVia" )
3274 .Scope( AS_GLOBAL )
3275 .FriendlyName( _( "Exclude From Stitching" ) )
3276 .Tooltip( _( "Remove the selected via from its via-stitch generator and prevent "
3277 "it from being regenerated" ) ) );
3278
3280 .Name( "pcbnew.Generator.clearStitchViaExclusions" )
3281 .Scope( AS_GLOBAL )
3282 .FriendlyName( _( "Clear Via Stitching Exclusions" ) )
3283 .Tooltip( _( "Restore all vias previously excluded from the selected via-stitch "
3284 "generators" ) ) );
3285
3286
3287// LENGTH_TUNER_TOOL
3288//
3290 .Name( "pcbnew.LengthTuner.Settings" )
3291 .ToolbarState( TOOLBAR_STATE::HIDDEN )
3292 .Scope( AS_GLOBAL )
3293 .DefaultHotkey( MD_CTRL + 'L' )
3294 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
3295 .LegacyHotkeyName( "Length Tuning Settings (Modern Toolset only)" )
3296 .FriendlyName( _( "Length Tuning Settings" ) )
3297 .MenuText( _( "Length Tuning Settings..." ) )
3298 .Tooltip( _( "Displays tuning pattern properties dialog" ) )
3300
3301// Drag and drop
3303 .Name( "pcbnew.Control.DdAppendBoard" )
3304 .Scope( AS_GLOBAL ) );
3305
3307 .Name( "pcbnew.Control.ddImportFootprint" )
3308 .Scope( AS_GLOBAL ) );
3309
3311 .Name( "pcbnew.InteractiveDrawing.ddImportGraphics" )
3312 .Scope( AS_GLOBAL ) );
3313
3314// actions for footprint wizard frame
3316 .Name( "pcbnew.FpWizard.showWizards" )
3317 .Scope( AS_GLOBAL )
3318 .FriendlyName( _( "Show wizards selector" ) )
3319 .Tooltip( _( "Select wizard script to run" ) )
3320 .Icon( BITMAPS::module_wizard ) );
3321
3323 .Name( "pcbnew.FpWizard.resetWizardPrms" )
3324 .Scope( AS_GLOBAL )
3325 .FriendlyName( _( "Reset wizard parameters" ) )
3326 .Tooltip( _( "Reset wizard parameters to default" ) )
3327 .Icon( BITMAPS::reload ) );
3328
3330 .Name( "pcbnew.FpWizard.exportFpToEditor" )
3331 .Scope( AS_GLOBAL )
3332 .FriendlyName( _( "Export footprint to editor" ) )
3333 .Tooltip( _( "Export footprint to editor" ) )
3335
3337 .Name( "pcbnew.InteractiveDiffPhaseSkew" )
3338 .Scope( AS_GLOBAL )
3339 .Flags( AF_ACTIVATE )
3340 .ToolbarState( TOOLBAR_STATE::TOGGLE )
3341 .FriendlyName( _( "Show relative skew of diff pair tracks" ) )
3342 .Tooltip( _( "Show relative skew of diff pair tracks" ) )
3344
3345
3348 .Name( "pcbnew.GridItem.place" )
3349 .Scope( AS_GLOBAL )
3350 .FriendlyName( _( "Place Sub-grid" ) )
3351 .Tooltip( _( "Adds a subgrid to the board" ) )
3352 .Icon( BITMAPS::add_grid_item ) );
3353
3354
3356{
3357 static TOOL_EVENT event = TOOL_EVENT( TC_MESSAGE, TA_ACTION,
3358 "common.Interactive.snappingModeChangedByKey" );
3359
3360 return event;
3361}
3362
3363
3365{
3366 static TOOL_EVENT event = TOOL_EVENT( TC_MESSAGE, TA_ACTION,
3367 "pcbnew.Control.layerPairPresetChangedByKey" );
3368
3369 return event;
3370}
3371
3372
ARC_DRAW_MODE
Construction sequence used when interactively drawing a circular arc.
@ TANGENT
End only; start and departure direction come from a tangent seed.
@ START_END_MID
Start, end, then the arc midpoint dragged along the chord bisector.
@ START_DIR_END
Start, a point giving the departure direction, then the end.
@ START_END_CENTER
Start, end, then the center dragged along the chord bisector.
@ CENTER_START_END
Center, then start (sets radius), then sweep to the end.
@ copy_pad_settings
@ add_zone_cutout
@ cleanup_tracks_and_vias
@ general_deletions
@ constraint_tangent
@ align_items_bottom
@ constraint_fixed_radius
@ align_items_left
@ show_zone_outline_only
@ constraint_vertical
@ push_pad_settings
@ distribute_horizontal_centers
@ distribute_vertical_centers
@ ps_diff_pair_tune_length
@ constraint_arc_angle
@ add_arc_tangent
@ constraint_parallel
@ constraint_equal_radius
@ add_arc_start_dir_end
@ add_graphical_polygon
@ constraint_horizontal
@ align_items_middle
@ constraint_fixed_position
@ distribute_horizontal_gaps
@ add_radial_dimension
@ auto_track_width
@ router_len_tuner_dist_incr
@ tune_diff_pair_skew_legend
@ subtract_polygons
@ align_items_top
@ curved_ratsnest
@ router_len_tuner_dist_decr
@ add_aligned_dimension
@ constraint_auto
@ general_ratsnest
@ add_rectangle
@ outset_from_selection
@ mw_add_stub_arc
@ align_items_right
@ insert_module_board
@ apply_pad_settings
@ constraint_equal_length
@ add_via_stack
@ add_ellipse_arc
@ icon_eeschema_24
@ add_center_dimension
@ drag_segment_withslope
@ width_track_via
@ export_footprint_names
@ add_graphical_segments
@ add_arc_start_end_mid
@ intersect_polygons
@ distribute_vertical_gaps
@ constraint_symmetric
@ ps_diff_pair_tune_phase
@ constraint_fixed_length
@ add_orthogonal_dimension
@ add_arc_start_end_center
@ add_component
@ add_keepout_area
@ pack_footprints
@ constraint_collinear
@ constraint_concentric
@ custom_pad_to_primitives
@ constraint_angular_dimension
@ zoom_auto_fit_in_page
@ show_zone_disable
@ constraint_coincident
@ align_items_center
@ constraint_midpoint
@ constraint_perpendicular
@ add_grid_item
@ load_module_board
@ import_brd_file
@ show_zone_triangulation
@ add_arc_center
@ router_len_tuner
@ select_layer_pair
@ router_len_tuner_amplitude_incr
@ select_same_sheet
@ add_via_stitch
@ constraint_point_on_line
@ library_archive
@ router_len_tuner_setup
@ cleanup_graphics
@ router_len_tuner_amplitude_decr
@ edit_cmp_symb_links
@ ps_diff_pair_gap
@ CURSOR_NONE
Definition actions.h:304
static TOOL_ACTION editTracksAndVias
static TOOL_ACTION lineModeFree
Unconstrained angle mode (icon lines_any)
static TOOL_ACTION hideConstraints
Same toggle, shown while the overlay is visible.
static TOOL_ACTION_GROUP layerDirectSwitchActions()
static TOOL_ACTION showConstraintsPanel
Toggle the docked constraints pane (board editor).
static TOOL_ACTION deleteFootprint
static TOOL_ACTION drawRuleArea
static TOOL_ACTION layerToggle
static TOOL_ACTION drag45Degree
static TOOL_ACTION duplicateIncrement
Activation of the duplication tool with incrementing (e.g. pad number)
static TOOL_ACTION layerInner12
static TOOL_ACTION changeDimensionArrows
Switch between dimension arrow directions.
static TOOL_ACTION microwaveCreateGap
static TOOL_ACTION recombinePad
static TOOL_ACTION drawBezier
static TOOL_ACTION renameFootprint
static TOOL_ACTION routerUndoLastSegment
static TOOL_ACTION nextFootprint
static TOOL_ACTION placeText
static TOOL_ACTION layerInner8
static TOOL_ACTION swapLayers
static TOOL_ACTION zonesManager
static TOOL_ACTION generateBOM
static TOOL_ACTION highlightItem
static TOOL_ACTION selectNetChain
Select all connections belonging to every net in the current item's net chain.
Definition pcb_actions.h:88
static TOOL_ACTION drawOrthogonalDimension
static TOOL_ACTION drcRuleEditor
static TOOL_ACTION zoneDisplayToggle
static TOOL_ACTION enumeratePads
Tool for quick pad enumeration.
static TOOL_ACTION drawRectangle
static TOOL_ACTION previousFootprint
static TOOL_ACTION layerInner3
static TOOL_ACTION layerPrev
static TOOL_ACTION setAnchor
static TOOL_ACTION padDisplayMode
static TOOL_ACTION placeReferenceImage
static TOOL_ACTION routerSettingsDialog
Activation of the Push and Shove settings dialogs.
static TOOL_ACTION showRatsnest
static TOOL_ACTION exportGenCAD
static TOOL_ACTION zoneFillAll
static TOOL_ACTION layerInner2
static TOOL_ACTION showLayersManager
static TOOL_ACTION drawArcStartEndCenter
static TOOL_ACTION changeTrackWidth
Update selected tracks & vias to the current track & via dimensions.
static TOOL_ACTION trackWidthDec
static TOOL_ACTION routerAttemptFinish
static TOOL_ACTION convertToKeepout
static TOOL_ACTION toggleNetHighlight
static TOOL_ACTION generateDrillFiles
static TOOL_ACTION pushPadSettings
Copy the current pad's settings to other pads in the footprint or on the board.
static TOOL_ACTION addConstraintVertical
static TOOL_ACTION unrouteSelected
Removes all tracks from the selected items to the first pad.
Definition pcb_actions.h:76
static TOOL_ACTION saveSelectionAsDesignBlock
static TOOL_ACTION drawCircle
static TOOL_ACTION magneticSnapAllLayers
static TOOL_ACTION mirrorH
Mirroring of selected items.
static TOOL_ACTION routeDiffPair
Activation of the Push and Shove router (differential pair mode)
static TOOL_ACTION exportVRML
static TOOL_ACTION generateD356File
static TOOL_ACTION updateFootprint
static TOOL_ACTION collect3DModels
static TOOL_ACTION tuneDiffPair
static TOOL_ACTION convertToTracks
static TOOL_ACTION exportCmpFile
static TOOL_ACTION saveToLinkedDesignBlock
static TOOL_ACTION alignTop
static TOOL_ACTION trackViaSizeChanged
static TOOL_ACTION exportSpecctraDSN
static TOOL_ACTION createFootprint
static TOOL_ACTION layerChanged
static TOOL_ACTION trackWidthInc
static TOOL_ACTION grabUnconnected
Select and move nearest unconnected footprint from ratsnest of selection.
Definition pcb_actions.h:94
static TOOL_ACTION filterSelection
Filter the items in the current selection (invokes dialog)
static TOOL_ACTION placeDrillMap
static TOOL_ACTION setTerminalPad
static TOOL_ACTION ddAppendBoard
Drag and drop.
static TOOL_ACTION editFootprint
static TOOL_ACTION exportFootprint
static TOOL_ACTION layerInner25
static TOOL_ACTION drawEllipseArc
static TOOL_ACTION editDesignBlockProperties
static TOOL_ACTION breakTrack
Break a single track into two segments at the cursor.
static TOOL_ACTION pointEditorMoveMidpoint
static TOOL_ACTION highlightNet
static TOOL_ACTION magneticSnapActiveLayer
Snapping controls.
static TOOL_ACTION autoTrackWidth
static TOOL_ACTION generateIPC2581File
static TOOL_ACTION getAndPlace
Find an item and start moving.
static TOOL_ACTION drawTable
static TOOL_ACTION drawTextBox
static TOOL_ACTION addConstraintPerpendicular
static TOOL_ACTION generateODBPPFile
static TOOL_ACTION repeatLayout
static TOOL_ACTION copyPadSettings
Copy the selected pad's settings to the board design settings.
static TOOL_ACTION layerAlphaDec
static TOOL_ACTION routerRouteSelectedFromEnd
static TOOL_ACTION routerHighlightMode
Actions to enable switching modes via hotkey assignments.
static TOOL_ACTION routerWalkaroundMode
static TOOL_ACTION genFinishEdit
static TOOL_ACTION routerShoveMode
static TOOL_ACTION migrate3DModels
static TOOL_ACTION convertToLines
static TOOL_ACTION toggleExcludeFromSim
static TOOL_ACTION drawZoneCutout
static TOOL_ACTION drawPolygon
static TOOL_ACTION placePad
Activation of the drawing tool (placing a PAD)
static TOOL_ACTION openNonKicadBoard
static TOOL_ACTION hideNetInRatsnest
static TOOL_ACTION hideLocalRatsnest
static TOOL_ACTION swapPadNets
Swap nets between selected pads/gates (and connected copper)
static TOOL_ACTION exportFpToEditor
static TOOL_ACTION drawViaStitchArea
static TOOL_ACTION distributeHorizontallyGaps
static TOOL_ACTION zoneDisplayFilled
static TOOL_ACTION layerInner24
static TOOL_ACTION viaSizeDec
static TOOL_ACTION showNetInRatsnest
static TOOL_ACTION drawArcStartDirEnd
static TOOL_ACTION drawRadialDimension
static TOOL_ACTION genStartEdit
static TOOL_ACTION padTable
static TOOL_ACTION tuneSingleTrack
static TOOL_ACTION zoneFill
static TOOL_ACTION cleanupTracksAndVias
static TOOL_ACTION viaDisplayMode
static TOOL_ACTION editTextAndGraphics
static TOOL_ACTION properties
Activation of the edit tool.
static TOOL_ACTION drawLeader
static TOOL_ACTION editFpInFpEditor
static TOOL_ACTION addConstraintAngular
static TOOL_ACTION moveWithReference
move with a reference point
static TOOL_ACTION toggleLock
static TOOL_ACTION highlightNetChain
static TOOL_ACTION changeTrackLayerPrev
static TOOL_ACTION swap
Swapping of selected items.
static TOOL_ACTION toggleLastNetHighlight
static TOOL_ACTION layerInner29
static TOOL_ACTION * LayerIDToAction(PCB_LAYER_ID aLayerID)
Translate a layer ID into the action that switches to that layer.
static TOOL_ACTION drillResetOrigin
static TOOL_ACTION routerOptimizeSelected
static TOOL_ACTION lineMode45
45-degree-or-orthogonal mode (icon hv45mode)
static TOOL_ACTION compareBoardWithHistory
static TOOL_ACTION deleteDesignBlock
static TOOL_ACTION placeCharacteristics
static TOOL_ACTION addConstraintArcAngle
static TOOL_ACTION zonePriorityMoveToBottom
static TOOL_ACTION zonePriorityMoveToTop
static TOOL_ACTION viaSizeInc
static TOOL_ACTION angleSnapModeChanged
Notification event when angle mode changes.
static TOOL_ACTION routerAutorouteSelected
static TOOL_ACTION moveExact
Activation of the exact move tool.
static TOOL_ACTION autoplaceOffboardComponents
static TOOL_ACTION layerInner11
static TOOL_ACTION routerDiffPairDialog
static TOOL_ACTION explodePad
static TOOL_ACTION routerContinueFromEnd
static TOOL_ACTION generateBOMLegacy
static TOOL_ACTION zoneUnfill
static TOOL_ACTION intersectPolygons
Intersection of multiple polygons.
static TOOL_ACTION pointEditorMoveCorner
static TOOL_ACTION layerAlphaInc
static TOOL_ACTION saveBoardAsDesignBlock
static TOOL_ACTION drawCopperThievingZone
static TOOL_ACTION manageConstraints
Open the constraint list dialog.
static TOOL_ACTION layerPairPresetsCycle
static TOOL_ACTION distributeHorizontallyCenters
static TOOL_ACTION inspectConstraints
static TOOL_ACTION generatePosFile
static TOOL_ACTION globalDeletions
static TOOL_ACTION lineModeNext
Cycle through angle modes.
static TOOL_ACTION newFootprint
static TOOL_ACTION genRemove
static TOOL_ACTION drillOrigin
static TOOL_ACTION selectOnSheetFromEeschema
Select all components on sheet from Eeschema crossprobing.
Definition pcb_actions.h:97
static TOOL_ACTION layerInner16
static TOOL_ACTION defaultPadProperties
static TOOL_ACTION selectConnection
Select tracks between junctions or expands an existing selection to pads or the entire connection.
Definition pcb_actions.h:73
static TOOL_ACTION assignNetClass
static TOOL_ACTION packAndMoveFootprints
Pack and start moving selected footprints.
static TOOL_ACTION alignRight
static TOOL_ACTION tuneSkew
static TOOL_ACTION copyWithReference
copy command with manual reference point selection
static TOOL_ACTION layerInner26
static TOOL_ACTION genCancelEdit
static TOOL_ACTION prevFootprintTab
static TOOL_ACTION layerInner18
static TOOL_ACTION incWidth
Increase width of currently drawn line.
static TOOL_ACTION repairBoard
static TOOL_ACTION layerInner14
static TOOL_ACTION addConstraintHorizontal
static TOOL_ACTION healShapes
Connect selected shapes, possibly extending or cutting them, or adding extra geometry.
static TOOL_ACTION selectPointInteractively
static TOOL_ACTION toggleExcludeFromBOM
static TOOL_ACTION trackDisplayMode
static TOOL_ACTION exportSTEP
static TOOL_ACTION showNetInspector
static TOOL_ACTION selectLayerPair
static TOOL_ACTION magneticSnapToggle
static TOOL_ACTION microwaveCreateStubArc
static TOOL_ACTION layerInner6
static TOOL_ACTION applyDesignBlockLayout
static TOOL_ACTION extendGraphic
Extend one graphical line or arc to the nearest boundary.
static TOOL_ACTION dragFreeAngle
static TOOL_ACTION drawEllipse
static TOOL_ACTION placeSubGrid
Grid Item.
static TOOL_ACTION findByProperties
Find items by property criteria or expression.
static TOOL_ACTION clearHighlight
static TOOL_ACTION generateGerbers
static TOOL_ACTION inspectClearance
static TOOL_ACTION convertToZone
static TOOL_ACTION ddImportFootprint
static TOOL_ACTION generatorsShowManager
static const std::vector< const TOOL_ACTION * > & ConstraintAddActions()
Canonical ordered list of the geometric-constraint "add" actions, shared by the context submenu (gate...
static TOOL_ACTION zoneDisplayTriangulated
static TOOL_ACTION genUpdateEdit
static TOOL_ACTION generateReportFile
static TOOL_ACTION rehatchShapes
static TOOL_ACTION updateLocalRatsnest
static TOOL_ACTION spacingDecrease
static TOOL_ACTION updateFootprints
static TOOL_ACTION exportHyperlynx
static TOOL_ACTION importFootprint
static TOOL_ACTION autoplaceSelectedComponents
static TOOL_ACTION layerInner22
static TOOL_ACTION zonePriorityLower
static TOOL_ACTION placeDesignBlock
static TOOL_ACTION alignBottom
static TOOL_ACTION selectUnconnected
Select unconnected footprints from ratsnest of selection.
Definition pcb_actions.h:91
static TOOL_ACTION placeImportedGraphics
static TOOL_ACTION layerInner5
static TOOL_ACTION removeUnusedPads
static TOOL_ACTION zoneDisplayFractured
static TOOL_ACTION addConstraintCollinear
static TOOL_ACTION ratsnestModeCycle
static TOOL_ACTION drawVia
static TOOL_ACTION regenerateAll
static TOOL_ACTION matchPropertiesSettings
static TOOL_ACTION showWizards
Footprint wizard frame actions:
static TOOL_ACTION applyPadSettings
Copy the default pad settings to the selected pad.
static TOOL_ACTION alignLeft
static TOOL_ACTION drawArc
static TOOL_ACTION deleteFull
static TOOL_ACTION exportIDF
static TOOL_ACTION runDRC
static TOOL_ACTION convertToPoly
static TOOL_ACTION zoneDuplicate
Duplicate zone onto another layer.
static TOOL_ACTION unrouteSegment
Removes track segment from the selected item to the next segment.
Definition pcb_actions.h:79
static TOOL_ACTION regenerateAllTuning
Generator tool.
static TOOL_ACTION graphicsOutlines
Display footprint graphics as outlines.
static TOOL_ACTION importNetlist
static TOOL_ACTION generatePlacementRuleAreas
static TOOL_ACTION layerInner20
static TOOL_ACTION addConstraintEqualRadius
static TOOL_ACTION layerInner7
static TOOL_ACTION layerInner27
static TOOL_ACTION compareBoardWithFile
static TOOL_ACTION diffFootprint
static TOOL_ACTION addConstraintTangent
static TOOL_ACTION moveIndividually
move items one-by-one
static TOOL_ACTION changeFootprints
static TOOL_ACTION outsetItems
Create outset items from selection.
static TOOL_ACTION drawSimilarZone
static TOOL_ACTION syncSelection
Sets selection to specified items, zooms to fit, if enabled.
Definition pcb_actions.h:63
static TOOL_ACTION boardSetup
static TOOL_ACTION showEeschema
static TOOL_ACTION excludeStitchVia
Exclude selected stitching vias from their parent via-stitch generator.
static TOOL_ACTION loadFpFromBoard
static TOOL_ACTION showDesignBlockPanel
static TOOL_ACTION decWidth
Decrease width of currently drawn line.
static TOOL_ACTION drawCenterDimension
static TOOL_ACTION makeViaStack
static TOOL_ACTION toggleExcludeFromPosFiles
static TOOL_ACTION drawArcCenter
static TOOL_ACTION zoneUnfillAll
static TOOL_ACTION pasteFootprint
static TOOL_ACTION zoneFillDirty
static TOOL_ACTION cancelCurrentItem
static TOOL_ACTION chamferLines
Chamfer (i.e. adds a straight line) all selected straight lines by a user defined setback.
static TOOL_ACTION appendBoard
static TOOL_ACTION netColorModeCycle
static TOOL_ACTION selectSameSheet
Select all components on the same sheet as the selected footprint.
static TOOL_ACTION layerInner1
static TOOL_ACTION layerInner10
static TOOL_ACTION dogboneCorners
Add "dogbone" corners to selected lines to allow routing with a cutter radius.
static TOOL_ACTION microwaveCreateStub
static TOOL_ACTION selectNet
Select all connections belonging to a single net.
Definition pcb_actions.h:82
static TOOL_ACTION drawArcTangent
static TOOL_ACTION filletTracks
Fillet (i.e. adds an arc tangent to) all selected straight tracks by a user defined radius.
static TOOL_ACTION updateDesignBlockFromBoard
static TOOL_ACTION editFootprintFields
static TOOL_ACTION layerInner15
static TOOL_ACTION simplifyPolygons
Simplify polygon outlines.
static TOOL_ACTION ddImportGraphics
static TOOL_ACTION interactiveOffsetTool
static TOOL_ACTION microwaveCreateLine
static TOOL_ACTION addConstraintFixedLength
static TOOL_ACTION matchProperties
static TOOL_ACTION footprintProperties
static TOOL_ACTION layerInner17
static TOOL_ACTION flipBoard
static TOOL_ACTION layerBottom
static TOOL_ACTION lineMode90
90-degree-only mode (icon lines90)
static TOOL_ACTION closeFootprintTab
static TOOL_ACTION zoneDisplayOutline
static TOOL_ACTION ratsnestLineMode
static TOOL_ACTION showFootprintAssociations
static TOOL_ACTION layerInner19
static TOOL_ACTION layerInner9
static TOOL_ACTION showDrillGroups
static TOOL_ACTION nextFootprintTab
static TOOL_ACTION toggleAutoConstraints
Toggle authoring constraints automatically while drawing.
static TOOL_ACTION fpAutoZoom
static TOOL_ACTION pointEditorChamferCorner
static TOOL_ACTION textOutlines
Display texts as lines.
static TOOL_ACTION resetWizardPrms
static TOOL_ACTION showPadNumbers
static TOOL_ACTION showLibFootprintFieldsTable
static TOOL_ACTION checkFootprint
static TOOL_ACTION filletLines
Fillet (i.e. adds an arc tangent to) all selected straight lines by a user defined radius.
static TOOL_ACTION highlightNetSelection
static TOOL_ACTION microwaveCreateFunctionShape
static TOOL_ACTION placeBarcode
static TOOL_ACTION placePoint
static TOOL_ACTION editLibFpInFpEditor
static TOOL_ACTION zoneMerge
static TOOL_ACTION addConstraintSymmetric
static TOOL_ACTION duplicateFootprint
static TOOL_ACTION closeOutline
static TOOL_ACTION addConstraintFixedPosition
Ground a point, and the cluster holding it.
static TOOL_ACTION placeDrillChart
static TOOL_ACTION changeFootprint
static TOOL_ACTION routerInlineDrag
Activation of the Push and Shove router (inline dragging mode)
static TOOL_ACTION pointEditorRemoveCorner
static TOOL_ACTION positionRelative
static TOOL_ACTION skip
static TOOL_ACTION amplIncrease
static const TOOL_ACTION & DrawArcForMode(ARC_DRAW_MODE aMode)
Tool action that starts the arc tool in the given mode.
static TOOL_ACTION move
move or drag an item
static TOOL_ACTION mirrorV
static TOOL_ACTION cutFootprint
static TOOL_ACTION amplDecrease
static TOOL_ACTION drillSetOrigin
static TOOL_ACTION unlock
static TOOL_ACTION lengthTunerSettings
static TOOL_ACTION addConstraintPointOnLine
static TOOL_ACTION mergePolygons
Merge multiple polygons into a single polygon.
static TOOL_ACTION syncSelectionWithNets
Sets selection to specified items with connected nets, zooms to fit, if enabled.
Definition pcb_actions.h:66
static TOOL_ACTION spacingIncrease
static TOOL_ACTION layerInner30
static TOOL_ACTION boardReannotate
static TOOL_ACTION subtractPolygons
Subtract polygons from other polygons.
static TOOL_ACTION layerTop
static TOOL_ACTION updateDesignBlockFromSelection
static TOOL_ACTION cycleRouterMode
static TOOL_ACTION regenerateSelected
static TOOL_ACTION convertToArc
static TOOL_ACTION layerInner4
static TOOL_ACTION repairFootprint
static TOOL_ACTION changeTrackLayerNext
static TOOL_ACTION flip
Flipping of selected objects.
static TOOL_ACTION exportFootprints
static TOOL_ACTION alignCenterX
static TOOL_ACTION exportFootprintAsSVG
static TOOL_ACTION placeFootprint
static TOOL_ACTION pointEditorAddCorner
static TOOL_ACTION routeSingleTrack
Activation of the Push and Shove router.
static TOOL_ACTION layerInner13
static TOOL_ACTION editVertices
Edit polygon vertices in a table.
static TOOL_ACTION layerInner21
static TOOL_ACTION selectItemInteractively
Selection of reference points/items.
static TOOL_ACTION createArray
Tool for creating an array of objects.
static TOOL_ACTION boardStatistics
static TOOL_ACTION showDiffPhaseSkew
Display of phase skew between differential pair tracks.
static TOOL_ACTION saveFpToBoard
static TOOL_ACTION compareFpLibraryWithFile
static TOOL_ACTION deselectNet
Remove all connections belonging to a single net from the active selection.
Definition pcb_actions.h:85
static TOOL_ACTION editTeardrops
static TOOL_ACTION swapGateNets
static TOOL_ACTION layerNext
static TOOL_ACTION addConstraintCoincident
static TOOL_ACTION copyFootprint
static TOOL_ACTION extendLines
Extend selected lines to meet at a point.
static TOOL_ACTION drawLine
static TOOL_ACTION placeLinkedDesignBlock
static TOOL_ACTION distributeVerticallyGaps
static TOOL_ACTION placeStackup
static TOOL_ACTION localRatsnestTool
static TOOL_ACTION routerRouteSelected
static TOOL_ACTION placeViaStack
static TOOL_ACTION showConstraints
Toggle the constraint diagnostics overlay.
static TOOL_ACTION cleanupGraphics
static TOOL_ACTION rotateCw
Rotation of selected objects.
static TOOL_ACTION rotateCcw
static TOOL_ACTION addConstraintParallel
static TOOL_ACTION drawAlignedDimension
static TOOL_ACTION addConstraintFixedRadius
static TOOL_ACTION addConstraintEqualLength
static TOOL_ACTION clearStitchViaExclusions
Restore every manually-excluded via in the selected via-stitch generators.
static TOOL_ACTION removeConstraints
static TOOL_ACTION layerInner23
static TOOL_ACTION distributeVerticallyCenters
static TOOL_ACTION drawArcStartEndMid
static TOOL_ACTION drawZone
static TOOL_ACTION zonePriorityRaise
static TOOL_ACTION alignCenterY
static TOOL_ACTION rescueAutosave
static TOOL_ACTION importSpecctraSession
static TOOL_ACTION selectOnSchematic
Select symbols/pins on schematic corresponding to selected footprints/pads.
static TOOL_ACTION addConstraintMidpoint
static TOOL_ACTION lock
static TOOL_ACTION trimGraphic
Trim a section from one graphical line or arc.
static TOOL_ACTION addConstraintConcentric
static TOOL_ACTION layerInner28
static const TOOL_EVENT & SnappingModeChangedByKeyEvent()
Hotkey feedback.
static const TOOL_EVENT & LayerPairPresetChangedByKeyEvent()
Build up the properties of a TOOL_ACTION in an incremental manner that is static-construction safe.
TOOL_ACTION_ARGS & FriendlyName(const std::string_view &aName)
Define a group that can be used to group actions (and their events) of similar operations.
Definition tool_action.h:75
Represent a single user action.
Generic, UI-independent tool event.
Definition tool_event.h:167
a few functions useful in geometry calculations.
@ DEG45
45 Degree only
@ DIRECT
Unconstrained point-to-point.
@ DEG90
90 Degree only
KIID niluuid(0)
PCB_LAYER_ID
A quick note on layer IDs:
Definition layer_ids.h:56
@ In22_Cu
Definition layer_ids.h:83
@ In11_Cu
Definition layer_ids.h:72
@ In29_Cu
Definition layer_ids.h:90
@ In30_Cu
Definition layer_ids.h:91
@ In17_Cu
Definition layer_ids.h:78
@ In9_Cu
Definition layer_ids.h:70
@ In19_Cu
Definition layer_ids.h:80
@ In7_Cu
Definition layer_ids.h:68
@ In28_Cu
Definition layer_ids.h:89
@ In26_Cu
Definition layer_ids.h:87
@ B_Cu
Definition layer_ids.h:61
@ In21_Cu
Definition layer_ids.h:82
@ In23_Cu
Definition layer_ids.h:84
@ In15_Cu
Definition layer_ids.h:76
@ In2_Cu
Definition layer_ids.h:63
@ In10_Cu
Definition layer_ids.h:71
@ In4_Cu
Definition layer_ids.h:65
@ In16_Cu
Definition layer_ids.h:77
@ In24_Cu
Definition layer_ids.h:85
@ In1_Cu
Definition layer_ids.h:62
@ In13_Cu
Definition layer_ids.h:74
@ In8_Cu
Definition layer_ids.h:69
@ In14_Cu
Definition layer_ids.h:75
@ In12_Cu
Definition layer_ids.h:73
@ In27_Cu
Definition layer_ids.h:88
@ In6_Cu
Definition layer_ids.h:67
@ In5_Cu
Definition layer_ids.h:66
@ In3_Cu
Definition layer_ids.h:64
@ In20_Cu
Definition layer_ids.h:81
@ F_Cu
Definition layer_ids.h:60
@ In18_Cu
Definition layer_ids.h:79
@ In25_Cu
Definition layer_ids.h:86
@ RM_MarkObstacles
Ignore collisions, mark obstacles.
@ RM_Walkaround
Only walk around.
@ RM_Shove
Only shove.
@ PNS_MODE_ROUTE_SINGLE
Definition pns_router.h:69
@ PNS_MODE_ROUTE_DIFF_PAIR
Definition pns_router.h:70
@ PNS_MODE_TUNE_DIFF_PAIR
Definition pns_router.h:72
@ PNS_MODE_TUNE_SINGLE
Definition pns_router.h:71
@ PNS_MODE_TUNE_DIFF_PAIR_SKEW
Definition pns_router.h:73
@ DM_ANY
Definition pns_router.h:83
#define _(s)
@ SIMILAR
Add a new zone with the same settings as an existing one.
Definition pcb_actions.h:37
@ CUTOUT
Make a cutout to an existing zone.
Definition pcb_actions.h:36
@ GRAPHIC_POLYGON
Definition pcb_actions.h:38
@ ADD
Add a new zone/keepout with fresh settings.
Definition pcb_actions.h:35
@ CONCENTRIC
Two arcs/circles share a center.
@ SYMMETRIC
Two points are mirror images about an axis.
@ FIXED_POSITION
A point is locked at its current location.
@ VERTICAL
A segment (or two points) is vertical.
@ TANGENT
A line and a curve, or two curves, touch tangentially.
@ COINCIDENT
Two points are made to coincide.
@ PERPENDICULAR
Two segments are perpendicular.
@ FIXED_RADIUS
An arc/circle has a driving radius value.
@ HORIZONTAL
A segment (or two points) is horizontal.
@ EQUAL_RADIUS
Two arcs/circles have equal radius.
@ MIDPOINT
A point is the midpoint of a segment.
@ POINT_ON_LINE
A point lies on a segment's supporting line.
@ FIXED_LENGTH
A segment has a driving length value.
@ ANGULAR_DIMENSION
An angle between members (driving or reference).
@ COLLINEAR
Two segments lie on the same line.
@ ARC_ANGLE
An arc has a driving or reference swept-angle value.
@ PARALLEL
Two segments are parallel.
@ EQUAL_LENGTH
Two segments have equal length.
@ TOGGLE
Action is a toggle button on the toolbar.
Definition tool_action.h:60
@ HIDDEN
Action is hidden from the toolbar.
Definition tool_action.h:59
@ AS_GLOBAL
Global action (toolbar/main menu event, global shortcut)
Definition tool_action.h:45
@ AS_CONTEXT
Action belongs to a particular tool (i.e. a part of a pop-up menu)
Definition tool_action.h:43
@ AF_ACTIVATE
Action activates a tool.
Definition tool_action.h:52
@ AF_NOTIFY
Action is a notification (it is by default passed to all tools)
Definition tool_action.h:53
@ AF_NONE
Definition tool_action.h:51
@ TA_ACTION
Tool action (allows one to control tools).
Definition tool_event.h:108
@ MD_ALT
Definition tool_event.h:141
@ MD_CTRL
Definition tool_event.h:140
@ MD_SHIFT
Definition tool_event.h:139
@ TC_MESSAGE
Definition tool_event.h:54
VECTOR2< int32_t > VECTOR2I
Definition vector2d.h:708