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 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
18 * along with this program. If not, see <https://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 PCB_SCREEN;
31class BOARD;
32class BOARD_COMMIT;
34class DESIGN_BLOCK;
36class FOOTPRINT;
37class PCB_TRACK;
38class PCB_VIA;
39class PAD;
40class PCB_SELECTION;
41class PCB_TARGET;
42class PCB_GROUP;
44class DRC;
45class 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;
66class WX_INFOBAR;
67
69class API_HANDLER_PCB;
72
73enum LAST_PATH_TYPE : unsigned int;
74
75namespace PCB { struct IFACE; } // KIFACE is in pcbnew.cpp
76
77wxDECLARE_EVENT( EDA_EVT_PCB_LAST_SCH_SHEET_CHANGED, wxCommandEvent );
78
85{
86public:
87 virtual ~PCB_EDIT_FRAME();
88
89 void OnQuit( wxCommandEvent& event );
90
96 bool IsContentModified() const override;
97
102 void UpdateUserInterface();
103
104 void HardRedraw() override;
105
114 void ExecuteRemoteCommand( const char* cmdline ) override;
115
116 void HandleRemoteNetHighlight( const std::vector<wxString>& aNetNames );
117
118 void KiwayMailIn( KIWAY_MAIL_EVENT& aEvent ) override;
119
120 void SetLastSchematicSheetPath( const KIID_PATH& aPath );
122
126 static const wxString SearchPaneName() { return wxT( "Search" ); }
127 static const wxString ConstraintsPaneName() { return wxT( "Constraints" ); }
128
131
134
138 void ShowFindDialog();
139
144
149
153 void FindNext( bool reverse = false );
154
155 bool LayerManagerShown();
156 bool PropertiesShown();
157 bool NetInspectorShown();
158
159 void OnUpdateSelectViaSize( wxUpdateUIEvent& aEvent );
160 void OnUpdateSelectTrackWidth( wxUpdateUIEvent& aEvent );
161
162 void UpdateTrackWidthSelectBox( wxChoice* aTrackWidthSelectBox, bool aShowNetclass,
163 bool aShowEdit );
164 void UpdateViaSizeSelectBox( wxChoice* aViaSizeSelectBox, bool aShowNetclass, bool aShowEdit );
165
169 void UpdateViaStackSelectBox( wxChoice* aViaStackSelectBox );
170
178
183 void SetCurrentVariant( const wxString& aVariantName );
184
188 void onVariantSelected( wxCommandEvent& aEvent );
189
193 EDA_ANGLE GetRotationAngle() const override;
194
198 COLOR4D GetGridColor() override;
199
203 void SetGridColor( const COLOR4D& aColor ) override;
204
209 static bool GetPluginActionButtonVisible( const wxString& aPluginPath, bool aPluginDefault );
210
215 static std::vector<const PLUGIN_ACTION*> GetOrderedPluginActions();
216
217 void SaveProjectLocalSettings() override;
218
225 bool LoadProjectSettings();
226
227 void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
228
229 void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
230
234 void LoadDrawingSheet();
235
241 wxString GetLastPath( LAST_PATH_TYPE aType );
242
255 void SetLastPath( LAST_PATH_TYPE aType, const wxString& aLastPath );
256
261 void ResolveDRCExclusions( bool aCreateMarkers );
262
263 void Process_Special_Functions( wxCommandEvent& event );
264 void Tracks_and_Vias_Size_Event( wxCommandEvent& event );
265
269 void SelectViaStack_Event( wxCommandEvent& event );
270
271
280 void ReCreateLayerBox( bool aForceResizeToolbar = true );
281
282
289 void OnModify() override;
290
294 void SetActiveLayer( PCB_LAYER_ID aLayer ) override
295 {
296 SetActiveLayer( aLayer, false );
297 }
298
304 void SetActiveLayer( PCB_LAYER_ID aLayer, bool aForceRedraw );
305
306 void OnDisplayOptionsChanged() override;
307
315 bool IsElementVisible( GAL_LAYER_ID aElement ) const;
316
324 void SetElementVisibility( GAL_LAYER_ID aElement, bool aNewState );
325
327 void ActivateGalCanvas() override;
328
335 void RefreshDrillSymbols( int aUpdateFlags ) override;
336
337 void ShowBoardSetupDialog( const wxString& aInitialPage = wxEmptyString, wxWindow* aParent = nullptr );
338
339 void PrepareLayerIndicator( bool aForceRebuild = false );
340
341 void ToggleLayersManager();
342
343 void ToggleNetInspector();
344
345 void ToggleSearch();
346
347 bool IsSearchPaneShown() { return m_auimgr.GetPane( SearchPaneName() ).IsShown(); }
348 void FocusSearch();
349
350 void ToggleLibraryTree() override;
351
370 int DoGenFootprintsPositionFile( const wxString& aFullFileName, bool aUnitsMM, bool aOnlySMD,
371 bool aNoTHItems, bool aExcludeDNP, bool aExcludeBOM, bool aTopSide,
372 bool aBottomSide, bool aFormatCSV, bool aUseAuxOrigin,
373 bool aNegateBottomX );
374
375 void OnFileHistory( wxCommandEvent& event );
376 void OnClearFileHistory( wxCommandEvent& aEvent );
377
378 bool SaveBoard( bool aSaveAs = false, bool aSaveCopy = false );
379
392 bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
393
400 bool ReloadFromDisk();
401
413 bool SavePcbFile( const wxString& aFileName, bool addToHistory = true,
414 bool aChangeProject = true );
415
428 bool SavePcbCopy( const wxString& aFileName, bool aCreateProject = false,
429 bool aHeadless = false );
430
438 bool Clear_Pcb( bool doAskAboutUnsavedChanges, bool aFinal = false );
439
441 void SetBoard( BOARD* aBoard, PROGRESS_REPORTER* aReporter = nullptr ) override
442 {
443 SetBoard( aBoard, true, aReporter );
444 }
445
446 void SetBoard( BOARD* aBoard, bool aBuildConnectivity, PROGRESS_REPORTER* aReporter = nullptr );
447
449 BOARD_ITEM_CONTAINER* GetModel() const override;
450
451 std::unique_ptr<GRID_HELPER> MakeGridHelper() override;
452
454 void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
455
456 bool SaveBoardAsDesignBlock( const wxString& aLibraryName );
457
458 bool SaveSelectionAsDesignBlock( const wxString& aLibraryName );
459
460 bool UpdateDesignBlockFromBoard( const LIB_ID& aLibId );
461
462 bool UpdateDesignBlockFromSelection( const LIB_ID& aLibId );
463
465
477 void ExportFootprintsToLibrary( bool aStoreInNewLib, const wxString& aLibName = wxEmptyString,
478 wxString* aLibPath = nullptr );
479
506 bool ExportVRML_File( const wxString& aFullFileName, double aMMtoWRMLunit,
507 bool aIncludeUnspecified, bool aIncludeDNP,
508 bool aExport3DFiles, bool aUseRelativePaths,
509 const wxString& a3D_Subdir, double aXRef, double aYRef );
510
518 bool ExportSpecctraFile( const wxString& aFullFilename );
519
529 bool ImportSpecctraSession( const wxString& aFullFilename );
530
531 // Footprint editing (see also PCB_BASE_FRAME)
532 void ShowFootprintPropertiesDialog( FOOTPRINT* aFootprint );
533
534 int ShowExchangeFootprintsDialog( FOOTPRINT* aFootprint, bool aUpdateMode, bool aSelectedMode );
535
541 void OnEditItemRequest( BOARD_ITEM* aItem ) override;
542
548 void SwitchLayer( PCB_LAYER_ID layer ) override;
549
562 void SetTrackSegmentWidth( PCB_TRACK* aItem, PICKED_ITEMS_LIST* aItemsListPicker,
563 bool aUseDesignRules );
564
565
569 void Edit_Zone_Params( ZONE* zone_container );
570
571 // Properties dialogs
572 void ShowTargetOptionsDialog( PCB_TARGET* aTarget );
573 void InstallNetlistFrame();
574
581 bool FetchNetlistFromSchematic( NETLIST& aNetlist, const wxString& aAnnotateMessage );
582
590 int TestStandalone();
591
600 bool ReadNetlistFromFile( const wxString& aFilename, NETLIST& aNetlist, REPORTER& aReporter );
601
608 void OnNetlistChanged( BOARD_NETLIST_UPDATER& aUpdater, bool* aRunDragCommand );
609
620 void SendSelectItemsToSch( const std::deque<EDA_ITEM*>& aItems, EDA_ITEM* aFocusItem,
621 bool aForce );
622
629 void SendCrossProbeItem( BOARD_ITEM* aSyncItem );
630
636 void SendCrossProbeNetName( const wxString& aNetName );
637
638 void ShowChangedLanguage() override;
639
643 void OnBoardLoaded();
644
653 void UpdateTitle();
654
658 void CommonSettingsChanged( int aFlags ) override;
659
663 void ThemeChanged() override;
664
665 void ProjectChanged() override;
666
667 bool CanAcceptApiCommands() override;
668
669 wxString GetCurrentFileName() const override;
670
671 SELECTION& GetCurrentSelection() override;
672
674
676
678
680
682
685
692 bool DoAutoSave();
693
694 void ClearToolbarControl( int aId ) override;
695
696 DECLARE_EVENT_TABLE()
697
698protected:
717
719
720 void doReCreateMenuBar() override;
721
722 void configureToolbars() override;
723
724 void ReCreateAuxiliaryToolbar() override;
725
726 // The Tool Framework initialization
727 void setupTools();
728 void setupUIConditions() override;
729
735 void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType ) override;
736
738
745 bool doAutoSave() override { return DoAutoSave(); }
746
747 bool canRunAutoSave() const override;
748
755
763 bool importFile( const wxString& aFileName, int aFileType,
764 const std::map<std::string, UTF8>* aProperties = nullptr );
765
777 std::vector<std::unique_ptr<FOOTPRINT>> aDefinitions, const wxString& aBoardPath );
778
788 bool saveBoardAsFile( BOARD& aBoard, const wxString& aFileName, bool aHeadless = false );
789
790 bool saveSelectionToDesignBlock( const wxString& aNickname, PCB_SELECTION& aSelection, DESIGN_BLOCK& aBlock );
791
792
793 bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
794 void doCloseWindow() override;
795
796 // protected so that PCB::IFACE::CreateWindow() is the only factory.
797 PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
798
799 int inferLegacyEdgeClearance( BOARD* aBoard, bool aShowUserMsg = true );
800
801 void redrawNetnames();
802
803 void saveProjectSettings() override;
804
805 void onCloseModelessBookReporterDialogs( wxCommandEvent& aEvent );
806 void onCloseFootprintFieldsTableDialog( wxCommandEvent& aEvent );
807
808 void onPluginAvailabilityChanged( wxCommandEvent& aEvt );
809
810public:
811 wxChoice* m_SelTrackWidthBox; // a choice box to display and select current track width
812 wxChoice* m_SelViaSizeBox; // a choice box to display and select current via diameter
813 wxChoice* m_SelViaStackBox; // a choice box to display and select current via stack preset
814 wxChoice* m_CurrentVariantCtrl; // a choice box to display and select current variant
815
819
820 bool m_ZoneFillsDirty; // Board has been modified since last zone fill.
821
822 bool m_ProbingSchToPcb; // Recursion guard when synchronizing selection from schematic
823
829 std::size_t m_textVarListenerHandle = 0;
831
838
839 void StartCrossProbeFlash( const std::vector<BOARD_ITEM*>& aItems );
840 void OnCrossProbeFlashTimer( wxTimerEvent& aEvent );
841 void UpdateProperties() override;
842
843private:
844 friend struct PCB::IFACE;
846
855
864
865 std::vector<LIB_ID> m_designBlockHistoryList;
867 // Tool Reset() reads this before the ctor creates the panel.
869
875
876 const std::map<std::string, UTF8>* m_importProperties; // Properties used for non-KiCad import.
877
883
885
886 // Cross-probe flashing support
889 std::vector<KIID> m_crossProbeFlashItems;
890 bool m_crossProbeFlashing = false;
891
892 // Most recent schematic path (default to root), used in the footprint fields
893 // table to enable the same schematic scope limiting as the symbol fields table
895
896 std::unique_ptr<API_HANDLER_PCB> m_apiHandler;
897 std::unique_ptr<API_HANDLER_COMMON> m_apiHandlerCommon;
898 std::unique_ptr<API_HANDLER_LIBRARIES> m_apiLibrariesHandler;
899};
900
901#endif // __PCB_EDIT_FRAME_H__
BOX2< VECTOR2D > BOX2D
Definition box2.h:915
Define the structure of a menu based on ACTIONs.
Definition action_menu.h:43
Base class for API handlers related to library management.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
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:85
Update the BOARD with a new netlist.
Information pertinent to a Pcbnew printed circuit board.
Definition board.h:411
A dialog to set the plot options and create plot files in various formats.
Definition dialog_plot.h:37
wxAuiManager m_auimgr
A base class for most all the KiCad significant classes used in schematics and boards.
Definition eda_item.h:98
A general implementation of a COLLECTORS_GUIDE.
Definition collectors.h:320
Used when the right click button is pressed, or when the select tool is in effect.
Definition collectors.h:203
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
A color representation with 4 components: red, green, blue, alpha.
Definition color4d.h:101
Carry a payload from one KIWAY_PLAYER to another within a PROJECT.
Definition kiway_mail.h:34
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition kiway.h:348
A logical library item identifier and consists of various portions much like a URI.
Definition lib_id.h:45
Store information read from a netlist along with the flags used to update the NETLIST in the BOARD.
Definition pad.h:61
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition page_info.h:75
Dockable panel listing the board's geometric constraints (issue #2329).
PCB_BASE_EDIT_FRAME(KIWAY *aKiway, wxWindow *aParent, FRAME_T aFrameType, const wxString &aTitle, const wxPoint &aPos, const wxSize &aSize, long aStyle, const wxString &aFrameName)
Abstract dimension API.
void HardRedraw() override
Rebuild the GAL and redraws the screen.
void OnDisplayOptionsChanged() override
std::size_t m_textVarListenerHandle
Reactive text-var invalidation listener state.
static bool GetPluginActionButtonVisible(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 OnEditItemRequest(BOARD_ITEM *aItem) override
Install the corresponding dialog editor for the given item.
Definition edit.cpp:95
int DoGenFootprintsPositionFile(const wxString &aFullFileName, bool aUnitsMM, bool aOnlySMD, bool aNoTHItems, bool aExcludeDNP, bool aExcludeBOM, bool aTopSide, bool aBottomSide, bool aFormatCSV, bool aUseAuxOrigin, bool aNegateBottomX)
Create an ASCII footprint position file.
void SelectViaStack_Event(wxCommandEvent &event)
Handle the via stack preset selector on the auxiliary toolbar.
void SetLastPath(LAST_PATH_TYPE aType, const wxString &aLastPath)
Set the path of the last file successfully read.
bool interactiveOperationInProgress() const
Return true when an interactive tool operation (routing, dragging, point editing, zone filling,...
int m_crossProbeFlashPhase
Phase counter.
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.
bool saveBoardAsFile(BOARD &aBoard, const wxString &aFileName, bool aHeadless=false)
Save a board object to a file.
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.
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.
void SwitchLayer(PCB_LAYER_ID layer) override
Change the active layer in the editor.
Definition edit.cpp:68
wxTimer m_crossProbeFlashTimer
Timer to toggle selection visibility for flash.
void StartCrossProbeFlash(const std::vector< BOARD_ITEM * > &aItems)
void OnCrossProbeFlashTimer(wxTimerEvent &aEvent)
std::unique_ptr< API_HANDLER_PCB > m_apiHandler
void KiwayMailIn(KIWAY_MAIL_EVENT &aEvent) override
Receive KIWAY_MAIL_EVENT messages from other players.
bool CloseFootprintFieldsTableDialog()
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
void OnUpdateSelectTrackWidth(wxUpdateUIEvent &aEvent)
DIALOG_FOOTPRINT_FIELDS_TABLE * m_footprintFieldsTableDialog
bool ReloadFromDisk()
Reload the board from disk.
void UpdateVariantSelectionCtrl()
Update the variant selection dropdown with the current board's variant names.
bool DoAutoSave()
Perform auto save when the board has been modified and not saved within the auto save interval.
void UpdateTrackWidthSelectBox(wxChoice *aTrackWidthSelectBox, bool aShowNetclass, bool aShowEdit)
void SetElementVisibility(GAL_LAYER_ID aElement, bool aNewState)
Change the visibility of an element category.
DIALOG_BOOK_REPORTER * m_inspectDrcErrorDlg
void SetLastSchematicSheetPath(const KIID_PATH &aPath)
void OnClearFileHistory(wxCommandEvent &aEvent)
bool SaveBoard(bool aSaveAs=false, bool aSaveCopy=false)
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.
void ShowFindByPropertiesDialog()
Show the Find by Properties dialog.
BOARD_ITEM_CONTAINER * GetModel() const override
DIALOG_BOOK_REPORTER * GetInspectDrcErrorDialog()
void SetCurrentVariant(const wxString &aVariantName)
Set the current variant on the board and update the drawing sheet's cached variant name and descripti...
bool saveSelectionToDesignBlock(const wxString &aNickname, PCB_SELECTION &aSelection, DESIGN_BLOCK &aBlock)
KIID_PATH GetLastSchematicSheetPath() const
void ShowTargetOptionsDialog(PCB_TARGET *aTarget)
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString, wxWindow *aParent=nullptr)
std::unique_ptr< API_HANDLER_COMMON > m_apiHandlerCommon
DIALOG_FOOTPRINT_FIELDS_TABLE * GetFootprintFieldsTableDialog()
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
bool UpdateDesignBlockFromBoard(const LIB_ID &aLibId)
void SetPageSettings(const PAGE_INFO &aPageSettings) override
void onCloseFootprintFieldsTableDialog(wxCommandEvent &aEvent)
bool IsElementVisible(GAL_LAYER_ID aElement) const
Test whether a given element category is visible.
bool CanAcceptApiCommands() override
Check if this frame is ready to accept API commands.
void UpdateUserInterface()
Update the layer manager and other widgets from the board setup (layer and items visibility,...
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 UpdateDesignBlockFromSelection(const LIB_ID &aLibId)
static const wxString ConstraintsPaneName()
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.
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 footprints and to replace all vias and tracks in ...
WX_INFOBAR * m_loadNoticeInfoBar
Secondary infobar that stacks above the main one; reserved for load-time notices (currently the WRL -...
void ClearToolbarControl(int aId) override
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.
KIID_PATH m_lastSchematicSheetPath
static std::vector< const PLUGIN_ACTION * > GetOrderedPluginActions()
Return ordered list of plugins in sequence in which they should appear on toolbar or in 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 detachTextVarTracker()
Drop every cached reference into the current BOARD's text-var tracker.
void onPluginAvailabilityChanged(wxCommandEvent &aEvt)
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 PrepareLayerIndicator(bool aForceRebuild=false)
void ShowFindDialog()
Show the Find dialog.
wxChoice * m_CurrentVariantCtrl
int ShowExchangeFootprintsDialog(FOOTPRINT *aFootprint, bool aUpdateMode, bool aSelectedMode)
int TestStandalone()
Test if standalone mode.
void ShowFootprintPropertiesDialog(FOOTPRINT *aFootprint)
void UpdateProperties() override
bool canRunAutoSave() const override
Return true when it is safe to run an autosave snapshot right now.
bool SaveSelectionAsDesignBlock(const wxString &aLibraryName)
PANEL_CONSTRAINTS * m_constraintsPanel
Dockable geometric-constraint list (#2329).
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...
bool Clear_Pcb(bool doAskAboutUnsavedChanges, bool aFinal=false)
Delete all and reinitialize the current board.
Definition initpcb.cpp:38
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
std::unique_ptr< API_HANDLER_LIBRARIES > m_apiLibrariesHandler
bool m_crossProbeFlashing
Currently flashing guard.
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 OnBoardLoaded()
Update the state of the GUI after a new board is loaded or created.
void ReCreateAuxiliaryToolbar() override
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 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 HandleRemoteNetHighlight(const std::vector< wxString > &aNetNames)
DIALOG_BOOK_REPORTER * GetFootprintDiffDialog()
EDA_ANGLE GetRotationAngle() const override
Return the angle used for rotate operations.
void ToggleConstraintsPanel()
Show/hide the dockable geometric-constraint list pane, refreshing it when shown (#2329).
void OnUpdateSelectViaSize(wxUpdateUIEvent &aEvent)
COLOR4D GetGridColor() override
std::vector< KIID > m_crossProbeFlashItems
Items to flash (by UUID)
void UpdateTitle()
Set the main window title bar text.
void RefreshDrillSymbols(int aUpdateFlags) override
Tell every hole to redraw its drill symbol.
int inferLegacyEdgeClearance(BOARD *aBoard, bool aShowUserMsg=true)
DIALOG_BOOK_REPORTER * m_footprintDiffDlg
const std::map< std::string, UTF8 > * m_importProperties
void ActivateGalCanvas() override
Use to start up the GAL drawing canvas.
bool SaveBoardAsDesignBlock(const wxString &aLibraryName)
wxChoice * m_SelViaSizeBox
void Process_Special_Functions(wxCommandEvent &event)
Definition edit.cpp:50
void onVariantSelected(wxCommandEvent &aEvent)
Event handler for variant selection changes in the toolbar.
void configureToolbars() override
friend class APPEARANCE_CONTROLS
SELECTION & GetCurrentSelection() override
Get the current selection from the canvas area.
void OnQuit(wxCommandEvent &event)
void reconcileImportedFootprintLibraries(std::vector< std::unique_ptr< FOOTPRINT > > aDefinitions, const wxString &aBoardPath)
Reconcile the footprint-library references of a freshly imported non-KiCad board so that every board ...
void UpdateViaStackSelectBox(wxChoice *aViaStackSelectBox)
Fill the via stack preset selector with the board's defined presets plus an edit entry.
void NotifyFindByPropertiesDialog()
Notify the Find by Properties dialog that the selection has changed.
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.
double m_lastNetnamesScale
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
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.
wxChoice * m_SelViaStackBox
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_FIND_BY_PROPERTIES * m_findByPropertiesDialog
PANEL_CONSTRAINTS * GetConstraintsPanel() const
The dockable geometric-constraint list pane (#2329), or nullptr.
DIALOG_BOOK_REPORTER * m_inspectClearanceDlg
void OnFileHistory(wxCommandEvent &event)
DIALOG_BOOK_REPORTER * GetInspectConstraintsDialog()
class TEXT_VAR_TRACKER * m_textVarListenerTracker
A set of BOARD_ITEMs (i.e., without duplicates).
Definition pcb_group.h:51
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
Coordinates the dependency index with change notifications.
Represent a single user action.
A modified version of the wxInfoBar class that allows us to:
Definition wx_infobar.h:76
Handle a list of polygons defining a copper zone.
Definition zone.h:70
#define UNSPECIFIED
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
Definition layer_ids.h:224
PCB_LAYER_ID
A quick note on layer IDs:
Definition layer_ids.h:56
wxDECLARE_EVENT(EDA_EVT_PCB_LAST_SCH_SHEET_CHANGED, wxCommandEvent)
PLUGIN_ACTION_SCOPE
LAST_PATH_TYPE
For storing PcbNew MRU paths of various types.
A filename or source description, a problem input line, a line number, a byte offset,...
Store the previous layer toolbar icon state information.