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, you may find one here:
20 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21 * or you may search the http://www.gnu.org website for the version 2 license,
22 * or you may write to the Free Software Foundation, Inc.,
23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24 */
25
26#include "pcb_actions.h"
27#include "tool/tool_action.h"
28#include "tool/tool_event.h"
29#include <pcbnew_id.h>
30#include <bitmaps.h>
31#include <layer_ids.h>
34#include <pcb_reference_image.h>
35#include <tool/tool_manager.h>
38#include <router/pns_router.h>
41
42// Actions, being statically-defined, require specialized I18N handling. We continue to
43// use the _() macro so that string harvesting by the I18N framework doesn't have to be
44// specialized, but we don't translate on initialization and instead do it in the getters.
45
46#undef _
47#define _(s) s
48
49// clang-format off
50
51// CONVERT_TOOL
52//
54 .Name( "pcbnew.Convert.convertToPoly" )
55 .Scope( AS_GLOBAL )
56 .FriendlyName( _( "Create Polygon from Selection..." ) )
57 .Tooltip( _( "Creates a graphic polygon from the selection" ) )
59
61 .Name( "pcbnew.Convert.convertToZone" )
62 .Scope( AS_GLOBAL )
63 .FriendlyName( _( "Create Zone from Selection..." ) )
64 .Tooltip( _( "Creates a copper zone from the selection" ) )
65 .Icon( BITMAPS::add_zone ) );
66
68 .Name( "pcbnew.Convert.convertToKeepout" )
69 .Scope( AS_GLOBAL )
70 .FriendlyName( _( "Create Rule Area from Selection..." ) )
71 .Tooltip( _( "Creates a rule area from the selection" ) )
73
75 .Name( "pcbnew.Convert.convertToLines" )
76 .Scope( AS_GLOBAL )
77 .FriendlyName( _( "Create Lines from Selection..." ) )
78 .Tooltip( _( "Creates graphic lines from the selection" ) )
79 .Icon( BITMAPS::add_line ) );
80
82 .Name( "pcbnew.Convert.convertToArc" )
83 .Scope( AS_GLOBAL )
84 .FriendlyName( _( "Create Arc from Selection" ) )
85 .Tooltip( _( "Creates an arc from the selected line segment" ) )
86 .Icon( BITMAPS::add_arc ) );
87
89 .Name( "pcbnew.Convert.convertToTracks" )
90 .Scope( AS_GLOBAL )
91 .FriendlyName( _( "Create Tracks from Selection" ) )
92 .Tooltip( _( "Creates tracks from the selected graphic lines" ) )
93 .Icon( BITMAPS::add_tracks ) );
94
96 .Name( "pcbnew.Convert.outsetItems" )
97 .Scope( AS_GLOBAL )
98 .FriendlyName( _( "Create Outsets from Selection..." ) )
99 .Tooltip( _( "Create outset lines from the selected item" ) )
101
102
103// DRAWING_TOOL
104//
106 .Name( "pcbnew.InteractiveDrawing.line" )
107 .Scope( AS_GLOBAL )
108 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'L' )
109 .LegacyHotkeyName( "Draw Line" )
110 .FriendlyName( _( "Draw Lines" ) )
111 .ToolbarState( TOOLBAR_STATE::TOGGLE )
113 .Flags( AF_ACTIVATE ) );
114
116 .Name( "pcbnew.InteractiveDrawing.graphicPolygon" )
117 .Scope( AS_GLOBAL )
118 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'P' )
119 .LegacyHotkeyName( "Draw Graphic Polygon" )
120 .FriendlyName( _( "Draw Polygons" ) )
121 .ToolbarState( TOOLBAR_STATE::TOGGLE )
123 .Flags( AF_ACTIVATE )
124 .Parameter( ZONE_MODE::GRAPHIC_POLYGON ) );
125
127 .Name( "pcbnew.InteractiveDrawing.rectangle" )
128 .Scope( AS_GLOBAL )
129 .FriendlyName( _( "Draw Rectangles" ) )
130 .ToolbarState( TOOLBAR_STATE::TOGGLE )
132 .Flags( AF_ACTIVATE ) );
133
135 .Name( "pcbnew.InteractiveDrawing.circle" )
136 .Scope( AS_GLOBAL )
137 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'C' )
138 .LegacyHotkeyName( "Draw Circle" )
139 .FriendlyName( _( "Draw Circles" ) )
140 .ToolbarState( TOOLBAR_STATE::TOGGLE )
141 .Icon( BITMAPS::add_circle )
142 .Flags( AF_ACTIVATE ) );
143
145 .Name( "pcbnew.InteractiveDrawing.arc" )
146 .Scope( AS_GLOBAL )
147 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'A' )
148 .LegacyHotkeyName( "Draw Arc" )
149 .FriendlyName( _( "Draw Arcs" ) )
150 .ToolbarState( TOOLBAR_STATE::TOGGLE )
151 .Icon( BITMAPS::add_arc )
152 .Flags( AF_ACTIVATE ) );
153
155 .Name( "pcbnew.InteractiveDrawing.bezier" )
156 .Scope( AS_GLOBAL )
157 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'B' )
158 .FriendlyName( _( "Draw Bezier Curve" ) )
159 .ToolbarState( TOOLBAR_STATE::TOGGLE )
160 .Icon( BITMAPS::add_bezier )
161 .Flags( AF_ACTIVATE ) );
162
164 .Name( "pcbnew.InteractiveDrawing.barcode" )
165 .Scope( AS_GLOBAL )
166 .LegacyHotkeyName( "Add Barcode" )
167 .FriendlyName( _( "Add Barcode" ) )
168 .Tooltip( _( "Add a barcode" ) )
169 .Icon( BITMAPS::add_barcode )
170 .Flags( AF_ACTIVATE ) );
171
172
174 .Name( "pcbnew.InteractiveDrawing.placeCharacteristics" )
175 .Scope( AS_GLOBAL )
176 .LegacyHotkeyName( "Add Board Characteristics" )
177 .FriendlyName( _( "Add Board Characteristics" ) )
178 .Tooltip( _( "Add a board characteristics table on a graphic layer" ) )
179 .ToolbarState( TOOLBAR_STATE::TOGGLE )
180 .Flags( AF_ACTIVATE ) );
181
183 .Name( "pcbnew.InteractiveDrawing.placeStackup" )
184 .Scope( AS_GLOBAL )
185 .LegacyHotkeyName( "Add Stackup Table" )
186 .FriendlyName( _( "Add Stackup Table" ) )
187 .Tooltip( _( "Add a board stackup table on a graphic layer" ) )
188 .ToolbarState( TOOLBAR_STATE::TOGGLE )
189 .Flags( AF_ACTIVATE ) );
190
192 .Name( "pcbnew.InteractiveDrawing.placePoint" )
193 .Scope( AS_GLOBAL )
194 .FriendlyName( _( "Place Point" ) )
195 .Tooltip( _( "Add reference/snap points" ) )
196 .ToolbarState( TOOLBAR_STATE::TOGGLE )
197 .Icon( BITMAPS::add_point )
198 .Flags( AF_ACTIVATE ) );
199
201 .Name( "pcbnew.InteractiveDrawing.placeReferenceImage" )
202 .Scope( AS_GLOBAL )
203 .FriendlyName( _( "Place Reference Images" ) )
204 .Tooltip( _( "Add bitmap images to be used as reference (images will not be included in any output)" ) )
205 .ToolbarState( TOOLBAR_STATE::TOGGLE )
206 .Icon( BITMAPS::image )
207 .Flags( AF_ACTIVATE )
208 .Parameter<PCB_REFERENCE_IMAGE*>( nullptr ) );
209
211 .Name( "pcbnew.InteractiveDrawing.text" )
212 .Scope( AS_GLOBAL )
213 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'T' )
214 .LegacyHotkeyName( "Add Text" )
215 .FriendlyName( _( "Draw Text" ) )
216 .ToolbarState( TOOLBAR_STATE::TOGGLE )
217 .Icon( BITMAPS::text )
218 .Flags( AF_ACTIVATE ) );
219
221 .Name( "pcbnew.InteractiveDrawing.textbox" )
222 .Scope( AS_GLOBAL )
223 .FriendlyName( _( "Draw Text Boxes" ) )
224 .ToolbarState( TOOLBAR_STATE::TOGGLE )
225 .Icon( BITMAPS::add_textbox )
226 .Flags( AF_ACTIVATE ) );
227
229 .Name( "pcbnew.InteractiveDrawing.drawTable" )
230 .Scope( AS_GLOBAL )
231 .FriendlyName( _( "Draw Tables" ) )
232 .ToolbarState( TOOLBAR_STATE::TOGGLE )
233 .Icon( BITMAPS::table )
234 .Flags( AF_ACTIVATE ) );
235
237 .Name( "pcbnew.lengthTuner.SpacingIncrease" )
238 .Scope( AS_GLOBAL )
239 .DefaultHotkey( '1' )
240 .LegacyHotkeyName( "Increase meander spacing by one step." )
241 .FriendlyName( _( "Increase Spacing" ) )
242 .Tooltip( _( "Increase tuning pattern spacing by one step." ) )
244
246 .Name( "pcbnew.lengthTuner.SpacingDecrease" )
247 .Scope( AS_GLOBAL )
248 .DefaultHotkey( '2' )
249 .LegacyHotkeyName( "Decrease meander spacing by one step." )
250 .FriendlyName( _( "Decrease Spacing" ) )
251 .Tooltip( _( "Decrease tuning pattern spacing by one step." ) )
253
255 .Name( "pcbnew.lengthTuner.AmplIncrease" )
256 .Scope( AS_GLOBAL )
257 .DefaultHotkey( '3' )
258 .LegacyHotkeyName( "Increase meander amplitude by one step." )
259 .FriendlyName( _( "Increase Amplitude" ) )
260 .Tooltip( _( "Increase tuning pattern amplitude by one step." ) )
262
264 .Name( "pcbnew.lengthTuner.AmplDecrease" )
265 .Scope( AS_GLOBAL )
266 .DefaultHotkey( '4' )
267 .LegacyHotkeyName( "Decrease meander amplitude by one step." )
268 .FriendlyName( _( "Decrease Amplitude" ) )
269 .Tooltip( _( "Decrease tuning pattern amplitude by one step." ) )
271
272
274 .Name( "pcbnew.InteractiveDrawing.alignedDimension" )
275 .Scope( AS_GLOBAL )
276 .LegacyHotkeyName( "Add Dimension" )
277 .FriendlyName( _( "Draw Aligned Dimensions" ) )
278 .ToolbarState( TOOLBAR_STATE::TOGGLE )
280 .Flags( AF_ACTIVATE ) );
281
283 .Name( "pcbnew.InteractiveDrawing.centerDimension" )
284 .Scope( AS_GLOBAL )
285 .FriendlyName( _( "Draw Center Dimensions" ) )
286 .ToolbarState( TOOLBAR_STATE::TOGGLE )
288 .Flags( AF_ACTIVATE ) );
289
291 .Name( "pcbnew.InteractiveDrawing.radialDimension" )
292 .Scope( AS_GLOBAL )
293 .FriendlyName( _( "Draw Radial Dimensions" ) )
294 .ToolbarState( TOOLBAR_STATE::TOGGLE )
296 .Flags( AF_ACTIVATE ) );
297
299 .Name( "pcbnew.InteractiveDrawing.orthogonalDimension" )
300 .Scope( AS_GLOBAL )
301 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'H' )
302 .FriendlyName( _( "Draw Orthogonal Dimensions" ) )
303 .ToolbarState( TOOLBAR_STATE::TOGGLE )
305 .Flags( AF_ACTIVATE ) );
306
308 .Name( "pcbnew.InteractiveDrawing.leader" )
309 .Scope( AS_GLOBAL )
310 .FriendlyName( _( "Draw Leaders" ) )
311 .ToolbarState( TOOLBAR_STATE::TOGGLE )
312 .Icon( BITMAPS::add_leader )
313 .Flags( AF_ACTIVATE ) );
314
316 .Name( "pcbnew.InteractiveDrawing.zone" )
317 .Scope( AS_GLOBAL )
318#ifdef __WXOSX_MAC__
319 .DefaultHotkey( MD_ALT + 'Z' )
320#else
321 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'Z' )
322#endif
323 .LegacyHotkeyName( "Add Filled Zone" )
324 .FriendlyName( _( "Draw Filled Zones" ) )
325 .ToolbarState( TOOLBAR_STATE::TOGGLE )
326 .Icon( BITMAPS::add_zone )
327 .Flags( AF_ACTIVATE )
328 .Parameter( ZONE_MODE::ADD ) );
329
331 .Name( "pcbnew.InteractiveDrawing.via" )
332 .Scope( AS_GLOBAL )
333 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'X' )
334 .LegacyHotkeyName( "Add Vias" )
335 .FriendlyName( _( "Place Vias" ) )
336 .Tooltip( _( "Place free-standing vias" ) )
337 .ToolbarState( TOOLBAR_STATE::TOGGLE )
338 .Icon( BITMAPS::add_via )
339 .Flags( AF_ACTIVATE ) );
340
342 .Name( "pcbnew.InteractiveDrawing.ruleArea" )
343 .Scope( AS_GLOBAL )
344 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'K' )
345 .LegacyHotkeyName( "Add Keepout Area" )
346 .FriendlyName( _( "Draw Rule Areas" ) )
347 .ToolbarState( TOOLBAR_STATE::TOGGLE )
349 .Flags( AF_ACTIVATE )
350 .Parameter( ZONE_MODE::ADD ) );
351
353 .Name( "pcbnew.InteractiveDrawing.zoneCutout" )
354 .Scope( AS_GLOBAL )
355 .DefaultHotkey( MD_SHIFT + 'C' )
356 .LegacyHotkeyName( "Add a Zone Cutout" )
357 .FriendlyName( _( "Add a Zone Cutout" ) )
358 .Tooltip( _( "Add a cutout to an existing zone or rule area" ) )
359 .ToolbarState( TOOLBAR_STATE::TOGGLE )
361 .Flags( AF_ACTIVATE )
362 .Parameter( ZONE_MODE::CUTOUT ) );
363
365 .Name( "pcbnew.InteractiveDrawing.similarZone" )
366 .Scope( AS_GLOBAL )
367 .DefaultHotkey( MD_CTRL + MD_SHIFT + '.' )
368 .LegacyHotkeyName( "Add a Similar Zone" )
369 .FriendlyName( _( "Add a Similar Zone" ) )
370 .Tooltip( _( "Add a zone with the same settings as an existing zone" ) )
371 .Icon( BITMAPS::add_zone )
372 .Flags( AF_ACTIVATE )
373 .Parameter( ZONE_MODE::SIMILAR ) );
374
376 .Name( "pcbnew.InteractiveDrawing.placeImportedGraphics" )
377 .Scope( AS_GLOBAL )
378 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'F' )
379 .LegacyHotkeyName( "Place DXF" )
380 .FriendlyName( _( "Import Graphics..." ) )
381 .Tooltip( _( "Import 2D drawing file" ) )
383 .Flags( AF_ACTIVATE ) );
384
386 .Name( "pcbnew.InteractiveDrawing.setAnchor" )
387 .Scope( AS_GLOBAL )
388 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'N' )
389 .LegacyHotkeyName( "Place the Footprint Anchor" )
390 .FriendlyName( _( "Place the Footprint Anchor" ) )
391 .Tooltip( _( "Set the anchor point of the footprint" ) )
392 .ToolbarState( TOOLBAR_STATE::TOGGLE )
393 .Icon( BITMAPS::anchor )
394 .Flags( AF_ACTIVATE ) );
395
397 .Name( "pcbnew.InteractiveDrawing.incWidth" )
398 .Scope( AS_CONTEXT )
399 .DefaultHotkey( MD_CTRL + '+' )
400 .LegacyHotkeyName( "Increase Line Width" )
401 .FriendlyName( _( "Increase Line Width" ) ) );
402
404 .Name( "pcbnew.InteractiveDrawing.decWidth" )
405 .Scope( AS_CONTEXT )
406 .DefaultHotkey( MD_CTRL + '-' )
407 .LegacyHotkeyName( "Decrease Line Width" )
408 .FriendlyName( _( "Decrease Line Width" ) ) );
409
411 .Name( "pcbnew.InteractiveDrawing.arcPosture" )
412 .Scope( AS_CONTEXT )
413 .DefaultHotkey( '/' )
414 .LegacyHotkeyName( "Switch Track Posture" )
415 .FriendlyName( _( "Switch Arc Posture" ) ) );
416
418 .Name( "pcbnew.InteractiveDrawing.changeDimensionArrows" )
419 .Scope( AS_CONTEXT )
420 .FriendlyName( "Switch Dimension Arrows" )
421 .Tooltip( "Switch between inward and outward dimension arrows" ) );
422
423
425 .Name( "common.Control.magneticSnapActiveLayer" )
426 .Scope( AS_GLOBAL )
427 .FriendlyName( _( "Snap to Objects on the Active Layer Only" ) )
428 .Tooltip( _( "Enables snapping to objects on the active layer only" ) ) );
429
431 .Name( "common.Control.magneticSnapAllLayers" )
432 .Scope( AS_GLOBAL )
433 .FriendlyName( _( "Snap to Objects on All Layers" ) )
434 .Tooltip( _( "Enables snapping to objects on all visible layers" ) ) );
435
437 .Name( "common.Control.magneticSnapToggle" )
438 .Scope( AS_GLOBAL )
439 .DefaultHotkey( MD_SHIFT + 'S' )
440 .FriendlyName( _( "Toggle Snapping Between Active and All Layers" ) )
441 .Tooltip( _( "Toggles between snapping on all visible layers and only the active area" ) ) );
442
444 .Name( "pcbnew.InteractiveDrawing.deleteLastPoint" )
445 .Scope( AS_CONTEXT )
446 .DefaultHotkey( WXK_BACK )
447 .FriendlyName( _( "Delete Last Point" ) )
448 .Tooltip( _( "Delete the last point added to the current item" ) )
449 .Icon( BITMAPS::undo ) );
450
452 .Name( "pcbnew.InteractiveDrawing.closeOutline" )
453 .Scope( AS_CONTEXT )
454 .FriendlyName( _( "Close Outline" ) )
455 .Tooltip( _( "Close the in progress outline" ) )
456 .Icon( BITMAPS::checked_ok ) );
457
458// DRC
459//
461 .Name( "pcbnew.DRCTool.runDRC" )
462 .Scope( AS_GLOBAL )
463 .FriendlyName( _( "Design Rules Checker" ) )
464 .Tooltip( _( "Show the design rules checker window" ) )
465 .Icon( BITMAPS::erc ) );
466
467// PCB_DESIGN_BLOCK_CONTROL
469 .Name( "pcbnew.InteractiveDrawing.placeDesignBlock" )
470 .Scope( AS_GLOBAL )
471 .DefaultHotkey( MD_SHIFT + 'B' )
472 .FriendlyName( _( "Place Design Block" ) )
473 .Tooltip( _( "Add selected design block to current board" ) )
475 .Flags( AF_ACTIVATE )
476 .Parameter<DESIGN_BLOCK*>( nullptr ) );
477
479 .Name( "pcbnew.InteractiveDrawing.placeLinkedDesignBlock" )
480 .Scope( AS_GLOBAL )
481 .FriendlyName( _( "Place Linked Design Block" ) )
482 .Tooltip( _( "Place design block linked to selected group" ) )
484 .Flags( AF_ACTIVATE )
485 .Parameter<bool*>( nullptr ) );
486
488 .Name( "pcbnew.InteractiveDrawing.applyDesignBlockLayout" )
489 .Scope( AS_GLOBAL )
490 .FriendlyName( _( "Apply Design Block Layout" ) )
491 .Tooltip( _( "Apply linked design block layout to selected group" ) )
493 .Flags( AF_ACTIVATE ) );
494
496 .Name( "pcbnew.InteractiveDrawing.saveToLinkedDesignBlock" )
497 .Scope( AS_GLOBAL )
498 .FriendlyName( _( "Save to Linked Design Block" ) )
499 .Tooltip( _( "Save selected group to linked design block" ) )
501 .Flags( AF_ACTIVATE ) );
502
504 .Name( "pcbnew.PcbDesignBlockControl.showDesignBlockPanel" )
505 .Scope( AS_GLOBAL )
506 .FriendlyName( _( "Design Blocks" ) )
507 .Tooltip( _( "Show/hide design blocks library" ) )
508 .Icon( BITMAPS::search_tree ) );
509
511 .Name( "pcbnew.PcbDesignBlockControl.saveBoardAsDesignBlock" )
512 .Scope( AS_GLOBAL )
513 .FriendlyName( _( "Save Board as Design Block..." ) )
514 .Tooltip( _( "Create a new design block from the current board" ) )
515 .Icon( BITMAPS::new_component ) );
516
518 .Name( "pcbnew.PcbDesignBlockControl.saveSelectionAsDesignBlock" )
519 .Scope( AS_GLOBAL )
520 .FriendlyName( _( "Save Selection as Design Block..." ) )
521 .Tooltip( _( "Create a new design block from the current selection" ) )
522 .Icon( BITMAPS::new_component ) );
523
525 .Name( "pcbnew.PcbDesignBlockControl.updateDesignBlockFromBoard" )
526 .Scope( AS_GLOBAL )
527 .FriendlyName( _( "Update Design Block from Board" ) )
528 .Tooltip( _( "Set design block layout to current board" ) )
529 .Icon( BITMAPS::save ) );
530
532 .Name( "pcbnew.PcbDesignBlockControl.updateDesignBlockFromSelection" )
533 .Scope( AS_GLOBAL )
534 .FriendlyName( _( "Update Design Block from Selection" ) )
535 .Tooltip( _( "Set design block layout to current selection" ) )
536 .Icon( BITMAPS::save ) );
537
539 .Name( "pcbnew.PcbDesignBlockControl.deleteDesignBlock" )
540 .Scope( AS_GLOBAL )
541 .FriendlyName( _( "Delete Design Block" ) )
542 .Tooltip( _( "Remove the selected design block from its library" ) )
543 .Icon( BITMAPS::trash ) );
544
546 .Name( "pcbnew.PcbDesignBlockControl.editDesignBlockProperties" )
547 .Scope( AS_GLOBAL )
548 .FriendlyName( _( "Properties..." ) )
549 .Tooltip( _( "Edit properties of design block" ) )
550 .Icon( BITMAPS::edit ) );
551
552// EDIT_TOOL
553//
555 .Name( "pcbnew.EditorControl.EditFpInFpEditor" )
556 .Scope( AS_GLOBAL )
557 .DefaultHotkey( MD_CTRL + 'E' )
558 .LegacyHotkeyName( "Edit with Footprint Editor" )
559 .FriendlyName( _( "Open in Footprint Editor" ) )
560 .Icon( BITMAPS::module_editor ) );
561
563 .Name( "pcbnew.EditorControl.EditLibFpInFpEditor" )
564 .Scope( AS_GLOBAL )
565 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'E' )
566 .FriendlyName( _( "Edit Library Footprint..." ) )
567 .Icon( BITMAPS::module_editor ) );
568
570 .Name( "pcbnew.EditorControl.findByProperties" )
571 .Scope( AS_GLOBAL )
572 .FriendlyName( _( "Find by Properties..." ) )
573 .Tooltip( _( "Find board items matching property criteria or expressions" ) )
574 .Icon( BITMAPS::find ) );
575
577 .Name( "pcbnew.InteractiveEdit.FindMove" )
578 .Scope( AS_GLOBAL )
579 .DefaultHotkey( 'T' )
580 .LegacyHotkeyName( "Get and Move Footprint" )
581 .FriendlyName( _( "Get and Move Footprint" ) )
582 .Tooltip( _( "Selects a footprint by reference designator and places it under the cursor for moving" ) )
583 .Icon( BITMAPS::move )
584 .Flags( AF_ACTIVATE ) );
585
587 .Name( "pcbnew.InteractiveMove.move" )
588 .Scope( AS_GLOBAL )
589 .DefaultHotkey( 'M' )
590 .LegacyHotkeyName( "Move Item" )
591 .FriendlyName( _( "Move" ) )
592 .Icon( BITMAPS::move )
593 .Flags( AF_ACTIVATE )
595
597 .Name( "pcbnew.InteractiveMove.moveIndividually" )
598 .Scope( AS_GLOBAL )
599 .DefaultHotkey( MD_CTRL + 'M' )
600 .FriendlyName( _( "Move Individually" ) )
601 .Tooltip( _( "Moves the selected items one-by-one" ) )
602 .Icon( BITMAPS::move )
603 .Flags( AF_ACTIVATE )
605
607 .Name( "pcbnew.InteractiveMove.moveWithReference" )
608 .Scope( AS_GLOBAL )
609 .FriendlyName( _( "Move with Reference..." ) )
610 .Tooltip( _( "Moves the selected item(s) with a specified starting point" ) )
611 .Icon( BITMAPS::move )
612 .Flags( AF_ACTIVATE )
614
616 .Name( "pcbnew.InteractiveMove.copyWithReference" )
617 .Scope( AS_GLOBAL )
618 .FriendlyName( _( "Copy with Reference..." ) )
619 .Tooltip( _( "Copy selected item(s) to clipboard with a specified starting point" ) )
620 .Icon( BITMAPS::copy )
621 .Flags( AF_ACTIVATE ) );
622
624 .Name( "pcbnew.InteractiveEdit.duplicateIncrementPads" )
625 .Scope( AS_GLOBAL )
626 .DefaultHotkey( MD_CTRL + MD_SHIFT + 'D' )
627 .LegacyHotkeyName( "Duplicate Item and Increment" )
628 .FriendlyName( _( "Duplicate and Increment" ) )
629 .Tooltip( _( "Duplicates the selected item(s), incrementing pad numbers" ) )
630 .Icon( BITMAPS::duplicate ) );
631
633 .Name( "pcbnew.InteractiveEdit.moveExact" )
634 .Scope( AS_GLOBAL )
635 .DefaultHotkey( MD_SHIFT + 'M' )
636 .LegacyHotkeyName( "Move Item Exactly" )
637 .FriendlyName( _( "Move Exactly..." ) )
638 .Tooltip( _( "Moves the selected item(s) by an exact amount" ) )
639 .Icon( BITMAPS::move_exactly ) );
640
642 .Name( "pcbnew.InteractiveEdit.moveCorner" )
643 .Scope( AS_GLOBAL )
644 .FriendlyName( _( "Move Corner To..." ) )
645 .Tooltip( _( "Move the active corner to an exact location" ) )
646 .Icon( BITMAPS::move_exactly ) );
647
649 .Name( "pcbnew.InteractiveEdit.moveMidpoint" )
650 .Scope( AS_GLOBAL )
651 .FriendlyName( _( "Move Midpoint To..." ) )
652 .Tooltip( _( "Move the active midpoint to an exact location" ) )
653 .Icon( BITMAPS::move_exactly ) );
654
656 .Name( "pcbnew.InteractiveEdit.rotateCw" )
657 .Scope( AS_GLOBAL )
658 .DefaultHotkey( MD_SHIFT + 'R' )
659 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
660 .LegacyHotkeyName( "Rotate Item Clockwise (Modern Toolset only)" )
661 .FriendlyName( _( "Rotate Clockwise" ) )
662 .Icon( BITMAPS::rotate_cw )
663 .Flags( AF_NONE )
664 .Parameter( -1 ) );
665
667 .Name( "pcbnew.InteractiveEdit.rotateCcw" )
668 .Scope( AS_GLOBAL )
669 .DefaultHotkey( 'R' )
670 .LegacyHotkeyName( "Rotate Item" )
671 .FriendlyName( _( "Rotate Counterclockwise" ) )
672 .Icon( BITMAPS::rotate_ccw )
673 .Flags( AF_NONE )
674 .Parameter( 1 ) );
675
677 .Name( "pcbnew.InteractiveEdit.flip" )
678 .Scope( AS_GLOBAL )
679 .DefaultHotkey( 'F' )
680 .LegacyHotkeyName( "Flip Item" )
681 .FriendlyName( _( "Change Side / Flip" ) )
682 .Tooltip( _( "Flips selected item(s) to opposite side of board" ) )
683 .Icon( BITMAPS::swap_layer ) );
684
686 .Name( "pcbnew.InteractiveEdit.mirrorHoriontally" )
687 .Scope( AS_GLOBAL )
688 .FriendlyName( _( "Mirror Horizontally" ) )
689 .Tooltip( _( "Mirrors selected item(s) across the Y axis" ) )
690 .Icon( BITMAPS::mirror_h ) );
691
693 .Name( "pcbnew.InteractiveEdit.mirrorVertically" )
694 .Scope( AS_GLOBAL )
695 .FriendlyName( _( "Mirror Vertically" ) )
696 .Tooltip( _( "Mirrors selected item(s) across the X axis" ) )
697 .Icon( BITMAPS::mirror_v ) );
698
700 .Name( "pcbnew.InteractiveEdit.swap" )
701 .Scope( AS_GLOBAL )
702 .DefaultHotkey( MD_ALT + 'S' )
703 .FriendlyName( _( "Swap" ) )
704 .Tooltip( _( "Swap positions of selected items" ) )
705 .Icon( BITMAPS::swap ) );
706
708 .Name( "pcbnew.InteractiveEdit.swapPadNets" )
709 .Scope( AS_GLOBAL )
710 .FriendlyName( _( "Swap Pad Nets" ) )
711 .Tooltip( _( "Swap nets between two selected pads and their connected copper" ) )
712 .Icon( BITMAPS::swap ) );
713
715 .Name( "pcbnew.InteractiveEdit.swapGateNets" )
716 .Scope( AS_GLOBAL )
717 .FriendlyName( _( "Swap Gate Nets" ) )
718 .Tooltip( _( "Swap nets between gates of a footprint and their connected copper" ) )
719 .Parameter<wxString>( wxString() )
720 .Icon( BITMAPS::swap ) );
721
723 .Name( "pcbnew.InteractiveEdit.packAndMoveFootprints" )
724 .Scope( AS_GLOBAL )
725 .DefaultHotkey( 'P' )
726 .FriendlyName( _( "Pack and Move Footprints" ) )
727 .Tooltip( _( "Sorts selected footprints by reference, packs based on size and initiates movement" ) )
728 .Icon( BITMAPS::pack_footprints ) );
729
731 .Name( "pcbnew.InteractiveEdit.skip" )
732 .Scope( AS_CONTEXT )
733 .DefaultHotkey( WXK_TAB )
734 .FriendlyName( _( "Skip" ) )
735 .Tooltip( _( "Skip to next item" ) )
736 .Icon( BITMAPS::right ) );
737
739 .Name( "pcbnew.InteractiveEdit.changeTrackWidth" )
740 .Scope( AS_GLOBAL )
741 .FriendlyName( _( "Change Track Width" ) )
742 .Tooltip( _( "Updates selected track & via sizes" ) ) );
743
745 .Name( "pcbnew.Control.changeTrackLayerNext" )
746 .Scope( AS_GLOBAL )
747 .DefaultHotkey( MD_CTRL + '+' )
748 .FriendlyName( "Switch Track to Next Layer" )
749 .Tooltip( _( "Switch track to next enabled copper layer" ) ) );
750
752 .Name( "pcbnew.Control.changeTrackLayerPrev" )
753 .Scope( AS_GLOBAL )
754 .DefaultHotkey( MD_CTRL + '-' )
755 .FriendlyName( "Switch Track to Previous Layer" )
756 .Tooltip( _( "Switch track to previous enabled copper layer" ) ) );
757
759 .Name( "pcbnew.InteractiveEdit.filletTracks" )
760 .Scope( AS_GLOBAL )
761 .FriendlyName( _( "Fillet Tracks" ) )
762 .Tooltip( _( "Adds arcs tangent to the selected straight track segments" ) ) );
763
765 .Name( "pcbnew.InteractiveEdit.filletLines" )
766 .Scope( AS_GLOBAL )
767 .FriendlyName( _( "Fillet Lines..." ) )
768 .Tooltip( _( "Adds arcs tangent to the selected lines" ) )
769 .Icon( BITMAPS::fillet ) );
770
772 .Name( "pcbnew.InteractiveEdit.chamferLines" )
773 .Scope( AS_GLOBAL )
774 .FriendlyName( _( "Chamfer Lines..." ) )
775 .Tooltip( _( "Cut away corners between selected lines" ) )
776 .Icon( BITMAPS::chamfer ) );
777
779 .Name( "pcbnew.InteractiveEdit.dogboneCorners" )
780 .Scope( AS_GLOBAL )
781 .FriendlyName( _( "Dogbone Corners..." ) )
782 .Tooltip( _( "Add dogbone corners to selected lines" ) ) );
783
785 .Name( "pcbnew.InteractiveEdit.simplifyPolygons" )
786 .Scope( AS_GLOBAL )
787 .FriendlyName( _( "Simplify Polygons" ) )
788 .Tooltip( _( "Simplify polygon outlines, removing superfluous points" ) ) );
789
791 .Name( "pcbnew.InteractiveEdit.editVertices" )
792 .Scope( AS_GLOBAL )
793 .FriendlyName( _( "Edit Corners..." ) )
794 .Tooltip( _( "Edit polygon corners using a table" ) )
795 .Icon( BITMAPS::edit ) );
796
798 .Name( "pcbnew.InteractiveEdit.healShapes" )
799 .Scope( AS_GLOBAL )
800 .FriendlyName( _( "Heal Shapes" ) )
801 .Tooltip( _( "Connect shapes, possibly extending or cutting them, or adding extra geometry" ) )
802 .Icon( BITMAPS::heal_shapes ) );
803
805 .Name( "pcbnew.InteractiveEdit.extendLines" )
806 .Scope( AS_GLOBAL )
807 .FriendlyName( _( "Extend Lines to Meet" ) )
808 .Tooltip( _( "Extend lines to meet each other" ) ) );
809
811 .Name( "pcbnew.InteractiveEdit.mergePolygons" )
812 .Scope( AS_GLOBAL )
813 .FriendlyName( _( "Merge Polygons" ) )
814 .Tooltip( _( "Merge selected polygons into a single polygon" ) )
815 .Icon( BITMAPS::merge_polygons ) );
816
818 .Name( "pcbnew.InteractiveEdit.subtractPolygons" )
819 .Scope( AS_GLOBAL )
820 .FriendlyName( _( "Subtract Polygons" ) )
821 .Tooltip( _( "Subtract selected polygons from the last one selected" ) )
823
825 .Name( "pcbnew.InteractiveEdit.intersectPolygons" )
826 .Scope( AS_GLOBAL )
827 .FriendlyName( _( "Intersect Polygons" ) )
828 .Tooltip( _( "Create the intersection of the selected polygons" ) )
830
832 .Name( "pcbnew.InteractiveEdit.deleteFull" )
833 .Scope( AS_GLOBAL )
834 .DefaultHotkey( MD_SHIFT + static_cast<int>( WXK_DELETE ) )
835 .LegacyHotkeyName( "Delete Full Track" )
836 .FriendlyName( _( "Delete Full Track" ) )
837 .Tooltip( _( "Deletes selected item(s) and copper connections" ) )
839 .Flags( AF_NONE )
840 .Parameter( PCB_ACTIONS::REMOVE_FLAGS::ALT ) );
841
843 .Name( "pcbnew.InteractiveEdit.properties" )
844 .Scope( AS_GLOBAL )
845 .DefaultHotkey( 'E' )
846 .LegacyHotkeyName( "Edit Item" )
847 .FriendlyName( _( "Properties..." ) )
848 .Icon( BITMAPS::edit ) );
849
850// ARRAY
851//
853 .Name( "pcbnew.Array.createArray" )
854 .Scope( AS_GLOBAL )
855 .DefaultHotkey( MD_CTRL + 'T' )
856 .LegacyHotkeyName( "Create Array" )
857 .FriendlyName( _( "Create Array..." ) )
858 .Icon( BITMAPS::array )
859 .Flags( AF_ACTIVATE ) );
860
861// FOOTPRINT_EDITOR_CONTROL
862//
864 .Name( "pcbnew.ModuleEditor.newFootprint" )
865 .Scope( AS_GLOBAL )
866 .DefaultHotkey( MD_CTRL + 'N' )
867 .LegacyHotkeyName( "New" )
868 .FriendlyName( _( "New Footprint" ) )
869 .Tooltip( _( "Create a new, empty footprint" ) )
870 .Icon( BITMAPS::new_footprint ) );
871
873 .Name( "pcbnew.ModuleEditor.createFootprint" )
874 .Scope( AS_GLOBAL )
875 .FriendlyName( _( "Create Footprint..." ) )
876 .Tooltip( _( "Create a new footprint using the Footprint Wizard" ) )
877 .Icon( BITMAPS::module_wizard ) );
878
880 .Name( "pcbnew.ModuleEditor.editFootprint" )
881 .Scope( AS_GLOBAL )
882 .FriendlyName( _( "Edit Footprint" ) )
883 .Tooltip( _( "Show selected footprint on editor canvas" ) )
884 .Icon( BITMAPS::edit ) );
885
887 .Name( "pcbnew.ModuleEditor.duplicateFootprint" )
888 .Scope( AS_GLOBAL )
889 .FriendlyName( _( "Duplicate Footprint" ) )
890 .Icon( BITMAPS::duplicate ) );
891
893 .Name( "pcbnew.ModuleEditor.renameFootprint" )
894 .Scope( AS_GLOBAL )
895 .FriendlyName( _( "Rename Footprint..." ) )
896 .Icon( BITMAPS::edit ) );
897
899 .Name( "pcbnew.ModuleEditor.deleteFootprint" )
900 .Scope( AS_GLOBAL )
901 .FriendlyName( _( "Delete Footprint from Library" ) )
902 .Icon( BITMAPS::trash ) );
903
905 .Name( "pcbnew.ModuleEditor.cutFootprint" )
906 .Scope( AS_GLOBAL )
907 .FriendlyName( _( "Cut Footprint" ) )
908 .Icon( BITMAPS::cut ) );
909
911 .Name( "pcbnew.ModuleEditor.copyFootprint" )
912 .Scope( AS_GLOBAL )
913 .FriendlyName( _( "Copy Footprint" ) )
914 .Icon( BITMAPS::copy ) );
915
917 .Name( "pcbnew.ModuleEditor.pasteFootprint" )
918 .Scope( AS_GLOBAL )
919 .FriendlyName( _( "Paste Footprint" ) )
920 .Icon( BITMAPS::paste ) );
921
923 .Name( "pcbnew.ModuleEditor.importFootprint" )
924 .Scope( AS_GLOBAL )
925 .FriendlyName( _( "Import Footprint..." ) )
926 .Tooltip( _( "Import footprint from file" ) )
927 .Icon( BITMAPS::import_module ) );
928
930 .Name( "pcbnew.ModuleEditor.exportFootprint" )
931 .Scope( AS_GLOBAL )
932 .FriendlyName( _( "Export Current Footprint..." ) )
933 .Tooltip( _( "Export edited footprint to file" ) )
934 .Icon( BITMAPS::export_module ) );
935
937 .Name( "pcbnew.ModuleEditor.footprintProperties" )
938 .Scope( AS_GLOBAL )
939 .FriendlyName( _( "Footprint Properties..." ) )
940 .Icon( BITMAPS::module_options ) );
941
943 .Name( "pcbnew.ModuleEditor.padTable" )
944 .Scope( AS_GLOBAL )
945 .FriendlyName( _( "Pad Table..." ) )
946 .Tooltip( _( "Displays pad table for bulk editing of pads" ) )
947 .Icon( BITMAPS::pin_table ) );
948
950 .Name( "pcbnew.ModuleEditor.checkFootprint" )
951 .Scope( AS_GLOBAL )
952 .FriendlyName( _( "Footprint Checker" ) )
953 .Tooltip( _( "Show the footprint checker window" ) )
954 .Icon( BITMAPS::erc ) );
955
957 .Name( "pcbnew.ModuleEditor.loadFootprintFromBoard" )
958 .Scope( AS_GLOBAL )
959 .FriendlyName( _( "Load footprint from current PCB" ) )
960 .Tooltip( _( "Load footprint from current board" ) )
962
964 .Name( "pcbnew.ModuleEditor.saveFootprintToBoard" )
965 .Scope( AS_GLOBAL )
966 .FriendlyName( _( "Insert footprint into PCB" ) )
967 .Tooltip( _( "Insert footprint into current board" ) )
969
971 .Name( "pcbnew.Control.previousFootprint" )
972 .Scope( AS_GLOBAL )
973 .FriendlyName( _( "Display previous footprint" ) )
974 .Icon( BITMAPS::lib_previous )
975 .Parameter<FPVIEWER_CONSTANTS>( FPVIEWER_CONSTANTS::PREVIOUS_PART ) );
976
978 .Name( "pcbnew.Control.nextFootprint" )
979 .Scope( AS_GLOBAL )
980 .FriendlyName( _( "Display next footprint" ) )
981 .Icon( BITMAPS::lib_next )
982 .Parameter<FPVIEWER_CONSTANTS>( FPVIEWER_CONSTANTS::NEXT_PART ) );
983
984// GLOBAL_EDIT_TOOL
985//
987 .Name( "pcbnew.GlobalEdit.updateFootprint" )
988 .Scope( AS_GLOBAL )
989 .FriendlyName( _( "Update Footprint..." ) )
990 .Tooltip( _( "Update footprint to include any changes from the library" ) )
991 .Icon( BITMAPS::refresh ) );
992
994 .Name( "pcbnew.GlobalEdit.updateFootprints" )
995 .Scope( AS_GLOBAL )
996 .FriendlyName( _( "Update Footprints from Library..." ) )
997 .Tooltip( _( "Update footprints to include any changes from the library" ) )
998 .Icon( BITMAPS::refresh ) );
999
1001 .Name( "pcbnew.GlobalEdit.removeUnusedPads" )
1002 .Scope( AS_GLOBAL )
1003 .FriendlyName( _( "Remove Unused Pads..." ) )
1004 .Tooltip( _( "Remove or restore the unconnected inner layers on through hole pads and vias" ) )
1005 .Icon( BITMAPS::pads_remove ) );
1006
1008 .Name( "pcbnew.GlobalEdit.changeFootprint" )
1009 .Scope( AS_GLOBAL )
1010 .FriendlyName( _( "Change Footprint..." ) )
1011 .Tooltip( _( "Assign a different footprint from the library" ) )
1012 .Icon( BITMAPS::exchange ) );
1013
1015 .Name( "pcbnew.GlobalEdit.changeFootprints" )
1016 .Scope( AS_GLOBAL )
1017 .FriendlyName( _( "Change Footprints..." ) )
1018 .Tooltip( _( "Assign different footprints from the library" ) )
1019 .Icon( BITMAPS::exchange ) );
1020
1022 .Name( "pcbnew.GlobalEdit.swapLayers" )
1023 .Scope( AS_GLOBAL )
1024 .FriendlyName( _( "Swap Layers..." ) )
1025 .Tooltip( _( "Move tracks or drawings from one layer to another" ) )
1026 .Icon( BITMAPS::swap_layer ) );
1027
1029 .Name( "pcbnew.GlobalEdit.editTracksAndVias" )
1030 .Scope( AS_GLOBAL )
1031 .FriendlyName( _( "Edit Track & Via Properties..." ) )
1032 .Tooltip( _( "Edit track and via properties globally across board" ) )
1033 .Icon( BITMAPS::width_track_via ) );
1034
1036 .Name( "pcbnew.GlobalEdit.editTextAndGraphics" )
1037 .Scope( AS_GLOBAL )
1038 .FriendlyName( _( "Edit Text & Graphics Properties..." ) )
1039 .Tooltip( _( "Edit Text and graphics properties globally across board" ) )
1040 .Icon( BITMAPS::text ) );
1041
1043 .Name( "pcbnew.GlobalEdit.editTeardrops" )
1044 .Scope( AS_GLOBAL )
1045 .FriendlyName( _( "Edit Teardrops..." ) )
1046 .Tooltip( _( "Add, remove or edit teardrops globally across board" ) )
1047 .Icon( BITMAPS::via ) );
1048
1050 .Name( "pcbnew.GlobalEdit.globalDeletions" )
1051 .Scope( AS_GLOBAL )
1052 .FriendlyName( _( "Global Deletions..." ) )
1053 .Tooltip( _( "Delete tracks, footprints and graphic items from board" ) )
1054 .Icon( BITMAPS::general_deletions ) );
1055
1057 .Name( "pcbnew.GlobalEdit.cleanupTracksAndVias" )
1058 .Scope( AS_GLOBAL )
1059 .FriendlyName( _( "Cleanup Tracks & Vias..." ) )
1060 .Tooltip( _( "Cleanup redundant items, shorting items, etc." ) )
1062
1064 .Name( "pcbnew.GlobalEdit.cleanupGraphics" )
1065 .Scope( AS_GLOBAL )
1066 .FriendlyName( _( "Cleanup Graphics..." ) )
1067 .Tooltip( _( "Cleanup redundant items, etc." ) )
1068 .Icon( BITMAPS::cleanup_graphics ) );
1069
1070// MICROWAVE_TOOL
1071//
1073 .Name( "pcbnew.MicrowaveTool.createGap" )
1074 .Scope( AS_GLOBAL )
1075 .FriendlyName( _( "Draw Microwave Gaps" ) )
1076 .Tooltip( _( "Create gap of specified length for microwave applications" ) )
1077 .Icon( BITMAPS::mw_add_gap )
1078 .Flags( AF_ACTIVATE )
1079 .Parameter( MICROWAVE_FOOTPRINT_SHAPE::GAP ) );
1080
1082 .Name( "pcbnew.MicrowaveTool.createStub" )
1083 .Scope( AS_GLOBAL )
1084 .FriendlyName( _( "Draw Microwave Stubs" ) )
1085 .Tooltip( _( "Create stub of specified length for microwave applications" ) )
1086 .Icon( BITMAPS::mw_add_stub )
1087 .Flags( AF_ACTIVATE )
1088 .Parameter( MICROWAVE_FOOTPRINT_SHAPE::STUB ) );
1089
1091 .Name( "pcbnew.MicrowaveTool.createStubArc" )
1092 .Scope( AS_GLOBAL )
1093 .FriendlyName( _( "Draw Microwave Arc Stubs" ) )
1094 .Tooltip( _( "Create stub (arc) of specified size for microwave applications" ) )
1096 .Flags( AF_ACTIVATE )
1098
1100 .Name( "pcbnew.MicrowaveTool.createFunctionShape" )
1101 .Scope( AS_GLOBAL )
1102 .FriendlyName( _( "Draw Microwave Polygonal Shapes" ) )
1103 .Tooltip( _( "Create a microwave polygonal shape from a list of vertices" ) )
1104 .Icon( BITMAPS::mw_add_shape )
1105 .Flags( AF_ACTIVATE )
1107
1109 .Name( "pcbnew.MicrowaveTool.createLine" )
1110 .Scope( AS_GLOBAL )
1111 .FriendlyName( _( "Draw Microwave Lines" ) )
1112 .Tooltip( _( "Create line of specified length for microwave applications" ) )
1113 .Icon( BITMAPS::mw_add_line )
1114 .Flags( AF_ACTIVATE ) );
1115
1116
1117// PAD_TOOL
1118//
1120 .Name( "pcbnew.PadTool.CopyPadSettings" )
1121 .Scope( AS_GLOBAL )
1122 .FriendlyName( _( "Copy Pad Properties to Default" ) )
1123 .Tooltip( _( "Copy current pad's properties" ) )
1124 .Icon( BITMAPS::copy_pad_settings ) );
1125
1127 .Name( "pcbnew.PadTool.ApplyPadSettings" )
1128 .Scope( AS_GLOBAL )
1129 .FriendlyName( _( "Paste Default Pad Properties to Selected" ) )
1130 .Tooltip( _( "Replace the current pad's properties with those copied earlier" ) )
1131 .Icon( BITMAPS::apply_pad_settings ) );
1132
1134 .Name( "pcbnew.PadTool.PushPadSettings" )
1135 .Scope( AS_GLOBAL )
1136 .FriendlyName( _( "Push Pad Properties to Other Pads..." ) )
1137 .Tooltip( _( "Copy the current pad's properties to other pads" ) )
1138 .Icon( BITMAPS::push_pad_settings ) );
1139
1141 .Name( "pcbnew.PadTool.enumeratePads" )
1142 .Scope( AS_GLOBAL )
1143 .FriendlyName( _( "Renumber Pads..." ) )
1144 .Tooltip( _( "Renumber pads by clicking on them in the desired order" ) )
1145 .Icon( BITMAPS::pad_enumerate )
1146 .Flags( AF_ACTIVATE ) );
1147
1149 .Name( "pcbnew.PadTool.placePad" )
1150 .Scope( AS_GLOBAL )
1151 .FriendlyName( _( "Add Pad" ) )
1152 .Tooltip( _( "Add a pad" ) )
1153 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1154 .Icon( BITMAPS::pad )
1155 .Flags( AF_ACTIVATE ) );
1156
1158 .Name( "pcbnew.PadTool.explodePad" )
1159 .Scope( AS_GLOBAL )
1160 .DefaultHotkey( MD_CTRL + 'E' )
1161 .FriendlyName( _( "Edit Pad as Graphic Shapes" ) )
1162 .Tooltip( _( "Ungroups a custom-shaped pad for editing as individual graphic shapes" ) )
1164
1166 .Name( "pcbnew.PadTool.recombinePad" )
1167 .Scope( AS_GLOBAL )
1168 .DefaultHotkey( MD_CTRL + 'E' )
1169 .FriendlyName( _( "Finish Pad Edit" ) )
1170 .Tooltip( _( "Regroups all touching graphic shapes into the edited pad" ) )
1172
1174 .Name( "pcbnew.PadTool.defaultPadProperties" )
1175 .Scope( AS_GLOBAL )
1176 .FriendlyName( _( "Default Pad Properties..." ) )
1177 .Tooltip( _( "Edit the pad properties used when creating new pads" ) )
1178 .Icon( BITMAPS::options_pad ) );
1179
1180
1181// SCRIPTING TOOL
1182//
1183
1185 .Name( "pcbnew.ScriptingTool.pluginsShowFolder" )
1186 .Scope( AS_GLOBAL )
1187#ifdef __WXMAC__
1188 .FriendlyName( _( "Reveal Plugin Folder in Finder" ) )
1189 .Tooltip( _( "Reveals the plugins folder in a Finder window" ) )
1190#else
1191 .FriendlyName( _( "Open Plugin Directory" ) )
1192 .Tooltip( _( "Opens the directory in the default system file manager" ) )
1193#endif
1194 .Icon( BITMAPS::directory_open ) );
1195
1196// BOARD_EDITOR_CONTROL
1197//
1199 .Name( "pcbnew.EditorControl.appendBoard" )
1200 .Scope( AS_GLOBAL )
1201 .FriendlyName( _( "Append Board..." ) )
1202 .Tooltip( _( "Open another board and append its contents to this board" ) )
1203 .Icon( BITMAPS::add_board ) );
1204
1206 .Name( "pcbnew.EditorControl.rescueAutosave" )
1207 .Scope( AS_GLOBAL )
1208 .FriendlyName( _( "Rescue" ) )
1209 .Tooltip( _( "Clear board and get last rescue file automatically saved by PCB editor" ) )
1210 .Icon( BITMAPS::rescue ) );
1211
1213 .Name( "pcbnew.EditorControl.openNonKicadBoard" )
1214 .Scope( AS_GLOBAL )
1215 .FriendlyName( _( "Non-KiCad Board File..." ) )
1216 .Tooltip( _( "Import board file from other applications" ) )
1217 .Icon( BITMAPS::import_brd_file ) );
1218
1220 .Name( "pcbnew.EditorControl.exportFootprints" )
1221 .Scope( AS_GLOBAL )
1222 .FriendlyName( _( "Export Footprints..." ) )
1223 .Tooltip( _( "Add footprints from board to a new or an existing footprint library\n"
1224 "(does not remove other footprints from this library)" ) )
1225 .Icon( BITMAPS::library_archive ) );
1226
1228 .Name( "pcbnew.EditorControl.boardSetup" )
1229 .Scope( AS_GLOBAL )
1230 .FriendlyName( _( "Board Setup..." ) )
1231 .Tooltip( _( "Edit board setup including layers, design rules and various defaults" ) )
1232 .Icon( BITMAPS::options_board ) );
1233
1235 .Name( "pcbnew.EditorControl.importNetlist" )
1236 .Scope( AS_GLOBAL )
1237 .FriendlyName( _( "Import Netlist..." ) )
1238 .Tooltip( _( "Read netlist and update board connectivity" ) )
1239 .Icon( BITMAPS::netlist ) );
1240
1242 .Name( "pcbnew.EditorControl.importSpecctraSession" )
1243 .Scope( AS_GLOBAL )
1244 .FriendlyName( _( "Import Specctra Session..." ) )
1245 .Tooltip( _( "Import routed Specctra session (*.ses) file" ) )
1246 .Icon( BITMAPS::import ) );
1247
1249 .Name( "pcbnew.EditorControl.exportSpecctraDSN" )
1250 .Scope( AS_GLOBAL )
1251 .FriendlyName( _( "Export Specctra DSN..." ) )
1252 .Tooltip( _( "Export Specctra DSN routing info" ) )
1253 .Icon( BITMAPS::export_dsn ) );
1254
1256 .Name( "pcbnew.EditorControl.generateGerbers" )
1257 .Scope( AS_GLOBAL )
1258 .FriendlyName( _( "Gerbers (.gbr)..." ) )
1259 .Tooltip( _( "Generate Gerbers for fabrication" ) )
1260 .Icon( BITMAPS::post_gerber ) );
1261
1263 .Name( "pcbnew.EditorControl.generateDrillFiles" )
1264 .Scope( AS_GLOBAL )
1265 .FriendlyName( _( "Drill Files (.drl)..." ) )
1266 .Tooltip( _( "Generate Excellon drill file(s)" ) )
1267 .Icon( BITMAPS::post_drill ) );
1268
1270 .Name( "pcbnew.EditorControl.generatePosFile" )
1271 .Scope( AS_GLOBAL )
1272 .FriendlyName( _( "Component Placement (.pos, .gbr)..." ) )
1273 .Tooltip( _( "Generate component placement file(s) for pick and place" ) )
1274 .Icon( BITMAPS::post_compo ) );
1275
1277 .Name( "pcbnew.EditorControl.generateReportFile" )
1278 .Scope( AS_GLOBAL )
1279 .FriendlyName( _( "Footprint Report (.rpt)..." ) )
1280 .Tooltip( _( "Create report of all footprints from current board" ) )
1281 .Icon( BITMAPS::post_rpt ) );
1282
1284 .Name( "pcbnew.EditorControl.generateIPC2581File" )
1285 .Scope( AS_GLOBAL )
1286 .FriendlyName( _( "IPC-2581 File (.xml)..." ) )
1287 .Tooltip( _( "Generate an IPC-2581 file" ) )
1288 .Icon( BITMAPS::post_xml ) );
1289
1291 .Name( "pcbnew.EditorControl.generateODBPPFile" )
1292 .Scope( AS_GLOBAL )
1293 .FriendlyName( _( "ODB++ Output File..." ) )
1294 .Tooltip( _( "Generate ODB++ output files" ) )
1295 .Icon( BITMAPS::post_odb ) );
1296
1298 .Name( "pcbnew.EditorControl.generateD356File" )
1299 .Scope( AS_GLOBAL )
1300 .FriendlyName( _( "IPC-D-356 Netlist File..." ) )
1301 .Tooltip( _( "Generate IPC-D-356 netlist file" ) )
1302 .Icon( BITMAPS::post_d356 ) );
1303
1305 .Name( "pcbnew.EditorControl.generateBOM" )
1306 .Scope( AS_GLOBAL )
1307 .FriendlyName( _( "Bill of Materials..." ) )
1308 .Tooltip( _( "Create bill of materials from board" ) )
1309 .Icon( BITMAPS::post_bom ) );
1310
1312 .Name( "pcbnew.EditorControl.exportGenCAD" )
1313 .Scope( AS_GLOBAL )
1314 .FriendlyName( _( "Export GenCAD..." ) )
1315 .Tooltip( _( "Export GenCAD board representation" ) )
1316 .Icon( BITMAPS::post_gencad ) );
1317
1319 .Name( "pcbnew.EditorControl.exportVRML" )
1320 .Scope( AS_GLOBAL )
1321 .FriendlyName( _( "Export VRML..." ) )
1322 .Tooltip( _( "Export VRML 3D board representation" ) )
1323 .Icon( BITMAPS::export3d ) );
1324
1326 .Name( "pcbnew.EditorControl.exportIDF" )
1327 .Scope( AS_GLOBAL )
1328 .FriendlyName( _( "Export IDFv3..." ) )
1329 .Tooltip( _( "Export IDF 3D board representation" ) )
1330 .Icon( BITMAPS::export_idf ) );
1331
1333 .Name( "pcbnew.EditorControl.exportSTEP" )
1334 .Scope( AS_GLOBAL )
1335 .FriendlyName( _( "Export STEP/GLB/BREP/XAO/PLY/STL..." ) )
1336 .Tooltip( _( "Export STEP, GLB, BREP, XAO, PLY or STL 3D board representation" ) )
1337 .Icon( BITMAPS::export_step ) );
1338
1340 .Name( "pcbnew.EditorControl.exportFootprintAssociations" )
1341 .Scope( AS_GLOBAL )
1342 .FriendlyName( _( "Export Footprint Association (.cmp) File..." ) )
1343 .Tooltip( _( "Export footprint association file (*.cmp) for schematic back annotation" ) )
1344 .Icon( BITMAPS::export_cmp ) );
1345
1347 .Name( "pcbnew.EditorControl.exportHyperlynx" )
1348 .Scope( AS_GLOBAL )
1349 .FriendlyName( _( "Hyperlynx..." ) )
1350 .Icon( BITMAPS::export_step ) );
1351
1353 .Name( "pcbnew.EditorControl.collect3DModels" )
1354 .Scope( AS_GLOBAL )
1355 .FriendlyName( _( "Collect And Embed 3D Models" ) )
1356 .Tooltip( _( "Collect footprint 3D models and embed them into the board" ) )
1357 .Icon( BITMAPS::import3d ) );
1358
1359
1360// Track & via size control
1362 .Name( "pcbnew.EditorControl.trackWidthInc" )
1363 .Scope( AS_GLOBAL )
1364 .DefaultHotkey( 'W' )
1365 .LegacyHotkeyName( "Switch Track Width To Next" )
1366 .FriendlyName( _( "Switch Track Width to Next" ) )
1367 .Tooltip( _( "Change track width to next pre-defined size" ) ) );
1368
1370 .Name( "pcbnew.EditorControl.trackWidthDec" )
1371 .Scope( AS_GLOBAL )
1372 .DefaultHotkey( MD_SHIFT + 'W' )
1373 .LegacyHotkeyName( "Switch Track Width To Previous" )
1374 .FriendlyName( _( "Switch Track Width to Previous" ) )
1375 .Tooltip( _( "Change track width to previous pre-defined size" ) ) );
1376
1378 .Name( "pcbnew.EditorControl.viaSizeInc" )
1379 .Scope( AS_GLOBAL )
1380 .DefaultHotkey( '\'' )
1381 .LegacyHotkeyName( "Increase Via Size" )
1382 .FriendlyName( _( "Increase Via Size" ) )
1383 .Tooltip( _( "Change via size to next pre-defined size" ) ) );
1384
1386 .Name( "pcbnew.EditorControl.viaSizeDec" )
1387 .Scope( AS_GLOBAL )
1388 .DefaultHotkey( '\\' )
1389 .LegacyHotkeyName( "Decrease Via Size" )
1390 .FriendlyName( _( "Decrease Via Size" ) )
1391 .Tooltip( _( "Change via size to previous pre-defined size" ) ) );
1392
1394 .Name( "pcbnew.EditorControl.autoTrackWidth" )
1395 .Scope( AS_GLOBAL )
1396 .FriendlyName( _( "Automatically select track width" ) )
1397 .Tooltip( _( "When routing from an existing track use its width instead "
1398 "of the current width setting" ) )
1400 .ToolbarState( TOOLBAR_STATE::TOGGLE ) );
1401
1403 .Name( "pcbnew.EditorControl.trackViaSizeChanged" )
1404 .Scope( AS_GLOBAL )
1405 .Flags( AF_NOTIFY ) );
1406
1408 .Name( "pcbnew.EditorControl.assignNetclass" )
1409 .Scope( AS_GLOBAL )
1410 .FriendlyName( _( "Assign Netclass..." ) )
1411 .Tooltip( _( "Assign a netclass to nets matching a pattern" ) )
1412 .Icon( BITMAPS::netlist ) );
1413
1415 .Name( "pcbnew.EditorControl.zoneMerge" )
1416 .Scope( AS_GLOBAL )
1417 .FriendlyName( _( "Merge Zones" ) ) );
1418
1420 .Name( "pcbnew.EditorControl.zoneDuplicate" )
1421 .Scope( AS_GLOBAL )
1422 .FriendlyName( _( "Duplicate Zone onto Layer..." ) )
1423 .Icon( BITMAPS::zone_duplicate ) );
1424
1426 .Name( "pcbnew.EditorControl.zonePriorityMoveToTop" )
1427 .Scope( AS_GLOBAL )
1428 .FriendlyName( _( "Move to Top" ) )
1429 .Icon( BITMAPS::go_up ) );
1430
1432 .Name( "pcbnew.EditorControl.zonePriorityRaise" )
1433 .Scope( AS_GLOBAL )
1434 .FriendlyName( _( "Raise" ) )
1435 .Icon( BITMAPS::small_up ) );
1436
1438 .Name( "pcbnew.EditorControl.zonePriorityLower" )
1439 .Scope( AS_GLOBAL )
1440 .FriendlyName( _( "Lower" ) )
1441 .Icon( BITMAPS::small_down ) );
1442
1444 .Name( "pcbnew.EditorControl.zonePriorityMoveToBottom" )
1445 .Scope( AS_GLOBAL )
1446 .FriendlyName( _( "Move to Bottom" ) )
1447 .Icon( BITMAPS::go_down ) );
1448
1450 .Name( "pcbnew.EditorControl.placeFootprint" )
1451 .Scope( AS_GLOBAL )
1452 .DefaultHotkey( 'A' )
1453 .LegacyHotkeyName( "Add Footprint" )
1454 .FriendlyName( _( "Place Footprints" ) )
1455 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1456 .Icon( BITMAPS::module )
1457 .Flags( AF_ACTIVATE )
1458 .Parameter<FOOTPRINT*>( nullptr ) );
1459
1461 .Name( "pcbnew.EditorControl.drillOrigin" )
1462 .Scope( AS_GLOBAL )
1463 .FriendlyName( _( "Drill/Place File Origin" ) )
1464 .Tooltip( _( "Place origin point for drill files and component placement files" ) )
1465 .Icon( BITMAPS::set_origin )
1466 .Flags( AF_ACTIVATE ) );
1467
1469 .Name( "pcbnew.EditorControl.drillResetOrigin" )
1470 .Scope( AS_GLOBAL )
1471 .LegacyHotkeyName( "Reset Drill Origin" )
1472 .FriendlyName( _( "Reset Drill Origin" ) ) );
1473
1475 .Name( "pcbnew.EditorControl.drillSetOrigin" )
1476 .Scope( AS_CONTEXT )
1477 .Parameter( VECTOR2I() ) );
1478
1480 .Name( "pcbnew.EditorControl.toggleLock" )
1481 .Scope( AS_GLOBAL )
1482 .DefaultHotkey( 'L' )
1483 .LegacyHotkeyName( "Lock/Unlock Footprint" )
1484 .FriendlyName( _( "Toggle Lock" ) )
1485 .Tooltip( _( "Lock or unlock selected items" ) )
1486 .Icon( BITMAPS::lock_unlock ) );
1487
1488// Line mode grouping and events (for PCB and Footprint editors)
1490 .Name( "pcbnew.EditorControl.lineModeFree" )
1491 .Scope( AS_GLOBAL )
1492 .FriendlyName( _( "Line Modes" ) )
1493 .Tooltip( _( "Draw and drag at any angle" ) )
1494 .Icon( BITMAPS::lines_any )
1495 .Flags( AF_NONE )
1496 .Parameter( LEADER_MODE::DIRECT ) );
1497
1499 .Name( "pcbnew.EditorControl.lineModeOrthonal" )
1500 .Scope( AS_GLOBAL )
1501 .FriendlyName( _( "Line Modes" ) )
1502 .Tooltip( _( "Constrain drawing and dragging to horizontal or vertical motions" ) )
1503 .Icon( BITMAPS::lines90 )
1504 .Flags( AF_NONE )
1505 .Parameter( LEADER_MODE::DEG90 ) );
1506
1508 .Name( "pcbnew.EditorControl.lineMode45" )
1509 .Scope( AS_GLOBAL )
1510 .FriendlyName( _( "Line Modes" ) )
1511 .Tooltip( _( "Constrain drawing and dragging to horizontal, vertical, or 45-degree angle motions" ) )
1512 .Icon( BITMAPS::hv45mode )
1513 .Flags( AF_NONE )
1514 .Parameter( LEADER_MODE::DEG45 ) );
1515
1517 .Name( "pcbnew.EditorControl.lineModeNext" )
1518 .DefaultHotkey( MD_SHIFT + ' ' )
1519 .Scope( AS_GLOBAL )
1520 .FriendlyName( _( "Line Modes" ) )
1521 .Tooltip( _( "Switch to next angle snapping mode" ) ) );
1522
1524 .Name( "pcbnew.EditorControl.angleSnapModeChanged" )
1525 .Scope( AS_GLOBAL )
1526 .Flags( AF_NOTIFY ) );
1527
1529 .Name( "pcbnew.EditorControl.lock" )
1530 .Scope( AS_GLOBAL )
1531 .FriendlyName( _( "Lock" ) )
1532 .Tooltip( _( "Prevent items from being moved and/or resized on the canvas" ) )
1533 .Icon( BITMAPS::locked ) );
1534
1536 .Name( "pcbnew.EditorControl.unlock" )
1537 .Scope( AS_GLOBAL )
1538 .FriendlyName( _( "Unlock" ) )
1539 .Tooltip( _( "Allow items to be moved and/or resized on the canvas" ) )
1540 .Icon( BITMAPS::unlocked ) );
1541
1543 .Name( "pcbnew.EditorControl.highlightNet" )
1544 .Scope( AS_GLOBAL )
1545 .DefaultHotkey( '`' )
1546 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
1547 .LegacyHotkeyName( "Toggle Highlight of Selected Net (Modern Toolset only)" )
1548 .FriendlyName( _( "Highlight Net" ) )
1549 .Tooltip( _( "Highlight net under cursor" ) )
1550 .Icon( BITMAPS::net_highlight )
1551 .Parameter<int>( 0 ) );
1552
1554 .Name( "pcbnew.EditorControl.toggleLastNetHighlight" )
1555 .Scope( AS_GLOBAL )
1556 .FriendlyName( _( "Toggle Last Net Highlight" ) )
1557 .Tooltip( _( "Toggle between last two highlighted nets" ) )
1558 .Parameter<int>( 0 ) );
1559
1561 .Name( "pcbnew.EditorControl.clearHighlight" )
1562 .Scope( AS_GLOBAL )
1563 .DefaultHotkey( '~' )
1564 .FriendlyName( _( "Clear Net Highlighting" ) ) );
1565
1567 .Name( "pcbnew.EditorControl.toggleNetHighlight" )
1568 .Scope( AS_GLOBAL )
1569 .DefaultHotkey( MD_ALT + '`' )
1570 .FriendlyName( _( "Toggle Net Highlight" ) )
1571 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1572 .Icon( BITMAPS::net_highlight )
1573 .Parameter<int>( 0 ) );
1574
1576 .Name( "pcbnew.EditorControl.highlightNetSelection" )
1577 .Scope( AS_GLOBAL )
1578 .FriendlyName( _( "Highlight Net" ) )
1579 .Tooltip( _( "Highlight all copper items on the selected net(s)" ) )
1580 .Icon( BITMAPS::net_highlight )
1581 .Parameter<int>( 0 ) );
1582
1584 .Name( "pcbnew.EditorControl.highlightItem" )
1585 .Scope( AS_GLOBAL ) );
1586
1588 .Name( "pcbnew.EditorControl.hideNet" )
1589 .Scope( AS_GLOBAL )
1590 .FriendlyName( _( "Hide Net in Ratsnest" ) )
1591 .Tooltip( _( "Hide the selected net in the ratsnest of unconnected net lines/arcs" ) )
1592 .Icon( BITMAPS::hide_ratsnest )
1593 .Parameter<int>( 0 ) ); // Default to hiding selected net
1594
1596 .Name( "pcbnew.EditorControl.showNet" )
1597 .Scope( AS_GLOBAL )
1598 .FriendlyName( _( "Show Net in Ratsnest" ) )
1599 .Tooltip( _( "Show the selected net in the ratsnest of unconnected net lines/arcs" ) )
1600 .Icon( BITMAPS::show_ratsnest )
1601 .Parameter<int>( 0 ) ); // Default to showing selected net
1602
1604 .Name( "pcbnew.EditorControl.showEeschema" )
1605 .Scope( AS_GLOBAL )
1606 .FriendlyName( _( "Switch to Schematic Editor" ) )
1607 .Tooltip( _( "Open schematic in schematic editor" ) )
1608 .Icon( BITMAPS::icon_eeschema_24 ) );
1609
1610// DESIGN RULE EDITOR
1612 .Name( "pcbnew.DRETool.drcRuleEditor" )
1613 .Scope( AS_GLOBAL )
1614 .FriendlyName( _( "DRC Rule Editor" ) )
1615 .Tooltip( _( "Open DRC rule editor window" ) ) );
1616
1617// PCB_CONTROL
1618//
1619
1621 .Name( "pcbnew.Control.localRatsnestTool" )
1622 .Scope( AS_GLOBAL )
1623 .FriendlyName( _( "Local Ratsnest" ) )
1624 .Tooltip( _( "Toggle ratsnest display of selected item(s)" ) )
1625 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1626 .Icon( BITMAPS::tool_ratsnest )
1627 .Flags( AF_ACTIVATE ) );
1628
1630 .Name( "pcbnew.Control.hideDynamicRatsnest" )
1631 .Scope( AS_GLOBAL ) );
1632
1634 .Name( "pcbnew.Control.updateLocalRatsnest" )
1635 .Scope( AS_GLOBAL )
1636 .Parameter( VECTOR2I() ) );
1637
1639 .Name( "pcbnew.Control.showLayersManager" )
1640 .Scope( AS_GLOBAL )
1641 .FriendlyName( _( "Appearance" ) )
1642 .Tooltip( _( "Show/hide the appearance manager" ) )
1643 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1644 .Icon( BITMAPS::layers_manager ) );
1645
1647 .Name( "pcbnew.Control.showNetInspector" )
1648 .Scope( AS_GLOBAL )
1649 .FriendlyName( _( "Net Inspector" ) )
1650 .Tooltip( _( "Show/hide the net inspector" ) )
1651 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1652 .Icon( BITMAPS::tools ) );
1653
1655 .Name( "pcbnew.Control.zonesManager" )
1656 .Scope( AS_GLOBAL )
1657 .FriendlyName( _( "Zone Manager..." ) )
1658 .Tooltip( _( "Show the zone manager dialog" ) )
1659 .Icon( BITMAPS::show_zone ) );
1660
1662 .Name( "pcbnew.Control.flipBoard" )
1663 .Scope( AS_GLOBAL )
1664 .FriendlyName( _( "Flip Board View" ) )
1665 .Tooltip( _( "View board from the opposite side" ) )
1666 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1667 .Icon( BITMAPS::flip_board ) );
1668
1670 .Name( "pcbnew.Control.rehatchShapes" )
1671 .Scope( AS_CONTEXT ) );
1672
1673
1674// Display modes
1676 .Name( "pcbnew.Control.showRatsnest" )
1677 .Scope( AS_GLOBAL )
1678 .FriendlyName( _( "Show Ratsnest" ) )
1679 .Tooltip( _( "Show lines/arcs representing missing connections on the board" ) )
1680 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1681 .Icon( BITMAPS::general_ratsnest ) );
1682
1684 .Name( "pcbnew.Control.ratsnestLineMode" )
1685 .Scope( AS_GLOBAL )
1686 .FriendlyName( _( "Curved Ratsnest Lines" ) )
1687 .Tooltip( _( "Show ratsnest with curved lines" ) )
1688 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1689 .Icon( BITMAPS::curved_ratsnest ) );
1690
1692 .Name( "pcbnew.Control.ratsnestModeCycle" )
1693 .Scope( AS_GLOBAL )
1694 .FriendlyName( _( "Ratsnest Mode (3-state)" ) )
1695 .Tooltip( _( "Cycle between showing ratsnests for all layers, just visible layers, and none" ) ) );
1696
1698 .Name( "pcbnew.Control.netColorMode" )
1699 .Scope( AS_GLOBAL )
1700 .FriendlyName( _( "Net Color Mode (3-state)" ) )
1701 .Tooltip( _( "Cycle between using net and netclass colors for all nets, just ratsnests, and none" ) ) );
1702
1704 .Name( "pcbnew.Control.trackDisplayMode" )
1705 .Scope( AS_GLOBAL )
1706 .DefaultHotkey( 'K' )
1707 .LegacyHotkeyName( "Track Display Mode" )
1708 .FriendlyName( _( "Sketch Tracks" ) )
1709 .Tooltip( _( "Show tracks in outline mode" ) )
1710 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1711 .Icon( BITMAPS::showtrack ) );
1712
1714 .Name( "pcbnew.Control.padDisplayMode" )
1715 .Scope( AS_GLOBAL )
1716 .FriendlyName( _( "Sketch Pads" ) )
1717 .Tooltip( _( "Show pads in outline mode" ) )
1718 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1719 .Icon( BITMAPS::pad_sketch ) );
1720
1722 .Name( "pcbnew.Control.viaDisplayMode" )
1723 .Scope( AS_GLOBAL )
1724 .FriendlyName( _( "Sketch Vias" ) )
1725 .Tooltip( _( "Show vias in outline mode" ) )
1726 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1727 .Icon( BITMAPS::via_sketch ) );
1728
1730 .Name( "pcbnew.Control.graphicOutlines" )
1731 .Scope( AS_GLOBAL )
1732 .FriendlyName( _( "Sketch Graphic Items" ) )
1733 .Tooltip( _( "Show graphic items in outline mode" ) )
1734 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1735 .Icon( BITMAPS::show_mod_edge ) );
1736
1738 .Name( "pcbnew.Control.textOutlines" )
1739 .Scope( AS_GLOBAL )
1740 .FriendlyName( _( "Sketch Text Items" ) )
1741 .Tooltip( _( "Show footprint texts in line mode" ) )
1742 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1743 .Icon( BITMAPS::text_sketch ) );
1744
1746 .Name( "pcbnew.Control.showPadNumbers" )
1747 .Scope( AS_GLOBAL )
1748 .FriendlyName( _( "Show Pad Numbers" ) )
1749 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1750 .Icon( BITMAPS::pad_number ) );
1751
1753 .Name( "pcbnew.Control.zoneDisplayEnable" )
1754 .Scope( AS_GLOBAL )
1755 .FriendlyName( _( "Draw Zone Fills" ) )
1756 .Tooltip( _( "Show filled areas of zones" ) )
1757 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1758 .Icon( BITMAPS::show_zone ) );
1759
1761 .Name( "pcbnew.Control.zoneDisplayDisable" )
1762 .Scope( AS_GLOBAL )
1763 .FriendlyName( _( "Draw Zone Outlines" ) )
1764 .Tooltip( _( "Show only zone boundaries" ) )
1765 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1766 .Icon( BITMAPS::show_zone_disable ) );
1767
1769 .Name( "pcbnew.Control.zoneDisplayOutlines" )
1770 .Scope( AS_GLOBAL )
1771 .FriendlyName( _( "Draw Zone Fill Fracture Borders" ) )
1772 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1774
1776 .Name( "pcbnew.Control.zoneDisplayTesselation" )
1777 .Scope( AS_GLOBAL )
1778 .FriendlyName( _( "Draw Zone Fill Triangulation" ) )
1779 .ToolbarState( TOOLBAR_STATE::TOGGLE )
1781
1783 .Name( "pcbnew.Control.zoneDisplayToggle" )
1784 .Scope( AS_GLOBAL )
1785 .FriendlyName( _( "Toggle Zone Display" ) )
1786 .Tooltip( _( "Cycle between showing zone fills and just their outlines" ) )
1787 .Icon( BITMAPS::show_zone ) );
1788
1789
1791 .Name( "pcbnew.Control.fpAutoZoom" )
1792 .Scope( AS_GLOBAL )
1793 .FriendlyName( _( "Automatic zoom" ) )
1794 .Tooltip( _( "Automatic Zoom on footprint change" ) )
1796 .ToolbarState( TOOLBAR_STATE::TOGGLE ) );
1797
1798// Layer control
1799
1800// Translate aLayer to the action that switches to it
1802{
1803 switch( aLayer )
1804 {
1805 case F_Cu: return &PCB_ACTIONS::layerTop;
1806 case In1_Cu: return &PCB_ACTIONS::layerInner1;
1807 case In2_Cu: return &PCB_ACTIONS::layerInner2;
1808 case In3_Cu: return &PCB_ACTIONS::layerInner3;
1809 case In4_Cu: return &PCB_ACTIONS::layerInner4;
1810 case In5_Cu: return &PCB_ACTIONS::layerInner5;
1811 case In6_Cu: return &PCB_ACTIONS::layerInner6;
1812 case In7_Cu: return &PCB_ACTIONS::layerInner7;
1813 case In8_Cu: return &PCB_ACTIONS::layerInner8;
1814 case In9_Cu: return &PCB_ACTIONS::layerInner9;
1815 case In10_Cu: return &PCB_ACTIONS::layerInner10;
1816 case In11_Cu: return &PCB_ACTIONS::layerInner11;
1817 case In12_Cu: return &PCB_ACTIONS::layerInner12;
1818 case In13_Cu: return &PCB_ACTIONS::layerInner13;
1819 case In14_Cu: return &PCB_ACTIONS::layerInner14;
1820 case In15_Cu: return &PCB_ACTIONS::layerInner15;
1821 case In16_Cu: return &PCB_ACTIONS::layerInner16;
1822 case In17_Cu: return &PCB_ACTIONS::layerInner17;
1823 case In18_Cu: return &PCB_ACTIONS::layerInner18;
1824 case In19_Cu: return &PCB_ACTIONS::layerInner19;
1825 case In20_Cu: return &PCB_ACTIONS::layerInner20;
1826 case In21_Cu: return &PCB_ACTIONS::layerInner21;
1827 case In22_Cu: return &PCB_ACTIONS::layerInner22;
1828 case In23_Cu: return &PCB_ACTIONS::layerInner23;
1829 case In24_Cu: return &PCB_ACTIONS::layerInner24;
1830 case In25_Cu: return &PCB_ACTIONS::layerInner25;
1831 case In26_Cu: return &PCB_ACTIONS::layerInner26;
1832 case In27_Cu: return &PCB_ACTIONS::layerInner27;
1833 case In28_Cu: return &PCB_ACTIONS::layerInner28;
1834 case In29_Cu: return &PCB_ACTIONS::layerInner29;
1835 case In30_Cu: return &PCB_ACTIONS::layerInner30;
1836 case B_Cu: return &PCB_ACTIONS::layerBottom;
1837 default: return nullptr;
1838 }
1839}
1840
1841// Implemented as an accessor + static variable to ensure it is initialized when used
1842// in static action constructors
1844{
1845 static TOOL_ACTION_GROUP s_toolActionGroup( "pcbnew.Control.DirectLayerActions" );
1846 return s_toolActionGroup;
1847}
1848
1850 .Name( "pcbnew.Control.layerTop" )
1851 .Scope( AS_GLOBAL )
1853 .DefaultHotkey( WXK_PAGEUP )
1854 .LegacyHotkeyName( "Switch to Component (F.Cu) layer" )
1855 .FriendlyName( _( "Switch to Component (F.Cu) layer" ) )
1856 .Flags( AF_NOTIFY )
1857 .Parameter( F_Cu ) );
1858
1860 .Name( "pcbnew.Control.layerInner1" )
1861 .Scope( AS_GLOBAL )
1863 .LegacyHotkeyName( "Switch to Inner layer 1" )
1864 .FriendlyName( _( "Switch to Inner Layer 1" ) )
1865 .Flags( AF_NOTIFY )
1866 .Parameter( In1_Cu ) );
1867
1869 .Name( "pcbnew.Control.layerInner2" )
1870 .Scope( AS_GLOBAL )
1872 .LegacyHotkeyName( "Switch to Inner layer 2" )
1873 .FriendlyName( _( "Switch to Inner Layer 2" ) )
1874 .Flags( AF_NOTIFY )
1875 .Parameter( In2_Cu ) );
1876
1878 .Name( "pcbnew.Control.layerInner3" )
1879 .Scope( AS_GLOBAL )
1881 .LegacyHotkeyName( "Switch to Inner layer 3" )
1882 .FriendlyName( _( "Switch to Inner Layer 3" ) )
1883 .Flags( AF_NOTIFY )
1884 .Parameter( In3_Cu ) );
1885
1887 .Name( "pcbnew.Control.layerInner4" )
1888 .Scope( AS_GLOBAL )
1890 .LegacyHotkeyName( "Switch to Inner layer 4" )
1891 .FriendlyName( _( "Switch to Inner Layer 4" ) )
1892 .Flags( AF_NOTIFY )
1893 .Parameter( In4_Cu ) );
1894
1896 .Name( "pcbnew.Control.layerInner5" )
1897 .Scope( AS_GLOBAL )
1899 .LegacyHotkeyName( "Switch to Inner layer 5" )
1900 .FriendlyName( _( "Switch to Inner Layer 5" ) )
1901 .Flags( AF_NOTIFY )
1902 .Parameter( In5_Cu ) );
1903
1905 .Name( "pcbnew.Control.layerInner6" )
1906 .Scope( AS_GLOBAL )
1908 .LegacyHotkeyName( "Switch to Inner layer 6" )
1909 .FriendlyName( _( "Switch to Inner Layer 6" ) )
1910 .Flags( AF_NOTIFY )
1911 .Parameter( In6_Cu ) );
1912
1914 .Name( "pcbnew.Control.layerInner7" )
1915 .Scope( AS_GLOBAL )
1917 .FriendlyName( _( "Switch to Inner Layer 7" ) )
1918 .Flags( AF_NOTIFY )
1919 .Parameter( In7_Cu ) );
1920
1922 .Name( "pcbnew.Control.layerInner8" )
1923 .Scope( AS_GLOBAL )
1925 .FriendlyName( _( "Switch to Inner Layer 8" ) )
1926 .Flags( AF_NOTIFY )
1927 .Parameter( In8_Cu ) );
1928
1930 .Name( "pcbnew.Control.layerInner9" )
1931 .Scope( AS_GLOBAL )
1933 .FriendlyName( _( "Switch to Inner Layer 9" ) )
1934 .Flags( AF_NOTIFY )
1935 .Parameter( In9_Cu ) );
1936
1938 .Name( "pcbnew.Control.layerInner10" )
1939 .Scope( AS_GLOBAL )
1941 .FriendlyName( _( "Switch to Inner Layer 10" ) )
1942 .Flags( AF_NOTIFY )
1943 .Parameter( In10_Cu ) );
1944
1946 .Name( "pcbnew.Control.layerInner11" )
1947 .Scope( AS_GLOBAL )
1949 .FriendlyName( _( "Switch to Inner Layer 11" ) )
1950 .Flags( AF_NOTIFY )
1951 .Parameter( In11_Cu ) );
1952
1954 .Name( "pcbnew.Control.layerInner12" )
1955 .Scope( AS_GLOBAL )
1957 .FriendlyName( _( "Switch to Inner Layer 12" ) )
1958 .Flags( AF_NOTIFY )
1959 .Parameter( In12_Cu ) );
1960
1962 .Name( "pcbnew.Control.layerInner13" )
1963 .Scope( AS_GLOBAL )
1965 .FriendlyName( _( "Switch to Inner Layer 13" ) )
1966 .Flags( AF_NOTIFY )
1967 .Parameter( In13_Cu ) );
1968
1970 .Name( "pcbnew.Control.layerInner14" )
1971 .Scope( AS_GLOBAL )
1973 .FriendlyName( _( "Switch to Inner Layer 14" ) )
1974 .Flags( AF_NOTIFY )
1975 .Parameter( In14_Cu ) );
1976
1978 .Name( "pcbnew.Control.layerInner15" )
1979 .Scope( AS_GLOBAL )
1981 .FriendlyName( _( "Switch to Inner Layer 15" ) )
1982 .Flags( AF_NOTIFY )
1983 .Parameter( In15_Cu ) );
1984
1986 .Name( "pcbnew.Control.layerInner16" )
1987 .Scope( AS_GLOBAL )
1989 .FriendlyName( _( "Switch to Inner Layer 16" ) )
1990 .Flags( AF_NOTIFY )
1991 .Parameter( In16_Cu ) );
1992
1994 .Name( "pcbnew.Control.layerInner17" )
1995 .Scope( AS_GLOBAL )
1997 .FriendlyName( _( "Switch to Inner Layer 17" ) )
1998 .Flags( AF_NOTIFY )
1999 .Parameter( In17_Cu ) );
2000
2002 .Name( "pcbnew.Control.layerInner18" )
2003 .Scope( AS_GLOBAL )
2005 .FriendlyName( _( "Switch to Inner Layer 18" ) )
2006 .Flags( AF_NOTIFY )
2007 .Parameter( In18_Cu ) );
2008
2010 .Name( "pcbnew.Control.layerInner19" )
2011 .Scope( AS_GLOBAL )
2013 .FriendlyName( _( "Switch to Inner Layer 19" ) )
2014 .Flags( AF_NOTIFY )
2015 .Parameter( In19_Cu ) );
2016
2018 .Name( "pcbnew.Control.layerInner20" )
2019 .Scope( AS_GLOBAL )
2021 .FriendlyName( _( "Switch to Inner Layer 20" ) )
2022 .Flags( AF_NOTIFY )
2023 .Parameter( In20_Cu ) );
2024
2026 .Name( "pcbnew.Control.layerInner21" )
2027 .Scope( AS_GLOBAL )
2029 .FriendlyName( _( "Switch to Inner Layer 21" ) )
2030 .Flags( AF_NOTIFY )
2031 .Parameter( In21_Cu ) );
2032
2034 .Name( "pcbnew.Control.layerInner22" )
2035 .Scope( AS_GLOBAL )
2037 .FriendlyName( _( "Switch to Inner Layer 22" ) )
2038 .Flags( AF_NOTIFY )
2039 .Parameter( In22_Cu ) );
2040
2042 .Name( "pcbnew.Control.layerInner23" )
2043 .Scope( AS_GLOBAL )
2045 .FriendlyName( _( "Switch to Inner Layer 23" ) )
2046 .Flags( AF_NOTIFY )
2047 .Parameter( In23_Cu ) );
2048
2050 .Name( "pcbnew.Control.layerInner24" )
2051 .Scope( AS_GLOBAL )
2053 .FriendlyName( _( "Switch to Inner Layer 24" ) )
2054 .Flags( AF_NOTIFY )
2055 .Parameter( In24_Cu ) );
2056
2058 .Name( "pcbnew.Control.layerInner25" )
2059 .Scope( AS_GLOBAL )
2061 .FriendlyName( _( "Switch to Inner Layer 25" ) )
2062 .Flags( AF_NOTIFY )
2063 .Parameter( In25_Cu ) );
2064
2066 .Name( "pcbnew.Control.layerInner26" )
2067 .Scope( AS_GLOBAL )
2069 .FriendlyName( _( "Switch to Inner Layer 26" ) )
2070 .Flags( AF_NOTIFY )
2071 .Parameter( In26_Cu ) );
2072
2074 .Name( "pcbnew.Control.layerInner27" )
2075 .Scope( AS_GLOBAL )
2077 .FriendlyName( _( "Switch to Inner Layer 27" ) )
2078 .Flags( AF_NOTIFY )
2079 .Parameter( In27_Cu ) );
2080
2082 .Name( "pcbnew.Control.layerInner28" )
2083 .Scope( AS_GLOBAL )
2085 .FriendlyName( _( "Switch to Inner Layer 28" ) )
2086 .Flags( AF_NOTIFY )
2087 .Parameter( In28_Cu ) );
2088
2090 .Name( "pcbnew.Control.layerInner29" )
2091 .Scope( AS_GLOBAL )
2093 .FriendlyName( _( "Switch to Inner Layer 29" ) )
2094 .Flags( AF_NOTIFY )
2095 .Parameter( In29_Cu ) );
2096
2098 .Name( "pcbnew.Control.layerInner30" )
2099 .Scope( AS_GLOBAL )
2101 .FriendlyName( _( "Switch to Inner Layer 30" ) )
2102 .Flags( AF_NOTIFY )
2103 .Parameter( In30_Cu ) );
2104
2106 .Name( "pcbnew.Control.layerBottom" )
2107 .Scope( AS_GLOBAL )
2109 .DefaultHotkey( WXK_PAGEDOWN )
2110 .LegacyHotkeyName( "Switch to Copper (B.Cu) layer" )
2111 .FriendlyName( _( "Switch to Copper (B.Cu) Layer" ) )
2112 .Flags( AF_NOTIFY )
2113 .Parameter( B_Cu ) );
2114
2116 .Name( "pcbnew.Control.layerNext" )
2117 .Scope( AS_GLOBAL )
2118 .DefaultHotkey( '+' )
2119 .LegacyHotkeyName( "Switch to Next Layer" )
2120 .FriendlyName( _( "Switch to Next Layer" ) )
2121 .Flags( AF_NOTIFY ) );
2122
2124 .Name( "pcbnew.Control.layerPrev" )
2125 .Scope( AS_GLOBAL )
2126 .DefaultHotkey( '-' )
2127 .LegacyHotkeyName( "Switch to Previous Layer" )
2128 .FriendlyName( _( "Switch to Previous Layer" ) )
2129 .Flags( AF_NOTIFY ) );
2130
2132 .Name( "pcbnew.Control.layerToggle" )
2133 .Scope( AS_GLOBAL )
2134 .DefaultHotkey( 'V' )
2135 .LegacyHotkeyName( "Add Through Via" )
2136 .FriendlyName( _( "Toggle Layer" ) )
2137 .Tooltip( _( "Switch between layers in active layer pair" ) )
2138 .Flags( AF_NOTIFY ) );
2139
2141 .Name( "pcbnew.Control.layerAlphaInc" )
2142 .Scope( AS_GLOBAL )
2143 .DefaultHotkey( '}' )
2144 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2145 .LegacyHotkeyName( "Increment Layer Transparency (Modern Toolset only)" )
2146 .FriendlyName( _( "Increase Layer Opacity" ) )
2147 .Tooltip( _( "Make the current layer less transparent" ) )
2148 .Icon( BITMAPS::contrast_mode ) );
2149
2151 .Name( "pcbnew.Control.layerAlphaDec" )
2152 .Scope( AS_GLOBAL )
2153 .DefaultHotkey( '{' )
2154 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2155 .LegacyHotkeyName( "Decrement Layer Transparency (Modern Toolset only)" )
2156 .FriendlyName( _( "Decrease Layer Opacity" ) )
2157 .Tooltip( _( "Make the current layer more transparent" ) )
2158 .Icon( BITMAPS::contrast_mode ) );
2159
2161 .Name( "pcbnew.Control.layerPairPresetCycle" )
2162 .Scope( AS_GLOBAL )
2163 .DefaultHotkey( MD_SHIFT + 'V' )
2164 .FriendlyName( _( "Cycle Layer Pair Presets" ) )
2165 .Tooltip( _( "Cycle between preset layer pairs" ) ) );
2166
2168 .Name( "pcbnew.Control.layerChanged" )
2169 .Scope( AS_GLOBAL )
2170 .Flags( AF_NOTIFY ) );
2171
2172//Show board statistics tool
2174 .Name( "pcbnew.InspectionTool.ShowBoardStatistics" )
2175 .Scope( AS_GLOBAL )
2176 .FriendlyName( _( "Show Board Statistics" ) )
2177 .Tooltip( _( "Shows board statistics" ) )
2178 .Icon( BITMAPS::editor ) );
2179
2181 .Name( "pcbnew.InspectionTool.InspectClearance" )
2182 .Scope( AS_GLOBAL )
2183 .FriendlyName( _( "Clearance Resolution" ) )
2184 .Tooltip( _( "Show clearance resolution for the active layer between two selected objects" ) )
2185 .Icon( BITMAPS::mw_add_gap ) );
2186
2188 .Name( "pcbnew.InspectionTool.InspectConstraints" )
2189 .Scope( AS_GLOBAL )
2190 .FriendlyName( _( "Constraints Resolution" ) )
2191 .Tooltip( _( "Show constraints resolution for the selected object" ) )
2192 .Icon( BITMAPS::mw_add_stub ) );
2193
2195 .Name( "pcbnew.InspectionTool.DiffFootprint" )
2196 .Scope( AS_GLOBAL )
2197 .FriendlyName( _( "Compare Footprint with Library" ) )
2198 .Tooltip( _( "Show differences between board footprint and its library equivalent" ) )
2199 .Icon( BITMAPS::library ) );
2200
2202 .Name( "pcbnew.InspectionTool.ShowFootprintAssociations" )
2203 .Scope( AS_GLOBAL )
2204 .FriendlyName( _( "Show Footprint Associations" ) )
2205 .Tooltip( _( "Show footprint library and schematic symbol associations" ) )
2207
2208//Geographic re-annotation tool
2210 .Name( "pcbnew.ReannotateTool.ShowReannotateDialog" )
2211 .Scope( AS_GLOBAL )
2212 .FriendlyName( _( "Geographical Reannotate..." ) )
2213 .Tooltip( _( "Reannotate PCB in geographical order" ) )
2214 .Icon( BITMAPS::annotate ) );
2215
2217 .Name( "pcbnew.Control.repairBoard" )
2218 .Scope( AS_GLOBAL )
2219 .FriendlyName( _( "Repair Board" ) )
2220 .Tooltip( _( "Run various diagnostics and attempt to repair board" ) )
2221 .Icon( BITMAPS::rescue )
2222 .Parameter( false ) ); // Don't repair quietly
2223
2225 .Name( "pcbnew.ModuleEditor.repairFootprint" )
2226 .Scope( AS_GLOBAL )
2227 .FriendlyName( _( "Repair Footprint" ) )
2228 .Tooltip( _( "Run various diagnostics and attempt to repair footprint" ) )
2229 .Icon( BITMAPS::rescue ) );
2230
2231
2232// PLACEMENT_TOOL
2233//
2235 .Name( "pcbnew.AlignAndDistribute.alignTop" )
2236 .Scope( AS_GLOBAL )
2237 .FriendlyName( _( "Align to Top" ) )
2238 .Tooltip( _( "Aligns selected items to the top edge of the item under the cursor" ) )
2239 .Icon( BITMAPS::align_items_top ) );
2240
2242 .Name( "pcbnew.AlignAndDistribute.alignBottom" )
2243 .Scope( AS_GLOBAL )
2244 .FriendlyName( _( "Align to Bottom" ) )
2245 .Tooltip( _( "Aligns selected items to the bottom edge of the item under the cursor" ) )
2246 .Icon( BITMAPS::align_items_bottom ) );
2247
2249 .Name( "pcbnew.AlignAndDistribute.alignLeft" )
2250 .Scope( AS_GLOBAL )
2251 .FriendlyName( _( "Align to Left" ) )
2252 .Tooltip( _( "Aligns selected items to the left edge of the item under the cursor" ) )
2253 .Icon( BITMAPS::align_items_left ) );
2254
2256 .Name( "pcbnew.AlignAndDistribute.alignRight" )
2257 .Scope( AS_GLOBAL )
2258 .FriendlyName( _( "Align to Right" ) )
2259 .Tooltip( _( "Aligns selected items to the right edge of the item under the cursor" ) )
2260 .Icon( BITMAPS::align_items_right ) );
2261
2263 .Name( "pcbnew.AlignAndDistribute.alignCenterY" )
2264 .Scope( AS_GLOBAL )
2265 .FriendlyName( _( "Align to Vertical Center" ) )
2266 .Tooltip( _( "Aligns selected items to the vertical center of the item under the cursor" ) )
2267 .Icon( BITMAPS::align_items_center ) );
2268
2270 .Name( "pcbnew.AlignAndDistribute.alignCenterX" )
2271 .Scope( AS_GLOBAL )
2272 .FriendlyName( _( "Align to Horizontal Center" ) )
2273 .Tooltip( _( "Aligns selected items to the horizontal center of the item under the cursor" ) )
2274 .Icon( BITMAPS::align_items_middle ) );
2275
2277 .Name( "pcbnew.AlignAndDistribute.distributeHorizontallyCenters" )
2278 .Scope( AS_GLOBAL )
2279 .FriendlyName( _( "Distribute Horizontally by Centers" ) )
2280 .Tooltip( _( "Distributes selected items between the left-most item and the right-most item "
2281 "so that the item centers are equally distributed" ) )
2283
2285 .Name( "pcbnew.AlignAndDistribute.distributeHorizontallyGaps" )
2286 .Scope( AS_GLOBAL )
2287 .FriendlyName( _( "Distribute Horizontally with Even Gaps" ) )
2288 .Tooltip( _( "Distributes selected items between the left-most item and the right-most item "
2289 "so that the gaps between items are equal" ) )
2291
2293 .Name( "pcbnew.AlignAndDistribute.distributeVerticallyGaps" )
2294 .Scope( AS_GLOBAL )
2295 .FriendlyName( _( "Distribute Vertically with Even Gaps" ) )
2296 .Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item "
2297 "so that the gaps between items are equal" ) )
2299
2301 .Name( "pcbnew.AlignAndDistribute.distributeVerticallyCenters" )
2302 .Scope( AS_GLOBAL )
2303 .FriendlyName( _( "Distribute Vertically by Centers" ) )
2304 .Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item "
2305 "so that the item centers are equally distributed" ) )
2307
2308// PCB_POINT_EDITOR
2309//
2311 .Name( "pcbnew.PointEditor.addCorner" )
2312 .Scope( AS_GLOBAL )
2313#ifdef __WXMAC__
2314 .DefaultHotkey( WXK_F1 )
2315#else
2316 .DefaultHotkey( WXK_INSERT )
2317#endif
2318 .FriendlyName( _( "Create Corner" ) )
2319 .Tooltip( _( "Create a corner" ) )
2320 .Icon( BITMAPS::add_corner ) );
2321
2323 .Name( "pcbnew.PointEditor.removeCorner" )
2324 .Scope( AS_GLOBAL )
2325 .FriendlyName( _( "Remove Corner" ) )
2326 .Tooltip( _( "Remove corner" ) )
2327 .Icon( BITMAPS::delete_cursor ) );
2328
2330 .Name( "pcbnew.PointEditor.chamferCorner" )
2331 .Scope( AS_GLOBAL )
2332 .FriendlyName( _( "Chamfer Corner" ) )
2333 .Tooltip( _( "Chamfer corner" ) )
2334 .Icon( BITMAPS::chamfer ) );
2335
2336// POSITION_RELATIVE_TOOL
2337//
2339 .Name( "pcbnew.PositionRelative.positionRelative" )
2340 .Scope( AS_GLOBAL )
2341 .DefaultHotkey( MD_SHIFT + 'P' )
2342 .LegacyHotkeyName( "Position Item Relative" )
2343 .FriendlyName( _( "Position Relative To..." ) )
2344 .Tooltip( _( "Positions the selected item(s) by an exact amount relative to another" ) )
2345 .Icon( BITMAPS::move_relative ) );
2346
2348 .Name( "pcbnew.PositionRelative.interactiveOffsetTool" )
2349 .Scope( AS_GLOBAL )
2350 .FriendlyName( _( "Interactive Offset Tool" ) )
2351 .Tooltip( _( "Interactive tool for offsetting items by exact amounts" ) )
2352 .Icon( BITMAPS::move_relative ) );
2353
2354// PCIKER_TOOL
2355//
2357 .Name( "pcbnew.Picker.selectItemInteractively" )
2358 .Scope( AS_GLOBAL )
2359 .Parameter<PCB_PICKER_TOOL::INTERACTIVE_PARAMS>( {} ) );
2360
2362 .Name( "pcbnew.Picker.selectPointInteractively" )
2363 .Scope( AS_GLOBAL )
2364 .Parameter<PCB_PICKER_TOOL::INTERACTIVE_PARAMS>( {} ));
2365
2366
2368 .Name( "pcbnew.InteractiveSelection.SelectConnection" )
2369 .Scope( AS_GLOBAL )
2370 .DefaultHotkey( 'U' )
2371 .LegacyHotkeyName( "Select Single Track" )
2372 .FriendlyName( _( "Select/Expand Connection" ) )
2373 .Tooltip( _( "Selects a connection or expands an existing selection to junctions, pads, or entire connections" ) )
2374 .Icon( BITMAPS::add_tracks ) );
2375
2377 .Name( "pcbnew.InteractiveSelection.unrouteSelected" )
2378 .Scope( AS_GLOBAL )
2379 .FriendlyName( _( "Unroute Selected" ) )
2380 .Tooltip( _( "Unroutes selected items to the nearest pad." ) )
2381 .Icon( BITMAPS::general_deletions ) );
2382
2384 .Name( "pcbnew.InteractiveSelection.unrouteSegment" )
2385 .Scope( AS_GLOBAL )
2386 .DefaultHotkey( WXK_BACK )
2387 .FriendlyName( _( "Unroute Segment" ) )
2388 .Tooltip( _( "Unroutes segment to the nearest segment." ) )
2389 .Icon( BITMAPS::general_deletions ) );
2390
2392 .Name( "pcbnew.InteractiveSelection.SyncSelection" )
2393 .Scope( AS_GLOBAL ) );
2394
2396 .Name( "pcbnew.InteractiveSelection.SyncSelectionWithNets" )
2397 .Scope( AS_GLOBAL ) );
2398
2400 .Name( "pcbnew.InteractiveSelection.SelectNet" )
2401 .Scope( AS_GLOBAL )
2402 .FriendlyName( _( "Select All Tracks in Net" ) )
2403 .Tooltip( _( "Selects all tracks & vias belonging to the same net." ) )
2404 .Parameter<int>( 0 ) );
2405
2407 .Name( "pcbnew.InteractiveSelection.DeselectNet" )
2408 .Scope( AS_GLOBAL )
2409 .FriendlyName( _( "Deselect All Tracks in Net" ) )
2410 .Tooltip( _( "Deselects all tracks & vias belonging to the same net." ) )
2411 .Parameter<int>( 0 ) );
2412
2414 .Name( "pcbnew.InteractiveSelection.SelectUnconnected" )
2415 .Scope( AS_GLOBAL )
2416 .DefaultHotkey( 'O' )
2417 .FriendlyName( _( "Select All Unconnected Footprints" ) )
2418 .Tooltip( _( "Selects all unconnected footprints belonging to each selected net." ) ) );
2419
2421 .Name( "pcbnew.InteractiveSelection.GrabUnconnected" )
2422 .Scope( AS_GLOBAL )
2423 .DefaultHotkey( MD_SHIFT + 'O' )
2424 .FriendlyName( _( "Grab Nearest Unconnected Footprints" ) )
2425 .Tooltip( _( "Selects and initiates moving the nearest unconnected footprint on each selected net." ) ) );
2426
2428 .Name( "pcbnew.InteractiveSelection.SelectOnSheet" )
2429 .Scope( AS_GLOBAL )
2430 .FriendlyName( _( "Sheet" ) )
2431 .Tooltip( _( "Selects all footprints and tracks in the schematic sheet" ) )
2432 .Icon( BITMAPS::select_same_sheet ) );
2433
2435 .Name( "pcbnew.InteractiveSelection.SelectSameSheet" )
2436 .Scope( AS_GLOBAL )
2437 .FriendlyName( _( "Items in Same Hierarchical Sheet" ) )
2438 .Tooltip( _( "Selects all footprints and tracks in the same schematic sheet" ) )
2439 .Icon( BITMAPS::select_same_sheet ) );
2440
2442 .Name( "pcbnew.InteractiveSelection.SelectOnSchematic" )
2443 .Scope( AS_GLOBAL )
2444 .FriendlyName( _( "Select on Schematic" ) )
2445 .Tooltip( _( "Selects corresponding items in Schematic editor" ) )
2446 .Icon( BITMAPS::select_same_sheet ) );
2447
2449 .Name( "pcbnew.InteractiveSelection.FilterSelection" )
2450 .Scope( AS_GLOBAL )
2451 .FriendlyName( _( "Filter Selected Items..." ) )
2452 .Tooltip( _( "Remove items from the selection by type" ) )
2453 .Icon( BITMAPS::filter ) );
2454
2455
2456// ZONE_FILLER_TOOL
2457//
2459 .Name( "pcbnew.ZoneFiller.zoneFill" )
2460 .Scope( AS_GLOBAL )
2461 .FriendlyName( _( "Draft Fill Selected Zone(s)" ) )
2462 .Tooltip( _( "Update copper fill of selected zone(s) without regard to other interacting zones" ) )
2463 .Icon( BITMAPS::fill_zone )
2464 .Parameter<ZONE*>( nullptr ) );
2465
2467 .Name( "pcbnew.ZoneFiller.zoneFillAll" )
2468 .Scope( AS_GLOBAL )
2469 .DefaultHotkey( 'B' )
2470 .LegacyHotkeyName( "Fill or Refill All Zones" )
2471 .FriendlyName( _( "Fill All Zones" ) )
2472 .Tooltip( _( "Update copper fill of all zones" ) )
2473 .Icon( BITMAPS::fill_zone ) );
2474
2476 .Name( "pcbnew.ZoneFiller.zoneFillDirty" )
2477 .Scope( AS_CONTEXT ) );
2478
2480 .Name( "pcbnew.ZoneFiller.zoneUnfill" )
2481 .Scope( AS_GLOBAL )
2482 .FriendlyName( _( "Unfill Selected Zone(s)" ) )
2483 .Tooltip( _( "Remove copper fill from selected zone(s)" ) )
2484 .Icon( BITMAPS::zone_unfill ) );
2485
2487 .Name( "pcbnew.ZoneFiller.zoneUnfillAll" )
2488 .Scope( AS_GLOBAL )
2489 .DefaultHotkey( MD_CTRL + 'B' )
2490 .LegacyHotkeyName( "Remove Filled Areas in All Zones" )
2491 .FriendlyName( _( "Unfill All Zones" ) )
2492 .Tooltip( _( "Remove copper fill from all zones" ) )
2493 .Icon( BITMAPS::zone_unfill ) );
2494
2495
2496// AUTOPLACER_TOOL
2497//
2499 .Name( "pcbnew.Autoplacer.autoplaceSelected" )
2500 .Scope( AS_GLOBAL )
2501 .FriendlyName( _( "Place Selected Footprints" ) )
2502 .Tooltip( _( "Performs automatic placement of selected components" ) ) );
2503
2505 .Name( "pcbnew.Autoplacer.autoplaceOffboard" )
2506 .Scope( AS_GLOBAL )
2507 .FriendlyName( _( "Place Off-Board Footprints" ) )
2508 .Tooltip( _( "Performs automatic placement of components outside board area" ) ) );
2509
2511 .Name( "pcbnew.Multichannel.generatePlacementRuleAreas" )
2512 .Scope( AS_GLOBAL )
2513 .FriendlyName( _( "Generate Placement Rule Areas..." ) )
2514 .Tooltip( _( "Creates best-fit placement rule areas" ) )
2516 .Flags( AF_ACTIVATE ) );
2517
2519 .Name( "pcbnew.Multichannel.repeatLayout" )
2520 .Scope( AS_GLOBAL )
2521 .FriendlyName( _( "Repeat Layout..." ) )
2522 .Tooltip( _( "Clones placement & routing across multiple identical channels" ) )
2523 .Icon( BITMAPS::copy )
2524 );
2525
2526// ROUTER_TOOL
2527//
2529 .Name( "pcbnew.InteractiveRouter.SingleTrack" )
2530 .Scope( AS_GLOBAL )
2531 .DefaultHotkey( 'X' )
2532 .LegacyHotkeyName( "Add New Track" )
2533 .FriendlyName( _( "Route Single Track" ) )
2534 .Tooltip( _( "Route tracks" ) )
2535 .Icon( BITMAPS::add_tracks )
2536 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2537 .Flags( AF_ACTIVATE )
2538 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2539
2541 .Name( "pcbnew.InteractiveRouter.DiffPair" )
2542 .Scope( AS_GLOBAL )
2543 .DefaultHotkey( '6' )
2544 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2545 .LegacyHotkeyName( "Route Differential Pair (Modern Toolset only)" )
2546 .FriendlyName( _( "Route Differential Pair" ) )
2547 .Tooltip( _( "Route differential pairs" ) )
2548 .Icon( BITMAPS::ps_diff_pair )
2549 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2550 .Flags( AF_ACTIVATE )
2551 .Parameter( PNS::PNS_MODE_ROUTE_DIFF_PAIR ) );
2552
2554 .Name( "pcbnew.InteractiveRouter.SettingsDialog" )
2555 .Scope( AS_GLOBAL )
2556 .DefaultHotkey( MD_CTRL + '<' )
2557 .LegacyHotkeyName( "Routing Options" )
2558 .FriendlyName( _( "Interactive Router Settings..." ) )
2559 .Tooltip( _( "Open Interactive Router settings" ) )
2560 .Icon( BITMAPS::tools ) );
2561
2563 .Name( "pcbnew.InteractiveRouter.DiffPairDialog" )
2564 .Scope( AS_GLOBAL )
2565 .FriendlyName( _( "Differential Pair Dimensions..." ) )
2566 .Tooltip( _( "Open Differential Pair Dimension settings" ) )
2567 .Icon( BITMAPS::ps_diff_pair_gap ) );
2568
2570 .Name( "pcbnew.InteractiveRouter.HighlightMode" )
2571 .Scope( AS_GLOBAL )
2572 .FriendlyName( _( "Router Highlight Mode" ) )
2573 .Tooltip( _( "Switch router to highlight mode" ) )
2574 .Flags( AF_NONE )
2575 .Parameter( PNS::RM_MarkObstacles ) );
2576
2578 .Name( "pcbnew.InteractiveRouter.ShoveMode" )
2579 .Scope( AS_GLOBAL )
2580 .FriendlyName( _( "Router Shove Mode" ) )
2581 .Tooltip( _( "Switch router to shove mode" ) )
2582 .Flags( AF_NONE )
2583 .Parameter( PNS::RM_Shove ) );
2584
2586 .Name( "pcbnew.InteractiveRouter.WalkaroundMode" )
2587 .Scope( AS_GLOBAL )
2588 .FriendlyName( _( "Router Walkaround Mode" ) )
2589 .Tooltip( _( "Switch router to walkaround mode" ) )
2590 .Flags( AF_NONE )
2591 .Parameter( PNS::RM_Walkaround ) );
2592
2594 .Name( "pcbnew.InteractiveRouter.CycleRouterMode" )
2595 .Scope( AS_GLOBAL )
2596 .FriendlyName( _( "Cycle Router Mode" ) )
2597 .Tooltip( _( "Cycle router to the next mode" ) ) );
2598
2600 .Name( "pcbnew.InteractiveRouter.SelectLayerPair" )
2601 .Scope( AS_GLOBAL )
2602 .FriendlyName( _( "Set Layer Pair..." ) )
2603 .Tooltip( _( "Change active layer pair for routing" ) )
2605 .Flags( AF_ACTIVATE ) );
2606
2608 .Name( "pcbnew.LengthTuner.TuneSingleTrack" )
2609 .Scope( AS_GLOBAL )
2610 .DefaultHotkey( '7' )
2611 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2612 .LegacyHotkeyName( "Tune Single Track (Modern Toolset only)" )
2613 .FriendlyName( _( "Tune Length of a Single Track" ) )
2615 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2616 .Flags( AF_ACTIVATE )
2617 .Parameter( PNS::PNS_MODE_TUNE_SINGLE ) );
2618
2620 .Name( "pcbnew.LengthTuner.TuneDiffPair" )
2621 .Scope( AS_GLOBAL )
2622 .DefaultHotkey( '8' )
2623 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2624 .LegacyHotkeyName( "Tune Differential Pair Length (Modern Toolset only)" )
2625 .FriendlyName( _( "Tune Length of a Differential Pair" ) )
2627 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2628 .Flags( AF_ACTIVATE )
2629 .Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR ) );
2630
2632 .Name( "pcbnew.LengthTuner.TuneDiffPairSkew" )
2633 .Scope( AS_GLOBAL )
2634 .DefaultHotkey( '9' )
2635 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2636 .LegacyHotkeyName( "Tune Differential Pair Skew (Modern Toolset only)" )
2637 .FriendlyName( _( "Tune Skew of a Differential Pair" ) )
2639 .ToolbarState( TOOLBAR_STATE::TOGGLE )
2640 .Flags( AF_ACTIVATE )
2641 .Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW ) );
2642
2644 .Name( "pcbnew.InteractiveRouter.InlineDrag" )
2645 .Scope( AS_CONTEXT )
2646 .Parameter<int>( PNS::DM_ANY ) );
2647
2649 .Name( "pcbnew.InteractiveRouter.UndoLastSegment" )
2650 .Scope( AS_CONTEXT )
2651 .DefaultHotkey( WXK_BACK )
2652 .FriendlyName( _( "Undo Last Segment" ) )
2653 .Tooltip( _( "Walks the current track back one segment." ) ) );
2654
2656 .Name( "pcbnew.InteractiveRouter.ContinueFromEnd" )
2657 .Scope( AS_CONTEXT )
2658 .DefaultHotkey( MD_CTRL + 'E' )
2659 .FriendlyName( _( "Route From Other End" ) )
2660 .Tooltip( _( "Commits current segments and starts next segment from nearest ratsnest end." ) ) );
2661
2663 .Name( "pcbnew.InteractiveRouter.AttemptFinish" )
2664 .Scope( AS_CONTEXT )
2665 .DefaultHotkey( 'F' )
2666 .FriendlyName( _( "Attempt Finish" ) )
2667 .Tooltip( _( "Attempts to complete current route to nearest ratsnest end." ) )
2668 .Parameter<bool*>( nullptr ) );
2669
2671 .Name( "pcbnew.InteractiveRouter.RouteSelected" )
2672 .Scope( AS_GLOBAL )
2673 .DefaultHotkey( MD_SHIFT + 'X' )
2674 .FriendlyName( _( "Route Selected" ) )
2675 .Tooltip( _( "Sequentially route selected items from ratsnest anchor." ) )
2676 .Flags( AF_ACTIVATE )
2677 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2678
2680 .Name( "pcbnew.InteractiveRouter.RouteSelectedFromEnd" )
2681 .Scope( AS_GLOBAL )
2682 .DefaultHotkey( MD_SHIFT + 'E' )
2683 .FriendlyName( _( "Route Selected From Other End" ) )
2684 .Tooltip( _( "Sequentially route selected items from other end of ratsnest anchor." ) )
2685 .Flags( AF_ACTIVATE )
2686 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2687
2689 .Name( "pcbnew.InteractiveRouter.Autoroute" )
2690 .Scope( AS_GLOBAL )
2691 .DefaultHotkey( MD_SHIFT + 'F' )
2692 .FriendlyName( _( "Attempt Finish Selected (Autoroute)" ) )
2693 .Tooltip( _( "Sequentially attempt to automatically route all selected pads." ) )
2694 .Flags( AF_ACTIVATE )
2695 .Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
2696
2698 .Name( "pcbnew.InteractiveRouter.CancelCurrentItem" )
2699 .Scope( AS_GLOBAL )
2700 .FriendlyName( _( "Cancel Current Item" ) )
2701 .Tooltip( _( "Skip current item and route next selected item." ) ) );
2702
2704 .Name( "pcbnew.InteractiveRouter.BreakTrack" )
2705 .Scope( AS_GLOBAL )
2706 .FriendlyName( _( "Break Track" ) )
2707 .Tooltip( _( "Splits the track segment into two segments connected at the cursor position." ) )
2708 .Icon( BITMAPS::break_line ) );
2709
2711 .Name( "pcbnew.InteractiveRouter.Drag45Degree" )
2712 .Scope( AS_GLOBAL )
2713 .DefaultHotkey( 'D' )
2714 .LegacyHotkeyName( "Drag Track Keep Slope" )
2715 .FriendlyName( _( "Drag 45 Degree Mode" ) )
2716 .Tooltip( _( "Drags the track segment while keeping connected tracks at 45 degrees." ) )
2718
2720 .Name( "pcbnew.InteractiveRouter.DragFreeAngle" )
2721 .Scope( AS_GLOBAL )
2722 .DefaultHotkey( 'G' )
2723 .LegacyHotkeyName( "Drag Item" )
2724 .FriendlyName( _( "Drag Free Angle" ) )
2725 .Tooltip( _( "Drags the nearest joint in the track without restricting the track angle." ) )
2726 .Icon( BITMAPS::drag_segment ) );
2727
2728
2729// GENERATOR_TOOL
2730//
2731
2733 .Name( "pcbnew.Generator.regenerateAllTuning" )
2734 .Scope( AS_GLOBAL )
2735 .FriendlyName( _( "Update All Tuning Patterns" ) )
2736 .Tooltip( _( "Attempt to re-tune existing tuning patterns within their bounds" ) )
2738 .Parameter( wxString( wxS( "tuning_pattern" ) ) ) );
2739
2741 .Name( "pcbnew.Generator.regenerateAll" )
2742 .Scope( AS_GLOBAL )
2743 .FriendlyName( _( "Rebuild All Generators" ) )
2744 .Tooltip( _( "Rebuilds geometry of all generators" ) )
2745 .Icon( BITMAPS::refresh )
2746 .Parameter( wxString( wxS( "*" ) ) ) );
2747
2749 .Name( "pcbnew.Generator.regenerateSelected" )
2750 .Scope( AS_GLOBAL )
2751 .FriendlyName( _( "Rebuild Selected Generators" ) )
2752 .Tooltip( _( "Rebuilds geometry of selected generator(s)" ) )
2753 .Icon( BITMAPS::refresh ) );
2754
2755
2757 .Name( "pcbnew.Generator.genStartEdit" )
2758 .Scope( AS_CONTEXT ) );
2759
2761 .Name( "pcbnew.Generator.genUpdateEdit" )
2762 .Scope( AS_CONTEXT ) );
2763
2765 .Name( "pcbnew.Generator.genFinishEdit" )
2766 .Scope( AS_CONTEXT ) );
2767
2769 .Name( "pcbnew.Generator.genCacnelEdit" )
2770 .Scope( AS_CONTEXT ) );
2771
2773 .Name( "pcbnew.Generator.genRemove" )
2774 .Scope( AS_CONTEXT ) );
2775
2776
2778 .Name( "pcbnew.Generator.showManager" )
2779 .Scope( AS_GLOBAL )
2780 .FriendlyName( _( "Generators Manager" ) )
2781 .Tooltip( _( "Show a manager dialog for Generator objects" ) )
2782 .Icon( BITMAPS::pin_table ) );
2783
2784
2785// LENGTH_TUNER_TOOL
2786//
2788 .Name( "pcbnew.LengthTuner.Settings" )
2789 .Scope( AS_GLOBAL )
2790 .DefaultHotkey( MD_CTRL + 'L' )
2791 // Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
2792 .LegacyHotkeyName( "Length Tuning Settings (Modern Toolset only)" )
2793 .MenuText( _( "Length Tuning Settings..." ) )
2794 .Tooltip( _( "Displays tuning pattern properties dialog" ) )
2796
2797// Drag and drop
2799 .Name( "pcbnew.Control.DdAppendBoard" )
2800 .Scope( AS_GLOBAL ) );
2801
2803 .Name( "pcbnew.Control.ddImportFootprint" )
2804 .Scope( AS_GLOBAL ) );
2805
2807 .Name( "pcbnew.InteractiveDrawing.ddImportGraphics" )
2808 .Scope( AS_GLOBAL ) );
2809
2810// actions for footprint wizard frame
2812 .Name( "pcbnew.FpWizard.showWizards" )
2813 .Scope( AS_GLOBAL )
2814 .FriendlyName( _( "Show wizards selector" ) )
2815 .Tooltip( _( "Select wizard script to run" ) )
2816 .Icon( BITMAPS::module_wizard ) );
2817
2819 .Name( "pcbnew.FpWizard.resetWizardPrms" )
2820 .Scope( AS_GLOBAL )
2821 .FriendlyName( _( "Reset wizard parameters" ) )
2822 .Tooltip( _( "Reset wizard parameters to default" ) )
2823 .Icon( BITMAPS::reload ) );
2824
2826 .Name( "pcbnew.FpWizard.exportFpToEditor" )
2827 .Scope( AS_GLOBAL )
2828 .FriendlyName( _( "Export footprint to editor" ) )
2829 .Tooltip( _( "Export footprint to editor" ) )
2831
2832
2834{
2835 static TOOL_EVENT event = TOOL_EVENT( TC_MESSAGE, TA_ACTION,
2836 "common.Interactive.snappingModeChangedByKey" );
2837
2838 return event;
2839}
2840
2841
2843{
2844 static TOOL_EVENT event = TOOL_EVENT( TC_MESSAGE, TA_ACTION,
2845 "pcbnew.Control.layerPairPresetChangedByKey" );
2846
2847 return event;
2848}
@ copy_pad_settings
@ add_zone_cutout
@ cleanup_tracks_and_vias
@ general_deletions
@ align_items_bottom
@ align_items_left
@ show_zone_outline_only
@ push_pad_settings
@ distribute_horizontal_centers
@ distribute_vertical_centers
@ ps_diff_pair_tune_length
@ add_graphical_polygon
@ align_items_middle
@ distribute_horizontal_gaps
@ add_radial_dimension
@ auto_track_width
@ router_len_tuner_dist_incr
@ subtract_polygons
@ align_items_top
@ curved_ratsnest
@ router_len_tuner_dist_decr
@ add_aligned_dimension
@ general_ratsnest
@ add_rectangle
@ outset_from_selection
@ mw_add_stub_arc
@ align_items_right
@ insert_module_board
@ apply_pad_settings
@ icon_eeschema_24
@ add_center_dimension
@ drag_segment_withslope
@ width_track_via
@ export_footprint_names
@ add_graphical_segments
@ intersect_polygons
@ distribute_vertical_gaps
@ ps_diff_pair_tune_phase
@ add_orthogonal_dimension
@ add_component
@ add_keepout_area
@ pack_footprints
@ custom_pad_to_primitives
@ zoom_auto_fit_in_page
@ show_zone_disable
@ align_items_center
@ load_module_board
@ import_brd_file
@ show_zone_triangulation
@ router_len_tuner
@ select_layer_pair
@ router_len_tuner_amplitude_incr
@ select_same_sheet
@ 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 deleteLastPoint
static TOOL_ACTION editTracksAndVias
static TOOL_ACTION lineModeFree
Unconstrained angle mode (icon lines_any)
static TOOL_ACTION_GROUP layerDirectSwitchActions()
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 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 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 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:91
static TOOL_ACTION filterSelection
Filter the items in the current selection (invokes dialog)
static TOOL_ACTION ddAppendBoard
Drag and drop.
static TOOL_ACTION editFootprint
static TOOL_ACTION exportFootprint
static TOOL_ACTION layerInner25
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 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 convertToLines
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 distributeHorizontallyGaps
static TOOL_ACTION zoneDisplayFilled
static TOOL_ACTION layerInner24
static TOOL_ACTION viaSizeDec
static TOOL_ACTION showNetInRatsnest
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 moveWithReference
move with a reference point
static TOOL_ACTION toggleLock
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 lineMode45
45-degree-or-orthogonal mode (icon hv45mode)
static TOOL_ACTION deleteDesignBlock
static TOOL_ACTION placeCharacteristics
static TOOL_ACTION zonePriorityMoveToBottom
static TOOL_ACTION pluginsShowFolder
Scripting Actions.
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 zoneUnfill
static TOOL_ACTION intersectPolygons
Intersection of multiple polygons.
static TOOL_ACTION pointEditorMoveCorner
static TOOL_ACTION layerAlphaInc
static TOOL_ACTION saveBoardAsDesignBlock
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:94
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 layerInner18
static TOOL_ACTION incWidth
Increase width of currently drawn line.
static TOOL_ACTION repairBoard
static TOOL_ACTION layerInner14
static TOOL_ACTION healShapes
Connect selected shapes, possibly extending or cutting them, or adding extra geometry.
static TOOL_ACTION selectPointInteractively
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 dragFreeAngle
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 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:88
static TOOL_ACTION placeImportedGraphics
static TOOL_ACTION layerInner5
static TOOL_ACTION removeUnusedPads
static TOOL_ACTION zoneDisplayFractured
static TOOL_ACTION ratsnestModeCycle
static TOOL_ACTION drawVia
static TOOL_ACTION regenerateAll
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 layerInner7
static TOOL_ACTION layerInner27
static TOOL_ACTION diffFootprint
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 loadFpFromBoard
static TOOL_ACTION showDesignBlockPanel
static TOOL_ACTION decWidth
Decrease width of currently drawn line.
static TOOL_ACTION drawCenterDimension
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.
Definition pcb_actions.h:97
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 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 layerInner15
static TOOL_ACTION simplifyPolygons
Simplify polygon outlines.
static TOOL_ACTION arcPosture
Switch posture when drawing arc.
static TOOL_ACTION ddImportGraphics
static TOOL_ACTION interactiveOffsetTool
static TOOL_ACTION microwaveCreateLine
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 zoneDisplayOutline
static TOOL_ACTION ratsnestLineMode
static TOOL_ACTION showFootprintAssociations
static TOOL_ACTION layerInner19
static TOOL_ACTION layerInner9
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 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 duplicateFootprint
static TOOL_ACTION closeOutline
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 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 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 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 saveFpToBoard
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 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 cleanupGraphics
static TOOL_ACTION rotateCw
Rotation of selected objects.
static TOOL_ACTION rotateCcw
static TOOL_ACTION drawAlignedDimension
static TOOL_ACTION layerInner23
static TOOL_ACTION distributeVerticallyCenters
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 lock
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.
Define a group that can be used to group actions (and their events) of similar operations.
Definition tool_action.h:79
Represent a single user action.
Generic, UI-independent tool event.
Definition tool_event.h:171
a few functions useful in geometry calculations.
@ DEG45
45 Degree only
@ DIRECT
Unconstrained point-to-point.
@ DEG90
90 Degree only
PCB_LAYER_ID
A quick note on layer IDs:
Definition layer_ids.h:60
@ In22_Cu
Definition layer_ids.h:87
@ In11_Cu
Definition layer_ids.h:76
@ In29_Cu
Definition layer_ids.h:94
@ In30_Cu
Definition layer_ids.h:95
@ In17_Cu
Definition layer_ids.h:82
@ In9_Cu
Definition layer_ids.h:74
@ In19_Cu
Definition layer_ids.h:84
@ In7_Cu
Definition layer_ids.h:72
@ In28_Cu
Definition layer_ids.h:93
@ In26_Cu
Definition layer_ids.h:91
@ B_Cu
Definition layer_ids.h:65
@ In21_Cu
Definition layer_ids.h:86
@ In23_Cu
Definition layer_ids.h:88
@ In15_Cu
Definition layer_ids.h:80
@ In2_Cu
Definition layer_ids.h:67
@ In10_Cu
Definition layer_ids.h:75
@ In4_Cu
Definition layer_ids.h:69
@ In16_Cu
Definition layer_ids.h:81
@ In24_Cu
Definition layer_ids.h:89
@ In1_Cu
Definition layer_ids.h:66
@ In13_Cu
Definition layer_ids.h:78
@ In8_Cu
Definition layer_ids.h:73
@ In14_Cu
Definition layer_ids.h:79
@ In12_Cu
Definition layer_ids.h:77
@ In27_Cu
Definition layer_ids.h:92
@ In6_Cu
Definition layer_ids.h:71
@ In5_Cu
Definition layer_ids.h:70
@ In3_Cu
Definition layer_ids.h:68
@ In20_Cu
Definition layer_ids.h:85
@ F_Cu
Definition layer_ids.h:64
@ In18_Cu
Definition layer_ids.h:83
@ In25_Cu
Definition layer_ids.h:90
@ RM_MarkObstacles
Ignore collisions, mark obstacles.
@ RM_Walkaround
Only walk around.
@ RM_Shove
Only shove.
@ PNS_MODE_ROUTE_SINGLE
Definition pns_router.h:68
@ PNS_MODE_ROUTE_DIFF_PAIR
Definition pns_router.h:69
@ PNS_MODE_TUNE_DIFF_PAIR
Definition pns_router.h:71
@ PNS_MODE_TUNE_SINGLE
Definition pns_router.h:70
@ PNS_MODE_TUNE_DIFF_PAIR_SKEW
Definition pns_router.h:72
@ DM_ANY
Definition pns_router.h:82
#define _(s)
@ SIMILAR
Add a new zone with the same settings as an existing one.
Definition pcb_actions.h:38
@ CUTOUT
Make a cutout to an existing zone.
Definition pcb_actions.h:37
@ GRAPHIC_POLYGON
Definition pcb_actions.h:39
@ ADD
Add a new zone/keepout with fresh settings.
Definition pcb_actions.h:36
@ TOGGLE
Action is a toggle button on the toolbar.
Definition tool_action.h:64
@ AS_GLOBAL
Global action (toolbar/main menu event, global shortcut)
Definition tool_action.h:49
@ AS_CONTEXT
Action belongs to a particular tool (i.e. a part of a pop-up menu)
Definition tool_action.h:47
@ AF_ACTIVATE
Action activates a tool.
Definition tool_action.h:56
@ AF_NOTIFY
Action is a notification (it is by default passed to all tools)
Definition tool_action.h:57
@ AF_NONE
Definition tool_action.h:55
@ TA_ACTION
Tool action (allows one to control tools).
Definition tool_event.h:112
@ MD_ALT
Definition tool_event.h:145
@ MD_CTRL
Definition tool_event.h:144
@ MD_SHIFT
Definition tool_event.h:143
@ TC_MESSAGE
Definition tool_event.h:58
VECTOR2< int32_t > VECTOR2I
Definition vector2d.h:687