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) 2010-2021 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 "undo_redo_container.h"
28 #include "zones.h"
29 #include <mail_type.h>
30 #include <map>
31 #include <unordered_map>
32 
33 /* Forward declarations of classes. */
34 class ACTION_PLUGIN;
35 class PCB_SCREEN;
36 class BOARD;
37 class BOARD_COMMIT;
39 class FOOTPRINT;
40 class TRACK;
41 class VIA;
42 class PAD;
43 class PCB_TARGET;
44 class PCB_GROUP;
45 class DIMENSION_BASE;
46 class DRC;
47 class DIALOG_PLOT;
48 class ZONE;
49 class GENERAL_COLLECTOR;
51 class SELECTION;
52 class PCB_MARKER;
53 class BOARD_ITEM;
55 class NETLIST;
56 class REPORTER;
57 struct PARSE_ERROR;
58 class IO_ERROR;
59 class FP_LIB_TABLE;
61 class ACTION_MENU;
62 enum LAST_PATH_TYPE : unsigned int;
63 
64 namespace PCB { struct IFACE; } // KIFACE_I is in pcbnew.cpp
65 
74 {
75  friend struct PCB::IFACE;
76  friend class APPEARANCE_CONTROLS;
77 
78 protected:
79 
84  {
89 
95  {
96  }
97  };
98 
100 
101  // The Tool Framework initialization
102  void setupTools();
103  void setupUIConditions() override;
104 
110  void SwitchCanvas( EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType ) override;
111 
112 #if defined(KICAD_SCRIPTING) && defined(KICAD_SCRIPTING_ACTION_MENU)
113 
116  void buildActionPluginMenus( ACTION_MENU* aActionMenu );
117 
121  void AddActionPluginTools();
122 
128  void RunActionPlugin( ACTION_PLUGIN* aActionPlugin );
129 
135  void OnActionPluginMenu( wxCommandEvent& aEvent);
136 
142  void OnActionPluginButton( wxCommandEvent& aEvent );
143 
149  void OnActionPluginRefresh( wxCommandEvent& aEvent)
150  {
152  }
153 
159  void OnActionPluginShowFolder( wxCommandEvent& aEvent)
160  {
162  }
163 #endif
164 
170  static const wxChar * pythonConsoleNameId()
171  {
172  return wxT( "PythonConsole" );
173  }
174 
178  static wxWindow * findPythonConsole()
179  {
180  return FindWindowByName( pythonConsoleNameId() );
181  }
182 
186  void onBoardLoaded();
187 
194  bool doAutoSave() override;
195 
199  bool isAutoSaveRequired() const override;
200 
207  bool importFile( const wxString& aFileName, int aFileType );
208 
209  bool canCloseWindow( wxCloseEvent& aCloseEvent ) override;
210  void doCloseWindow() override;
211 
212  // protected so that PCB::IFACE::CreateWindow() is the only factory.
213  PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent );
214 
215  void onSize( wxSizeEvent& aEvent );
216 
217  int inferLegacyEdgeClearance( BOARD* aBoard );
218 
219 public:
220  PCB_LAYER_BOX_SELECTOR* m_SelLayerBox; // a combo box to display and select active layer
221 
222  wxChoice* m_SelTrackWidthBox; // a choice box to display and select current track width
223  wxChoice* m_SelViaSizeBox; // a choice box to display and select current via diameter
224 
226 
227  bool m_ZoneFillsDirty; // Board has been modified since last zone fill.
228 
229  virtual ~PCB_EDIT_FRAME();
230 
239  void LoadFootprints( NETLIST& aNetlist, REPORTER& aReporter );
240 
241  void OnQuit( wxCommandEvent& event );
242 
248  bool IsContentModified() override;
249 
255  void PythonPluginsReload();
256 
262 
268 
273  void PythonSyncProjectName();
274 
279  void UpdateUserInterface();
280 
289  void ExecuteRemoteCommand( const char* cmdline ) override;
290 
291  void KiwayMailIn( KIWAY_EXPRESS& aEvent ) override;
292 
296  void ToPlotter( int aID );
297 
301  void ExportSVG( wxCommandEvent& event );
302 
303  // User interface update command event handlers.
304  void OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent );
305  bool LayerManagerShown();
306  void OnUpdateSelectViaSize( wxUpdateUIEvent& aEvent );
307  void OnUpdateSelectTrackWidth( wxUpdateUIEvent& aEvent );
308  void OnUpdateSelectAutoWidth( wxUpdateUIEvent& aEvent );
309 
310  void RunEeschema();
311 
312  void UpdateTrackWidthSelectBox( wxChoice* aTrackWidthSelectBox, bool aEdit = true );
313  void UpdateViaSizeSelectBox( wxChoice* aViaSizeSelectBox, bool aEdit = true );
314 
318  COLOR4D GetGridColor() override;
319 
323  void SetGridColor( COLOR4D aColor ) override;
324 
325  // Configurations:
326  void Process_Config( wxCommandEvent& event );
327 
328 #if defined(KICAD_SCRIPTING) && defined(KICAD_SCRIPTING_ACTION_MENU)
329 
334  bool GetActionPluginButtonVisible( const wxString& aPluginPath, bool aPluginDefault );
335 
340  std::vector<ACTION_PLUGIN*> GetOrderedActionPlugins();
341 
342 #endif
343 
347  void SaveProjectSettings() override;
348 
355  bool LoadProjectSettings();
356 
357  void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
358 
359  void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
360 
366  wxString GetLastPath( LAST_PATH_TYPE aType );
367 
379  void SetLastPath( LAST_PATH_TYPE aType, const wxString& aLastPath );
380 
384  void RecordDRCExclusions();
385 
389  void ResolveDRCExclusions();
390 
391  void Process_Special_Functions( wxCommandEvent& event );
392  void Tracks_and_Vias_Size_Event( wxCommandEvent& event );
393 
394  void ReCreateHToolbar() override;
395  void ReCreateAuxiliaryToolbar() override;
396  void ReCreateVToolbar() override;
397  void ReCreateOptToolbar() override;
398  void ReCreateMenuBar() override;
399 
408  void ReCreateLayerBox( bool aForceResizeToolbar = true );
409 
410 
417  void OnModify() override;
418 
422  void SetActiveLayer( PCB_LAYER_ID aLayer ) override;
423 
425 
429  void OnUpdateLayerAlpha( wxUpdateUIEvent& aEvent ) override;
430 
431  void OnDisplayOptionsChanged() override;
432 
440  bool IsElementVisible( GAL_LAYER_ID aElement ) const;
441 
449  void SetElementVisibility( GAL_LAYER_ID aElement, bool aNewState );
450 
452  void ActivateGalCanvas() override;
453 
454  void ShowBoardSetupDialog( const wxString& aInitialPage = wxEmptyString );
455 
456  void PrepareLayerIndicator( bool aForceRebuild = false );
457 
458  void ToggleLayersManager();
459 
473  int DoGenFootprintsPositionFile( const wxString& aFullFileName, bool aUnitsMM,
474  bool aForceSmdItems, bool aTopSide, bool aBottomSide,
475  bool aFormatCSV = false );
476 
480  void GenFootprintsReport( wxCommandEvent& event );
481 
489  bool DoGenFootprintsReport( const wxString& aFullFilename, bool aUnitsMM );
490 
491  void GenD356File( wxCommandEvent& event );
492 
493  void OnFileHistory( wxCommandEvent& event );
494  void OnClearFileHistory( wxCommandEvent& aEvent );
495 
501  void Files_io( wxCommandEvent& event );
502 
516  bool Files_io_from_id( int aId );
517 
530  bool OpenProjectFiles( const std::vector<wxString>& aFileSet, int aCtl = 0 ) override;
531 
543  bool SavePcbFile( const wxString& aFileName, bool addToHistory = true,
544  bool aChangeProject = true );
545 
557  bool SavePcbCopy( const wxString& aFileName, bool aCreateProject = false );
558 
565  bool Clear_Pcb( bool aQuery, bool aFinal = false );
566 
568  void SetBoard( BOARD* aBoard ) override;
569 
571  BOARD_ITEM_CONTAINER* GetModel() const override;
572 
574  void SetPageSettings( const PAGE_INFO& aPageSettings ) override;
575 
581  void RecreateCmpFileFromBoard( wxCommandEvent& aEvent );
582 
594  void ExportFootprintsToLibrary( bool aStoreInNewLib, const wxString& aLibName = wxEmptyString,
595  wxString* aLibPath = NULL );
596 
600  void RecreateBOMFileFromBoard( wxCommandEvent& aEvent );
601 
605  void ExportToGenCAD( wxCommandEvent& event );
606 
610  void OnExportVRML( wxCommandEvent& event );
611 
639  bool ExportVRML_File( const wxString& aFullFileName, double aMMtoWRMLunit,
640  bool aExport3DFiles, bool aUseRelativePaths, bool aUsePlainPCB,
641  const wxString& a3D_Subdir, double aXRef, double aYRef );
642 
646  void OnExportIDF3( wxCommandEvent& event );
647 
651  void OnExportHyperlynx( wxCommandEvent& event );
652 
663  bool Export_IDF3( BOARD* aPcb, const wxString& aFullFileName,
664  bool aUseThou, double aXRef, double aYRef );
665 
669  void OnExportSTEP( wxCommandEvent& event );
670 
678  bool ExportSpecctraFile( const wxString& aFullFilename );
679 
686  bool ImportSpecctraSession( const wxString& aFullFilename );
687 
688  // Footprint editing (see also PCB_BASE_FRAME)
689  void ShowFootprintPropertiesDialog( FOOTPRINT* aFootprint );
690 
691  int ShowExchangeFootprintsDialog( FOOTPRINT* aFootprint, bool aUpdateMode, bool aSelectedMode );
692 
703  void ExchangeFootprint( FOOTPRINT* aExisting, FOOTPRINT* aNew, BOARD_COMMIT& aCommit,
704  bool deleteExtraTexts = true, bool resetTextLayers = true,
705  bool resetTextEffects = true, bool resetFabricationAttrs = true,
706  bool reset3DModels = true );
707 
714  void OnEditItemRequest( BOARD_ITEM* aItem ) override;
715 
716  void SwitchLayer( wxDC* DC, PCB_LAYER_ID layer ) override;
717 
730  void SetTrackSegmentWidth( TRACK* aTrackItem, PICKED_ITEMS_LIST* aItemsListPicker,
731  bool aUseNetclassValue );
732 
733 
737  void Edit_Zone_Params( ZONE* zone_container );
738 
739  // Properties dialogs
740  void ShowTargetOptionsDialog( PCB_TARGET* aTarget );
741  void ShowDimensionPropertiesDialog( DIMENSION_BASE* aDimension );
742  void InstallNetlistFrame();
743 
750  bool FetchNetlistFromSchematic( NETLIST& aNetlist, const wxString& aAnnotateMessage );
751 
758  bool ReannotateSchematic( std::string& aNetlist );
759 
765  bool TestStandalone( void );
766 
775  bool ReadNetlistFromFile( const wxString &aFilename, NETLIST& aNetlist, REPORTER& aReporter );
776 
783  void OnNetlistChanged( BOARD_NETLIST_UPDATER& aUpdater, bool* aRunDragCommand );
784 
785 
786 #if defined( KICAD_SCRIPTING_WXPYTHON )
787 
790  void ScriptingConsoleEnableDisable();
791 #endif
792 
799  void SendMessageToEESCHEMA( BOARD_ITEM* objectToSync );
800 
806  void SendCrossProbeNetName( const wxString& aNetName );
807 
808  void ShowChangedLanguage() override;
809 
818  void UpdateTitle();
819 
823  void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override;
824 
828  void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
829 
830  void ProjectChanged() override;
831 
832  wxString GetCurrentFileName() const override;
833 
834  SELECTION& GetCurrentSelection() override;
835 
836  DECLARE_EVENT_TABLE()
837 };
838 
839 #endif // WXPCB_STRUCT_H_
void UpdateTitle()
Set the main window title bar text.
PCB_EDIT_FRAME(KIWAY *aKiway, wxWindow *aParent)
void OnModify() override
Must be called after a board change to set the modified flag.
ACTION_PLUGIN This is the parent class from where any action plugin class must derive.
Definition: action_plugin.h:40
Definition: track.h:343
void SetPageSettings(const PAGE_INFO &aPageSettings) override
void RecreateCmpFileFromBoard(wxCommandEvent &aEvent)
Recreates a .cmp file from the current loaded board.
Carry a payload from one KIWAY_PLAYER to another within a PROJECT.
Definition: kiway_express.h:38
void SetElementVisibility(GAL_LAYER_ID aElement, bool aNewState)
Change the visibility of an element category.
void OnExportIDF3(wxCommandEvent &event)
Will export the current BOARD to a IDFv3 board and lib files.
void SendCrossProbeNetName(const wxString &aNetName)
Send a net name to Eeschema for highlighting.
void Process_Config(wxCommandEvent &event)
void OnExportHyperlynx(wxCommandEvent &event)
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.
SELECTION & GetCurrentSelection() override
Get the current selection from the canvas area.
void OnEditItemRequest(BOARD_ITEM *aItem) override
Install the corresponding dialog editor for the given item.
void SetTrackSegmentWidth(TRACK *aTrackItem, PICKED_ITEMS_LIST *aItemsListPicker, bool aUseNetclassValue)
Modify one track segment width or one via diameter (using DRC control).
Defines the structure of a menu based on ACTIONs.
Definition: action_menu.h:45
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition: board_item.h:82
APPEARANCE_CONTROLS * m_appearancePanel
AUI panel for controlling layer and object visibility and appearance.
void ToPlotter(int aID)
Open a dialog frame to create plot and drill files relative to the current board.
Update the BOARD with a new netlist.
void doCloseWindow() override
A set of BOARD_ITEMs (i.e., without duplicates).
Definition: pcb_group.h:50
void LoadFootprints(NETLIST &aNetlist, REPORTER &aReporter)
Load the footprints for each SCH_COMPONENT in aNetlist from the list of libraries.
bool doAutoSave() override
Perform auto save when the board has been modified and not saved within the auto save interval.
void ActivateGalCanvas() override
Set the #m_Pcb member in such as way as to ensure deleting any previous BOARD.
void OnUpdateLayerSelectBox(wxUpdateUIEvent &aEvent)
void OnExportSTEP(wxCommandEvent &event)
Export the current BOARD to a STEP assembly.
bool ReadNetlistFromFile(const wxString &aFilename, NETLIST &aNetlist, REPORTER &aReporter)
Read a netlist from a file into a NETLIST object.
void ResolveDRCExclusions()
Update markers to match recorded exclusions.
wxChoice * m_SelViaSizeBox
void RecreateBOMFileFromBoard(wxCommandEvent &aEvent)
Create a BOM file from the current loaded board.
bool Export_IDF3(BOARD *aPcb, const wxString &aFullFileName, bool aUseThou, double aXRef, double aYRef)
Creates an IDF3 compliant BOARD (*.emn) and LIBRARY (*.emp) file.
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...
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...
bool canCloseWindow(wxCloseEvent &aCloseEvent) override
void ExportToGenCAD(wxCommandEvent &event)
Create a file in GenCAD 1.4 format from the current board.
bool SavePcbCopy(const wxString &aFileName, bool aCreateProject=false)
Write the board data structures to aFileName.
void SetGridColor(COLOR4D aColor) override
void ShowTargetOptionsDialog(PCB_TARGET *aTarget)
Class to display a pcb layer list in a wxBitmapComboBox.
bool FetchNetlistFromSchematic(NETLIST &aNetlist, const wxString &aAnnotateMessage)
int inferLegacyEdgeClearance(BOARD *aBoard)
void ReCreateHToolbar() override
A pure virtual class used to derive REPORTER objects from.
Definition: reporter.h:64
void RecordDRCExclusions()
Scan existing markers and record data from any that are Excluded.
void OnNetlistChanged(BOARD_NETLIST_UPDATER &aUpdater, bool *aRunDragCommand)
Called after netlist is updated.
wxChoice * m_SelTrackWidthBox
int ShowExchangeFootprintsDialog(FOOTPRINT *aFootprint, bool aUpdateMode, bool aSelectedMode)
void ShowDimensionPropertiesDialog(DIMENSION_BASE *aDimension)
static wxWindow * findPythonConsole()
wxString GetLastPath(LAST_PATH_TYPE aType)
Get the last path for a particular type.
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Called after the preferences dialog is run.
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
void ExportFootprintsToLibrary(bool aStoreInNewLib, const wxString &aLibName=wxEmptyString, wxString *aLibPath=NULL)
Save footprints in a library:
void ShowFootprintPropertiesDialog(FOOTPRINT *aFootprint)
bool isAutoSaveRequired() const override
Return true if the board has been modified.
Store the previous layer toolbar icon state information.
bool TestStandalone(void)
Test if standalone mode.
bool m_show_layer_manager_tools
void UpdateTrackWidthSelectBox(wxChoice *aTrackWidthSelectBox, bool aEdit=true)
void OnClearFileHistory(wxCommandEvent &aEvent)
void KiwayMailIn(KIWAY_EXPRESS &aEvent) override
Receive KIWAY_EXPRESS messages from other players.
bool DoGenFootprintsReport(const wxString &aFullFilename, bool aUnitsMM)
Create an ASCII footprint report file giving some infos on footprints and board outlines.
void ExchangeFootprint(FOOTPRINT *aExisting, FOOTPRINT *aNew, BOARD_COMMIT &aCommit, bool deleteExtraTexts=true, bool resetTextLayers=true, bool resetTextEffects=true, bool resetFabricationAttrs=true, bool reset3DModels=true)
Replace aExisting footprint by aNew footprint using the Existing footprint settings (position,...
void GenFootprintsReport(wxCommandEvent &event)
Call DoGenFootprintsReport to create a footprint report file.
PCB_LAYER_ID
A quick note on layer IDs:
void Tracks_and_Vias_Size_Event(wxCommandEvent &event)
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString)
void ProjectChanged() override
Notification event that the project has changed.
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:99
NETLIST stores all of information read from a netlist along with the flags used to update the NETLIST...
Definition: pcb_netlist.h:207
#define NULL
bool IsContentModified() override
Get if the current board has been modified but not saved.
BOARD_ITEM_CONTAINER * GetModel() const override
bool OpenProjectFiles(const std::vector< wxString > &aFileSet, int aCtl=0) override
Load 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()
Update the state of the GUI after a new board is loaded or created.
Describe the page size and margins of a paper page on which to eventually print or plot.
Definition: page_info.h:53
void SaveProjectSettings() override
Save changes to the project settings to the project (.pro) file.
void ExportSVG(wxCommandEvent &event)
Show the Export to SVG file dialog.
void ReCreateVToolbar() override
void ReCreateMenuBar() override
Recreates the menu bar.
virtual ~PCB_EDIT_FRAME()
void OnUpdateSelectAutoWidth(wxUpdateUIEvent &aEvent)
void ShowChangedLanguage() override
Redraw the menus and what not in current language.
COLOR4D GetGridColor() override
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:260
ZONE handles a list of polygons defining a copper zone.
Definition: zone.h:57
void OnQuit(wxCommandEvent &event)
void UpdateUserInterface()
Update the layer manager and other widgets from the board setup (layer and items visibility,...
void PythonPluginsShowFolder()
Open the plugins folder in the default system file browser.
void PythonSyncEnvironmentVariables()
Synchronize the environment variables from KiCad's environment into the Python interpreter.
A holder to handle information on schematic or board items.
LAST_PATH_TYPE
For storing PcbNew MRU paths of various types.
Definition: project_file.h:44
static const wxChar * pythonConsoleNameId()
Has meaning only if KICAD_SCRIPTING_WXPYTHON option is not defined.
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)
void Edit_Zone_Params(ZONE *zone_container)
Edit params (layer, clearance, ...) for a zone outline.
void SendMessageToEESCHEMA(BOARD_ITEM *objectToSync)
Send a message to the schematic editor so that it may move its cursor to a symbol with the same refer...
void OnFileHistory(wxCommandEvent &event)
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 ...
A filename or source description, a problem input line, a line number, a byte offset,...
Definition: ki_exception.h:118
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
bool SavePcbFile(const wxString &aFileName, bool addToHistory=true, bool aChangeProject=true)
Writes the board data structures to a aFileName.
void OnUpdateLayerAlpha(wxUpdateUIEvent &aEvent) override
Update the UI to reflect changes to the current layer's transparency.
void SetBoard(BOARD *aBoard) override
void PythonSyncProjectName()
Synchronize the project name from KiCad's environment into the Python interpreter.
void InstallPreferences(PAGED_DIALOG *aParent, PANEL_HOTKEYS_EDITOR *aHotkeysPanel) override
Allow 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)
Creates the file(s) exporting current BOARD to a VRML file.
Common, abstract interface for edit frames.
void Process_Special_Functions(wxCommandEvent &event)
Definition: pcbnew/edit.cpp:47
void GenD356File(wxCommandEvent &event)
Information pertinent to a Pcbnew printed circuit board.
Definition: board.h:190
void Files_io(wxCommandEvent &event)
Call Files_io_from_id with the wxCommandEvent id.
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
LAYER_TOOLBAR_ICON_VALUES m_prevIconVal
Used when the right click button is pressed, or when the select tool is in effect.
Definition: collectors.h:241
void OnExportVRML(wxCommandEvent &event)
Export the current BOARD to a VRML file.
void OnUpdateSelectViaSize(wxUpdateUIEvent &aEvent)
void ReCreateOptToolbar() override
The main frame for Pcbnew.
bool Files_io_from_id(int aId)
Read and write board files according to aId.
bool ReannotateSchematic(std::string &aNetlist)
Send a command to Eeschema to re-annotate the schematic.
void onSize(wxSizeEvent &aEvent)
void OnUpdateSelectTrackWidth(wxUpdateUIEvent &aEvent)
void UpdateViaSizeSelectBox(wxChoice *aViaSizeSelectBox, bool aEdit=true)
APPEARANCE_CONTROLS * GetAppearancePanel()
Abstract interface for BOARD_ITEMs capable of storing other items inside.
int DoGenFootprintsPositionFile(const wxString &aFullFileName, bool aUnitsMM, bool aForceSmdItems, bool aTopSide, bool aBottomSide, bool aFormatCSV=false)
Create an ASCII footprint position file.
PCB_LAYER_BOX_SELECTOR * m_SelLayerBox
bool IsElementVisible(GAL_LAYER_ID aElement) const
Test whether a given element category is visible.
A general implementation of a COLLECTORS_GUIDE.
Definition: collectors.h:381
Definition: pad.h:60
void SwitchCanvas(EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType) override
Switch currently used canvas (Cairo / OpenGL).
Abstract dimension API.
Definition: dimension.h:95
void SwitchLayer(wxDC *DC, PCB_LAYER_ID layer) override
Definition: pcbnew/edit.cpp:78
wxString GetCurrentFileName() const override
Get the full filename + path of the currently opened file in the frame.
void PythonPluginsReload()
Reload the Python plugins if they are newer than the already loaded, and load new plugins if any.
void OnDisplayOptionsChanged() override
bool Clear_Pcb(bool aQuery, bool aFinal=false)
Delete all and reinitialize the current board.
Definition: initpcb.cpp:42
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
void SetActiveLayer(PCB_LAYER_ID aLayer) override
Change the currently active layer to aLayer and also update the APPEARANCE_CONTROLS.
void ReCreateAuxiliaryToolbar() override
Definition: track.h:83
void SetLastPath(LAST_PATH_TYPE aType, const wxString &aLastPath)
Set the path of the last file successfully read.
bool ExportSpecctraFile(const wxString &aFullFilename)
Export the current BOARD to a specctra dsn file.
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:98