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, jp.charras@wanadoo.fr
5  * Copyright (C) 1992-2019 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 WXPCB_STRUCT_H_
22 #define WXPCB_STRUCT_H_
23 
24 #include <unordered_map>
25 #include <map>
26 #include "pcb_base_edit_frame.h"
27 #include "config_params.h"
28 #include "undo_redo_container.h"
29 #include "zones.h"
30 
31 /* Forward declarations of classes. */
32 class ACTION_PLUGIN;
33 class PCB_SCREEN;
34 class BOARD;
35 class BOARD_COMMIT;
37 class TEXTE_PCB;
38 class MODULE;
39 class TRACK;
40 class VIA;
41 class D_PAD;
42 class TEXTE_MODULE;
43 class PCB_TARGET;
44 class DIMENSION;
45 class EDGE_MODULE;
46 class DRC;
47 class DIALOG_PLOT;
48 class ZONE_CONTAINER;
49 class DRAWSEGMENT;
50 class GENERAL_COLLECTOR;
52 class PCB_LAYER_WIDGET;
53 class MARKER_PCB;
54 class BOARD_ITEM;
56 class NETLIST;
57 class REPORTER;
58 struct PARSE_ERROR;
59 class IO_ERROR;
60 class FP_LIB_TABLE;
62 class ACTION_MENU;
63 
64 namespace PCB { struct IFACE; } // KIFACE_I is in pcbnew.cpp
65 
70 {
74 };
75 
77 {
84 
86 };
87 
97 {
98  friend struct PCB::IFACE;
99  friend class PCB_LAYER_WIDGET;
100 
103 
104 protected:
105  PARAM_CFG_ARRAY m_configParams; // List of Pcbnew configuration settings.
107 
109 
110 
115  {
122 
125  previous_active_layer_color( COLOR4D::UNSPECIFIED ),
126  previous_Route_Layer_TOP_color( COLOR4D::UNSPECIFIED ),
128  previous_via_color( COLOR4D::UNSPECIFIED ),
129  previous_background_color( COLOR4D::UNSPECIFIED )
130  {
131  }
132  };
133 
135 
136  // The Tool Framework initalization
137  void setupTools();
138 
139  wxString createBackupFile( const wxString& aFileName );
140 
145  void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType ) override;
146 
147 #if defined(KICAD_SCRIPTING) && defined(KICAD_SCRIPTING_ACTION_MENU)
148 
152  void buildActionPluginMenus( ACTION_MENU* aActionMenu );
153 
158  void AddActionPluginTools();
159 
165  void RunActionPlugin( ACTION_PLUGIN* aActionPlugin );
166 
172  void OnActionPluginMenu( wxCommandEvent& aEvent);
173 
179  void OnActionPluginButton( wxCommandEvent& aEvent );
180 
186  void OnActionPluginRefresh( wxCommandEvent& aEvent)
187  {
189  }
190 #endif
191 
196  static const wxChar * pythonConsoleNameId()
197  {
198  return wxT( "PythonConsole" );
199  }
200 
204  static wxWindow * findPythonConsole()
205  {
206  return FindWindowByName( pythonConsoleNameId() );
207  }
208 
212  void onBoardLoaded();
213 
223  void syncLayerWidgetLayer();
224 
231  void syncRenderStates();
232 
239  void syncLayerVisibilities();
240 
248  bool doAutoSave() override;
249 
254  bool isAutoSaveRequired() const override;
255 
261  bool importFile( const wxString& aFileName, int aFileType );
262 
266  int inferLegacyEdgeClearance( BOARD* aBoard );
267 
271  bool fixEagleNets( const std::unordered_map<wxString, wxString>& aRemap );
272 
273  // protected so that PCB::IFACE::CreateWindow() is the only factory.
274  PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
275 
276 public:
277  PCB_LAYER_BOX_SELECTOR* m_SelLayerBox; // a combo box to display and select active layer
278  wxChoice* m_SelTrackWidthBox; // a choice box to display and select current track width
279  wxChoice* m_SelViaSizeBox; // a choice box to display and select current via diameter
280 
283 
284  bool m_ZoneFillsDirty; // Board has been modified since last zone fill.
285 
286  virtual ~PCB_EDIT_FRAME();
287 
297  void LoadFootprints( NETLIST& aNetlist, REPORTER& aReporter );
298 
299  void OnQuit( wxCommandEvent& event );
300 
306  void PythonPluginsReload();
307 
312  void UpdateUserInterface();
313 
320  void ExecuteRemoteCommand( const char* cmdline ) override;
321 
322  void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
323 
328  void ToPlotter( int aID );
329 
334  void ExportSVG( wxCommandEvent& event );
335 
336  // User interface update command event handlers.
337  void OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent );
338  bool LayerManagerShown();
339  bool MicrowaveToolbarShown();
340  void OnUpdateSelectViaSize( wxUpdateUIEvent& aEvent );
341  void OnUpdateSelectTrackWidth( wxUpdateUIEvent& aEvent );
342  void OnLayerColorChange( wxCommandEvent& aEvent );
343 
344  void RunEeschema();
345 
346  void UpdateTrackWidthSelectBox( wxChoice* aTrackWidthSelectBox, bool aEdit = true );
347  void UpdateViaSizeSelectBox( wxChoice* aViaSizeSelectBox, bool aEdit = true );
348 
353  COLOR4D GetGridColor() override;
354 
359  void SetGridColor( COLOR4D aColor ) override;
360 
361  // Configurations:
362  void Process_Config( wxCommandEvent& event );
363 
364 #if defined(KICAD_SCRIPTING) && defined(KICAD_SCRIPTING_ACTION_MENU)
365 
371  void SetActionPluginSettings( const std::vector< std::pair<wxString, wxString> >& aPluginsWithButtons );
372 
377  std::vector< std::pair<wxString, wxString> > GetActionPluginSettings();
378 
384  bool GetActionPluginButtonVisible( const wxString& aPluginPath, bool aPluginDefault );
385 
390  std::vector<ACTION_PLUGIN*> GetOrderedActionPlugins();
391 
392 #endif
393 
407 
413  void SaveProjectSettings( bool aAskForSave ) override;
414 
421  bool LoadProjectSettings();
422 
439 
440  void LoadSettings( wxConfigBase* aCfg ) override;
441 
442  void SaveSettings( wxConfigBase* aCfg ) override;
443 
444  wxConfigBase* GetSettings() { return config(); };
445 
450  wxString GetLastPath( LAST_PATH_TYPE aType );
451 
463  void SetLastPath( LAST_PATH_TYPE aType, const wxString& aLastPath );
464 
465  void OnCloseWindow( wxCloseEvent& Event ) override;
466  void Process_Special_Functions( wxCommandEvent& event );
467  void Tracks_and_Vias_Size_Event( wxCommandEvent& event );
468 
469  void ReCreateHToolbar() override;
470  void ReCreateAuxiliaryToolbar() override;
471  void ReCreateVToolbar() override;
473  void ReCreateOptToolbar() override;
474  void ReCreateMenuBar() override;
475 
483  void ReCreateLayerBox( bool aForceResizeToolbar = true );
484 
485 
496  bool SetCurrentNetClass( const wxString& aNetClassName );
497 
506  void OnModify() override;
507 
513  void SetActiveLayer( PCB_LAYER_ID aLayer ) override;
514 
516 
520  void OnUpdateLayerAlpha( wxUpdateUIEvent& aEvent ) override;
521 
530  bool IsElementVisible( GAL_LAYER_ID aElement ) const;
531 
539  void SetElementVisibility( GAL_LAYER_ID aElement, bool aNewState );
540 
545  void SetVisibleAlls();
546 
552  void ReFillLayerWidget();
553 
555  void ActivateGalCanvas() override;
556 
560  void DoShowBoardSetupDialog( const wxString& aInitialPage = wxEmptyString,
561  const wxString& aInitialParentPage = wxEmptyString );
562 
563  /* toolbars update UI functions: */
564 
565  void PrepareLayerIndicator( bool aForceRebuild = false );
566 
567  void ToggleLayersManager();
568  void ToggleMicrowaveToolbar();
569 
584  int DoGenFootprintsPositionFile( const wxString& aFullFileName, bool aUnitsMM,
585  bool aForceSmdItems, bool aTopSide, bool BottomSide, bool aFormatCSV = false );
586 
592  void GenFootprintsReport( wxCommandEvent& event );
593 
602  bool DoGenFootprintsReport( const wxString& aFullFilename, bool aUnitsMM );
603 
604  void GenD356File( wxCommandEvent& event );
605 
606  void OnFileHistory( wxCommandEvent& event );
607 
614  void Files_io( wxCommandEvent& event );
615 
629  bool Files_io_from_id( int aId );
630 
645  bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
646 
659  bool SavePcbFile( const wxString& aFileName, bool aCreateBackupFile = CREATE_BACKUP_FILE );
660 
672  bool SavePcbCopy( const wxString& aFileName );
673 
674  // BOARD handling
675 
682  bool Clear_Pcb( bool aQuery, bool aFinal = false );
683 
685  void SetBoard( BOARD* aBoard ) override;
686 
688  BOARD_ITEM_CONTAINER* GetModel() const override;
689 
691  void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
692 
699  void RecreateCmpFileFromBoard( wxCommandEvent& aEvent );
700 
715  void ArchiveModulesOnBoard( bool aStoreInNewLib, const wxString& aLibName = wxEmptyString,
716  wxString* aLibPath = NULL );
717 
722  void RecreateBOMFileFromBoard( wxCommandEvent& aEvent );
723 
728  void ExportToGenCAD( wxCommandEvent& event );
729 
734  void OnExportVRML( wxCommandEvent& event );
735 
765  bool ExportVRML_File( const wxString & aFullFileName, double aMMtoWRMLunit,
766  bool aExport3DFiles, bool aUseRelativePaths, bool aUsePlainPCB,
767  const wxString & a3D_Subdir, double aXRef, double aYRef );
768 
773  void OnExportIDF3( wxCommandEvent& event );
774 
779  void OnExportHyperlynx( wxCommandEvent& event );
780 
792  bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName,
793  bool aUseThou, double aXRef, double aYRef );
794 
799  void OnExportSTEP( wxCommandEvent& event );
800 
808  bool ExportSpecctraFile( const wxString& aFullFilename );
809 
817  bool ImportSpecctraSession( const wxString& aFullFilename );
818 
819  // Footprint editing (see also PCB_BASE_FRAME)
821 
822  int InstallExchangeModuleFrame( MODULE* aModule, bool updateMode, bool selectedMode );
823 
833  void Exchange_Module( MODULE* aSrc, MODULE* aDest, BOARD_COMMIT& aCommit,
834  bool deleteExtraTexts = true,
835  bool resetTextLayers = true, bool resetTextEffects = true,
836  bool reset3DModels = true );
837 
838  // loading modules: see PCB_BASE_FRAME
839 
846  void OnEditItemRequest( BOARD_ITEM* aItem ) override;
847 
848  void SwitchLayer( wxDC* DC, PCB_LAYER_ID layer ) override;
849 
865  int SetTrackSegmentWidth( TRACK* aTrackItem,
866  PICKED_ITEMS_LIST* aItemsListPicker,
867  bool aUseNetclassValue );
868 
869 
874  void Edit_Zone_Params( ZONE_CONTAINER* zone_container );
875 
876  // Properties dialogs
877  void ShowTargetOptionsDialog( PCB_TARGET* aTarget );
878  void ShowDimensionPropertyDialog( DIMENSION* aDimension );
879  void InstallNetlistFrame();
880 
887  bool FetchNetlistFromSchematic( NETLIST& aNetlist, FETCH_NETLIST_MODE aMode );
888 
895  void DoUpdatePCBFromNetlist( NETLIST& aNetlist, bool aUseTimestamps );
896 
905  bool ReadNetlistFromFile( const wxString &aFilename, NETLIST& aNetlist, REPORTER& aReporter );
906 
912  void OnNetlistChanged( BOARD_NETLIST_UPDATER& aUpdater, bool* aRunDragCommand );
913 
914 
915 #if defined( KICAD_SCRIPTING_WXPYTHON )
916 
920  void ScriptingConsoleEnableDisable();
921 #endif
922 
923  void LockModule( MODULE* aModule, bool aLocked );
924 
931  void SendMessageToEESCHEMA( BOARD_ITEM* objectToSync );
932 
938  void SendCrossProbeNetName( const wxString& aNetName );
939 
949  MODULE* CreateMuWaveBaseFootprint( const wxString& aValue, int aTextSize, int aPadCount );
950 
958  MODULE* Create_MuWaveComponent( int shape_type );
959 
961 
962  void ShowChangedLanguage() override;
963 
974  void UpdateTitle();
975 
976  void On3DShapeLibWizard( wxCommandEvent& event );
977 
981  void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
982 
986  void CommonSettingsChanged( bool aEnvVarsChanged ) override;
987 
988  void SyncToolbars() override;
989 
990  DECLARE_EVENT_TABLE()
991 };
992 
993 #endif // WXPCB_STRUCT_H_
void SaveSettings(wxConfigBase *aCfg) override
Saves common frame parameters to a configuration data file.
void syncRenderStates()
Function syncRenderStates updates the "Render" checkboxes in the layer widget according to current to...
void UpdateTitle()
Function UpdateTitle sets the main window title bar text.
IFACE(const char *aName, KIWAY::FACE_T aType)
Definition: pcbnew.cpp:385
PCB_EDIT_FRAME(KIWAY *aKiway, wxWindow *aParent)
void OnModify() override
Function OnModify must be called after a board change to set the modified flag.
Class ZONE_CONTAINER handles a list of polygons defining a copper zone.
Definition: class_zone.h:60
A list of parameters type.
Class ACTION_PLUGIN This is the parent class from where any action plugin class must derive.
Definition: action_plugin.h:40
void SetPageSettings(const PAGE_INFO &aPageSettings) override
void RecreateCmpFileFromBoard(wxCommandEvent &aEvent)
Function RecreateBOMFileFromBoard Recreates a .cmp file from the current loaded board this is the sam...
Class ACTION_TOOLBAR.
LAST_PATH_TYPE
Class KIWAY_EXPRESS carries a payload from one KIWAY_PLAYER to another within a PROJECT.
Definition: kiway_express.h:39
void Edit_Zone_Params(ZONE_CONTAINER *zone_container)
Function Edit_Zone_Params Edit params (layer, clearance, ...) for a zone outline.
void SetElementVisibility(GAL_LAYER_ID aElement, bool aNewState)
Function SetElementVisibility changes the visibility of an element category.
void OnExportIDF3(wxCommandEvent &event)
Function OnExportIDF3 will export the current BOARD to a IDFv3 board and lib files.
void syncLayerWidgetLayer()
Function syncLayerWidgetLayer updates the currently layer "selection" within the PCB_LAYER_WIDGET.
void SendCrossProbeNetName(const wxString &aNetName)
Sends a net name to eeschema for highlighting.
void Process_Config(wxCommandEvent &event)
void OnExportHyperlynx(wxCommandEvent &event)
Function OnExportHyperlynx will export the current BOARD to a Hyperlynx HYP file.
bool importFile(const wxString &aFileName, int aFileType)
Load the given filename but sets the path to the current project path.
void OnEditItemRequest(BOARD_ITEM *aItem) override
Function OnEditItemRequest Install the corresponding dialog editor for the given item.
Definition: edit.cpp:126
void LockModule(MODULE *aModule, bool aLocked)
Class ACTION_MENU.
Definition: action_menu.h:43
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class,...
void ToPlotter(int aID)
Function ToPlotter Open a dialog frame to create plot and drill files relative to the current board.
Class BOARD_NETLIST_UPDATER updates the BOARD with a new netlist.
Class PCB_LAYER_WIDGET is here to implement the abstract functions of LAYER_WIDGET so they may be tie...
bool SavePcbCopy(const wxString &aFileName)
Function SavePcbCopy writes the board data structures to a aFileName but unlike SavePcbFile,...
void LoadSettings(wxConfigBase *aCfg) override
Load common frame parameters from a configuration file.
void LoadFootprints(NETLIST &aNetlist, REPORTER &aReporter)
Function loadFootprints loads the footprints for each COMPONENT in aNetlist from the list of librarie...
Definition: netlist.cpp:138
bool doAutoSave() override
Function doAutoSave performs auto save when the board has been modified and not saved within the auto...
void ActivateGalCanvas() override
void OnUpdateLayerSelectBox(wxUpdateUIEvent &aEvent)
void OnExportSTEP(wxCommandEvent &event)
Function OnExportSTEP Exports the current BOARD to a STEP assembly.
bool ReadNetlistFromFile(const wxString &aFilename, NETLIST &aNetlist, REPORTER &aReporter)
Reads a netlist from a file into a NETLIST object.
Definition: netlist.cpp:60
wxChoice * m_SelViaSizeBox
void OnLayerColorChange(wxCommandEvent &aEvent)
void RecreateBOMFileFromBoard(wxCommandEvent &aEvent)
Function RecreateBOMFileFromBoard Creates a BOM file from the current loaded board.
bool Export_IDF3(BOARD *aPcb, const wxString &aFullFileName, bool aUseThou, double aXRef, double aYRef)
Function Export_IDF3 Creates an IDF3 compliant BOARD (*.emn) and LIBRARY (*.emp) file.
Definition: export_idf.cpp:553
GAL_LAYER_ID
GAL layers are "virtual" layers, i.e.
bool LoadProjectSettings()
Load the current project's file configuration settings which are pertinent to this PCB_EDIT_FRAME ins...
wxString createBackupFile(const wxString &aFileName)
void ReCreateLayerBox(bool aForceResizeToolbar=true)
Re create the layer Box by clearing the old list, and building le new one, from the new layers names ...
int SetTrackSegmentWidth(TRACK *aTrackItem, PICKED_ITEMS_LIST *aItemsListPicker, bool aUseNetclassValue)
Function SetTrackSegmentWidth Modify one track segment width or one via diameter (using DRC control).
PARAM_CFG_ARRAY & GetConfigurationSettings()
Function GetConfigurationSettings returns the Pcbnew applications settings list.
The common library.
virtual wxConfigBase * config()
Returns the wxConfigBase used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.
void ExportToGenCAD(wxCommandEvent &event)
Function ExportToGenCAD creates a file in GenCAD 1.4 format from the current board.
void SetGridColor(COLOR4D aColor) override
Function SetGridColor() , virtual.
void ShowTargetOptionsDialog(PCB_TARGET *aTarget)
Class to display a pcb layer list in a wxBitmapComboBox.
bool m_show_microwave_tools
int inferLegacyEdgeClearance(BOARD *aBoard)
Use the existing edge_cut line thicknesses to infer the edge clearace.
void ReCreateHToolbar() override
void syncLayerVisibilities()
Function syncLayerVisibilities updates each "Layer" checkbox in the layer widget according to each la...
void Exchange_Module(MODULE *aSrc, MODULE *aDest, BOARD_COMMIT &aCommit, bool deleteExtraTexts=true, bool resetTextLayers=true, bool resetTextEffects=true, bool reset3DModels=true)
Function Exchange_Module Replaces OldModule by NewModule, using OldModule settings: position,...
Class REPORTER is a pure virtual class used to derive REPORTER objects from.
Definition: reporter.h:61
void OnCloseWindow(wxCloseEvent &Event) override
void OnNetlistChanged(BOARD_NETLIST_UPDATER &aUpdater, bool *aRunDragCommand)
Called after netlist is updated.
Definition: netlist.cpp:95
bool SetCurrentNetClass(const wxString &aNetClassName)
Function SetCurrentNetClass Must be called after a netclass selection (or after a netclass parameter ...
wxChoice * m_SelTrackWidthBox
PARAM_CFG_ARRAY & GetProjectFileParameters()
Function GetProjectFileParameters returns a project file parameter list for Pcbnew.
void SaveProjectSettings(bool aAskForSave) override
Function SaveProjectSettings saves changes to the project settings to the project (....
TRACK_ACTION_DRC_ERROR - Track not changed to to DRC.
static wxWindow * findPythonConsole()
void SetVisibleAlls()
Function SetVisibleAlls Set the status of all visible element categories and layers to VISIBLE.
bool fixEagleNets(const std::unordered_map< wxString, wxString > &aRemap)
Rematch orphaned zones and vias to schematic nets.
wxString GetLastPath(LAST_PATH_TYPE aType)
Get the last path for a particular type.
int InstallExchangeModuleFrame(MODULE *aModule, bool updateMode, bool selectedMode)
bool isAutoSaveRequired() const override
Function isautoSaveRequired returns true if the board has been modified.
Store the previous layer toolbar icon state information.
bool m_show_layer_manager_tools
int DoGenFootprintsPositionFile(const wxString &aFullFileName, bool aUnitsMM, bool aForceSmdItems, bool aTopSide, bool BottomSide, bool aFormatCSV=false)
Function DoGenFootprintsPositionFile Creates an ascii footprint position file.
void UpdateTrackWidthSelectBox(wxChoice *aTrackWidthSelectBox, bool aEdit=true)
void KiwayMailIn(KIWAY_EXPRESS &aEvent) override
Function KiwayMailIn receives KIWAY_EXPRESS messages from other players.
bool DoGenFootprintsReport(const wxString &aFullFilename, bool aUnitsMM)
Function DoGenFootprintsReport Creates an ascii footprint report file giving some infos on footprints...
void GenFootprintsReport(wxCommandEvent &event)
Function GenFootprintsReport Calls DoGenFootprintsReport to create a footprint reprot file See DoGenF...
PCB_LAYER_ID
A quick note on layer IDs:
void CommonSettingsChanged(bool aEnvVarsChanged) override
Called after the preferences dialog is run.
void Tracks_and_Vias_Size_Event(wxCommandEvent &event)
MODULE * Create_MuWavePolygonShape()
Definition: microwave.cpp:427
Class NETLIST stores all of information read from a netlist along with the flags used to update the N...
Definition: pcb_netlist.h:217
MODULE * Create_MuWaveComponent(int shape_type)
Create_MuWaveComponent creates a module "GAP" or "STUB" used in micro wave designs.
Definition: microwave.cpp:92
BOARD_ITEM_CONTAINER * GetModel() const override
PARAM_CFG_ARRAY m_projectFileParams
bool OpenProjectFiles(const std::vector< wxString > &aFileSet, int aCtl=0) override
Function OpenProjectFiles (was LoadOnePcbFile) loads a KiCad board (.kicad_pcb) from aFileName.
void ExecuteRemoteCommand(const char *cmdline) override
Execute a remote command send by Eeschema via a socket, port KICAD_PCB_PORT_SERVICE_NUMBER (currently...
void onBoardLoaded()
Updates the state of the GUI after a new board is loaded or created.
Class PAGE_INFO describes the page size and margins of a paper page on which to eventually print or p...
Definition: page_info.h:54
void ExportSVG(wxCommandEvent &event)
Function SVG_Print Shows the Export to SVG file dialog.
void ReCreateVToolbar() override
void ReCreateMenuBar() override
Recreates the menu bar.
PCB_LAYER_WIDGET * m_Layers
Layer manager. It is the responsibility of the child frames to instantiate this.
virtual ~PCB_EDIT_FRAME()
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
COLOR4D GetGridColor() override
Function GetGridColor() , virtual.
Class KIWAY is a minimalistic software bus for communications between various DLLs/DSOs (DSOs) within...
Definition: kiway.h:274
wxConfigBase * GetSettings()
ACTION_TOOLBAR * m_microWaveToolBar
The auxiliary right vertical tool bar used to access the microwave tools.
PCB_LAYER_WIDGET * GetLayerManager()
void OnQuit(wxCommandEvent &event)
void UpdateUserInterface()
Update the layer manager and other widgets from the board setup (layer and items visibility,...
Class PICKED_ITEMS_LIST is a holder to handle information on schematic or board items.
void SyncToolbars() override
Update the toolbars (mostly settings/check buttons/checkboxes) with the current controller state.
static const wxChar * pythonConsoleNameId()
Has meaning only if KICAD_SCRIPTING_WXPYTHON option is not defined.
Class DIALOG_PLOT is the dialog to set the plot options, and create plot files in various formats.
Definition: dialog_plot.h:40
void PrepareLayerIndicator(bool aForceRebuild=false)
TRACK_ACTION_SUCCESS - Track changed successfully.
void SendMessageToEESCHEMA(BOARD_ITEM *objectToSync)
Function SendMessageToEESCHEMA sends a message to the schematic editor so that it may move its cursor...
#define CREATE_BACKUP_FILE
void OnFileHistory(wxCommandEvent &event)
bool ImportSpecctraSession(const wxString &aFullFilename)
Function ImportSpecctraSession will import a specctra *.ses file and use it to relocate MODULEs and t...
Struct PARSE_ERROR contains a filename or source description, a problem input line,...
Definition: ki_exception.h:123
void OnUpdateLayerAlpha(wxUpdateUIEvent &aEvent) override
Update the UI to reflect changes to the current layer's transparency.
void SetBoard(BOARD *aBoard) override
void InstallPreferences(PAGED_DIALOG *aParent, PANEL_HOTKEYS_EDITOR *aHotkeysPanel) override
Allows Pcbnew to install its preferences panel into the preferences dialog.
bool ExportVRML_File(const wxString &aFullFileName, double aMMtoWRMLunit, bool aExport3DFiles, bool aUseRelativePaths, bool aUsePlainPCB, const wxString &a3D_Subdir, double aXRef, double aYRef)
Function ExportVRML_File Creates the file(s) exporting current BOARD to a VRML file.
void DoShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString, const wxString &aInitialParentPage=wxEmptyString)
Function ShowBoardSetupDialog.
Common, abstract interface for edit frames.
void Process_Special_Functions(wxCommandEvent &event)
Definition: edit.cpp:50
void DoUpdatePCBFromNetlist(NETLIST &aNetlist, bool aUseTimestamps)
Function DoUpdatePCBFromNetlist An automated version of UpdatePCBFromNetlist which skips the UI dialo...
void ArchiveModulesOnBoard(bool aStoreInNewLib, const wxString &aLibName=wxEmptyString, wxString *aLibPath=NULL)
Function ArchiveModulesOnBoard Save modules in a library:
void GenD356File(wxCommandEvent &event)
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:161
void Files_io(wxCommandEvent &event)
Function Files_io.
MODULE * CreateMuWaveBaseFootprint(const wxString &aValue, int aTextSize, int aPadCount)
Function CreateMuWaveBaseFootprint create a basic footprint for micro wave applications.
Definition: microwave.cpp:51
LAYER_TOOLBAR_ICON_VALUES m_prevIconVal
Design Rule Checker object that performs all the DRC tests.
Definition: drc.h:186
Used when the right click button is pressed, or when the select tool is in effect.
Definition: collectors.h:240
void OnExportVRML(wxCommandEvent &event)
Function OnExportVRML will export the current BOARD to a VRML file.
void OnUpdateSelectViaSize(wxUpdateUIEvent &aEvent)
FETCH_NETLIST_MODE
Function FetchNetlistFromSchematic.
wxString m_lastPath[LAST_PATH_SIZE]
void ReCreateOptToolbar() override
Class PCB_EDIT_FRAME is the main frame for Pcbnew.
bool Files_io_from_id(int aId)
Function Files_io_from_id Read and write board files.
void On3DShapeLibWizard(wxCommandEvent &event)
void OnUpdateSelectTrackWidth(wxUpdateUIEvent &aEvent)
PARAM_CFG_ARRAY m_configParams
void UpdateViaSizeSelectBox(wxChoice *aViaSizeSelectBox, bool aEdit=true)
Abstract interface for BOARD_ITEMs capable of storing other items inside.
PCB_LAYER_BOX_SELECTOR * m_SelLayerBox
bool IsElementVisible(GAL_LAYER_ID aElement) const
Function IsElementVisible tests whether a given element category is visible.
void ReFillLayerWidget()
Function ReFillLayerWidget changes out all the layers in m_Layers and may be called upon loading a ne...
A general implementation of a COLLECTORS_GUIDE.
Definition: collectors.h:385
void ShowDimensionPropertyDialog(DIMENSION *aDimension)
Definition: edit.cpp:168
void SwitchCanvas(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType) override
switches currently used canvas (Cairo / OpenGL).
void SwitchLayer(wxDC *DC, PCB_LAYER_ID layer) override
Definition: edit.cpp:82
void PythonPluginsReload()
Reload the Python plugins if they are newer than the already loaded, and load new plugins if any Do n...
bool Clear_Pcb(bool aQuery, bool aFinal=false)
Function Clear_Pcb delete all and reinitialize the current board.
Definition: initpcb.cpp:39
bool SavePcbFile(const wxString &aFileName, bool aCreateBackupFile=CREATE_BACKUP_FILE)
Function SavePcbFile writes the board data structures to a aFileName Creates backup when requested an...
Struct IO_ERROR is a class used to hold an error message and may be used when throwing exceptions con...
Definition: ki_exception.h:76
void SetActiveLayer(PCB_LAYER_ID aLayer) override
Function SetActiveLayer will change the currently active layer to aLayer and also update the PCB_LAYE...
void InstallFootprintPropertiesDialog(MODULE *Module)
bool FetchNetlistFromSchematic(NETLIST &aNetlist, FETCH_NETLIST_MODE aMode)
void ReCreateAuxiliaryToolbar() override
Class DIMENSION.
TRACK_ACTION_NONE - Nothing to change.
TRACK_ACTION_RESULT
Enum to signify the result of editing tracks and vias.
void SetLastPath(LAST_PATH_TYPE aType, const wxString &aLastPath)
Set the path of the last file successfully read.
bool ExportSpecctraFile(const wxString &aFullFilename)
Function ExportSpecctraFile will export the current BOARD to a specctra dsn file.
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39