KiCad PCB EDA Suite
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-2022 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>
27
28class ACTION_PLUGIN;
29class PCB_SCREEN;
30class BOARD;
31class BOARD_COMMIT;
33class FOOTPRINT;
34class PCB_TRACK;
35class PCB_VIA;
36class PAD;
37class PCB_TARGET;
38class PCB_GROUP;
40class DRC;
41class DIALOG_FIND;
42class DIALOG_PLOT;
43class ZONE;
46class SELECTION;
47class PCB_MARKER;
48class BOARD_ITEM;
50class NETLIST;
51class REPORTER;
52struct PARSE_ERROR;
53class IO_ERROR;
54class FP_LIB_TABLE;
56class ACTION_MENU;
57class TOOL_ACTION;
58
59enum LAST_PATH_TYPE : unsigned int;
60
61namespace PCB { struct IFACE; } // KIFACE is in pcbnew.cpp
62
69{
70public:
71 virtual ~PCB_EDIT_FRAME();
72
81 void LoadFootprints( NETLIST& aNetlist, REPORTER& aReporter );
82
83 void OnQuit( wxCommandEvent& event );
84
90 bool IsContentModified() const override;
91
96
101
106 void UpdateUserInterface();
107
108 void HardRedraw() override;
109
118 void ExecuteRemoteCommand( const char* cmdline ) override;
119
120 void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
121
125 std::vector<BOARD_ITEM*> FindItemsFromSyncSelection( std::string syncStr );
126
130 static const wxString SearchPaneName() { return wxT( "Search" ); }
131
135 void ShowFindDialog();
136
140 void FindNext();
141
145 void ToPlotter( int aID );
146
150 void ExportSVG( wxCommandEvent& event );
151
152 // User interface update command event handlers.
153 void OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent );
154
155 bool LayerManagerShown();
156 bool PropertiesShown();
157
158 void OnUpdateSelectViaSize( wxUpdateUIEvent& aEvent );
159 void OnUpdateSelectTrackWidth( wxUpdateUIEvent& aEvent );
160 void OnUpdateSelectAutoWidth( wxUpdateUIEvent& aEvent );
161
162 void RunEeschema();
163
164 void UpdateTrackWidthSelectBox( wxChoice* aTrackWidthSelectBox, bool aEdit = true );
165 void UpdateViaSizeSelectBox( wxChoice* aViaSizeSelectBox, bool aEdit = true );
166
170 EDA_ANGLE GetRotationAngle() const override;
171
175 COLOR4D GetGridColor() override;
176
180 void SetGridColor( const COLOR4D& aColor ) override;
181
186 static bool GetActionPluginButtonVisible( const wxString& aPluginPath, bool aPluginDefault );
187
192 static std::vector<ACTION_PLUGIN*> GetOrderedActionPlugins();
193
197 void SaveProjectSettings() override;
198
205 bool LoadProjectSettings();
206
207 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
208
209 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
210
216 wxString GetLastPath( LAST_PATH_TYPE aType );
217
229 void SetLastPath( LAST_PATH_TYPE aType, const wxString& aLastPath );
230
234 void RecordDRCExclusions();
235
240
241 void Process_Special_Functions( wxCommandEvent& event );
242 void Tracks_and_Vias_Size_Event( wxCommandEvent& event );
243
244 void ReCreateHToolbar() override;
245 void ReCreateAuxiliaryToolbar() override;
246 void ReCreateVToolbar() override;
247 void ReCreateOptToolbar() override;
248 void ReCreateMenuBar() override;
249 void UpdateToolbarControlSizes() override;
250
259 void ReCreateLayerBox( bool aForceResizeToolbar = true );
260
261
268 void OnModify() override;
269
273 void SetActiveLayer( PCB_LAYER_ID aLayer ) override;
274
275 void OnDisplayOptionsChanged() override;
276
284 bool IsElementVisible( GAL_LAYER_ID aElement ) const;
285
293 void SetElementVisibility( GAL_LAYER_ID aElement, bool aNewState );
294
296 void ActivateGalCanvas() override;
297
298 void ShowBoardSetupDialog( const wxString& aInitialPage = wxEmptyString );
299
300 void PrepareLayerIndicator( bool aForceRebuild = false );
301
302 void ToggleLayersManager();
303 void ToggleProperties();
304 void ToggleSearch();
305
322 int DoGenFootprintsPositionFile( const wxString& aFullFileName, bool aUnitsMM, bool aOnlySMD,
323 bool aNoTHItems, bool aTopSide, bool aBottomSide,
324 bool aFormatCSV, bool aUseAuxOrigin, bool aNegateBottomX );
325
329 void GenFootprintsReport( wxCommandEvent& event );
330
338 bool DoGenFootprintsReport( const wxString& aFullFilename, bool aUnitsMM );
339
340 void GenD356File( wxCommandEvent& event );
341
342 void OnFileHistory( wxCommandEvent& event );
343 void OnClearFileHistory( wxCommandEvent& aEvent );
344
350 void Files_io( wxCommandEvent& event );
351
365 bool Files_io_from_id( int aId );
366
379 bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
380
392 bool SavePcbFile( const wxString& aFileName, bool addToHistory = true,
393 bool aChangeProject = true );
394
406 bool SavePcbCopy( const wxString& aFileName, bool aCreateProject = false );
407
414 bool Clear_Pcb( bool aQuery, bool aFinal = false );
415
417 void SetBoard( BOARD* aBoard, PROGRESS_REPORTER* aReporter = nullptr ) override
418 {
419 SetBoard( aBoard, true, aReporter );
420 }
421
422 void SetBoard( BOARD* aBoard, bool aBuildConnectivity, PROGRESS_REPORTER* aReporter = nullptr );
423
425 BOARD_ITEM_CONTAINER* GetModel() const override;
426
428 void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
429
435 void RecreateCmpFileFromBoard( wxCommandEvent& aEvent );
436
448 void ExportFootprintsToLibrary( bool aStoreInNewLib, const wxString& aLibName = wxEmptyString,
449 wxString* aLibPath = nullptr );
450
454 void RecreateBOMFileFromBoard( wxCommandEvent& aEvent );
455
459 void ExportToGenCAD( wxCommandEvent& event );
460
464 void OnExportVRML( wxCommandEvent& event );
465
490 bool ExportVRML_File( const wxString& aFullFileName, double aMMtoWRMLunit,
491 bool aExport3DFiles, bool aUseRelativePaths,
492 const wxString& a3D_Subdir, double aXRef, double aYRef );
493
497 void OnExportIDF3( wxCommandEvent& event );
498
502 void OnExportHyperlynx( wxCommandEvent& event );
503
507 void OnRunTeardropTool( wxCommandEvent& event );
508
512 void OnRemoveTeardropTool( wxCommandEvent& event );
513
514
525 bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName,
526 bool aUseThou, double aXRef, double aYRef );
527
531 void OnExportSTEP( wxCommandEvent& event );
532
540 bool ExportSpecctraFile( const wxString& aFullFilename );
541
548 bool ImportSpecctraSession( const wxString& aFullFilename );
549
550 // Footprint editing (see also PCB_BASE_FRAME)
551 void ShowFootprintPropertiesDialog( FOOTPRINT* aFootprint );
552
553 int ShowExchangeFootprintsDialog( FOOTPRINT* aFootprint, bool aUpdateMode, bool aSelectedMode );
554
565 void ExchangeFootprint( FOOTPRINT* aExisting, FOOTPRINT* aNew, BOARD_COMMIT& aCommit,
566 bool deleteExtraTexts = true, bool resetTextLayers = true,
567 bool resetTextEffects = true, bool resetFabricationAttrs = true,
568 bool reset3DModels = true, bool* aUpdated = nullptr );
569
571
578 void OnEditItemRequest( BOARD_ITEM* aItem ) override;
579
585 void SwitchLayer( PCB_LAYER_ID layer ) override;
586
599 void SetTrackSegmentWidth( PCB_TRACK* aTrackItem, PICKED_ITEMS_LIST* aItemsListPicker,
600 bool aUseNetclassValue );
601
602
606 void Edit_Zone_Params( ZONE* zone_container );
607
608 // Properties dialogs
609 void ShowTargetOptionsDialog( PCB_TARGET* aTarget );
610 void InstallNetlistFrame();
611
618 bool FetchNetlistFromSchematic( NETLIST& aNetlist, const wxString& aAnnotateMessage );
619
627 int TestStandalone( void );
628
637 bool ReadNetlistFromFile( const wxString& aFilename, NETLIST& aNetlist, REPORTER& aReporter );
638
645 void OnNetlistChanged( BOARD_NETLIST_UPDATER& aUpdater, bool* aRunDragCommand );
646
657 void SendSelectItemsToSch( const std::deque<EDA_ITEM*>& aItems, EDA_ITEM* aFocusItem,
658 bool aForce );
659
666 void SendCrossProbeItem( BOARD_ITEM* aSyncItem );
667
673 void SendCrossProbeNetName( const wxString& aNetName );
674
675 void ShowChangedLanguage() override;
676
685 void UpdateTitle();
686
690 void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
691
695 void ThemeChanged() override;
696
697 void ProjectChanged() override;
698
699 wxString GetCurrentFileName() const override;
700
701 SELECTION& GetCurrentSelection() override;
702
704
705 DECLARE_EVENT_TABLE()
706
707protected:
712 {
717
719 : previous_requested_scale( 0 ),
720 previous_Route_Layer_TOP_color( COLOR4D::UNSPECIFIED ),
721 previous_Route_Layer_BOTTOM_color( COLOR4D::UNSPECIFIED ),
722 previous_background_color( COLOR4D::UNSPECIFIED )
723 {
724 }
725 };
726
728
729 // The Tool Framework initialization
730 void setupTools();
731 void setupUIConditions() override;
732
738 void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType ) override;
739
743 void buildActionPluginMenus( ACTION_MENU* aActionMenu );
744
749
755 void RunActionPlugin( ACTION_PLUGIN* aActionPlugin );
756
762 void OnActionPluginMenu( wxCommandEvent& aEvent);
763
769 void OnActionPluginButton( wxCommandEvent& aEvent );
770
774 void onBoardLoaded();
775
782 bool doAutoSave() override;
783
787 bool isAutoSaveRequired() const override;
788
795 bool importFile( const wxString& aFileName, int aFileType );
796
797 bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
798 void doCloseWindow() override;
799
800 // protected so that PCB::IFACE::CreateWindow() is the only factory.
801 PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
802
803 void onSize( wxSizeEvent& aEvent );
804
805 int inferLegacyEdgeClearance( BOARD* aBoard );
806
807 void redrawNetnames( wxTimerEvent& aEvent );
808
809public:
810 PCB_LAYER_BOX_SELECTOR* m_SelLayerBox; // a combo box to display and select active layer
811
812 wxChoice* m_SelTrackWidthBox; // a choice box to display and select current track width
813 wxChoice* m_SelViaSizeBox; // a choice box to display and select current via diameter
814
818
819 bool m_ZoneFillsDirty; // Board has been modified since last zone fill.
820
821 bool m_probingSchToPcb; // Recursion guard when synchronizing selection from schematic
822
823private:
824 friend struct PCB::IFACE;
826
835
837
843
845};
846
847#endif // __PCB_EDIT_FRAME_H__
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:101
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:52
Update the BOARD with a new netlist.
Information pertinent to a Pcbnew printed circuit board.
Definition: board.h:265
A dialog to set the plot options and create plot files in various formats.
Definition: dialog_plot.h:40
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:99
A general implementation of a COLLECTORS_GUIDE.
Definition: collectors.h:326
Used when the right click button is pressed, or when the select tool is in effect.
Definition: collectors.h:204
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:76
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:39
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:267
Store information read from a netlist along with the flags used to update the NETLIST in the BOARD.
Definition: pcb_netlist.h:213
Definition: pad.h:58
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:54
Common, abstract interface for edit frames.
Abstract dimension API.
Definition: pcb_dimension.h:96
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:118
int TestStandalone(void)
Test if standalone mode.
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString)
void SetTrackSegmentWidth(PCB_TRACK *aTrackItem, PICKED_ITEMS_LIST *aItemsListPicker, bool aUseNetclassValue)
Modify one track segment width or one via diameter (using DRC control).
void SetLastPath(LAST_PATH_TYPE aType, const wxString &aLastPath)
Set the path of the last file successfully read.
void UpdateTrackWidthSelectBox(wxChoice *aTrackWidthSelectBox, bool aEdit=true)
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.
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:52
void SwitchLayer(PCB_LAYER_ID layer) override
Change the active layer in the editor.
Definition: edit.cpp:78
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
void SaveProjectSettings() override
Save changes to the project settings to the project (.pro) file.
void RecreateBOMFileFromBoard(wxCommandEvent &aEvent)
Create a BOM file from the current loaded board.
void OnUpdateSelectTrackWidth(wxUpdateUIEvent &aEvent)
void ReCreateHToolbar() override
void RecordDRCExclusions()
Scan existing markers and record data from any that are Excluded.
void SetElementVisibility(GAL_LAYER_ID aElement, bool aNewState)
Change the visibility of an element category.
bool Export_IDF3(BOARD *aPcb, const wxString &aFullFileName, bool aUseThou, double aXRef, double aYRef)
Create an IDF3 compliant BOARD (*.emn) and LIBRARY (*.emp) file.
Definition: export_idf.cpp:595
void OnClearFileHistory(wxCommandEvent &aEvent)
void ReCreateVToolbar() override
virtual ~PCB_EDIT_FRAME()
void SwitchCanvas(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType) override
Switch currently used canvas (Cairo / OpenGL).
void FindNext()
Find the next item using our existing search parameters.
BOARD_ITEM_CONTAINER * GetModel() const override
void OnExportSTEP(wxCommandEvent &event)
Export the current BOARD to a STEP assembly.
static std::vector< ACTION_PLUGIN * > GetOrderedActionPlugins()
Return ordered list of plugins in sequence in which they should appear on toolbar or in settings.
void ShowTargetOptionsDialog(PCB_TARGET *aTarget)
void UpdateViaSizeSelectBox(wxChoice *aViaSizeSelectBox, bool aEdit=true)
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 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.
void GenD356File(wxCommandEvent &event)
bool importFile(const wxString &aFileName, int aFileType)
Load the given filename but sets the path to the current project path.
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.
bool Clear_Pcb(bool aQuery, bool aFinal=false)
Delete all and reinitialize the current board.
Definition: initpcb.cpp:43
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:86
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 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.
wxTimer m_redrawNetnamesTimer
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 OnUpdateLayerSelectBox(wxUpdateUIEvent &aEvent)
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)
bool ExportVRML_File(const wxString &aFullFileName, double aMMtoWRMLunit, bool aExport3DFiles, bool aUseRelativePaths, const wxString &a3D_Subdir, double aXRef, double aYRef)
Create the file(s) exporting current BOARD to a VRML file.
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.
BOX2D m_lastViewport
Keep track of viewport so that track net labels can be adjusted when it changes.
int DoGenFootprintsPositionFile(const wxString &aFullFileName, bool aUnitsMM, bool aOnlySMD, bool aNoTHItems, bool aTopSide, bool aBottomSide, bool aFormatCSV, bool aUseAuxOrigin, bool aNegateBottomX)
Create an ASCII footprint position file.
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...
void OnRunTeardropTool(wxCommandEvent &event)
run teardrop tool
void ReCreateOptToolbar() override
TOOL_ACTION * m_exportNetlistAction
The export board netlist tool action object.
void ReCreateAuxiliaryToolbar() override
void Edit_Zone_Params(ZONE *zone_container)
Edit params (layer, clearance, ...) for a zone outline.
bool FootprintMatchesLibrary()
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:127
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.
void OnRemoveTeardropTool(wxCommandEvent &event)
Remove all teardrops.
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 Files_io(wxCommandEvent &event)
Call Files_io_from_id with the wxCommandEvent id.
void UpdateTitle()
Set the main window title bar text.
void ExchangeFootprint(FOOTPRINT *aExisting, FOOTPRINT *aNew, BOARD_COMMIT &aCommit, bool deleteExtraTexts=true, bool resetTextLayers=true, bool resetTextEffects=true, bool resetFabricationAttrs=true, bool reset3DModels=true, bool *aUpdated=nullptr)
Replace aExisting footprint by aNew footprint using the Existing footprint settings (position,...
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.
int inferLegacyEdgeClearance(BOARD *aBoard)
wxChoice * m_SelViaSizeBox
void Process_Special_Functions(wxCommandEvent &event)
Definition: edit.cpp:47
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)
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.
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.
bool DoGenFootprintsReport(const wxString &aFullFilename, bool aUnitsMM)
Create an ASCII footprint report file giving some infos on footprints and board outlines.
void ResolveDRCExclusions()
Update markers to match recorded exclusions.
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 ReCreateMenuBar() override
Recreates the menu bar.
bool isAutoSaveRequired() const override
Return true if the board has been modified.
void SendCrossProbeNetName(const wxString &aNetName)
Send a net name to Eeschema for highlighting.
void redrawNetnames(wxTimerEvent &aEvent)
static const wxString SearchPaneName()
wxChoice * m_SelTrackWidthBox
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.
A set of BOARD_ITEMs (i.e., without duplicates).
Definition: pcb_group.h:51
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:71
Represent a single user action.
Definition: tool_action.h:68
Handle a list of polygons defining a copper zone.
Definition: zone.h:57
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
Definition: layer_ids.h:190
PCB_LAYER_ID
A quick note on layer IDs:
Definition: layer_ids.h:59
LAST_PATH_TYPE
For storing PcbNew MRU paths of various types.
Definition: project_file.h:47
A filename or source description, a problem input line, a line number, a byte offset,...
Definition: ki_exception.h:119
Store the previous layer toolbar icon state information.