2013-09-27 18:52:34 +00:00
|
|
|
/*
|
|
|
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
|
|
|
*
|
2023-11-08 21:34:14 +00:00
|
|
|
* Copyright (C) 2013-2023 CERN
|
2023-10-06 12:03:09 +00:00
|
|
|
* Copyright (C) 2016-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
2013-09-27 18:52:34 +00:00
|
|
|
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, you may find one here:
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
|
|
|
* or you may write to the Free Software Foundation, Inc.,
|
|
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
2017-02-21 12:42:08 +00:00
|
|
|
#include "pcb_actions.h"
|
2022-09-28 01:15:19 +00:00
|
|
|
#include "tool/tool_action.h"
|
2021-02-05 23:43:32 +00:00
|
|
|
#include "tool/tool_event.h"
|
2014-02-17 17:21:00 +00:00
|
|
|
#include <pcbnew_id.h>
|
2019-06-17 00:34:21 +00:00
|
|
|
#include <bitmaps.h>
|
2021-07-29 09:47:43 +00:00
|
|
|
#include <layer_ids.h>
|
2020-04-01 17:24:31 +00:00
|
|
|
#include <microwave/microwave_tool.h>
|
2024-01-24 16:14:32 +00:00
|
|
|
#include <pcb_reference_image.h>
|
2019-04-14 00:44:05 +00:00
|
|
|
#include <tool/tool_manager.h>
|
2023-07-06 15:22:24 +00:00
|
|
|
#include <tools/pcb_selection_tool.h>
|
2019-06-24 15:27:05 +00:00
|
|
|
#include <router/pns_router.h>
|
2020-04-19 14:39:16 +00:00
|
|
|
#include <router/pns_routing_settings.h>
|
2014-07-09 12:23:13 +00:00
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
// Actions, being statically-defined, require specialized I18N handling. We continue to
|
|
|
|
// use the _() macro so that string harvesting by the I18N framework doesn't have to be
|
|
|
|
// specialized, but we don't translate on initialization and instead do it in the getters.
|
|
|
|
|
|
|
|
#undef _
|
|
|
|
#define _(s) s
|
|
|
|
|
2023-10-06 17:04:00 +00:00
|
|
|
// clang-format off
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2020-08-29 14:43:05 +00:00
|
|
|
// CONVERT_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::convertToPoly( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Convert.convertToPoly" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Polygon from Selection..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Creates a graphic polygon from the selection" ) )
|
|
|
|
.Icon( BITMAPS::add_graphical_polygon ) );
|
2020-08-29 14:43:05 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::convertToZone( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Convert.convertToZone" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Zone from Selection..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Creates a copper zone from the selection" ) )
|
|
|
|
.Icon( BITMAPS::add_zone ) );
|
2020-08-29 14:43:05 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::convertToKeepout( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Convert.convertToKeepout" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Rule Area from Selection..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Creates a rule area from the selection" ) )
|
|
|
|
.Icon( BITMAPS::add_keepout_area ) );
|
2020-08-29 14:43:05 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::convertToLines( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Convert.convertToLines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Lines from Selection..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Creates graphic lines from the selection" ) )
|
|
|
|
.Icon( BITMAPS::add_line ) );
|
2020-08-29 14:43:05 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::convertToArc( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Convert.convertToArc" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Arc from Selection" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Creates an arc from the selected line segment" ) )
|
|
|
|
.Icon( BITMAPS::add_arc ) );
|
2020-08-29 14:43:05 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::convertToTracks( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Convert.convertToTracks" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Tracks from Selection" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Creates tracks from the selected graphic lines" ) )
|
|
|
|
.Icon( BITMAPS::add_tracks ) );
|
2020-08-29 14:43:05 +00:00
|
|
|
|
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
// DRAWING_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawLine( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.line" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'L' )
|
|
|
|
.LegacyHotkeyName( "Draw Line" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Line" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Draw a line" ) )
|
|
|
|
.Icon( BITMAPS::add_graphical_segments )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawPolygon( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.graphicPolygon" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'P' )
|
|
|
|
.LegacyHotkeyName( "Draw Graphic Polygon" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Graphic Polygon" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Draw a graphic polygon" ) )
|
|
|
|
.Icon( BITMAPS::add_graphical_polygon )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ZONE_MODE::GRAPHIC_POLYGON ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawRectangle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.rectangle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Rectangle" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Draw a rectangle" ) )
|
|
|
|
.Icon( BITMAPS::add_rectangle )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawCircle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.circle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'C' )
|
|
|
|
.LegacyHotkeyName( "Draw Circle" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Circle" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Draw a circle" ) )
|
|
|
|
.Icon( BITMAPS::add_circle )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawArc( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.arc" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'A' )
|
|
|
|
.LegacyHotkeyName( "Draw Arc" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Arc" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Draw an arc" ) )
|
|
|
|
.Icon( BITMAPS::add_arc )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::placeCharacteristics( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.placeCharacteristics" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.LegacyHotkeyName( "Add Board Characteristics" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Board Characteristics" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a board characteristics table on a graphic layer" ) )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::placeStackup( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.placeStackup" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.LegacyHotkeyName( "Add Stackup Table" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Stackup Table" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a board stackup table on a graphic layer" ) )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-10-23 17:23:24 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::placeReferenceImage( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.placeReferenceImage" )
|
2023-07-13 12:15:19 +00:00
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Reference Image" ) )
|
2023-10-23 17:23:24 +00:00
|
|
|
.Tooltip( _( "Add a bitmap image to be used as a reference (image will not be included in any output)" ) )
|
2023-07-13 12:15:19 +00:00
|
|
|
.Icon( BITMAPS::image )
|
|
|
|
.Flags( AF_ACTIVATE )
|
2023-10-23 17:23:24 +00:00
|
|
|
.Parameter<PCB_REFERENCE_IMAGE*>( nullptr ) );
|
2022-02-08 19:29:54 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::placeText( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.text" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'T' )
|
|
|
|
.LegacyHotkeyName( "Add Text" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Text" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a text item" ) )
|
|
|
|
.Icon( BITMAPS::text )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawTextBox( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.textbox" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Text Box" ) )
|
2024-01-15 17:29:55 +00:00
|
|
|
.Tooltip( _( "Add a line-wrapped text item" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::add_textbox )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
2024-01-15 17:29:55 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawTable( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.drawTable" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Add Table" ) )
|
|
|
|
.Tooltip( _( "Draw table" ) )
|
|
|
|
.Icon( BITMAPS::spreadsheet ) // JEY TODO
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
2023-10-11 14:50:15 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::spacingIncrease( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.lengthTuner.SpacingIncrease" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '1' )
|
|
|
|
.LegacyHotkeyName( "Increase meander spacing by one step." )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Increase Spacing" ) )
|
2023-10-15 16:02:15 +00:00
|
|
|
.Tooltip( _( "Increase tuning pattern spacing by one step." ) )
|
2023-10-11 14:50:15 +00:00
|
|
|
.Icon( BITMAPS::router_len_tuner_dist_incr ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::spacingDecrease( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.lengthTuner.SpacingDecrease" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '2' )
|
|
|
|
.LegacyHotkeyName( "Decrease meander spacing by one step." )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Decrease Spacing" ) )
|
2023-10-15 16:02:15 +00:00
|
|
|
.Tooltip( _( "Decrease tuning pattern spacing by one step." ) )
|
2023-10-11 14:50:15 +00:00
|
|
|
.Icon( BITMAPS::router_len_tuner_dist_decr ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::amplIncrease( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.lengthTuner.AmplIncrease" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '3' )
|
|
|
|
.LegacyHotkeyName( "Increase meander amplitude by one step." )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Increase Amplitude" ) )
|
2023-10-15 16:02:15 +00:00
|
|
|
.Tooltip( _( "Increase tuning pattern amplitude by one step." ) )
|
2023-10-11 14:50:15 +00:00
|
|
|
.Icon( BITMAPS::router_len_tuner_amplitude_incr ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::amplDecrease( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.lengthTuner.AmplDecrease" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '4' )
|
|
|
|
.LegacyHotkeyName( "Decrease meander amplitude by one step." )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Decrease Amplitude" ) )
|
2023-10-15 16:02:15 +00:00
|
|
|
.Tooltip( _( "Decrease tuning pattern amplitude by one step." ) )
|
2023-10-11 14:50:15 +00:00
|
|
|
.Icon( BITMAPS::router_len_tuner_amplitude_decr ) );
|
|
|
|
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawAlignedDimension( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.alignedDimension" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'H' )
|
|
|
|
.LegacyHotkeyName( "Add Dimension" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Aligned Dimension" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add an aligned linear dimension" ) )
|
|
|
|
.Icon( BITMAPS::add_aligned_dimension )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawCenterDimension( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.centerDimension" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Center Dimension" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a center dimension" ) )
|
|
|
|
.Icon( BITMAPS::add_center_dimension )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawRadialDimension( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.radialDimension" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Radial Dimension" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a radial dimension" ) )
|
|
|
|
.Icon( BITMAPS::add_radial_dimension )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawOrthogonalDimension( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.orthogonalDimension" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Orthogonal Dimension" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add an orthogonal dimension" ) )
|
|
|
|
.Icon( BITMAPS::add_orthogonal_dimension )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawLeader( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.leader" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Leader" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a leader dimension" ) )
|
|
|
|
.Icon( BITMAPS::add_leader )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawZone( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.zone" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2019-06-17 00:34:21 +00:00
|
|
|
#ifdef __WXOSX_MAC__
|
2022-09-28 01:15:19 +00:00
|
|
|
.DefaultHotkey( MD_ALT + 'Z' )
|
2019-06-17 00:34:21 +00:00
|
|
|
#else
|
2022-09-28 01:15:19 +00:00
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'Z' )
|
2019-06-17 00:34:21 +00:00
|
|
|
#endif
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Add Filled Zone" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Filled Zone" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Add a filled zone" ) )
|
|
|
|
.Icon( BITMAPS::add_zone )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ZONE_MODE::ADD ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawVia( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.via" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'V' )
|
|
|
|
.LegacyHotkeyName( "Add Vias" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Vias" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add free-standing vias" ) )
|
|
|
|
.Icon( BITMAPS::add_via )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drawRuleArea( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.ruleArea" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'K' )
|
|
|
|
.LegacyHotkeyName( "Add Keepout Area" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Rule Area" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Add a rule area (keepout)" ) )
|
|
|
|
.Icon( BITMAPS::add_keepout_area )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ZONE_MODE::ADD ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawZoneCutout( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.zoneCutout" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'C' )
|
|
|
|
.LegacyHotkeyName( "Add a Zone Cutout" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add a Zone Cutout" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Add a cutout area of an existing zone" ) )
|
|
|
|
.Icon( BITMAPS::add_zone_cutout )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ZONE_MODE::CUTOUT ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::drawSimilarZone( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.similarZone" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + '.' )
|
|
|
|
.LegacyHotkeyName( "Add a Similar Zone" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add a Similar Zone" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Add a zone with the same settings as an existing zone" ) )
|
|
|
|
.Icon( BITMAPS::add_zone )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ZONE_MODE::SIMILAR ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::placeImportedGraphics( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.placeImportedGraphics" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'F' )
|
|
|
|
.LegacyHotkeyName( "Place DXF" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Import Graphics..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Import 2D drawing file" ) )
|
|
|
|
.Icon( BITMAPS::import_vector )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::setAnchor( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.setAnchor" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'N' )
|
|
|
|
.LegacyHotkeyName( "Place the Footprint Anchor" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Place the Footprint Anchor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Set the coordinate origin point (anchor) of the footprint" ) )
|
|
|
|
.Icon( BITMAPS::anchor )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::incWidth( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.incWidth" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( MD_CTRL + '+' )
|
|
|
|
.LegacyHotkeyName( "Increase Line Width" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Increase Line Width" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Increase the line width" ) ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::decWidth( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.decWidth" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( MD_CTRL + '-' )
|
|
|
|
.LegacyHotkeyName( "Decrease Line Width" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Decrease Line Width" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Decrease the line width" ) ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::arcPosture( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.arcPosture" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( '/' )
|
|
|
|
.LegacyHotkeyName( "Switch Track Posture" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch Arc Posture" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Switch the arc posture" ) ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-17 13:25:26 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::magneticSnapActiveLayer( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "common.Control.magneticSnapActiveLayer" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Snap to Objects on the Active Layer Only" ) )
|
2023-08-17 13:25:26 +00:00
|
|
|
.Tooltip( _( "Enables snapping to objects on the active layer only" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::magneticSnapAllLayers( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "common.Control.magneticSnapAllLayers" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Snap to Objects on All Layers" ) )
|
2023-08-17 13:25:26 +00:00
|
|
|
.Tooltip( _( "Enables snapping to objects on all visible layers" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::magneticSnapToggle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "common.Control.magneticSnapToggle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'S' )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Toggle Snapping Between Active and All Layers" ) )
|
2023-08-17 13:25:26 +00:00
|
|
|
.Tooltip( _( "Toggles between snapping on all visible layers and only the active area" ) ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::deleteLastPoint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.deleteLastPoint" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( WXK_BACK )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Delete Last Point" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Delete the last point added to the current item" ) )
|
|
|
|
.Icon( BITMAPS::undo ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::closeOutline( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveDrawing.closeOutline" )
|
|
|
|
.Scope( AS_CONTEXT )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Close Outline" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Close the in progress outline" ) )
|
|
|
|
.Icon( BITMAPS::checked_ok ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
// DRC
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::runDRC( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.DRCTool.runDRC" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Design Rules Checker" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show the design rules checker window" ) )
|
|
|
|
.Icon( BITMAPS::erc ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
// EDIT_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::editFpInFpEditor( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.EditFpInFpEditor" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'E' )
|
|
|
|
.LegacyHotkeyName( "Edit with Footprint Editor" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Open in Footprint Editor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Opens the selected footprint in the Footprint Editor" ) )
|
|
|
|
.Icon( BITMAPS::module_editor ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::editLibFpInFpEditor( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.EditLibFpInFpEditor" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + MD_SHIFT + 'E' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Edit Library Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Opens the selected footprint in the Footprint Editor" ) )
|
|
|
|
.Icon( BITMAPS::module_editor ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::getAndPlace( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.FindMove" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'T' )
|
|
|
|
.LegacyHotkeyName( "Get and Move Footprint" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Get and Move Footprint" ) )
|
2023-10-23 17:23:24 +00:00
|
|
|
.Tooltip( _( "Selects a footprint by reference designator and places it under the cursor for moving" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::move )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::move( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveMove.move" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'M' )
|
|
|
|
.LegacyHotkeyName( "Move Item" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Move" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Moves the selected item(s)" ) )
|
|
|
|
.Icon( BITMAPS::move )
|
2023-09-30 20:00:15 +00:00
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ACTIONS::CURSOR_EVENT_TYPE::CURSOR_NONE ) );
|
2023-08-28 18:54:58 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::moveIndividually( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveMove.moveIndividually" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'M' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Move Individually" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Moves the selected items one-by-one" ) )
|
|
|
|
.Icon( BITMAPS::move )
|
2023-09-30 20:00:15 +00:00
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ACTIONS::CURSOR_EVENT_TYPE::CURSOR_NONE ) );
|
2023-08-28 18:54:58 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::moveWithReference( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveMove.moveWithReference" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Move with Reference" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Moves the selected item(s) with a specified starting point" ) )
|
|
|
|
.Icon( BITMAPS::move )
|
2023-09-30 20:00:15 +00:00
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( ACTIONS::CURSOR_EVENT_TYPE::CURSOR_NONE ) );
|
2023-08-28 18:54:58 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::copyWithReference( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveMove.copyWithReference" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Copy with Reference" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Copy selected item(s) to clipboard with a specified starting point" ) )
|
|
|
|
.Icon( BITMAPS::copy )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::duplicateIncrement(TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.duplicateIncrementPads" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + MD_CTRL + 'D' )
|
|
|
|
.LegacyHotkeyName( "Duplicate Item and Increment" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Duplicate and Increment" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Duplicates the selected item(s), incrementing pad numbers" ) )
|
|
|
|
.Icon( BITMAPS::duplicate ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::moveExact( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.moveExact" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'M' )
|
|
|
|
.LegacyHotkeyName( "Move Item Exactly" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Move Exactly..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Moves the selected item(s) by an exact amount" ) )
|
|
|
|
.Icon( BITMAPS::move_exactly ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-05 15:43:10 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pointEditorMoveCorner( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.moveCorner" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Move Corner To..." ) )
|
2023-08-05 15:43:10 +00:00
|
|
|
.Tooltip( _( "Move the active corner to an exact location" ) )
|
|
|
|
.Icon( BITMAPS::move_exactly ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::pointEditorMoveMidpoint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.moveMidpoint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Move Midpoint To..." ) )
|
2023-08-05 15:43:10 +00:00
|
|
|
.Tooltip( _( "Move the active midpoint to an exact location" ) )
|
|
|
|
.Icon( BITMAPS::move_exactly ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::createArray( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.createArray" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'T' )
|
|
|
|
.LegacyHotkeyName( "Create Array" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Array..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::array )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::rotateCw( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.rotateCw" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'R' )
|
2019-06-27 10:29:05 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Rotate Item Clockwise (Modern Toolset only)" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Rotate Clockwise" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Rotates selected item(s) clockwise" ) )
|
|
|
|
.Icon( BITMAPS::rotate_cw )
|
|
|
|
.Flags( AF_NONE )
|
|
|
|
.Parameter( -1 ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::rotateCcw( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.rotateCcw" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'R' )
|
|
|
|
.LegacyHotkeyName( "Rotate Item" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Rotate Counterclockwise" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Rotates selected item(s) counterclockwise" ) )
|
|
|
|
.Icon( BITMAPS::rotate_ccw )
|
|
|
|
.Flags( AF_NONE )
|
|
|
|
.Parameter( 1 ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::flip( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.flip" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'F' )
|
|
|
|
.LegacyHotkeyName( "Flip Item" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Change Side / Flip" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Flips selected item(s) to opposite side of board" ) )
|
|
|
|
.Icon( BITMAPS::swap_layer ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::mirrorH( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.mirrorHoriontally" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Mirror Horizontally" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Mirrors selected item across the Y axis" ) )
|
|
|
|
.Icon( BITMAPS::mirror_h ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::mirrorV( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.mirrorVertically" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Mirror Vertically" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Mirrors selected item across the X axis" ) )
|
|
|
|
.Icon( BITMAPS::mirror_v ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::swap( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.swap" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'S' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Swap" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Swaps selected items' positions" ) )
|
|
|
|
.Icon( BITMAPS::swap ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::packAndMoveFootprints( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.packAndMoveFootprints" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'P' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Pack and Move Footprints" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Sorts selected footprints by reference, packs based on size and initiates movement" ) )
|
|
|
|
.Icon( BITMAPS::pack_footprints ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::skip( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.skip" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( WXK_TAB )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Skip" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Skip item" ) )
|
|
|
|
.Icon( BITMAPS::right ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::changeTrackWidth( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.changeTrackWidth" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Change Track Width" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Updates selected track & via sizes" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::filletTracks( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.filletTracks" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Fillet Tracks" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Adds arcs tangent to the selected straight track segments" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::filletLines( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.filletLines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Fillet Lines..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Adds arcs tangent to the selected lines" ) )
|
|
|
|
.Icon( BITMAPS::fillet ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::chamferLines( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.chamferLines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2024-02-05 11:05:31 +00:00
|
|
|
.FriendlyName( _( "Chamfer Lines..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cut away corners between selected lines" ) )
|
|
|
|
.Icon( BITMAPS::chamfer ) );
|
|
|
|
|
2024-04-30 00:47:34 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::simplifyPolygons( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.simplifyPolygons" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Simplify Polygons" ) )
|
|
|
|
.Tooltip( _( "Simplify polygon outlines, removing superfluous points" ) ) );
|
|
|
|
|
2023-10-17 07:27:59 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::healShapes( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.healShapes" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Heal Shapes" ) )
|
2023-10-17 07:27:59 +00:00
|
|
|
.Tooltip( _( "Connect shapes, possibly extending or cutting them, or adding extra geometry" ) )
|
|
|
|
.Icon( BITMAPS::heal_shapes ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::extendLines( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.extendLines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Extend Lines to Meet" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Extend lines to meet each other" ) ) );
|
2023-07-02 17:59:04 +00:00
|
|
|
|
2023-07-22 00:23:59 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::mergePolygons( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.mergePolygons" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Merge Polygons" ) )
|
2023-07-22 00:23:59 +00:00
|
|
|
.Tooltip( _( "Merge selected polygons into a single polygon" ) )
|
|
|
|
.Icon( BITMAPS::merge_polygons ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::subtractPolygons( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.subtractPolygons" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Subtract Polygons" ) )
|
2023-07-22 00:23:59 +00:00
|
|
|
.Tooltip( _( "Subtract selected polygons from the last one selected" ) )
|
|
|
|
.Icon( BITMAPS::subtract_polygons ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::intersectPolygons( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.intersectPolygons" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Intersect Polygons" ) )
|
2023-07-22 00:23:59 +00:00
|
|
|
.Tooltip( _( "Create the intersection of the selected polygons" ) )
|
|
|
|
.Icon( BITMAPS::intersect_polygons ) );
|
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::deleteFull( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.deleteFull" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2024-04-13 19:15:39 +00:00
|
|
|
.DefaultHotkey( MD_SHIFT + static_cast<int>( WXK_DELETE ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Delete Full Track" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Delete Full Track" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Deletes selected item(s) and copper connections" ) )
|
|
|
|
.Icon( BITMAPS::delete_cursor )
|
|
|
|
.Flags( AF_NONE )
|
2022-09-28 02:09:34 +00:00
|
|
|
.Parameter( PCB_ACTIONS::REMOVE_FLAGS::ALT ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::properties( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveEdit.properties" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'E' )
|
|
|
|
.LegacyHotkeyName( "Edit Item" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Properties..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Displays item properties dialog" ) )
|
|
|
|
.Icon( BITMAPS::edit ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
2020-12-25 16:26:32 +00:00
|
|
|
// FOOTPRINT_EDITOR_CONTROL
|
2019-06-17 00:34:21 +00:00
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showFootprintTree( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.showFootprintTree" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Show Footprint Tree" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::search_tree ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::hideFootprintTree( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.hideFootprintTree" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Hide Footprint Tree" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::search_tree ) );
|
|
|
|
|
2024-05-04 20:17:26 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::footprintTreeSearch( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.footprintTreeSearch" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Focus the Footprint Tree Search Field" ) )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'L' ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::newFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.newFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'N' )
|
|
|
|
.LegacyHotkeyName( "New" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "New Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Create a new, empty footprint" ) )
|
|
|
|
.Icon( BITMAPS::new_footprint ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::createFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.createFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Create a new footprint using the Footprint Wizard" ) )
|
|
|
|
.Icon( BITMAPS::module_wizard ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::editFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.editFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Edit Footprint" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show selected footprint on editor canvas" ) )
|
|
|
|
.Icon( BITMAPS::edit ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::duplicateFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.duplicateFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Duplicate Footprint" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Make a copy of the selected footprint" ) )
|
|
|
|
.Icon( BITMAPS::duplicate ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::renameFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.renameFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Rename Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Rename the selected footprint" ) )
|
|
|
|
.Icon( BITMAPS::edit ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::deleteFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.deleteFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Delete Footprint from Library" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Delete Footprint from Library" ) )
|
|
|
|
.Icon( BITMAPS::trash ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::cutFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.cutFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Cut Footprint" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::cut ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::copyFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.copyFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Copy Footprint" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::copy ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::pasteFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.pasteFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Paste Footprint" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::paste ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::importFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.importFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Import Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Import footprint from file" ) )
|
|
|
|
.Icon( BITMAPS::import_module ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::exportFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.exportFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Export Current Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Export edited footprint to file" ) )
|
|
|
|
.Icon( BITMAPS::export_module ) );
|
|
|
|
|
2024-02-29 19:01:59 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::openWithTextEditor( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.openWithTextEditor" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Edit in a Text Editor..." ) )
|
|
|
|
.Tooltip( _( "Open a library file with a text editor" ) )
|
|
|
|
.Icon( BITMAPS::editor ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::footprintProperties( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.footprintProperties" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Footprint Properties..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::module_options ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::checkFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.checkFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Footprint Checker" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show the footprint checker window" ) )
|
|
|
|
.Icon( BITMAPS::erc ) );
|
2020-06-18 13:49:32 +00:00
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
// GLOBAL_EDIT_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::updateFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.updateFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Update Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Update footprint to include any changes from the library" ) )
|
|
|
|
.Icon( BITMAPS::refresh ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::updateFootprints( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.updateFootprints" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Update Footprints from Library..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Update footprints to include any changes from the library" ) )
|
|
|
|
.Icon( BITMAPS::refresh ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::removeUnusedPads( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.removeUnusedPads" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Remove Unused Pads..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Remove or restore the unconnected inner layers on through hole pads and vias" ) )
|
|
|
|
.Icon( BITMAPS::pads_remove ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::changeFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.changeFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Change Footprint..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Assign a different footprint from the library" ) )
|
|
|
|
.Icon( BITMAPS::exchange ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::changeFootprints( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.changeFootprints" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Change Footprints..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Assign different footprints from the library" ) )
|
|
|
|
.Icon( BITMAPS::exchange ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::swapLayers( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.swapLayers" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Swap Layers..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Move tracks or drawings from one layer to another" ) )
|
|
|
|
.Icon( BITMAPS::swap_layer ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::editTracksAndVias( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.editTracksAndVias" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Edit Track & Via Properties..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Edit track and via properties globally across board" ) )
|
|
|
|
.Icon( BITMAPS::width_track_via ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::editTextAndGraphics( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.editTextAndGraphics" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Edit Text & Graphics Properties..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Edit Text and graphics properties globally across board" ) )
|
|
|
|
.Icon( BITMAPS::text ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::editTeardrops( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.editTeardrops" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Edit Teardrops..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add, remove or edit teardrops globally across board" ) )
|
|
|
|
.Icon( BITMAPS::via ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::globalDeletions( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.globalDeletions" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Global Deletions..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Delete tracks, footprints and graphic items from board" ) )
|
|
|
|
.Icon( BITMAPS::general_deletions ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::cleanupTracksAndVias( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.cleanupTracksAndVias" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Cleanup Tracks & Vias..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cleanup redundant items, shorting items, etc." ) )
|
2024-02-09 18:31:28 +00:00
|
|
|
.Icon( BITMAPS::cleanup_tracks_and_vias ) );
|
2023-08-28 18:54:58 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::cleanupGraphics( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.GlobalEdit.cleanupGraphics" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Cleanup Graphics..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cleanup redundant items, etc." ) )
|
2024-02-09 18:31:28 +00:00
|
|
|
.Icon( BITMAPS::cleanup_graphics ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
// MICROWAVE_TOOL
|
|
|
|
//
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::microwaveCreateGap( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.MicrowaveTool.createGap" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Microwave Gap" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Create gap of specified length for microwave applications" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_gap )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( MICROWAVE_FOOTPRINT_SHAPE::GAP ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::microwaveCreateStub( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.MicrowaveTool.createStub" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Microwave Stub" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Create stub of specified length for microwave applications" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_stub )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( MICROWAVE_FOOTPRINT_SHAPE::STUB ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::microwaveCreateStubArc( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.MicrowaveTool.createStubArc" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Microwave Arc Stub" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Create stub (arc) of specified size for microwave applications" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_stub_arc )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( MICROWAVE_FOOTPRINT_SHAPE::STUB_ARC ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::microwaveCreateFunctionShape( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.MicrowaveTool.createFunctionShape" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Microwave Polygonal Shape" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Create a microwave polygonal shape from a list of vertices" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_shape )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( MICROWAVE_FOOTPRINT_SHAPE::FUNCTION_SHAPE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::microwaveCreateLine( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.MicrowaveTool.createLine" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Microwave Line" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Create line of specified length for microwave applications" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_line )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
// PAD_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::copyPadSettings( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.CopyPadSettings" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Copy Pad Properties to Default" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Copy current pad's properties" ) )
|
|
|
|
.Icon( BITMAPS::copy_pad_settings ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::applyPadSettings( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.ApplyPadSettings" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Paste Default Pad Properties to Selected" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Replace the current pad's properties with those copied earlier" ) )
|
|
|
|
.Icon( BITMAPS::apply_pad_settings ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::pushPadSettings( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.PushPadSettings" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Push Pad Properties to Other Pads..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Copy the current pad's properties to other pads" ) )
|
|
|
|
.Icon( BITMAPS::push_pad_settings ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::enumeratePads( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.enumeratePads" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Renumber Pads..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Renumber pads by clicking on them in the desired order" ) )
|
|
|
|
.Icon( BITMAPS::pad_enumerate )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::placePad( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.placePad" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Pad" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Add a pad" ) )
|
|
|
|
.Icon( BITMAPS::pad )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::explodePad( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.explodePad" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'E' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Edit Pad as Graphic Shapes" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Ungroups a custom-shaped pad for editing as individual graphic shapes" ) )
|
|
|
|
.Icon( BITMAPS::custom_pad_to_primitives ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::recombinePad( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.recombinePad" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'E' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Finish Pad Edit" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Regroups all touching graphic shapes into the edited pad" ) )
|
|
|
|
.Icon( BITMAPS::custom_pad_to_primitives ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::defaultPadProperties( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PadTool.defaultPadProperties" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Default Pad Properties..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Edit the pad properties used when creating new pads" ) )
|
|
|
|
.Icon( BITMAPS::options_pad ) );
|
2020-06-27 11:57:40 +00:00
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2021-03-19 23:06:29 +00:00
|
|
|
// SCRIPTING TOOL
|
|
|
|
//
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pluginsShowFolder( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ScriptingTool.pluginsShowFolder" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2021-03-19 23:06:29 +00:00
|
|
|
#ifdef __WXMAC__
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Reveal Plugin Folder in Finder" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Reveals the plugins folder in a Finder window" ) )
|
2021-03-19 23:06:29 +00:00
|
|
|
#else
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Open Plugin Directory" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Opens the directory in the default system file manager" ) )
|
2021-03-19 23:06:29 +00:00
|
|
|
#endif
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::directory_open ) );
|
2021-03-19 23:06:29 +00:00
|
|
|
|
2020-12-16 13:31:32 +00:00
|
|
|
// BOARD_EDITOR_CONTROL
|
2019-06-17 00:34:21 +00:00
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::boardSetup( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.boardSetup" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Board Setup..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Edit board setup including layers, design rules and various defaults" ) )
|
|
|
|
.Icon( BITMAPS::options_board ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::importNetlist( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.importNetlist" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Import Netlist..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Read netlist and update board connectivity" ) )
|
|
|
|
.Icon( BITMAPS::netlist ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::importSpecctraSession( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.importSpecctraSession" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Import Specctra Session..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Import routed Specctra session (*.ses) file" ) )
|
|
|
|
.Icon( BITMAPS::import ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::exportSpecctraDSN( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.exportSpecctraDSN" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Export Specctra DSN..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Export Specctra DSN routing info" ) )
|
|
|
|
.Icon( BITMAPS::export_dsn ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::generateGerbers( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generateGerbers" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Gerbers (.gbr)..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Generate Gerbers for fabrication" ) )
|
|
|
|
.Icon( BITMAPS::post_gerber ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::generateDrillFiles( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generateDrillFiles" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Drill Files (.drl)..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Generate Excellon drill file(s)" ) )
|
|
|
|
.Icon( BITMAPS::post_drill ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::generatePosFile( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generatePosFile" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Component Placement (.pos, .gbr)..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Generate component placement file(s) for pick and place" ) )
|
|
|
|
.Icon( BITMAPS::post_compo ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::generateReportFile( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generateReportFile" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Footprint Report (.rpt)..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Create report of all footprints from current board" ) )
|
|
|
|
.Icon( BITMAPS::post_rpt ) );
|
|
|
|
|
2023-06-12 18:12:39 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::generateIPC2581File( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generateIPC2581File" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "IPC-2581 File (.xml)..." ) )
|
|
|
|
.Tooltip( _( "Generate an IPC-2581 file" ) )
|
|
|
|
.Icon( BITMAPS::post_xml ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::generateD356File( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generateD356File" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "IPC-D-356 Netlist File..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Generate IPC-D-356 netlist file" ) )
|
|
|
|
.Icon( BITMAPS::post_d356 ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::generateBOM( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.generateBOM" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Bill of Materials..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Create bill of materials from board" ) )
|
|
|
|
.Icon( BITMAPS::post_bom ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
// Track & via size control
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::trackWidthInc( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.trackWidthInc" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'W' )
|
|
|
|
.LegacyHotkeyName( "Switch Track Width To Next" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch Track Width to Next" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Change track width to next pre-defined size" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::trackWidthDec( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.trackWidthDec" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'W' )
|
|
|
|
.LegacyHotkeyName( "Switch Track Width To Previous" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch Track Width to Previous" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Change track width to previous pre-defined size" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::viaSizeInc( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.viaSizeInc" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '\'' )
|
|
|
|
.LegacyHotkeyName( "Increase Via Size" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Increase Via Size" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Change via size to next pre-defined size" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::viaSizeDec( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.viaSizeDec" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '\\' )
|
|
|
|
.LegacyHotkeyName( "Decrease Via Size" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Decrease Via Size" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Change via size to previous pre-defined size" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::trackViaSizeChanged( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.trackViaSizeChanged" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.Flags( AF_NOTIFY ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::assignNetClass( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.assignNetclass" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Assign Netclass..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Assign a netclass to nets matching a pattern" ) )
|
|
|
|
.Icon( BITMAPS::netlist ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneMerge( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.zoneMerge" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Merge Zones" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Merge zones" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneDuplicate( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.zoneDuplicate" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Duplicate Zone onto Layer..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Duplicate zone outline onto a different layer" ) )
|
|
|
|
.Icon( BITMAPS::zone_duplicate ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-06-28 21:10:31 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::placeFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.placeFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'A' )
|
|
|
|
.LegacyHotkeyName( "Add Footprint" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Add Footprint" ) )
|
2023-06-28 21:10:31 +00:00
|
|
|
.Tooltip( _( "Add a footprint" ) )
|
|
|
|
.Icon( BITMAPS::module )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter<FOOTPRINT*>( nullptr ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drillOrigin( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.drillOrigin" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Drill/Place File Origin" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Place origin point for drill files and component placement files" ) )
|
|
|
|
.Icon( BITMAPS::set_origin )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
|
|
|
|
2023-11-20 12:23:16 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drillResetOrigin( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.drillResetOrigin" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.LegacyHotkeyName( "Reset Drill Origin" )
|
|
|
|
.FriendlyName( _( "Reset Drill Origin" ) ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::toggleLock( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.toggleLock" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'L' )
|
|
|
|
.LegacyHotkeyName( "Lock/Unlock Footprint" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Toggle Lock" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Lock or unlock selected items" ) )
|
|
|
|
.Icon( BITMAPS::lock_unlock ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::toggleHV45Mode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.toggle45" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + ' ' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Constrain to H, V, 45" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Limit actions to horizontal, vertical, or 45 degrees from the starting point" ) )
|
|
|
|
.Icon( BITMAPS::hv45mode ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::lock( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.lock" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Lock" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Prevent items from being moved and/or resized on the canvas" ) )
|
|
|
|
.Icon( BITMAPS::locked ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::unlock( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.unlock" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Unlock" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Allow items to be moved and/or resized on the canvas" ) )
|
|
|
|
.Icon( BITMAPS::unlocked ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::group( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.group" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-16 14:14:47 +00:00
|
|
|
.FriendlyName( _( "Group Items" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Group the selected items so that they are treated as a single item" ) )
|
|
|
|
.Icon( BITMAPS::group ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::ungroup( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.ungroup" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-16 14:14:47 +00:00
|
|
|
.FriendlyName( _( "Ungroup Items" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Ungroup any selected groups" ) )
|
|
|
|
.Icon( BITMAPS::group_ungroup ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::removeFromGroup( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.removeFromGroup" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Remove Items" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Remove items from group" ) )
|
|
|
|
.Icon( BITMAPS::group_remove ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::groupEnter( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.groupEnter" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Enter Group" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Enter the group to edit items" ) )
|
|
|
|
.Icon( BITMAPS::group_enter ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::groupLeave( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.groupLeave" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Leave Group" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Leave the current group" ) )
|
|
|
|
.Icon( BITMAPS::group_leave ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::appendBoard( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.appendBoard" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Append Board..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Open another board and append its contents to this board" ) )
|
|
|
|
.Icon( BITMAPS::add_board ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-06-28 22:19:43 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::highlightNet( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.highlightNet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '`' )
|
2022-07-23 11:34:32 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2023-06-28 22:19:43 +00:00
|
|
|
.LegacyHotkeyName( "Toggle Highlight of Selected Net (Modern Toolset only)" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Highlight Net" ) )
|
2023-06-28 22:19:43 +00:00
|
|
|
.Tooltip( _( "Highlight net under cursor" ) )
|
|
|
|
.Icon( BITMAPS::net_highlight )
|
|
|
|
.Parameter<int>( 0 ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::toggleLastNetHighlight( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.toggleLastNetHighlight" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Toggle Last Net Highlight" ) )
|
2023-06-28 22:19:43 +00:00
|
|
|
.Tooltip( _( "Toggle between last two highlighted nets" ) )
|
|
|
|
.Parameter<int>( 0 ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::clearHighlight( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.clearHighlight" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '~' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Clear Net Highlighting" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Clear any existing net highlighting" ) ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-06-28 22:19:43 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::toggleNetHighlight( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.toggleNetHighlight" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_ALT + '`' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Toggle Net Highlight" ) )
|
2023-06-28 22:19:43 +00:00
|
|
|
.Tooltip( _( "Toggle net highlighting" ) )
|
|
|
|
.Icon( BITMAPS::net_highlight )
|
|
|
|
.Parameter<int>( 0 ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::highlightNetSelection( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.highlightNetSelection" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Highlight Net" ) )
|
2023-06-28 22:19:43 +00:00
|
|
|
.Tooltip( _( "Highlight all copper items on the selected net(s)" ) )
|
|
|
|
.Icon( BITMAPS::net_highlight )
|
|
|
|
.Parameter<int>( 0 ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::highlightItem( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.highlightItem" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-07-17 20:21:22 +00:00
|
|
|
|
2022-09-28 23:34:45 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::hideNetInRatsnest( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.hideNet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Hide Net in Ratsnest" ) )
|
2022-09-28 23:34:45 +00:00
|
|
|
.Tooltip( _( "Hide the selected net in the ratsnest of unconnected net lines/arcs" ) )
|
|
|
|
.Icon( BITMAPS::hide_ratsnest )
|
2022-09-29 02:15:22 +00:00
|
|
|
.Parameter<int>( 0 ) ); // Default to hiding selected net
|
2020-07-11 01:06:17 +00:00
|
|
|
|
2022-09-28 23:34:45 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showNetInRatsnest( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.showNet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Show Net in Ratsnest" ) )
|
2022-09-28 23:34:45 +00:00
|
|
|
.Tooltip( _( "Show the selected net in the ratsnest of unconnected net lines/arcs" ) )
|
|
|
|
.Icon( BITMAPS::show_ratsnest )
|
2022-09-29 02:15:22 +00:00
|
|
|
.Parameter<int>( 0 ) ); // Default to showing selected net
|
2020-07-11 01:06:17 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showEeschema( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.EditorControl.showEeschema" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch to Schematic Editor" ) )
|
2023-09-26 16:25:06 +00:00
|
|
|
.Tooltip( _( "Open schematic in schematic editor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::icon_eeschema_24 ) );
|
2019-07-08 23:43:08 +00:00
|
|
|
|
|
|
|
|
2020-12-16 13:31:32 +00:00
|
|
|
// PCB_CONTROL
|
2019-07-08 23:43:08 +00:00
|
|
|
//
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::localRatsnestTool( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.localRatsnestTool" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Local Ratsnest" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Toggle ratsnest display of selected item(s)" ) )
|
|
|
|
.Icon( BITMAPS::tool_ratsnest )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::hideLocalRatsnest( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.hideDynamicRatsnest" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-06-28 21:20:59 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::updateLocalRatsnest( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.updateLocalRatsnest" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.Parameter( VECTOR2I() ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showPythonConsole( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.showPythonConsole" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Scripting Console" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show the Python scripting console" ) )
|
|
|
|
.Icon( BITMAPS::py_script ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showLayersManager( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.showLayersManager" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Show Appearance Manager" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show/hide the appearance manager" ) )
|
|
|
|
.Icon( BITMAPS::layers_manager ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2024-03-04 23:00:26 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showNetInspector( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.showNetInspector" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Show Net Inspector" ) )
|
|
|
|
.Tooltip( _( "Show/hide the net inspector" ) )
|
|
|
|
.Icon( BITMAPS::tools ) );
|
|
|
|
|
2024-02-24 15:10:50 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::zonesManager( "pcbnew.Control.zonesManager",
|
|
|
|
AS_GLOBAL, 0, "",
|
|
|
|
_( "Zone Manager" ), _( "Show the zone manager dialog" ),
|
|
|
|
BITMAPS::show_zone );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::flipBoard( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.flipBoard" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Flip Board View" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "View board from the opposite side" ) )
|
|
|
|
.Icon( BITMAPS::flip_board ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
// Display modes
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::showRatsnest( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.showRatsnest" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Show Ratsnest" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show board ratsnest" ) )
|
|
|
|
.Icon( BITMAPS::general_ratsnest ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::ratsnestLineMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.ratsnestLineMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Curved Ratsnest Lines" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show ratsnest with curved lines" ) )
|
|
|
|
.Icon( BITMAPS::curved_ratsnest ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::ratsnestModeCycle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.ratsnestModeCycle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Ratsnest Mode (3-state)" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cycle between showing ratsnests for all layers, just visible layers, and none" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::netColorModeCycle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.netColorMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Net Color Mode (3-state)" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cycle between using net and netclass colors for all nets, just ratsnests, and none" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::trackDisplayMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.trackDisplayMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'K' )
|
|
|
|
.LegacyHotkeyName( "Track Display Mode" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Sketch Tracks" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show tracks in outline mode" ) )
|
|
|
|
.Icon( BITMAPS::showtrack ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::padDisplayMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.padDisplayMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Sketch Pads" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show pads in outline mode" ) )
|
|
|
|
.Icon( BITMAPS::pad_sketch ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::viaDisplayMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.viaDisplayMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Sketch Vias" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show vias in outline mode" ) )
|
|
|
|
.Icon( BITMAPS::via_sketch ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::graphicsOutlines( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.graphicOutlines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Sketch Graphic Items" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show graphic items in outline mode" ) )
|
|
|
|
.Icon( BITMAPS::show_mod_edge ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::textOutlines( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.textOutlines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Sketch Text Items" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show footprint texts in line mode" ) )
|
|
|
|
.Icon( BITMAPS::text_sketch ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::showPadNumbers( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.showPadNumbers" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Show Pad Numbers" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show pad numbers" ) )
|
|
|
|
.Icon( BITMAPS::pad_number ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneDisplayFilled( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.zoneDisplayEnable" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Zone Fills" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show filled areas of zones" ) )
|
|
|
|
.Icon( BITMAPS::show_zone ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneDisplayOutline( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.zoneDisplayDisable" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Zone Outlines" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show only zone boundaries" ) )
|
|
|
|
.Icon( BITMAPS::show_zone_disable ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneDisplayFractured( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.zoneDisplayOutlines" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Zone Fill Fracture Borders" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::show_zone_outline_only ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneDisplayTriangulated( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.zoneDisplayTesselation" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draw Zone Fill Triangulation" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::show_zone_triangulation ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneDisplayToggle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.zoneDisplayToggle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Toggle Zone Display" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cycle between showing zone fills and just their outlines" ) )
|
|
|
|
.Icon( BITMAPS::show_zone ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
// Layer control
|
2023-07-05 10:09:34 +00:00
|
|
|
|
|
|
|
// Translate aLayer to the action that switches to it
|
|
|
|
TOOL_ACTION* PCB_ACTIONS::LayerIDToAction( PCB_LAYER_ID aLayer )
|
|
|
|
{
|
|
|
|
switch( aLayer )
|
|
|
|
{
|
|
|
|
case F_Cu: return &PCB_ACTIONS::layerTop;
|
|
|
|
case In1_Cu: return &PCB_ACTIONS::layerInner1;
|
|
|
|
case In2_Cu: return &PCB_ACTIONS::layerInner2;
|
|
|
|
case In3_Cu: return &PCB_ACTIONS::layerInner3;
|
|
|
|
case In4_Cu: return &PCB_ACTIONS::layerInner4;
|
|
|
|
case In5_Cu: return &PCB_ACTIONS::layerInner5;
|
|
|
|
case In6_Cu: return &PCB_ACTIONS::layerInner6;
|
|
|
|
case In7_Cu: return &PCB_ACTIONS::layerInner7;
|
|
|
|
case In8_Cu: return &PCB_ACTIONS::layerInner8;
|
|
|
|
case In9_Cu: return &PCB_ACTIONS::layerInner9;
|
|
|
|
case In10_Cu: return &PCB_ACTIONS::layerInner10;
|
|
|
|
case In11_Cu: return &PCB_ACTIONS::layerInner11;
|
|
|
|
case In12_Cu: return &PCB_ACTIONS::layerInner12;
|
|
|
|
case In13_Cu: return &PCB_ACTIONS::layerInner13;
|
|
|
|
case In14_Cu: return &PCB_ACTIONS::layerInner14;
|
|
|
|
case In15_Cu: return &PCB_ACTIONS::layerInner15;
|
|
|
|
case In16_Cu: return &PCB_ACTIONS::layerInner16;
|
|
|
|
case In17_Cu: return &PCB_ACTIONS::layerInner17;
|
|
|
|
case In18_Cu: return &PCB_ACTIONS::layerInner18;
|
|
|
|
case In19_Cu: return &PCB_ACTIONS::layerInner19;
|
|
|
|
case In20_Cu: return &PCB_ACTIONS::layerInner20;
|
|
|
|
case In21_Cu: return &PCB_ACTIONS::layerInner21;
|
|
|
|
case In22_Cu: return &PCB_ACTIONS::layerInner22;
|
|
|
|
case In23_Cu: return &PCB_ACTIONS::layerInner23;
|
|
|
|
case In24_Cu: return &PCB_ACTIONS::layerInner24;
|
|
|
|
case In25_Cu: return &PCB_ACTIONS::layerInner25;
|
|
|
|
case In26_Cu: return &PCB_ACTIONS::layerInner26;
|
|
|
|
case In27_Cu: return &PCB_ACTIONS::layerInner27;
|
|
|
|
case In28_Cu: return &PCB_ACTIONS::layerInner28;
|
|
|
|
case In29_Cu: return &PCB_ACTIONS::layerInner29;
|
|
|
|
case In30_Cu: return &PCB_ACTIONS::layerInner30;
|
|
|
|
case B_Cu: return &PCB_ACTIONS::layerBottom;
|
|
|
|
default: return nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-10-05 12:34:25 +00:00
|
|
|
// Implemented as an accessor + static variable to ensure it is initialized when used
|
|
|
|
// in static action constructors
|
|
|
|
TOOL_ACTION_GROUP PCB_ACTIONS::layerDirectSwitchActions()
|
|
|
|
{
|
2023-10-17 07:27:59 +00:00
|
|
|
static TOOL_ACTION_GROUP s_toolActionGroup( "pcbnew.Control.DirectLayerActions" );
|
|
|
|
return s_toolActionGroup;
|
2023-10-05 12:34:25 +00:00
|
|
|
}
|
2023-07-05 10:09:34 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::layerTop( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerTop" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.DefaultHotkey( WXK_PAGEUP )
|
|
|
|
.LegacyHotkeyName( "Switch to Component (F.Cu) layer" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch to Component (F.Cu) layer" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( F_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner1( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner1" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Switch to Inner layer 1" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 1" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In1_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner2( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner2" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Switch to Inner layer 2" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 2" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In2_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner3( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner3" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Switch to Inner layer 3" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 3" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In3_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner4( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner4" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Switch to Inner layer 4" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 4" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In4_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner5( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner5" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Switch to Inner layer 5" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 5" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In5_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner6( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner6" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Switch to Inner layer 6" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 6" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In6_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner7( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner7" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 7" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In7_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner8( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner8" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 8" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In8_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner9( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner9" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 9" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In9_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner10( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner10" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 10" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In10_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner11( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner11" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 11" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In11_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner12( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner12" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 12" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In12_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner13( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner13" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 13" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In13_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner14( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner14" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 14" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In14_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner15( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner15" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 15" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In15_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner16( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner16" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 16" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In16_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner17( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner17" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 17" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In17_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner18( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner18" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 18" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In18_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner19( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner19" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 19" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In19_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner20( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner20" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 20" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In20_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner21( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner21" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 21" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In21_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner22( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner22" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 22" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In22_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner23( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner23" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 23" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In23_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner24( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner24" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 24" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In24_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner25( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner25" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 25" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In25_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner26( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner26" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 26" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In26_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner27( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner27" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 27" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In27_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner28( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner28" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 28" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In28_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner29( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner29" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 29" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In29_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerInner30( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerInner30" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Inner Layer 30" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( In30_Cu ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerBottom( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerBottom" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-05 12:34:25 +00:00
|
|
|
.Group( PCB_ACTIONS::layerDirectSwitchActions() )
|
2022-09-28 01:15:19 +00:00
|
|
|
.DefaultHotkey( WXK_PAGEDOWN )
|
|
|
|
.LegacyHotkeyName( "Switch to Copper (B.Cu) layer" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Switch to Copper (B.Cu) Layer" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Flags( AF_NOTIFY )
|
|
|
|
.Parameter( B_Cu ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::layerNext( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerNext" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '+' )
|
|
|
|
.LegacyHotkeyName( "Switch to Next Layer" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch to Next Layer" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Flags( AF_NOTIFY ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerPrev( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerPrev" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '-' )
|
|
|
|
.LegacyHotkeyName( "Switch to Previous Layer" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Switch to Previous Layer" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Flags( AF_NOTIFY ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerToggle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerToggle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'V' )
|
|
|
|
.LegacyHotkeyName( "Add Through Via" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Toggle Layer" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Switch between layers in active layer pair" ) )
|
|
|
|
.Flags( AF_NOTIFY ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::layerAlphaInc( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerAlphaInc" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '}' )
|
2019-06-27 10:29:05 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2023-08-28 18:54:58 +00:00
|
|
|
.LegacyHotkeyName( "Increment Layer Transparency (Modern Toolset only)" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Increase Layer Opacity" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Make the current layer less transparent" ) )
|
|
|
|
.Icon( BITMAPS::contrast_mode ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::layerAlphaDec( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerAlphaDec" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '{' )
|
2019-06-27 10:29:05 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2023-08-28 18:54:58 +00:00
|
|
|
.LegacyHotkeyName( "Decrement Layer Transparency (Modern Toolset only)" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Decrease Layer Opacity" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Make the current layer more transparent" ) )
|
|
|
|
.Icon( BITMAPS::contrast_mode ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::layerChanged( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.layerChanged" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.Flags( AF_NOTIFY ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2019-07-16 19:34:07 +00:00
|
|
|
//Show board statistics tool
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::boardStatistics( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InspectionTool.ShowBoardStatistics" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Show Board Statistics" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Shows board statistics" ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::inspectClearance( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InspectionTool.InspectClearance" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Clearance Resolution" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show clearance resolution for the active layer between two selected objects" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_gap ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::inspectConstraints( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InspectionTool.InspectConstraints" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Constraints Resolution" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show constraints resolution for the selected object" ) )
|
|
|
|
.Icon( BITMAPS::mw_add_gap ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::diffFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InspectionTool.DiffFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 16:07:09 +00:00
|
|
|
.FriendlyName( _( "Compare Footprint with Library" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show differences between board footprint and its library equivalent" ) )
|
|
|
|
.Icon( BITMAPS::library ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::showFootprintAssociations( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InspectionTool.ShowFootprintAssociations" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Show Footprint Associations" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Show footprint library and schematic symbol associations" ) )
|
|
|
|
.Icon( BITMAPS::edit_cmp_symb_links ) );
|
2023-07-11 13:05:39 +00:00
|
|
|
|
2020-08-11 12:34:53 +00:00
|
|
|
//Geographic re-annotation tool
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::boardReannotate( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ReannotateTool.ShowReannotateDialog" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Geographical Reannotate..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Reannotate PCB in geographical order" ) )
|
|
|
|
.Icon( BITMAPS::annotate ) );
|
2020-04-21 01:44:17 +00:00
|
|
|
|
2022-09-28 02:09:34 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::repairBoard( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.repairBoard" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Repair Board" ) )
|
2022-09-28 02:09:34 +00:00
|
|
|
.Tooltip( _( "Run various diagnostics and attempt to repair board" ) )
|
|
|
|
.Icon( BITMAPS::rescue )
|
|
|
|
.Parameter( false ) ); // Don't repair quietly
|
2020-08-11 14:01:26 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::repairFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ModuleEditor.repairFootprint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Repair Footprint" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Run various diagnostics and attempt to repair footprint" ) ) );
|
2021-05-21 16:52:11 +00:00
|
|
|
|
2020-08-11 14:01:26 +00:00
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
// PLACEMENT_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::alignTop( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.alignTop" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Align to Top" ) )
|
2024-02-15 12:48:29 +00:00
|
|
|
.Tooltip( _( "Aligns selected items to the top edge of the item under the cursor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::align_items_top ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::alignBottom( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.alignBottom" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Align to Bottom" ) )
|
2024-02-15 12:48:29 +00:00
|
|
|
.Tooltip( _( "Aligns selected items to the bottom edge of the item under the cursor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::align_items_bottom ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::alignLeft( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.alignLeft" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Align to Left" ) )
|
2024-02-15 12:48:29 +00:00
|
|
|
.Tooltip( _( "Aligns selected items to the left edge of the item under the cursor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::align_items_left ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::alignRight( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.alignRight" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Align to Right" ) )
|
2024-02-15 12:48:29 +00:00
|
|
|
.Tooltip( _( "Aligns selected items to the right edge of the item under the cursor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::align_items_right ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::alignCenterY( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.alignCenterY" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Align to Vertical Center" ) )
|
2024-02-15 12:48:29 +00:00
|
|
|
.Tooltip( _( "Aligns selected items to the vertical center of the item under the cursor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::align_items_center ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::alignCenterX( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.alignCenterX" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Align to Horizontal Center" ) )
|
2024-02-15 12:48:29 +00:00
|
|
|
.Tooltip( _( "Aligns selected items to the horizontal center of the item under the cursor" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Icon( BITMAPS::align_items_middle ) );
|
|
|
|
|
Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.
The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.
The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.
This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.
Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-04 07:41:21 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::distributeHorizontallyCenters( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.distributeHorizontallyCenters" )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Scope( AS_GLOBAL )
|
Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.
The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.
The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.
This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.
Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-04 07:41:21 +00:00
|
|
|
.FriendlyName( _( "Distribute Horizontally by Centers" ) )
|
|
|
|
.Tooltip( _( "Distributes selected items between the left-most item and the right-most item"
|
|
|
|
"so that the item centers are equally distributed" ) )
|
|
|
|
.Icon( BITMAPS::distribute_horizontal_centers ) );
|
2023-08-28 18:54:58 +00:00
|
|
|
|
Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.
The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.
The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.
This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.
Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-04 07:41:21 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::distributeHorizontallyGaps( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.distributeHorizontallyGaps" )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Scope( AS_GLOBAL )
|
Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.
The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.
The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.
This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.
Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-04 07:41:21 +00:00
|
|
|
.FriendlyName( _( "Distribute Horizontally with Even Gaps" ) )
|
|
|
|
.Tooltip( _( "Distributes selected items between the left-most item and the right-most item "
|
|
|
|
"so that the gaps between items are equal" ) )
|
|
|
|
.Icon( BITMAPS::distribute_horizontal_gaps ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.
The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.
The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.
This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.
Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-04 07:41:21 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::distributeVerticallyGaps( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.distributeVerticallyGaps" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Distribute Vertically with Even Gaps" ) )
|
|
|
|
.Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item "
|
|
|
|
"so that the gaps between items are equal" ) )
|
|
|
|
.Icon( BITMAPS::distribute_vertical_gaps ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::distributeVerticallyCenters( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.AlignAndDistribute.distributeVerticallyCenters" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.FriendlyName( _( "Distribute Vertically by Centers" ) )
|
|
|
|
.Tooltip( _( "Distributes selected items between the top-most item and the bottom-most item "
|
|
|
|
"so that the item centers are equally distributed" ) )
|
|
|
|
.Icon( BITMAPS::distribute_vertical_centers ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2021-01-16 23:17:32 +00:00
|
|
|
// PCB_POINT_EDITOR
|
2019-06-17 00:34:21 +00:00
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pointEditorAddCorner( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PointEditor.addCorner" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2021-03-10 13:33:35 +00:00
|
|
|
#ifdef __WXMAC__
|
2023-08-28 18:54:58 +00:00
|
|
|
.DefaultHotkey( WXK_F1 )
|
2021-03-10 13:33:35 +00:00
|
|
|
#else
|
2023-08-28 18:54:58 +00:00
|
|
|
.DefaultHotkey( WXK_INSERT )
|
2021-03-10 13:33:35 +00:00
|
|
|
#endif
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Create Corner" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Create a corner" ) )
|
|
|
|
.Icon( BITMAPS::add_corner ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pointEditorRemoveCorner( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PointEditor.removeCorner" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Remove Corner" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Remove corner" ) )
|
|
|
|
.Icon( BITMAPS::delete_cursor ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pointEditorArcKeepCenter( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PointEditor.arcKeepCenter" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Keep Arc Center, Adjust Radius" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Switch arc editing mode to keep center, adjust radius and endpoints" ) )
|
|
|
|
.Parameter( ARC_EDIT_MODE::KEEP_CENTER_ADJUST_ANGLE_RADIUS ) );
|
2022-12-05 18:27:00 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pointEditorArcKeepEndpoint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PointEditor.arcKeepEndpoint" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Keep Arc Endpoints or Direction of Starting Point" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Switch arc editing mode to keep endpoints, or to keep direction of the other point" ) )
|
|
|
|
.Parameter( ARC_EDIT_MODE::KEEP_ENDPOINTS_OR_START_DIRECTION ) );
|
2022-12-05 18:27:00 +00:00
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2020-09-24 01:05:46 +00:00
|
|
|
// GROUP_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::groupProperties( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Groups.groupProperties" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2020-09-24 01:05:46 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::pickNewGroupMember( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Groups.selectNewGroupMember" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2020-09-24 01:05:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-17 00:34:21 +00:00
|
|
|
// POSITION_RELATIVE_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::positionRelative( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PositionRelative.positionRelative" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'P' )
|
|
|
|
.LegacyHotkeyName( "Position Item Relative" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Position Relative To..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Positions the selected item(s) by an exact amount relative to another" ) )
|
|
|
|
.Icon( BITMAPS::move_relative ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectpositionRelativeItem( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.PositionRelative.selectpositionRelativeItem" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
2020-12-16 13:31:32 +00:00
|
|
|
// PCB_SELECTION_TOOL
|
2019-06-17 00:34:21 +00:00
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectionActivate( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
// No description, not shown anywhere
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-07-06 15:22:24 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectionCursor( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.Cursor" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.Parameter<CLIENT_SELECTION_FILTER>( nullptr ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectItem( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectItem" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectItems( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectItems" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::unselectItem( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.UnselectItem" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::unselectItems( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.UnselectItems" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-10-06 12:03:09 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::reselectItem( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.ReselectItem" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectionClear( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.Clear" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectionMenu( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectionMenu" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectConnection( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectConnection" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'U' )
|
|
|
|
.LegacyHotkeyName( "Select Single Track" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Select/Expand Connection" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Selects a connection or expands an existing selection to junctions, pads, or entire connections" ) )
|
|
|
|
.Icon( BITMAPS::add_tracks ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::unrouteSelected( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.unrouteSelected" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Unroute Selected" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Unroutes selected items to the nearest pad." ) )
|
|
|
|
.Icon( BITMAPS::general_deletions ) );
|
2022-09-13 18:04:57 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::syncSelection( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SyncSelection" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2022-01-16 20:29:03 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::syncSelectionWithNets( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SyncSelectionWithNets" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2022-01-16 20:29:03 +00:00
|
|
|
|
2023-06-28 22:19:43 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectNet( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectNet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Select All Tracks in Net" ) )
|
2023-06-28 22:19:43 +00:00
|
|
|
.Tooltip( _( "Selects all tracks & vias belonging to the same net." ) )
|
|
|
|
.Parameter<int>( 0 ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-06-28 22:19:43 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::deselectNet( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.DeselectNet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Deselect All Tracks in Net" ) )
|
2023-06-28 22:19:43 +00:00
|
|
|
.Tooltip( _( "Deselects all tracks & vias belonging to the same net." ) )
|
|
|
|
.Parameter<int>( 0 ) );
|
2020-09-16 23:09:12 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectUnconnected( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectUnconnected" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'O' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Select All Unconnected Footprints" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Selects all unconnected footprints belonging to each selected net." ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::grabUnconnected( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.GrabUnconnected" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'O' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Grab Nearest Unconnected Footprints" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Selects and initiates moving the nearest unconnected footprint on each selected net." ) ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::selectOnSheetFromEeschema( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectOnSheet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Sheet" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Selects all footprints and tracks in the schematic sheet" ) )
|
|
|
|
.Icon( BITMAPS::select_same_sheet ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::selectSameSheet( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectSameSheet" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Items in Same Hierarchical Sheet" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Selects all footprints and tracks in the same schematic sheet" ) )
|
|
|
|
.Icon( BITMAPS::select_same_sheet ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::selectOnSchematic( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.SelectOnSchematic" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Select on Schematic" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Selects corresponding items in Schematic editor" ) )
|
|
|
|
.Icon( BITMAPS::select_same_sheet ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::filterSelection( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveSelection.FilterSelection" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Filter Selected Items..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Remove items from the selection by type" ) )
|
|
|
|
.Icon( BITMAPS::filter ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
// ZONE_FILLER_TOOL
|
|
|
|
//
|
2023-07-12 21:25:15 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneFill( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ZoneFiller.zoneFill" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Draft Fill Selected Zone(s)" ) )
|
2023-07-12 21:25:15 +00:00
|
|
|
.Tooltip( _( "Update copper fill of selected zone(s) without regard to other interacting zones" ) )
|
|
|
|
.Icon( BITMAPS::fill_zone )
|
|
|
|
.Parameter<ZONE*>( nullptr ) );
|
2022-11-29 17:22:25 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneFillAll( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ZoneFiller.zoneFillAll" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'B' )
|
|
|
|
.LegacyHotkeyName( "Fill or Refill All Zones" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Fill All Zones" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Update copper fill of all zones" ) )
|
|
|
|
.Icon( BITMAPS::fill_zone ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneFillDirty( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ZoneFiller.zoneFillDirty" )
|
|
|
|
.Scope( AS_CONTEXT ) );
|
2022-02-24 09:59:54 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneUnfill( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ZoneFiller.zoneUnfill" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Unfill Selected Zone(s)" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Remove copper fill from selected zone(s)" ) )
|
|
|
|
.Icon( BITMAPS::zone_unfill ) );
|
2022-11-29 17:22:25 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::zoneUnfillAll( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.ZoneFiller.zoneUnfillAll" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + 'B' )
|
|
|
|
.LegacyHotkeyName( "Remove Filled Areas in All Zones" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Unfill All Zones" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Remove copper fill from all zones" ) )
|
|
|
|
.Icon( BITMAPS::zone_unfill ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
// AUTOPLACER_TOOL
|
|
|
|
//
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::autoplaceSelectedComponents( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Autoplacer.autoplaceSelected" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Place Selected Footprints" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Performs automatic placement of selected components" ) ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::autoplaceOffboardComponents( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Autoplacer.autoplaceOffboard" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Place Off-Board Footprints" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Performs automatic placement of components outside board area" ) ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
// ROUTER_TOOL
|
|
|
|
//
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routeSingleTrack( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.SingleTrack" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'X' )
|
|
|
|
.LegacyHotkeyName( "Add New Track" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Route Single Track" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Route tracks" ) )
|
|
|
|
.Icon( BITMAPS::add_tracks )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::routeDiffPair( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.DiffPair" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '6' )
|
2019-06-27 10:29:05 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Route Differential Pair (Modern Toolset only)" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Route Differential Pair" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Route differential pairs" ) )
|
|
|
|
.Icon( BITMAPS::ps_diff_pair )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_ROUTE_DIFF_PAIR ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerSettingsDialog( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.SettingsDialog" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_CTRL + '<' )
|
|
|
|
.LegacyHotkeyName( "Routing Options" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Interactive Router Settings..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Open Interactive Router settings" ) )
|
|
|
|
.Icon( BITMAPS::tools ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerDiffPairDialog( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.DiffPairDialog" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Differential Pair Dimensions..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Open Differential Pair Dimension settings" ) )
|
|
|
|
.Icon( BITMAPS::ps_diff_pair_gap ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerHighlightMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.HighlightMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Router Highlight Mode" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Switch router to highlight mode" ) )
|
|
|
|
.Flags( AF_NONE )
|
|
|
|
.Parameter( PNS::RM_MarkObstacles ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::routerShoveMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.ShoveMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Router Shove Mode" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Switch router to shove mode" ) )
|
|
|
|
.Flags( AF_NONE )
|
|
|
|
.Parameter( PNS::RM_Shove ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::routerWalkaroundMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.WalkaroundMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Router Walkaround Mode" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Switch router to walkaround mode" ) )
|
|
|
|
.Flags( AF_NONE )
|
|
|
|
.Parameter( PNS::RM_Walkaround ) );
|
2020-04-19 14:39:16 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::cycleRouterMode( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.CycleRouterMode" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Cycle Router Mode" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Cycle router to the next mode" ) ) );
|
2021-10-28 22:46:05 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::selectLayerPair( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.SelectLayerPair" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Set Layer Pair..." ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Change active layer pair for routing" ) )
|
|
|
|
.Icon( BITMAPS::select_layer_pair )
|
|
|
|
.Flags( AF_ACTIVATE ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2024-02-08 14:21:28 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::tuneSingleTrack( TOOL_ACTION_ARGS()
|
2022-09-28 01:15:19 +00:00
|
|
|
.Name( "pcbnew.LengthTuner.TuneSingleTrack" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '7' )
|
2019-06-27 10:29:05 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Tune Single Track (Modern Toolset only)" )
|
2024-02-22 08:54:52 +00:00
|
|
|
.FriendlyName( _( "Tune Length of a Single Track" ) )
|
2024-02-08 14:21:28 +00:00
|
|
|
.Tooltip( _( "Tune length of a single track" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Icon( BITMAPS::ps_tune_length )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_TUNE_SINGLE ) );
|
|
|
|
|
2024-02-08 14:21:28 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::tuneDiffPair( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.LengthTuner.TuneDiffPair" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '8' )
|
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
|
|
|
.LegacyHotkeyName( "Tune Differential Pair Length (Modern Toolset only)" )
|
2024-02-22 08:54:52 +00:00
|
|
|
.FriendlyName( _( "Tune Length of a Differential Pair" ) )
|
2024-02-08 14:21:28 +00:00
|
|
|
.Tooltip( _( "Tune length of a differential pair" ) )
|
|
|
|
.Icon( BITMAPS::ps_diff_pair_tune_length )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR ) );
|
|
|
|
|
2023-10-11 16:10:48 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::tuneSkew( TOOL_ACTION_ARGS()
|
2022-09-28 01:15:19 +00:00
|
|
|
.Name( "pcbnew.LengthTuner.TuneDiffPairSkew" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( '9' )
|
2019-06-27 10:29:05 +00:00
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
2022-09-28 01:15:19 +00:00
|
|
|
.LegacyHotkeyName( "Tune Differential Pair Skew (Modern Toolset only)" )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Tune Skew of a Differential Pair" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Tune skew of a differential pair" ) )
|
|
|
|
.Icon( BITMAPS::ps_diff_pair_tune_phase )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_TUNE_DIFF_PAIR_SKEW ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerInlineDrag( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.InlineDrag" )
|
2023-09-30 19:53:35 +00:00
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.Parameter<int>( PNS::DM_ANY ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerUndoLastSegment( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.UndoLastSegment" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( WXK_BACK )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Undo Last Segment" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Walks the current track back one segment." ) ) );
|
2021-06-19 10:36:37 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerContinueFromEnd( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.ContinueFromEnd" )
|
|
|
|
.Scope( AS_CONTEXT )
|
2024-02-11 15:58:38 +00:00
|
|
|
.DefaultHotkey( MD_CTRL + 'E' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Route From Other End" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Commits current segments and starts next segment from nearest ratsnest end." ) ) );
|
2022-07-14 16:38:39 +00:00
|
|
|
|
2023-07-10 18:41:03 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerAttemptFinish( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.AttemptFinish" )
|
|
|
|
.Scope( AS_CONTEXT )
|
|
|
|
.DefaultHotkey( 'F' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Attempt Finish" ) )
|
2023-07-10 18:41:03 +00:00
|
|
|
.Tooltip( _( "Attempts to complete current route to nearest ratsnest end." ) )
|
|
|
|
.Parameter<bool*>( nullptr ) );
|
2022-07-14 16:38:39 +00:00
|
|
|
|
2022-09-28 01:15:19 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::routerRouteSelected( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.RouteSelected" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'X' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Route Selected" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Sequentially route selected items from ratsnest anchor." ) )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::routerRouteSelectedFromEnd( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.RouteSelectedFromEnd" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'E' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Route Selected From Other End" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Sequentially route selected items from other end of ratsnest anchor." ) )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::routerAutorouteSelected( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.Autoroute" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( MD_SHIFT + 'F' )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Attempt Finish Selected (Autoroute)" ) )
|
2022-09-28 01:15:19 +00:00
|
|
|
.Tooltip( _( "Sequentially attempt to automatically route all selected pads." ) )
|
|
|
|
.Flags( AF_ACTIVATE )
|
|
|
|
.Parameter( PNS::PNS_MODE_ROUTE_SINGLE ) );
|
2022-08-22 12:19:22 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::breakTrack( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.BreakTrack" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Break Track" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Splits the track segment into two segments connected at the cursor position." ) )
|
|
|
|
.Icon( BITMAPS::break_line ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::drag45Degree( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.Drag45Degree" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'D' )
|
|
|
|
.LegacyHotkeyName( "Drag Track Keep Slope" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Drag 45 Degree Mode" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Drags the track segment while keeping connected tracks at 45 degrees." ) )
|
|
|
|
.Icon( BITMAPS::drag_segment_withslope ) );
|
2019-06-17 00:34:21 +00:00
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::dragFreeAngle( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.InteractiveRouter.DragFreeAngle" )
|
|
|
|
.Scope( AS_GLOBAL )
|
|
|
|
.DefaultHotkey( 'G' )
|
|
|
|
.LegacyHotkeyName( "Drag Item" )
|
2023-12-13 13:15:19 +00:00
|
|
|
.FriendlyName( _( "Drag Free Angle" ) )
|
2023-08-28 18:54:58 +00:00
|
|
|
.Tooltip( _( "Drags the nearest joint in the track without restricting the track angle." ) )
|
2024-02-09 18:14:17 +00:00
|
|
|
.Icon( BITMAPS::drag_segment ) );
|
2021-05-11 15:22:42 +00:00
|
|
|
|
|
|
|
|
2023-10-06 17:04:00 +00:00
|
|
|
// GENERATOR_TOOL
|
|
|
|
//
|
|
|
|
|
2023-10-19 00:31:01 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::regenerateAllTuning( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.regenerateAllTuning" )
|
2023-10-06 17:04:00 +00:00
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Update All Tuning Patterns" ) )
|
2023-10-19 00:31:01 +00:00
|
|
|
.Tooltip( _( "Attempt to re-tune existing tuning patterns within their bounds" ) )
|
|
|
|
.Icon( BITMAPS::router_len_tuner )
|
|
|
|
.Parameter( wxString( wxS( "tuning_pattern" ) ) ) );
|
2023-10-06 17:04:00 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::regenerateAll( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.regenerateAll" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Rebuild All Generators" ) )
|
2023-10-06 17:04:00 +00:00
|
|
|
.Tooltip( _( "Rebuilds geometry of all generators" ) )
|
2023-10-19 00:31:01 +00:00
|
|
|
.Icon( BITMAPS::refresh )
|
|
|
|
.Parameter( wxString( wxS( "*" ) ) ) );
|
2023-10-06 17:04:00 +00:00
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::regenerateSelected( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.regenerateSelected" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Rebuild Selected Generators" ) )
|
2023-10-06 17:04:00 +00:00
|
|
|
.Tooltip( _( "Rebuilds geometry of selected generator(s)" ) )
|
|
|
|
.Icon( BITMAPS::refresh ) );
|
|
|
|
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::genStartEdit( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.genStartEdit" )
|
|
|
|
.Scope( AS_CONTEXT ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::genUpdateEdit( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.genUpdateEdit" )
|
|
|
|
.Scope( AS_CONTEXT ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::genPushEdit( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.genPushEdit" )
|
|
|
|
.Scope( AS_CONTEXT ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::genRevertEdit( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.genRevertEdit" )
|
|
|
|
.Scope( AS_CONTEXT ) );
|
|
|
|
|
|
|
|
TOOL_ACTION PCB_ACTIONS::genRemove( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.genRemove" )
|
|
|
|
.Scope( AS_CONTEXT ) );
|
|
|
|
|
|
|
|
|
2023-10-07 05:30:29 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::generatorsShowManager( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Generator.showManager" )
|
|
|
|
.Scope( AS_GLOBAL )
|
2023-10-27 22:40:35 +00:00
|
|
|
.FriendlyName( _( "Generators Manager" ) )
|
2023-10-07 05:30:29 +00:00
|
|
|
.Tooltip( _( "Show a manager dialog for Generator objects" ) )
|
|
|
|
.Icon( BITMAPS::pin_table ) );
|
|
|
|
|
|
|
|
|
2021-05-11 15:22:42 +00:00
|
|
|
// LENGTH_TUNER_TOOL
|
|
|
|
//
|
2024-04-24 09:51:03 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::lengthTunerSettings( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.LengthTuner.Settings" )
|
2024-05-24 14:47:48 +00:00
|
|
|
.Scope( AS_GLOBAL )
|
2024-04-24 09:51:03 +00:00
|
|
|
.DefaultHotkey( MD_CTRL + 'L' )
|
|
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
|
|
|
.LegacyHotkeyName( "Length Tuning Settings (Modern Toolset only)" )
|
|
|
|
.MenuText( _( "Length Tuning Settings..." ) )
|
|
|
|
.Tooltip( _( "Displays tuning pattern properties dialog" ) )
|
|
|
|
.Icon( BITMAPS::router_len_tuner_setup ) );
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::ddAppendBoard( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.DdAppendBoard" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2022-09-14 22:28:09 +00:00
|
|
|
|
|
|
|
|
2023-08-28 18:54:58 +00:00
|
|
|
TOOL_ACTION PCB_ACTIONS::ddImportFootprint( TOOL_ACTION_ARGS()
|
|
|
|
.Name( "pcbnew.Control.ddImportFootprint" )
|
|
|
|
.Scope( AS_GLOBAL ) );
|
2023-08-17 13:25:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
const TOOL_EVENT PCB_EVENTS::SnappingModeChangedByKeyEvent( TC_MESSAGE, TA_ACTION,
|
|
|
|
"common.Interactive.snappingModeChangedByKey" );
|