mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 10:13:19 +02:00
Also make a shorter version of the version info string and some other shortening edits to the issue template to fix occasional 500 errors thrown by Cloudflare due to excessively long URLs Fixes https://gitlab.com/kicad/code/kicad/-/issues/3953 Fixes https://gitlab.com/kicad/code/kicad/-/issues/4272
623 lines
22 KiB
C++
623 lines
22 KiB
C++
/*
|
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
|
*
|
|
* Copyright (C) 2019 CERN
|
|
* Copyright (C) 2019 KiCad Developers, see AUTHORS.txt for contributors.
|
|
*
|
|
* 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
|
|
*/
|
|
|
|
#include <fctsys.h>
|
|
#include <tool/actions.h>
|
|
#include <bitmaps.h>
|
|
#include <frame_type.h>
|
|
|
|
|
|
// 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
|
|
|
|
TOOL_ACTION ACTIONS::doNew( "common.Control.new",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'N', LEGACY_HK_NAME( "New" ),
|
|
_( "New..." ), _( "Create a new document in the editor" ),
|
|
new_generic_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::newLibrary( "common.Control.newLibrary",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "New Library..." ), _( "Create a new library folder" ),
|
|
new_generic_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::addLibrary( "common.Control.addLibrary",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Add Library..." ), _( "Add an existing library folder" ),
|
|
add_library_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::open( "common.Control.open",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'O', LEGACY_HK_NAME( "Open" ),
|
|
_( "Open..." ), _( "Open existing document" ),
|
|
directory_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::save( "common.Control.save",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'S', LEGACY_HK_NAME( "Save" ),
|
|
_( "Save" ), _( "Save changes" ),
|
|
save_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::saveAs( "common.Control.saveAs",
|
|
AS_GLOBAL,
|
|
MD_SHIFT + MD_CTRL + 'S', LEGACY_HK_NAME( "Save As" ),
|
|
_( "Save As..." ), _( "Save current document to another location" ),
|
|
save_as_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::saveCopyAs( "common.Control.saveCopyAs",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Save Copy As..." ), _( "Save a copy of the current document to another location" ),
|
|
save_as_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::saveAll( "common.Control.saveAll",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Save All" ), _( "Save all changes" ),
|
|
save_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::revert( "common.Control.revert",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Revert" ), _( "Throw away changes" ),
|
|
undo_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::pageSettings( "common.Control.pageSettings",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Page Settings..." ), _( "Settings for paper size and title block info" ),
|
|
sheetset_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::print( "common.Control.print",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'P', LEGACY_HK_NAME( "Print" ),
|
|
_( "Print..." ), _( "Print" ),
|
|
print_button_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::plot( "common.Control.plot",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Plot..." ), _( "Plot" ),
|
|
plot_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::quit( "common.Control.quit",
|
|
AS_GLOBAL,
|
|
0, "", // Not currently in use due to wxWidgets crankiness
|
|
_( "Quit" ), _( "Close the current editor" ),
|
|
exit_xpm );
|
|
|
|
// Generic Edit Actions
|
|
TOOL_ACTION ACTIONS::cancelInteractive( "common.Interactive.cancel",
|
|
AS_GLOBAL,
|
|
0, "", // ESC key is handled in the dispatcher
|
|
_( "Cancel" ), _( "Cancel current tool" ),
|
|
cancel_xpm, AF_NONE );
|
|
|
|
TOOL_ACTION ACTIONS::showContextMenu( "common.Control.showContextMenu",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Show Context Menu" ), _( "Perform the right-mouse-button action" ),
|
|
nullptr, AF_NONE, (void*) CURSOR_RIGHT_CLICK );
|
|
|
|
TOOL_ACTION ACTIONS::updateMenu( "common.Interactive.updateMenu",
|
|
AS_GLOBAL );
|
|
|
|
TOOL_ACTION ACTIONS::undo( "common.Interactive.undo",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'Z', LEGACY_HK_NAME( "Undo" ),
|
|
_( "Undo" ), _( "Undo last edit" ),
|
|
undo_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::redo( "common.Interactive.redo",
|
|
AS_GLOBAL,
|
|
#if defined( __WXMAC__ )
|
|
MD_SHIFT + MD_CTRL + 'Z',
|
|
#else
|
|
MD_CTRL + 'Y',
|
|
#endif
|
|
LEGACY_HK_NAME( "Redo" ),
|
|
_( "Redo" ), _( "Redo last edit" ),
|
|
redo_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::cut( "common.Interactive.cut",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'X', LEGACY_HK_NAME( "Cut" ),
|
|
_( "Cut" ), _( "Cut selected item(s) to clipboard" ),
|
|
cut_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::copy( "common.Interactive.copy",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'C', LEGACY_HK_NAME( "Copy" ),
|
|
_( "Copy" ), _( "Copy selected item(s) to clipboard" ),
|
|
copy_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::paste( "common.Interactive.paste",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'V', LEGACY_HK_NAME( "Paste" ),
|
|
_( "Paste" ), _( "Paste clipboard into schematic" ),
|
|
paste_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::pasteSpecial( "common.Interactive.pasteSpecial",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Paste Special..." ), _( "Paste clipboard into schematic with options" ),
|
|
paste_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::duplicate( "common.Interactive.duplicate",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'D', LEGACY_HK_NAME( "Duplicate" ),
|
|
_( "Duplicate" ), _( "Duplicates the selected item(s)" ),
|
|
duplicate_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::doDelete( "common.Interactive.delete",
|
|
AS_GLOBAL,
|
|
WXK_DELETE, LEGACY_HK_NAME( "Delete Item" ),
|
|
_( "Delete" ), _( "Deletes selected item(s)" ),
|
|
delete_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::deleteTool( "common.Interactive.deleteTool",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Interactive Delete Tool" ), _( "Delete clicked items" ),
|
|
delete_xpm, AF_ACTIVATE );
|
|
|
|
TOOL_ACTION ACTIONS::activatePointEditor( "common.Control.activatePointEditor",
|
|
AS_GLOBAL );
|
|
|
|
TOOL_ACTION ACTIONS::find( "common.Interactive.find",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'F', LEGACY_HK_NAME( "Find" ),
|
|
_( "Find" ), _( "Find text" ),
|
|
find_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::findAndReplace( "common.Interactive.findAndReplace",
|
|
AS_GLOBAL,
|
|
MD_CTRL + MD_ALT + 'F', LEGACY_HK_NAME( "Find and Replace" ),
|
|
_( "Find and Replace" ), _( "Find and replace text" ),
|
|
find_replace_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::findNext( "common.Interactive.findNext",
|
|
AS_GLOBAL,
|
|
WXK_F5, LEGACY_HK_NAME( "Find Next" ),
|
|
_( "Find Next" ), _( "Find next match" ),
|
|
find_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::findNextMarker( "common.Interactive.findNextMarker",
|
|
AS_GLOBAL,
|
|
MD_SHIFT + WXK_F5, LEGACY_HK_NAME( "Find Next Marker" ),
|
|
_( "Find Next Marker" ), "",
|
|
find_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::replaceAndFindNext( "common.Interactive.replaceAndFindNext",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Replace and Find Next" ), _( "Replace current match and find next" ),
|
|
find_replace_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::replaceAll( "common.Interactive.replaceAll",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Replace All" ), _( "Replace all matches" ),
|
|
find_replace_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::updateFind( "common.Control.updateFind",
|
|
AS_GLOBAL );
|
|
|
|
// View Controls
|
|
TOOL_ACTION ACTIONS::zoomRedraw( "common.Control.zoomRedraw",
|
|
AS_GLOBAL,
|
|
#if defined( __WXMAC__ )
|
|
MD_CTRL + 'R',
|
|
#else
|
|
WXK_F3,
|
|
#endif
|
|
LEGACY_HK_NAME( "Zoom Redraw" ),
|
|
_( "Refresh" ), _( "Refresh" ),
|
|
zoom_redraw_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomFitScreen( "common.Control.zoomFitScreen",
|
|
AS_GLOBAL,
|
|
#if defined( __WXMAC__ )
|
|
MD_CTRL + '0',
|
|
#else
|
|
WXK_HOME,
|
|
#endif
|
|
LEGACY_HK_NAME( "Zoom Auto" ),
|
|
_( "Zoom to Fit" ), _( "Zoom to Fit" ),
|
|
zoom_fit_in_page_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomIn( "common.Control.zoomIn",
|
|
AS_GLOBAL,
|
|
#if defined( __WXMAC__ )
|
|
MD_CTRL + '+',
|
|
#else
|
|
WXK_F1,
|
|
#endif
|
|
LEGACY_HK_NAME( "Zoom In" ),
|
|
_( "Zoom In at Cursor" ), _( "Zoom In at Cursor" ),
|
|
zoom_in_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomOut( "common.Control.zoomOut",
|
|
AS_GLOBAL,
|
|
#if defined( __WXMAC__ )
|
|
MD_CTRL + '-',
|
|
#else
|
|
WXK_F2,
|
|
#endif
|
|
LEGACY_HK_NAME( "Zoom Out" ),
|
|
_( "Zoom Out at Cursor" ), _( "Zoom Out at Cursor" ),
|
|
zoom_out_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomInCenter( "common.Control.zoomInCenter",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Zoom In" ), _( "Zoom In" ),
|
|
zoom_in_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomOutCenter( "common.Control.zoomOutCenter",
|
|
AS_GLOBAL,
|
|
0, "",
|
|
_( "Zoom Out" ), _( "Zoom Out" ),
|
|
zoom_out_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomCenter( "common.Control.zoomCenter",
|
|
AS_GLOBAL,
|
|
WXK_F4, LEGACY_HK_NAME( "Zoom Center" ),
|
|
_( "Center" ), _( "Center" ),
|
|
zoom_center_on_screen_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::zoomTool( "common.Control.zoomTool",
|
|
AS_GLOBAL,
|
|
MD_CTRL + WXK_F5, LEGACY_HK_NAME( "Zoom to Selection" ),
|
|
_( "Zoom to Selection" ), _( "Zoom to Selection" ),
|
|
zoom_area_xpm, AF_ACTIVATE );
|
|
|
|
TOOL_ACTION ACTIONS::zoomPreset( "common.Control.zoomPreset",
|
|
AS_GLOBAL );
|
|
|
|
TOOL_ACTION ACTIONS::centerContents( "common.Control.centerContents",
|
|
AS_GLOBAL );
|
|
|
|
// Cursor control
|
|
TOOL_ACTION ACTIONS::cursorUp( "common.Control.cursorUp",
|
|
AS_GLOBAL,
|
|
WXK_UP, "",
|
|
_( "Cursor Up" ), "",
|
|
nullptr, AF_NONE, (void*) CURSOR_UP );
|
|
|
|
TOOL_ACTION ACTIONS::cursorDown( "common.Control.cursorDown",
|
|
AS_GLOBAL,
|
|
WXK_DOWN, "",
|
|
_( "Cursor Down" ), "" ,
|
|
nullptr, AF_NONE, (void*) CURSOR_DOWN );
|
|
|
|
TOOL_ACTION ACTIONS::cursorLeft( "common.Control.cursorLeft",
|
|
AS_GLOBAL,
|
|
WXK_LEFT, "",
|
|
_( "Cursor Left" ), "" ,
|
|
nullptr, AF_NONE, (void*) CURSOR_LEFT );
|
|
|
|
TOOL_ACTION ACTIONS::cursorRight( "common.Control.cursorRight",
|
|
AS_GLOBAL,
|
|
WXK_RIGHT, "",
|
|
_( "Cursor Right" ), "" ,
|
|
nullptr, AF_NONE, (void*) CURSOR_RIGHT );
|
|
|
|
|
|
TOOL_ACTION ACTIONS::cursorUpFast( "common.Control.cursorUpFast",
|
|
AS_GLOBAL,
|
|
MD_CTRL + WXK_UP, "",
|
|
_( "Cursor Up Fast" ), "",
|
|
nullptr, AF_NONE, (void*) ( CURSOR_UP | CURSOR_FAST_MOVE ) );
|
|
|
|
TOOL_ACTION ACTIONS::cursorDownFast( "common.Control.cursorDownFast",
|
|
AS_GLOBAL,
|
|
MD_CTRL + WXK_DOWN, "",
|
|
_( "Cursor Down Fast" ), "" ,
|
|
nullptr, AF_NONE, (void*) ( CURSOR_DOWN | CURSOR_FAST_MOVE ) );
|
|
|
|
TOOL_ACTION ACTIONS::cursorLeftFast( "common.Control.cursorLeftFast",
|
|
AS_GLOBAL,
|
|
MD_CTRL + WXK_LEFT, "",
|
|
_( "Cursor Left Fast" ), "" ,
|
|
nullptr, AF_NONE, (void*) ( CURSOR_LEFT | CURSOR_FAST_MOVE ) );
|
|
|
|
TOOL_ACTION ACTIONS::cursorRightFast( "common.Control.cursorRightFast",
|
|
AS_GLOBAL,
|
|
MD_CTRL + WXK_RIGHT, "",
|
|
_( "Cursor Right Fast" ), "" ,
|
|
nullptr, AF_NONE, (void*) ( CURSOR_RIGHT | CURSOR_FAST_MOVE ) );
|
|
|
|
TOOL_ACTION ACTIONS::cursorClick( "common.Control.cursorClick",
|
|
AS_GLOBAL,
|
|
WXK_RETURN, LEGACY_HK_NAME( "Mouse Left Click" ),
|
|
_( "Click" ), _( "Performs left mouse button click" ),
|
|
nullptr, AF_NONE, (void*) CURSOR_CLICK );
|
|
|
|
TOOL_ACTION ACTIONS::cursorDblClick( "common.Control.cursorDblClick",
|
|
AS_GLOBAL,
|
|
WXK_END, LEGACY_HK_NAME( "Mouse Left Double Click" ),
|
|
_( "Double-click" ), _( "Performs left mouse button double-click" ),
|
|
nullptr, AF_NONE, (void*) CURSOR_DBL_CLICK );
|
|
|
|
TOOL_ACTION ACTIONS::refreshPreview( "common.Control.refreshPreview",
|
|
AS_GLOBAL );
|
|
|
|
TOOL_ACTION ACTIONS::pinLibrary( "common.Control.pinLibrary",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Pin Library" ), "Keep the library at the top of the list",
|
|
flag_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::unpinLibrary( "common.Control.unpinLibrary",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Unpin Library" ), "No longer keep the library at the top of the list",
|
|
flag_remove_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::panUp( "common.Control.panUp",
|
|
AS_GLOBAL,
|
|
MD_SHIFT + WXK_UP, "",
|
|
_( "Pan Up" ), "",
|
|
nullptr, AF_NONE, (void*) CURSOR_UP );
|
|
|
|
TOOL_ACTION ACTIONS::panDown( "common.Control.panDown",
|
|
AS_GLOBAL,
|
|
MD_SHIFT + WXK_DOWN, "",
|
|
_( "Pan Down" ), "" ,
|
|
nullptr, AF_NONE, (void*) CURSOR_DOWN );
|
|
|
|
TOOL_ACTION ACTIONS::panLeft( "common.Control.panLeft",
|
|
AS_GLOBAL,
|
|
MD_SHIFT + WXK_LEFT, "",
|
|
_( "Pan Left" ), "" ,
|
|
nullptr, AF_NONE, (void*) CURSOR_LEFT );
|
|
|
|
TOOL_ACTION ACTIONS::panRight( "common.Control.panRight",
|
|
AS_GLOBAL,
|
|
MD_SHIFT + WXK_RIGHT, "",
|
|
_( "Pan Right" ), "" ,
|
|
nullptr, AF_NONE, (void*) CURSOR_RIGHT );
|
|
|
|
// Grid control
|
|
TOOL_ACTION ACTIONS::gridFast1( "common.Control.gridFast1",
|
|
AS_GLOBAL,
|
|
MD_ALT + '1', LEGACY_HK_NAME( "Switch Grid To Fast Grid1" ),
|
|
_( "Switch to Fast Grid 1" ), "" );
|
|
|
|
TOOL_ACTION ACTIONS::gridFast2( "common.Control.gridFast2",
|
|
AS_GLOBAL,
|
|
MD_ALT + '2', LEGACY_HK_NAME( "Switch Grid To Fast Grid2" ),
|
|
_( "Switch to Fast Grid 2" ), "" );
|
|
|
|
TOOL_ACTION ACTIONS::gridNext( "common.Control.gridNext",
|
|
AS_GLOBAL,
|
|
'N', LEGACY_HK_NAME( "Switch Grid To Next" ),
|
|
_("Switch to Next Grid" ), "" );
|
|
|
|
TOOL_ACTION ACTIONS::gridPrev( "common.Control.gridPrev",
|
|
AS_GLOBAL, MD_SHIFT + 'N', LEGACY_HK_NAME( "Switch Grid To Previous" ),
|
|
_( "Switch to Previous Grid" ), "" );
|
|
|
|
TOOL_ACTION ACTIONS::gridSetOrigin( "common.Control.gridSetOrigin",
|
|
AS_GLOBAL,
|
|
'S', LEGACY_HK_NAME( "Set Grid Origin" ),
|
|
_( "Grid Origin" ), _( "Set the grid origin point" ),
|
|
grid_select_axis_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::gridResetOrigin( "common.Control.gridResetOrigin",
|
|
AS_GLOBAL,
|
|
'Z', LEGACY_HK_NAME( "Reset Grid Origin" ),
|
|
_( "Reset Grid Origin" ), "" );
|
|
|
|
TOOL_ACTION ACTIONS::gridPreset( "common.Control.gridPreset",
|
|
AS_GLOBAL );
|
|
|
|
TOOL_ACTION ACTIONS::toggleGrid( "common.Control.toggleGrid",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Show Grid" ), _( "Display grid dots or lines in the edit window" ),
|
|
grid_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::gridProperties( "common.Control.gridProperties",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Grid Properties..." ), _( "Set grid dimensions" ),
|
|
grid_select_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::imperialUnits( "common.Control.imperialUnits",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Imperial" ), _( "Use inches and mils" ),
|
|
unit_inch_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::metricUnits( "common.Control.metricUnits",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Metric" ), _( "Use millimeters" ),
|
|
unit_mm_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::toggleUnits( "common.Control.toggleUnits",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'U', LEGACY_HK_NAME( "Switch Units" ),
|
|
_( "Switch units" ), _( "Switch between inches and millimeters" ),
|
|
unit_mm_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::togglePolarCoords( "common.Control.togglePolarCoords",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Polar Coordinates" ), _( "Switch between polar and cartesian coordinate systems" ),
|
|
polar_coord_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::resetLocalCoords( "common.Control.resetLocalCoords",
|
|
AS_GLOBAL,
|
|
' ', LEGACY_HK_NAME( "Reset Local Coordinates" ),
|
|
_( "Reset Local Coordinates" ), "" );
|
|
|
|
TOOL_ACTION ACTIONS::toggleCursor( "common.Control.toggleCursor",
|
|
AS_GLOBAL,
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
|
MD_CTRL + MD_SHIFT + 'X', LEGACY_HK_NAME( "Toggle Cursor Display (Modern Toolset only)" ),
|
|
_( "Always Show Cursor" ), _( "Display crosshairs even in selection tool" ),
|
|
cursor_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::toggleCursorStyle( "common.Control.toggleCursorStyle",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Full-Window Crosshairs" ), _( "Switch display of full-window crosshairs" ),
|
|
cursor_shape_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::highContrastMode( "common.Control.highContrastMode",
|
|
AS_GLOBAL,
|
|
MD_CTRL + 'H', LEGACY_HK_NAME( "Toggle High Contrast Mode" ),
|
|
_( "High Contrast Mode" ), _( "Use high contrast display mode" ),
|
|
contrast_mode_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::selectionTool( "common.InteractiveSelection.selectionTool",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Select item(s)" ), "",
|
|
cursor_xpm, AF_ACTIVATE );
|
|
|
|
TOOL_ACTION ACTIONS::measureTool( "common.InteractiveEdit.measureTool",
|
|
AS_GLOBAL,
|
|
// Don't be tempted to remove "Modern Toolset only". It's in the legacy property name.
|
|
MD_CTRL + MD_SHIFT + 'M', LEGACY_HK_NAME( "Measure Distance (Modern Toolset only)" ),
|
|
_( "Measure Tool" ), _( "Interactively measure distance between points" ),
|
|
measurement_xpm, AF_ACTIVATE );
|
|
|
|
TOOL_ACTION ACTIONS::pickerTool( "common.InteractivePicker.pickerTool",
|
|
AS_GLOBAL, 0, "", "", "", NULL, AF_ACTIVATE );
|
|
|
|
TOOL_ACTION ACTIONS::show3DViewer( "common.Control.show3DViewer",
|
|
AS_GLOBAL,
|
|
MD_ALT + '3', LEGACY_HK_NAME( "3D Viewer" ),
|
|
_( "3D Viewer" ), _( "Show 3D viewer window" ),
|
|
three_d_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::showSymbolBrowser( "common.Control.showSymbolBrowser",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Symbol Library Browser" ), _( "Browse symbol libraries" ),
|
|
library_browse_xpm, AF_NONE, (void*) FRAME_SCH_VIEWER );
|
|
|
|
TOOL_ACTION ACTIONS::showSymbolEditor( "common.Control.showSymbolEditor",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Symbol Editor" ), _( "Create, delete and edit symbols" ),
|
|
libedit_xpm, AF_NONE, (void*) FRAME_SCH_LIB_EDITOR );
|
|
|
|
TOOL_ACTION ACTIONS::showFootprintBrowser( "common.Control.showFootprintBrowser",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Footprint Library Browser" ), _( "Browse footprint libraries" ),
|
|
modview_icon_xpm, AF_NONE, (void*) FRAME_FOOTPRINT_VIEWER );
|
|
|
|
TOOL_ACTION ACTIONS::showFootprintEditor( "common.Control.showFootprintEditor",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Footprint Editor" ), _( "Create, delete and edit footprints" ),
|
|
module_editor_xpm, AF_NONE, (void*) FRAME_FOOTPRINT_EDITOR );
|
|
|
|
TOOL_ACTION ACTIONS::updatePcbFromSchematic( "common.Control.updatePcbFromSchematic",
|
|
AS_GLOBAL,
|
|
WXK_F8, LEGACY_HK_NAME( "Update PCB from Schematic" ),
|
|
_( "Update PCB from Schematic..." ), _( "Push changes from schematic to PCB" ),
|
|
update_pcb_from_sch_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::updateSchematicFromPcb( "common.Control.updateSchematicFromPCB", AS_GLOBAL, 0,
|
|
LEGACY_HK_NAME( "Update Schematic from PCB" ), _( "Update Schematic from PCB..." ),
|
|
_( "Push changes from PCB to Schematic" ), update_sch_from_pcb_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::acceleratedGraphics( "common.Control.acceleratedGraphics",
|
|
AS_GLOBAL,
|
|
#ifdef __WXMAC__
|
|
MD_ALT + WXK_F11,
|
|
#else
|
|
WXK_F11,
|
|
#endif
|
|
LEGACY_HK_NAME( "Switch to Modern Toolset with hardware-accelerated graphics (recommended)" ),
|
|
_( "Accelerated Graphics" ), _( "Use hardware-accelerated graphics (recommended)" ),
|
|
tools_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::standardGraphics( "common.Control.standardGraphics",
|
|
AS_GLOBAL,
|
|
#ifdef __WXMAC__
|
|
MD_ALT + WXK_F12,
|
|
#else
|
|
WXK_F12,
|
|
#endif
|
|
LEGACY_HK_NAME( "Switch to Modern Toolset with software graphics (fall-back)" ),
|
|
_( "Standard Graphics" ), _( "Use software graphics (fall-back)" ),
|
|
tools_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::configurePaths( "common.SuiteControl.configurePaths",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Configure Paths..." ), _( "Edit path configuration environment variables" ),
|
|
path_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::showSymbolLibTable( "common.SuiteControl.showSymbolLibTable",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Manage Symbol Libraries..." ),
|
|
_( "Edit the global and project symbol library lists" ),
|
|
library_table_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::showFootprintLibTable( "common.SuiteControl.showFootprintLibTable",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Manage Footprint Libraries..." ),
|
|
_( "Edit the global and project footprint library lists" ),
|
|
library_table_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::gettingStarted( "common.SuiteControl.gettingStarted",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Getting Started with KiCad" ),
|
|
_( "Open \"Getting Started in KiCad\" guide for beginners" ),
|
|
help_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::help( "common.SuiteControl.help",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Help" ),
|
|
_( "Open product documentation in a web browser" ),
|
|
online_help_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::listHotKeys( "common.SuiteControl.listHotKeys",
|
|
AS_GLOBAL,
|
|
MD_CTRL + WXK_F1, LEGACY_HK_NAME( "List Hotkeys" ),
|
|
_( "List Hotkeys..." ),
|
|
_( "Displays current hotkeys table and corresponding commands" ),
|
|
hotkeys_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::getInvolved( "common.SuiteControl.getInvolved",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Get Involved" ),
|
|
_( "Open \"Contribute to KiCad\" in a web browser" ),
|
|
info_xpm );
|
|
|
|
TOOL_ACTION ACTIONS::reportBug( "common.SuiteControl.reportBug",
|
|
AS_GLOBAL, 0, "",
|
|
_( "Report Bug" ),
|
|
_( "Report a problem with KiCad" ),
|
|
drc_xpm );
|
|
|
|
|
|
// System-wide selection Events
|
|
|
|
const TOOL_EVENT EVENTS::SelectedEvent( TC_MESSAGE, TA_ACTION, "common.Interactive.selected" );
|
|
const TOOL_EVENT EVENTS::UnselectedEvent( TC_MESSAGE, TA_ACTION, "common.Interactive.unselected" );
|
|
const TOOL_EVENT EVENTS::ClearedEvent( TC_MESSAGE, TA_ACTION, "common.Interactive.cleared" );
|
|
|
|
const TOOL_EVENT EVENTS::SelectedItemsModified( TC_MESSAGE, TA_ACTION, "common.Interactive.modified" );
|
|
|