KiCad PCB EDA Suite
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
pcb_edit_frame.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2010 Jean-Pierre Charras, jp.charras@wanadoo.fr
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software: you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef __PCB_EDIT_FRAME_H__
22#define __PCB_EDIT_FRAME_H__
23
24#include "pcb_base_edit_frame.h"
25#include "zones.h"
26#include <mail_type.h>
28#include <variant>
29
30class ACTION_PLUGIN;
31class PCB_SCREEN;
32class BOARD;
33class BOARD_COMMIT;
35class DESIGN_BLOCK;
37class FOOTPRINT;
38class PCB_TRACK;
39class PCB_VIA;
40class PAD;
41class PCB_SELECTION;
42class PCB_TARGET;
43class PCB_GROUP;
45class DRC;
46class DIALOG_FIND;
47class DIALOG_PLOT;
48class ZONE;
51class SELECTION;
52class PCB_MARKER;
53class BOARD_ITEM;
54class NETLIST;
55class REPORTER;
56struct PARSE_ERROR;
57class IO_ERROR;
58class FP_LIB_TABLE;
60class ACTION_MENU;
61class TOOL_ACTION;
64
65#ifdef KICAD_IPC_API
67class API_HANDLER_PCB;
69#endif
70
71enum LAST_PATH_TYPE : unsigned int;
72
73namespace PCB { struct IFACE; } // KIFACE is in pcbnew.cpp
74
81{
82public:
83 virtual ~PCB_EDIT_FRAME();
84
93 void LoadFootprints( NETLIST& aNetlist, REPORTER& aReporter );
94
95 void OnQuit( wxCommandEvent& event );
96
102 bool IsContentModified() const override;
103
108
113
118 void UpdateUserInterface();
119
120 void HardRedraw() override;
121
125 void RebuildAndRefresh();
126
135 void ExecuteRemoteCommand( const char* cmdline ) override;
136
137 void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
138
142 std::vector<BOARD_ITEM*> FindItemsFromSyncSelection( std::string syncStr );
143
147 static const wxString SearchPaneName() { return wxT( "Search" ); }
148
152 void ShowFindDialog();
153
157 void FindNext( bool reverse = false );
158
162 void ToPlotter( int aID );
163
164 bool LayerManagerShown();
165 bool PropertiesShown();
166 bool NetInspectorShown();
167
168 void OnUpdateSelectViaSize( wxUpdateUIEvent& aEvent );
169 void OnUpdateSelectTrackWidth( wxUpdateUIEvent& aEvent );
170
171 void RunEeschema();
172
173 void UpdateTrackWidthSelectBox( wxChoice* aTrackWidthSelectBox, bool aShowNetclass,
174 bool aShowEdit );
175 void UpdateViaSizeSelectBox( wxChoice* aViaSizeSelectBox, bool aShowNetclass, bool aShowEdit );
176
180 EDA_ANGLE GetRotationAngle() const override;
181
185 COLOR4D GetGridColor() override;
186
190 void SetGridColor( const COLOR4D& aColor ) override;
191
196 static bool GetActionPluginButtonVisible( const wxString& aPluginPath, bool aPluginDefault );
197
202 static std::vector<std::variant<ACTION_PLUGIN*, const PLUGIN_ACTION*>> GetOrderedActionPlugins();
203
204 void SaveProjectLocalSettings() override;
205
212 bool LoadProjectSettings();
213
214 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
215
216 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
217
221 void LoadDrawingSheet();
222
228 wxString GetLastPath( LAST_PATH_TYPE aType );
229
241 void SetLastPath( LAST_PATH_TYPE aType, const wxString& aLastPath );
242
247 void ResolveDRCExclusions( bool aCreateMarkers );
248
249 void Process_Special_Functions( wxCommandEvent& event );
250 void Tracks_and_Vias_Size_Event( wxCommandEvent& event );
251
252
253
262 void ReCreateLayerBox( bool aForceResizeToolbar = true );
263
264
271 void OnModify() override;
272
276 void SetActiveLayer( PCB_LAYER_ID aLayer ) override
277 {
278 SetActiveLayer( aLayer, false );
279 }
280
286 void SetActiveLayer( PCB_LAYER_ID aLayer, bool aForceRedraw );
287
288 void OnDisplayOptionsChanged() override;
289
297 bool IsElementVisible( GAL_LAYER_ID aElement ) const;
298
306 void SetElementVisibility( GAL_LAYER_ID aElement, bool aNewState );
307
309 void ActivateGalCanvas() override;
310
311 void ShowBoardSetupDialog( const wxString& aInitialPage = wxEmptyString );
312
313 void PrepareLayerIndicator( bool aForceRebuild = false );
314
315 void ToggleLayersManager();
316
317 void ToggleNetInspector();
318
319 void ToggleSearch();
320
321 bool IsSearchPaneShown() { return m_auimgr.GetPane( SearchPaneName() ).IsShown(); }
322 void FocusSearch();
323
324 void ToggleLibraryTree() override;
325
343 int DoGenFootprintsPositionFile( const wxString& aFullFileName, bool aUnitsMM, bool aOnlySMD,
344 bool aNoTHItems, bool aExcludeDNP, bool aTopSide, bool aBottomSide,
345 bool aFormatCSV, bool aUseAuxOrigin, bool aNegateBottomX );
346
350 void GenFootprintsReport( wxCommandEvent& event );
351
355 void GenIPC2581File( wxCommandEvent& event );
356
360 void GenODBPPFiles( wxCommandEvent& event );
361
369 bool DoGenFootprintsReport( const wxString& aFullFilename, bool aUnitsMM );
370
371 void GenD356File( wxCommandEvent& event );
372
373 void OnFileHistory( wxCommandEvent& event );
374 void OnClearFileHistory( wxCommandEvent& aEvent );
375
381 void Files_io( wxCommandEvent& event );
382
396 bool Files_io_from_id( int aId );
397
410 bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
411
423 bool SavePcbFile( const wxString& aFileName, bool addToHistory = true,
424 bool aChangeProject = true );
425
438 bool SavePcbCopy( const wxString& aFileName, bool aCreateProject = false,
439 bool aHeadless = false );
440
448 bool Clear_Pcb( bool doAskAboutUnsavedChanges, bool aFinal = false );
449
451 void SetBoard( BOARD* aBoard, PROGRESS_REPORTER* aReporter = nullptr ) override
452 {
453 SetBoard( aBoard, true, aReporter );
454 }
455
456 void SetBoard( BOARD* aBoard, bool aBuildConnectivity, PROGRESS_REPORTER* aReporter = nullptr );
457
459 BOARD_ITEM_CONTAINER* GetModel() const override;
460
461 std::unique_ptr<GRID_HELPER> MakeGridHelper() override;
462
464 void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
465
471 void RecreateCmpFileFromBoard( wxCommandEvent& aEvent );
472
473 bool SaveBoardAsDesignBlock( const wxString& aLibraryName );
474
475 bool SaveSelectionAsDesignBlock( const wxString& aLibraryName );
476
477 bool SaveBoardToDesignBlock( const LIB_ID& aLibId );
478
479 bool SaveSelectionToDesignBlock( const LIB_ID& aLibId );
480
482
494 void ExportFootprintsToLibrary( bool aStoreInNewLib, const wxString& aLibName = wxEmptyString,
495 wxString* aLibPath = nullptr );
496
500 void RecreateBOMFileFromBoard( wxCommandEvent& aEvent );
501
505 void ExportToGenCAD( wxCommandEvent& event );
506
510 void OnExportVRML( wxCommandEvent& event );
511
536 bool ExportVRML_File( const wxString& aFullFileName, double aMMtoWRMLunit,
537 bool aIncludeUnspecified, bool aIncludeDNP,
538 bool aExport3DFiles, bool aUseRelativePaths,
539 const wxString& a3D_Subdir, double aXRef, double aYRef );
540
544 void OnExportIDF3( wxCommandEvent& event );
545
549 void OnExportHyperlynx( wxCommandEvent& event );
550
563 bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName,
564 bool aUseThou, double aXRef, double aYRef,
565 bool aIncludeUnspecified, bool aIncludeDNP );
566
570 void OnExportSTEP( wxCommandEvent& event );
571
579 bool ExportSpecctraFile( const wxString& aFullFilename );
580
587 bool ImportSpecctraSession( const wxString& aFullFilename );
588
589 // Footprint editing (see also PCB_BASE_FRAME)
590 void ShowFootprintPropertiesDialog( FOOTPRINT* aFootprint );
591
592 int ShowExchangeFootprintsDialog( FOOTPRINT* aFootprint, bool aUpdateMode, bool aSelectedMode );
593
604 void ExchangeFootprint( FOOTPRINT* aExisting, FOOTPRINT* aNew, BOARD_COMMIT& aCommit,
605 bool deleteExtraTexts = true, bool resetTextLayers = true,
606 bool resetTextEffects = true, bool resetFabricationAttrs = true,
607 bool resetTextContent = true, bool reset3DModels = true,
608 bool* aUpdated = nullptr );
609
616 void OnEditItemRequest( BOARD_ITEM* aItem ) override;
617
623 void SwitchLayer( PCB_LAYER_ID layer ) override;
624
637 void SetTrackSegmentWidth( PCB_TRACK* aItem, PICKED_ITEMS_LIST* aItemsListPicker,
638 bool aUseDesignRules );
639
640
644 void Edit_Zone_Params( ZONE* zone_container );
645
646 // Properties dialogs
647 void ShowTargetOptionsDialog( PCB_TARGET* aTarget );
648 void InstallNetlistFrame();
649
656 bool FetchNetlistFromSchematic( NETLIST& aNetlist, const wxString& aAnnotateMessage );
657
665 int TestStandalone();
666
675 bool ReadNetlistFromFile( const wxString& aFilename, NETLIST& aNetlist, REPORTER& aReporter );
676
683 void OnNetlistChanged( BOARD_NETLIST_UPDATER& aUpdater, bool* aRunDragCommand );
684
695 void SendSelectItemsToSch( const std::deque<EDA_ITEM*>& aItems, EDA_ITEM* aFocusItem,
696 bool aForce );
697
704 void SendCrossProbeItem( BOARD_ITEM* aSyncItem );
705
711 void SendCrossProbeNetName( const wxString& aNetName );
712
713 void ShowChangedLanguage() override;
714
723 void UpdateTitle();
724
728 void CommonSettingsChanged( int aFlags ) override;
729
733 void ThemeChanged() override;
734
735 void ProjectChanged() override;
736
737 bool CanAcceptApiCommands() override;
738
739 wxString GetCurrentFileName() const override;
740
741 SELECTION& GetCurrentSelection() override;
742
744
746
748
750
752
753 DECLARE_EVENT_TABLE()
754
755protected:
760 {
765
767 : previous_requested_scale( 0 ),
768 previous_Route_Layer_TOP_color( COLOR4D::UNSPECIFIED ),
769 previous_Route_Layer_BOTTOM_color( COLOR4D::UNSPECIFIED ),
770 previous_background_color( COLOR4D::UNSPECIFIED )
771 {
772 }
773 };
774
776
777 void doReCreateMenuBar() override;
778
779 void configureToolbars() override;
780
781 // The Tool Framework initialization
782 void setupTools();
783 void setupUIConditions() override;
784
790 void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType ) override;
791
795 void buildActionPluginMenus( ACTION_MENU* aActionMenu );
796
800 void addActionPluginTools( ACTION_TOOLBAR* aToolbar );
801
807 void RunActionPlugin( ACTION_PLUGIN* aActionPlugin );
808
814 void OnActionPluginMenu( wxCommandEvent& aEvent);
815
821 void OnActionPluginButton( wxCommandEvent& aEvent );
822
823 PLUGIN_ACTION_SCOPE PluginActionScope() const override { return PLUGIN_ACTION_SCOPE::PCB; }
824
828 void onBoardLoaded();
829
836 bool doAutoSave() override;
837
844 bool importFile( const wxString& aFileName, int aFileType,
845 const std::map<std::string, UTF8>* aProperties = nullptr );
846
856 bool saveBoardAsFile( BOARD* aBoard, const wxString& aFileName, bool aHeadless = false );
857
858 bool saveSelectionToDesignBlock( const wxString& aNickname, PCB_SELECTION& aSelection, DESIGN_BLOCK& aBlock );
859
860
861 bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
862 void doCloseWindow() override;
863
864 // protected so that PCB::IFACE::CreateWindow() is the only factory.
865 PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
866
867 void onSize( wxSizeEvent& aEvent );
868
869 int inferLegacyEdgeClearance( BOARD* aBoard, bool aShowUserMsg = true );
870
871 void redrawNetnames();
872
873 void saveProjectSettings() override;
874
875 void onCloseModelessBookReporterDialogs( wxCommandEvent& aEvent );
876
877#ifdef KICAD_IPC_API
878 void onPluginAvailabilityChanged( wxCommandEvent& aEvt );
879#endif
880
881public:
882 wxChoice* m_SelTrackWidthBox; // a choice box to display and select current track width
883 wxChoice* m_SelViaSizeBox; // a choice box to display and select current via diameter
884
888
889 bool m_ZoneFillsDirty; // Board has been modified since last zone fill.
890
891 bool m_probingSchToPcb; // Recursion guard when synchronizing selection from schematic
892
893private:
894 friend struct PCB::IFACE;
896
905
912
913 std::vector<LIB_ID> m_designBlockHistoryList;
915
916 const std::map<std::string, UTF8>* m_importProperties; // Properties used for non-KiCad import.
917
922
924
925#ifdef KICAD_IPC_API
926 std::unique_ptr<API_HANDLER_PCB> m_apiHandler;
927 std::unique_ptr<API_HANDLER_COMMON> m_apiHandlerCommon;
928#endif
929};
930
931#endif // __PCB_EDIT_FRAME_H__
PLUGIN_ACTION_SCOPE
Definition: api_plugin.h:56
Define the structure of a menu based on ACTIONs.
Definition: action_menu.h:49
This is the parent class from where any action plugin class must derive.
Definition: action_plugin.h:39
Define the structure of a toolbar with buttons that invoke ACTIONs.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:92
Abstract interface for BOARD_ITEMs capable of storing other items inside.
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition: board_item.h:78
Update the BOARD with a new netlist.
Information pertinent to a Pcbnew printed circuit board.
Definition: board.h:297
A dialog to set the plot options and create plot files in various formats.
Definition: dialog_plot.h:41
wxAuiManager m_auimgr
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:96
A general implementation of a COLLECTORS_GUIDE.
Definition: collectors.h:319
Used when the right click button is pressed, or when the select tool is in effect.
Definition: collectors.h:202
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:77
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:104
Carry a payload from one KIWAY_PLAYER to another within a PROJECT.
Definition: kiway_express.h:40
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:285
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:49
Store information read from a netlist along with the flags used to update the NETLIST in the BOARD.
Definition: pcb_netlist.h:255
Definition: pad.h:54
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:59
Common, abstract interface for edit frames.
Abstract dimension API.
The main frame for Pcbnew.
void HardRedraw() override
Rebuild the GAL and redraws the screen.
void OnDisplayOptionsChanged() override
void OnEditItemRequest(BOARD_ITEM *aItem) override
Install the corresponding dialog editor for the given item.
Definition: edit.cpp:98
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString)
bool saveBoardAsFile(BOARD *aBoard, const wxString &aFileName, bool aHeadless=false)
Save a board object to a file.
void SetLastPath(LAST_PATH_TYPE aType, const wxString &aLastPath)
Set the path of the last file successfully read.
void FindNext(bool reverse=false)
Find the next item using our existing search parameters.
void LoadDrawingSheet()
Load the drawing sheet file.
void ResolveDRCExclusions(bool aCreateMarkers)
If aCreateMarkers then create DRC exclusion markers from the serialized data.
void SetBoard(BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr) override
Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD.
TOOL_ACTION * GetExportNetlistAction()
void SetActiveLayer(PCB_LAYER_ID aLayer) override
Change the currently active layer to aLayer and also update the APPEARANCE_CONTROLS.
void GenIPC2581File(wxCommandEvent &event)
Create and IPC2581 output file.
bool doAutoSave() override
Perform auto save when the board has been modified and not saved within the auto save interval.
void OnModify() override
Must be called after a board change to set the modified flag.
void ThemeChanged() override
Called when light/dark theme is changed.
std::vector< LIB_ID > m_designBlockHistoryList
PCB_EDIT_FRAME(KIWAY *aKiway, wxWindow *aParent)
bool ReadNetlistFromFile(const wxString &aFilename, NETLIST &aNetlist, REPORTER &aReporter)
Read a netlist from a file into a NETLIST object.
Definition: netlist.cpp:53
void SwitchLayer(PCB_LAYER_ID layer) override
Change the active layer in the editor.
Definition: edit.cpp:71
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
void RecreateBOMFileFromBoard(wxCommandEvent &aEvent)
Create a BOM file from the current loaded board.
void OnUpdateSelectTrackWidth(wxUpdateUIEvent &aEvent)
void UpdateTrackWidthSelectBox(wxChoice *aTrackWidthSelectBox, bool aShowNetclass, bool aShowEdit)
void SetElementVisibility(GAL_LAYER_ID aElement, bool aNewState)
Change the visibility of an element category.
static std::vector< std::variant< ACTION_PLUGIN *, const PLUGIN_ACTION * > > GetOrderedActionPlugins()
Return ordered list of plugins in sequence in which they should appear on toolbar or in settings.
bool SaveBoardToDesignBlock(const LIB_ID &aLibId)
DIALOG_BOOK_REPORTER * m_inspectDrcErrorDlg
void OnClearFileHistory(wxCommandEvent &aEvent)
std::unique_ptr< GRID_HELPER > MakeGridHelper() override
virtual ~PCB_EDIT_FRAME()
void SwitchCanvas(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType) override
Switch currently used canvas (Cairo / OpenGL).
void UpdateViaSizeSelectBox(wxChoice *aViaSizeSelectBox, bool aShowNetclass, bool aShowEdit)
void CommonSettingsChanged(int aFlags) override
Called after the preferences dialog is run.
BOARD_ITEM_CONTAINER * GetModel() const override
DIALOG_BOOK_REPORTER * GetInspectDrcErrorDialog()
void OnExportSTEP(wxCommandEvent &event)
Export the current BOARD to a STEP assembly.
int DoGenFootprintsPositionFile(const wxString &aFullFileName, bool aUnitsMM, bool aOnlySMD, bool aNoTHItems, bool aExcludeDNP, bool aTopSide, bool aBottomSide, bool aFormatCSV, bool aUseAuxOrigin, bool aNegateBottomX)
Create an ASCII footprint position file.
bool saveSelectionToDesignBlock(const wxString &aNickname, PCB_SELECTION &aSelection, DESIGN_BLOCK &aBlock)
void ShowTargetOptionsDialog(PCB_TARGET *aTarget)
void ExchangeFootprint(FOOTPRINT *aExisting, FOOTPRINT *aNew, BOARD_COMMIT &aCommit, bool deleteExtraTexts=true, bool resetTextLayers=true, bool resetTextEffects=true, bool resetFabricationAttrs=true, bool resetTextContent=true, bool reset3DModels=true, bool *aUpdated=nullptr)
Replace aExisting footprint by aNew footprint using the Existing footprint settings (position,...
bool OpenProjectFiles(const std::vector< wxString > &aFileSet, int aCtl=0) override
Load a KiCad board (.kicad_pcb) from aFileName.
DIALOG_FIND * m_findDialog
LAYER_TOOLBAR_ICON_VALUES m_prevIconVal
void doReCreateMenuBar() override
DIALOG_BOOK_REPORTER * m_inspectConstraintsDlg
void SetPageSettings(const PAGE_INFO &aPageSettings) override
void KiwayMailIn(KIWAY_EXPRESS &aEvent) override
Receive KIWAY_EXPRESS messages from other players.
bool IsElementVisible(GAL_LAYER_ID aElement) const
Test whether a given element category is visible.
bool IsSearchPaneShown()
bool CanAcceptApiCommands() override
Check if this frame is ready to accept API commands.
void GenD356File(wxCommandEvent &event)
void UpdateUserInterface()
Update the layer manager and other widgets from the board setup (layer and items visibility,...
void onBoardLoaded()
Update the state of the GUI after a new board is loaded or created.
void SetGridColor(const COLOR4D &aColor) override
void ExportFootprintsToLibrary(bool aStoreInNewLib, const wxString &aLibName=wxEmptyString, wxString *aLibPath=nullptr)
Save footprints in a library:
void ProjectChanged() override
Notification event that the project has changed.
void OnActionPluginButton(wxCommandEvent &aEvent)
Launched by the button when an action is called.
wxString GetLastPath(LAST_PATH_TYPE aType)
Get the last path for a particular type.
void OnNetlistChanged(BOARD_NETLIST_UPDATER &aUpdater, bool *aRunDragCommand)
Called after netlist is updated.
Definition: netlist.cpp:87
void OnExportIDF3(wxCommandEvent &event)
Export the current BOARD to a IDFv3 board and lib files.
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
void doCloseWindow() override
bool ImportSpecctraSession(const wxString &aFullFilename)
Import a specctra *.ses file and use it to relocate MODULEs and to replace all vias and tracks in an ...
void ReCreateLayerBox(bool aForceResizeToolbar=true)
Recreate the layer box by clearing the old list and building a new one from the new layer names and c...
void SaveProjectLocalSettings() override
Save changes to the project local settings.
void ExecuteRemoteCommand(const char *cmdline) override
Execute a remote command send by Eeschema via a socket, port KICAD_PCB_PORT_SERVICE_NUMBER (currently...
bool SavePcbCopy(const wxString &aFileName, bool aCreateProject=false, bool aHeadless=false)
Write the board data structures to aFileName.
void RunActionPlugin(ACTION_PLUGIN *aActionPlugin)
Execute action plugin's Run() method and updates undo buffer.
bool Files_io_from_id(int aId)
Read and write board files according to aId.
void PythonSyncProjectName()
Synchronize the project name from KiCad's environment into the Python interpreter.
bool m_show_layer_manager_tools
void OnExportVRML(wxCommandEvent &event)
Export the current BOARD to a VRML file.
void SetTrackSegmentWidth(PCB_TRACK *aItem, PICKED_ITEMS_LIST *aItemsListPicker, bool aUseDesignRules)
Modify one track segment width or one via diameter (using DRC control).
PCB_DESIGN_BLOCK_PANE * GetDesignBlockPane() const
void GenODBPPFiles(wxCommandEvent &event)
Create and Generate ODB++ output files.
void PrepareLayerIndicator(bool aForceRebuild=false)
void ShowFindDialog()
Show the Find dialog.
void onSize(wxSizeEvent &aEvent)
void buildActionPluginMenus(ACTION_MENU *aActionMenu)
Fill action menu with all registered action plugins.
int ShowExchangeFootprintsDialog(FOOTPRINT *aFootprint, bool aUpdateMode, bool aSelectedMode)
void addActionPluginTools(ACTION_TOOLBAR *aToolbar)
Append action plugin buttons to given toolbar.
int TestStandalone()
Test if standalone mode.
void ShowFootprintPropertiesDialog(FOOTPRINT *aFootprint)
void OnExportHyperlynx(wxCommandEvent &event)
Export the current BOARD to a Hyperlynx HYP file.
bool SaveSelectionAsDesignBlock(const wxString &aLibraryName)
bool IsContentModified() const override
Get if the current board has been modified but not saved.
bool LoadProjectSettings()
Load the current project's file configuration settings which are pertinent to this PCB_EDIT_FRAME ins...
void PythonSyncEnvironmentVariables()
Synchronize the environment variables from KiCad's environment into the Python interpreter.
bool Clear_Pcb(bool doAskAboutUnsavedChanges, bool aFinal=false)
Delete all and reinitialize the current board.
Definition: initpcb.cpp:42
void SendCrossProbeItem(BOARD_ITEM *aSyncItem)
Send a message to the schematic editor so that it may move its cursor to an item with the same refere...
PLUGIN_ACTION_SCOPE PluginActionScope() const override
TOOL_ACTION * m_exportNetlistAction
The export board netlist tool action object.
BOX2D m_lastNetnamesViewport
Keep track of viewport so that track net labels can be adjusted when it changes.
void Edit_Zone_Params(ZONE *zone_container)
Edit params (layer, clearance, ...) for a zone outline.
void ToggleLibraryTree() override
bool FetchNetlistFromSchematic(NETLIST &aNetlist, const wxString &aAnnotateMessage)
wxString GetCurrentFileName() const override
Get the full filename + path of the currently opened file in the frame.
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
void LoadFootprints(NETLIST &aNetlist, REPORTER &aReporter)
Load the footprints for each #SCH_COMPONENT in aNetlist from the list of libraries.
Definition: netlist.cpp:164
void SendSelectItemsToSch(const std::deque< EDA_ITEM * > &aItems, EDA_ITEM *aFocusItem, bool aForce)
Send a message to the schematic editor to try to find schematic counterparts of specified PCB items a...
void RecreateCmpFileFromBoard(wxCommandEvent &aEvent)
Recreates a .cmp file from the current loaded board.
DIALOG_BOOK_REPORTER * GetFootprintDiffDialog()
bool SaveSelectionToDesignBlock(const LIB_ID &aLibId)
EDA_ANGLE GetRotationAngle() const override
Return the angle used for rotate operations.
void OnUpdateSelectViaSize(wxUpdateUIEvent &aEvent)
COLOR4D GetGridColor() override
void RebuildAndRefresh()
Rebuilds board connectivity, refreshes canvas.
void Files_io(wxCommandEvent &event)
Call Files_io_from_id with the wxCommandEvent id.
void UpdateTitle()
Set the main window title bar text.
int inferLegacyEdgeClearance(BOARD *aBoard, bool aShowUserMsg=true)
DIALOG_BOOK_REPORTER * m_footprintDiffDlg
const std::map< std::string, UTF8 > * m_importProperties
static bool GetActionPluginButtonVisible(const wxString &aPluginPath, bool aPluginDefault)
Return true if button visibility action plugin setting was set to true or it is unset and plugin defa...
void ExportToGenCAD(wxCommandEvent &event)
Create a file in GenCAD 1.4 format from the current board.
void ActivateGalCanvas() override
Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD.
bool SaveBoardAsDesignBlock(const wxString &aLibraryName)
wxChoice * m_SelViaSizeBox
void Process_Special_Functions(wxCommandEvent &event)
Definition: edit.cpp:53
void configureToolbars() override
std::vector< BOARD_ITEM * > FindItemsFromSyncSelection(std::string syncStr)
Used to find items by selection synchronization spec string.
SELECTION & GetCurrentSelection() override
Get the current selection from the canvas area.
void OnQuit(wxCommandEvent &event)
bool ExportVRML_File(const wxString &aFullFileName, double aMMtoWRMLunit, bool aIncludeUnspecified, bool aIncludeDNP, bool aExport3DFiles, bool aUseRelativePaths, const wxString &a3D_Subdir, double aXRef, double aYRef)
Create the file(s) exporting current BOARD to a VRML file.
void OnActionPluginMenu(wxCommandEvent &aEvent)
Launched by the menu when an action is called.
void GenFootprintsReport(wxCommandEvent &event)
Call DoGenFootprintsReport to create a footprint report file.
void onCloseModelessBookReporterDialogs(wxCommandEvent &aEvent)
PCB_DESIGN_BLOCK_PANE * m_designBlocksPane
bool SavePcbFile(const wxString &aFileName, bool addToHistory=true, bool aChangeProject=true)
Write the board data structures to a aFileName.
bool canCloseWindow(wxCloseEvent &aCloseEvent) override
bool ExportSpecctraFile(const wxString &aFullFilename)
Export the current BOARD to a specctra dsn file.
DIALOG_BOARD_SETUP * m_boardSetupDlg
bool DoGenFootprintsReport(const wxString &aFullFilename, bool aUnitsMM)
Create an ASCII footprint report file giving some infos on footprints and board outlines.
DIALOG_BOOK_REPORTER * GetInspectClearanceDialog()
bool importFile(const wxString &aFileName, int aFileType, const std::map< std::string, UTF8 > *aProperties=nullptr)
Load the given filename but sets the path to the current project path.
bool Export_IDF3(BOARD *aPcb, const wxString &aFullFileName, bool aUseThou, double aXRef, double aYRef, bool aIncludeUnspecified, bool aIncludeDNP)
Create an IDF3 compliant BOARD (*.emn) and LIBRARY (*.emp) file.
Definition: export_idf.cpp:608
wxTimer * m_eventCounterTimer
void Tracks_and_Vias_Size_Event(wxCommandEvent &event)
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
void saveProjectSettings() override
Save any design-related project settings associated with this frame.
void SendCrossProbeNetName(const wxString &aNetName)
Send a net name to Eeschema for highlighting.
static const wxString SearchPaneName()
wxChoice * m_SelTrackWidthBox
DIALOG_BOOK_REPORTER * m_inspectClearanceDlg
void OnFileHistory(wxCommandEvent &event)
void ToPlotter(int aID)
Open a dialog frame to create plot and drill files relative to the current board.
DIALOG_BOOK_REPORTER * GetInspectConstraintsDialog()
A set of BOARD_ITEMs (i.e., without duplicates).
Definition: pcb_group.h:53
A holder to handle information on schematic or board items.
A progress reporter interface for use in multi-threaded environments.
A pure virtual class used to derive REPORTER objects from.
Definition: reporter.h:73
Represent a single user action.
Definition: tool_action.h:304
Handle a list of polygons defining a copper zone.
Definition: zone.h:74
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
Definition: layer_ids.h:228
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:60
LAST_PATH_TYPE
For storing PcbNew MRU paths of various types.
Definition: project_file.h:49
A filename or source description, a problem input line, a line number, a byte offset,...
Definition: ki_exception.h:120
Store the previous layer toolbar icon state information.