KiCad PCB EDA Suite
Loading...
Searching...
No Matches
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, [email protected]
5 * Copyright (C) 2010-2023 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;
36class FOOTPRINT;
37class PCB_TRACK;
38class PCB_VIA;
39class PAD;
40class PCB_TARGET;
41class PCB_GROUP;
43class DRC;
44class DIALOG_FIND;
45class DIALOG_PLOT;
46class ZONE;
49class SELECTION;
50class PCB_MARKER;
51class BOARD_ITEM;
53class NETLIST;
54class REPORTER;
55struct PARSE_ERROR;
56class IO_ERROR;
57class FP_LIB_TABLE;
59class ACTION_MENU;
60class TOOL_ACTION;
62
63#ifdef KICAD_IPC_API
65class API_HANDLER_PCB;
67#endif
68
69enum LAST_PATH_TYPE : unsigned int;
70
71namespace PCB { struct IFACE; } // KIFACE is in pcbnew.cpp
72
79{
80public:
81 virtual ~PCB_EDIT_FRAME();
82
91 void LoadFootprints( NETLIST& aNetlist, REPORTER& aReporter );
92
93 void OnQuit( wxCommandEvent& event );
94
100 bool IsContentModified() const override;
101
106
111
116 void UpdateUserInterface();
117
118 void HardRedraw() override;
119
123 void RebuildAndRefresh();
124
133 void ExecuteRemoteCommand( const char* cmdline ) override;
134
135 void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
136
140 std::vector<BOARD_ITEM*> FindItemsFromSyncSelection( std::string syncStr );
141
145 static const wxString SearchPaneName() { return wxT( "Search" ); }
146
150 void ShowFindDialog();
151
155 void FindNext( bool reverse = false );
156
160 void ToPlotter( int aID );
161
165 void ExportSVG( wxCommandEvent& event );
166
167 // User interface update command event handlers.
168 void OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent );
169
170 bool LayerManagerShown();
171 bool PropertiesShown();
172 bool NetInspectorShown();
173
174 void OnUpdateSelectViaSize( wxUpdateUIEvent& aEvent );
175 void OnUpdateSelectTrackWidth( wxUpdateUIEvent& aEvent );
176 void OnUpdateSelectAutoWidth( wxUpdateUIEvent& aEvent );
177
178 void RunEeschema();
179
180 void UpdateTrackWidthSelectBox( wxChoice* aTrackWidthSelectBox, bool aShowNetclass,
181 bool aShowEdit );
182 void UpdateViaSizeSelectBox( wxChoice* aViaSizeSelectBox, bool aShowNetclass, bool aShowEdit );
183
187 EDA_ANGLE GetRotationAngle() const override;
188
192 COLOR4D GetGridColor() override;
193
197 void SetGridColor( const COLOR4D& aColor ) override;
198
203 static bool GetActionPluginButtonVisible( const wxString& aPluginPath, bool aPluginDefault );
204
209 static std::vector<std::variant<ACTION_PLUGIN*, const PLUGIN_ACTION*>> GetOrderedActionPlugins();
210
211 void SaveProjectLocalSettings() override;
212
219 bool LoadProjectSettings();
220
221 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
222
223 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
224
228 void LoadDrawingSheet();
229
235 wxString GetLastPath( LAST_PATH_TYPE aType );
236
248 void SetLastPath( LAST_PATH_TYPE aType, const wxString& aLastPath );
249
254 void ResolveDRCExclusions( bool aCreateMarkers );
255
256 void Process_Special_Functions( wxCommandEvent& event );
257 void Tracks_and_Vias_Size_Event( wxCommandEvent& event );
258
259 void ReCreateHToolbar() override;
260 void ReCreateAuxiliaryToolbar() override;
261 void ReCreateVToolbar() override;
262 void ReCreateOptToolbar() override;
263 void UpdateToolbarControlSizes() override;
264
273 void ReCreateLayerBox( bool aForceResizeToolbar = true );
274
275
282 void OnModify() override;
283
287 void SetActiveLayer( PCB_LAYER_ID aLayer ) override;
288
289 void OnDisplayOptionsChanged() override;
290
298 bool IsElementVisible( GAL_LAYER_ID aElement ) const;
299
307 void SetElementVisibility( GAL_LAYER_ID aElement, bool aNewState );
308
310 void ActivateGalCanvas() override;
311
312 void ShowBoardSetupDialog( const wxString& aInitialPage = wxEmptyString );
313
314 void PrepareLayerIndicator( bool aForceRebuild = false );
315
316 void ToggleLayersManager();
317
318 void ToggleNetInspector();
319
320 void ToggleSearch();
321
339 int DoGenFootprintsPositionFile( const wxString& aFullFileName, bool aUnitsMM, bool aOnlySMD,
340 bool aNoTHItems, bool aExcludeDNP, bool aTopSide, bool aBottomSide,
341 bool aFormatCSV, bool aUseAuxOrigin, bool aNegateBottomX );
342
346 void GenFootprintsReport( wxCommandEvent& event );
347
351 void GenIPC2581File( wxCommandEvent& event );
352
356 void GenODBPPFiles( wxCommandEvent& event );
357
365 bool DoGenFootprintsReport( const wxString& aFullFilename, bool aUnitsMM );
366
367 void GenD356File( wxCommandEvent& event );
368
369 void OnFileHistory( wxCommandEvent& event );
370 void OnClearFileHistory( wxCommandEvent& aEvent );
371
377 void Files_io( wxCommandEvent& event );
378
392 bool Files_io_from_id( int aId );
393
406 bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
407
419 bool SavePcbFile( const wxString& aFileName, bool addToHistory = true,
420 bool aChangeProject = true );
421
433 bool SavePcbCopy( const wxString& aFileName, bool aCreateProject = false );
434
442 bool Clear_Pcb( bool doAskAboutUnsavedChanges, bool aFinal = false );
443
445 void SetBoard( BOARD* aBoard, PROGRESS_REPORTER* aReporter = nullptr ) override
446 {
447 SetBoard( aBoard, true, aReporter );
448 }
449
450 void SetBoard( BOARD* aBoard, bool aBuildConnectivity, PROGRESS_REPORTER* aReporter = nullptr );
451
453 BOARD_ITEM_CONTAINER* GetModel() const override;
454
455 std::unique_ptr<GRID_HELPER> MakeGridHelper() override;
456
458 void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
459
465 void RecreateCmpFileFromBoard( wxCommandEvent& aEvent );
466
478 void ExportFootprintsToLibrary( bool aStoreInNewLib, const wxString& aLibName = wxEmptyString,
479 wxString* aLibPath = nullptr );
480
484 void RecreateBOMFileFromBoard( wxCommandEvent& aEvent );
485
489 void ExportToGenCAD( wxCommandEvent& event );
490
494 void OnExportVRML( wxCommandEvent& event );
495
520 bool ExportVRML_File( const wxString& aFullFileName, double aMMtoWRMLunit,
521 bool aIncludeUnspecified, bool aIncludeDNP,
522 bool aExport3DFiles, bool aUseRelativePaths,
523 const wxString& a3D_Subdir, double aXRef, double aYRef );
524
528 void OnExportIDF3( wxCommandEvent& event );
529
533 void OnExportHyperlynx( wxCommandEvent& event );
534
547 bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName,
548 bool aUseThou, double aXRef, double aYRef,
549 bool aIncludeUnspecified, bool aIncludeDNP );
550
554 void OnExportSTEP( wxCommandEvent& event );
555
563 bool ExportSpecctraFile( const wxString& aFullFilename );
564
571 bool ImportSpecctraSession( const wxString& aFullFilename );
572
573 // Footprint editing (see also PCB_BASE_FRAME)
574 void ShowFootprintPropertiesDialog( FOOTPRINT* aFootprint );
575
576 int ShowExchangeFootprintsDialog( FOOTPRINT* aFootprint, bool aUpdateMode, bool aSelectedMode );
577
588 void ExchangeFootprint( FOOTPRINT* aExisting, FOOTPRINT* aNew, BOARD_COMMIT& aCommit,
589 bool deleteExtraTexts = true, bool resetTextLayers = true,
590 bool resetTextEffects = true, bool resetFabricationAttrs = true,
591 bool resetTextContent = true, bool reset3DModels = true,
592 bool* aUpdated = nullptr );
593
600 void OnEditItemRequest( BOARD_ITEM* aItem ) override;
601
607 void SwitchLayer( PCB_LAYER_ID layer ) override;
608
621 void SetTrackSegmentWidth( PCB_TRACK* aItem, PICKED_ITEMS_LIST* aItemsListPicker,
622 bool aUseDesignRules );
623
624
628 void Edit_Zone_Params( ZONE* zone_container );
629
630 // Properties dialogs
631 void ShowTargetOptionsDialog( PCB_TARGET* aTarget );
632 void InstallNetlistFrame();
633
640 bool FetchNetlistFromSchematic( NETLIST& aNetlist, const wxString& aAnnotateMessage );
641
649 int TestStandalone();
650
659 bool ReadNetlistFromFile( const wxString& aFilename, NETLIST& aNetlist, REPORTER& aReporter );
660
667 void OnNetlistChanged( BOARD_NETLIST_UPDATER& aUpdater, bool* aRunDragCommand );
668
679 void SendSelectItemsToSch( const std::deque<EDA_ITEM*>& aItems, EDA_ITEM* aFocusItem,
680 bool aForce );
681
688 void SendCrossProbeItem( BOARD_ITEM* aSyncItem );
689
695 void SendCrossProbeNetName( const wxString& aNetName );
696
697 void ShowChangedLanguage() override;
698
707 void UpdateTitle();
708
712 void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
713
717 void ThemeChanged() override;
718
719 void ProjectChanged() override;
720
721 bool CanAcceptApiCommands() override;
722
723 wxString GetCurrentFileName() const override;
724
725 SELECTION& GetCurrentSelection() override;
726
728
730
732
734
736
737 DECLARE_EVENT_TABLE()
738
739protected:
744 {
749
751 : previous_requested_scale( 0 ),
752 previous_Route_Layer_TOP_color( COLOR4D::UNSPECIFIED ),
753 previous_Route_Layer_BOTTOM_color( COLOR4D::UNSPECIFIED ),
754 previous_background_color( COLOR4D::UNSPECIFIED )
755 {
756 }
757 };
758
760
761 void doReCreateMenuBar() override;
762
763 // The Tool Framework initialization
764 void setupTools();
765 void setupUIConditions() override;
766
772 void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType ) override;
773
777 void buildActionPluginMenus( ACTION_MENU* aActionMenu );
778
783
789 void RunActionPlugin( ACTION_PLUGIN* aActionPlugin );
790
796 void OnActionPluginMenu( wxCommandEvent& aEvent);
797
803 void OnActionPluginButton( wxCommandEvent& aEvent );
804
805 PLUGIN_ACTION_SCOPE PluginActionScope() const override { return PLUGIN_ACTION_SCOPE::PCB; }
806
810 void onBoardLoaded();
811
818 bool doAutoSave() override;
819
826 bool importFile( const wxString& aFileName, int aFileType,
827 const std::map<std::string, UTF8>* aProperties = nullptr );
828
829 bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
830 void doCloseWindow() override;
831
832 // protected so that PCB::IFACE::CreateWindow() is the only factory.
833 PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
834
835 void onSize( wxSizeEvent& aEvent );
836
837 int inferLegacyEdgeClearance( BOARD* aBoard, bool aShowUserMsg = true );
838
839 void redrawNetnames();
840
841 void saveProjectSettings() override;
842
843 void onCloseModelessBookReporterDialogs( wxCommandEvent& aEvent );
844
845#ifdef KICAD_IPC_API
846 void onPluginAvailabilityChanged( wxCommandEvent& aEvt );
847#endif
848
849public:
850 PCB_LAYER_BOX_SELECTOR* m_SelLayerBox; // a combo box to display and select active layer
851
852 wxChoice* m_SelTrackWidthBox; // a choice box to display and select current track width
853 wxChoice* m_SelViaSizeBox; // a choice box to display and select current via diameter
854
858
859 bool m_ZoneFillsDirty; // Board has been modified since last zone fill.
860
861 bool m_probingSchToPcb; // Recursion guard when synchronizing selection from schematic
862
863private:
864 friend struct PCB::IFACE;
866
875
882
883 const std::map<std::string, UTF8>* m_importProperties; // Properties used for non-KiCad import.
884
889
891
892#ifdef KICAD_IPC_API
893 std::unique_ptr<API_HANDLER_PCB> m_apiHandler;
894 std::unique_ptr<API_HANDLER_COMMON> m_apiHandlerCommon;
895#endif
896};
897
898#endif // __PCB_EDIT_FRAME_H__
PLUGIN_ACTION_SCOPE
Definition: api_plugin.h:55
Defines 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
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:79
Update the BOARD with a new netlist.
Information pertinent to a Pcbnew printed circuit board.
Definition: board.h:290
A dialog to set the plot options and create plot files in various formats.
Definition: dialog_plot.h:41
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:89
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
Store information read from a netlist along with the flags used to update the NETLIST in the BOARD.
Definition: pcb_netlist.h:241
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:111
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString)
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.
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:84
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 ReCreateHToolbar() override
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.
DIALOG_BOOK_REPORTER * m_inspectDrcErrorDlg
void OnClearFileHistory(wxCommandEvent &aEvent)
std::unique_ptr< GRID_HELPER > MakeGridHelper() override
void ReCreateVToolbar() 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)
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.
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 SavePcbCopy(const wxString &aFileName, bool aCreateProject=false)
Write the board data structures to aFileName.
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 CanAcceptApiCommands() override
Checks 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...
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).
void OnUpdateLayerSelectBox(wxUpdateUIEvent &aEvent)
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)
int TestStandalone()
Test if standalone mode.
void ShowFootprintPropertiesDialog(FOOTPRINT *aFootprint)
void OnExportHyperlynx(wxCommandEvent &event)
Export the current BOARD to a Hyperlynx HYP file.
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
void ReCreateOptToolbar() 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 ReCreateAuxiliaryToolbar() override
void Edit_Zone_Params(ZONE *zone_container)
Edit params (layer, clearance, ...) for a zone outline.
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:159
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 OnUpdateSelectAutoWidth(wxUpdateUIEvent &aEvent)
void ExportSVG(wxCommandEvent &event)
Show the Export to SVG file dialog.
void RecreateCmpFileFromBoard(wxCommandEvent &aEvent)
Recreates a .cmp file from the current loaded board.
DIALOG_BOOK_REPORTER * GetFootprintDiffDialog()
void UpdateToolbarControlSizes() override
Update the sizes of any controls in the toolbars of the frame.
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...
PCB_LAYER_BOX_SELECTOR * m_SelLayerBox
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.
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Called after the preferences dialog is run.
wxChoice * m_SelViaSizeBox
void Process_Special_Functions(wxCommandEvent &event)
Definition: edit.cpp:53
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)
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
Saves 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 AddActionPluginTools()
Append action plugin buttons to main toolbar.
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:52
Class to display a pcb layer list in a wxBitmapComboBox.
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:72
Represent a single user action.
Definition: tool_action.h:269
Handle a list of polygons defining a copper zone.
Definition: zone.h:73
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
Definition: layer_ids.h:191
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:48
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.