KiCad PCB EDA Suite
pcbnew_config.cpp
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) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
5  * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
6  * Copyright (C) 2012-2016 Wayne Stambaugh <stambaughw@verizon.net>
7  * Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation; either version 2
12  * of the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, you may find one here:
21  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22  * or you may search the http://www.gnu.org website for the version 2 license,
23  * or you may write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25  */
26 
31 #include <fctsys.h>
32 #include <kiface_i.h>
33 #include <project.h>
34 #include <class_drawpanel.h>
35 #include <pcb_draw_panel_gal.h>
36 #include <confirm.h>
37 #include <gestfich.h>
38 #include <xnode.h>
39 #include <common.h>
40 #include <macros.h>
41 #include <wxPcbStruct.h>
43 #include <plot_common.h>
44 #include <worksheet.h>
45 #include <dialog_hotkeys_editor.h>
46 #include <fp_lib_table.h>
48 
49 #include <class_board.h>
50 #include <class_module.h>
51 #include <pcbplot.h>
52 #include <pcbnew.h>
53 #include <pcbnew_id.h>
54 #include <hotkeys.h>
55 #include <pcbnew_config.h>
56 #include <module_editor_frame.h>
57 #include <modview_frame.h>
58 
59 #include <invoke_pcb_dialog.h>
60 #include <dialog_mask_clearance.h>
61 #include <dialog_general_options.h>
63 #include <view/view.h>
64 
65 
66 void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
67 {
68  int id = event.GetId();
69  wxFileName fn;
70 
71  switch( id )
72  {
75  m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
76  m_auimgr.Update();
77 
78  GetMenuBar()->SetLabel( ID_MENU_PCB_SHOW_HIDE_LAYERS_MANAGER,
80  _("Hide &Layers Manager" ) : _("Show &Layers Manager" ));
81  break;
82 
85  m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).Show( m_show_microwave_tools );
86  m_auimgr.Update();
87 
88  GetMenuBar()->SetLabel( ID_MENU_PCB_SHOW_HIDE_MUWAVE_TOOLBAR,
90  _( "Hide Microwa&ve Toolbar" ): _( "Show Microwa&ve Toolbar" ));
91  break;
92 
93 
95  if( InvokeLayerSetup( this, GetBoard() ) )
96  {
97  PCB_LAYER_ID cur_layer = GetActiveLayer();
98 
99  // If after showing the dialog the user has removed the active layer,
100  // then select a new active layer (front copper layer).
101  if( !GetBoard()->GetEnabledLayers()[ cur_layer ] )
102  cur_layer = F_Cu;
103 
104  SetActiveLayer( cur_layer );
105 
106  OnModify();
109 
110  if( IsGalCanvasActive() )
111  static_cast<PCB_DRAW_PANEL_GAL*>( GetGalCanvas() )->SyncLayersVisibility( GetBoard() );
112  }
113  break;
114 
115  case ID_PCB_LIB_WIZARD:
117  {
118  bool tableChanged = false;
119  int r = 0;
120 
121  if( id == ID_PCB_LIB_TABLE_EDIT )
122  r = InvokePcbLibTableEditor( this, &GFootprintTable, Prj().PcbFootprintLibs() );
123  else
124  r = InvokeFootprintWizard( this, &GFootprintTable, Prj().PcbFootprintLibs() );
125 
126  if( r & 1 )
127  {
128  try
129  {
131 
132  GFootprintTable.Format( &sf, 0 );
133  tableChanged = true;
134  }
135  catch( const IO_ERROR& ioe )
136  {
137  wxString msg = wxString::Format( _(
138  "Error occurred saving the global footprint library "
139  "table:\n\n%s" ),
140  GetChars( ioe.What().GetData() )
141  );
142  wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
143  }
144  }
145 
146  // If no board file is defined, do not save the project specific library table. It
147  // is kept in memory and created in the path when the new board is saved.
148  if( (r & 2) && !GetBoard()->GetFileName().IsEmpty() )
149  {
150  wxString tblName = Prj().FootprintLibTblName();
151 
152  try
153  {
154  Prj().PcbFootprintLibs()->Save( tblName );
155  tableChanged = true;
156  }
157  catch( const IO_ERROR& ioe )
158  {
159  wxString msg = wxString::Format( _(
160  "Error occurred saving project specific footprint library "
161  "table:\n\n%s" ),
162  GetChars( ioe.What() )
163  );
164  wxMessageBox( msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
165  }
166  }
167 
168  FOOTPRINT_VIEWER_FRAME* viewer;
169 
170  if( tableChanged && (viewer = (FOOTPRINT_VIEWER_FRAME*)Kiway().Player( FRAME_PCB_MODULE_VIEWER, false )) != NULL )
171  {
172  viewer->ReCreateLibraryList();
173  }
174  }
175  break;
176 
178 #ifdef BUILD_GITHUB_PLUGIN
180 #endif
181  break;
182 
184  {
185  DIALOG_PADS_MASK_CLEARANCE dlg( this );
186 
187  if( dlg.ShowModal() == 1 && IsGalCanvasActive() )
188  {
189  for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() )
190  GetGalCanvas()->GetView()->Update( module );
191 
192  GetGalCanvas()->Refresh();
193  }
194  }
195  break;
196 
197  case wxID_PREFERENCES:
198  {
199  DIALOG_GENERALOPTIONS dlg( this );
200  dlg.ShowModal();
201  }
202  break;
203 
204  case ID_PCB_PAD_SETUP:
205  InstallPadOptionsFrame( NULL );
206  break;
207 
208  case ID_CONFIG_SAVE:
209  SaveProjectSettings( true );
210  break;
211 
212  case ID_CONFIG_READ:
213  {
214  fn = GetBoard()->GetFileName();
215  fn.SetExt( ProjectFileExtension );
216 
217  wxFileDialog dlg( this, _( "Read Project File" ), fn.GetPath(),
218  fn.GetFullName(), ProjectFileWildcard,
219  wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR );
220 
221  if( dlg.ShowModal() == wxID_CANCEL )
222  break;
223 
224  if( !wxFileExists( dlg.GetPath() ) )
225  {
226  wxString msg = wxString::Format( _(
227  "File %s not found" ),
228  GetChars( dlg.GetPath() )
229  );
230  DisplayError( this, msg );
231  break;
232  }
233 
234  wxString pro_file = dlg.GetPath();
235 
236  Prj().ConfigLoad( Kiface().KifaceSearch(), GROUP_PCB, GetProjectFileParameters(), pro_file );
237  }
238  break;
239 
240  // Hotkey IDs
243  break;
244 
247  break;
248 
251  break;
252 
254  // Display current hotkey list for Pcbnew.
256  break;
257 
258  default:
259  DisplayError( this, wxT( "PCB_EDIT_FRAME::Process_Config error" ) );
260  }
261 }
262 
263 
265 {
266  wxLogDebug( wxT( "Loading project '%s' settings." ),
267  GetChars( Prj().GetProjectFullName() ) );
268 
269  bool rc = Prj().ConfigLoad( Kiface().KifaceSearch(), GROUP_PCB, GetProjectFileParameters() );
270 
271  // Load the page layout decr file, from the filename stored in
272  // BASE_SCREEN::m_PageLayoutDescrFileName, read in config project file
273  // If empty, or not existing, the default descr is loaded
275  wxString pg_fullfilename = WORKSHEET_LAYOUT::MakeFullFileName(
277  Prj().GetProjectPath() );
278 
279  pglayout.SetPageLayout( pg_fullfilename );
280 
281  return rc;
282 }
283 
284 
285 void PCB_EDIT_FRAME::SaveProjectSettings( bool aAskForSave )
286 {
287  wxFileName fn = Prj().GetProjectFullName();
288 
289  if( aAskForSave )
290  {
291  wxFileDialog dlg( this, _( "Save Project File" ),
292  fn.GetPath(), fn.GetFullName(),
293  ProjectFileWildcard, wxFD_SAVE | wxFD_CHANGE_DIR );
294 
295  if( dlg.ShowModal() == wxID_CANCEL )
296  return;
297 
298  fn = dlg.GetPath();
299  }
300 
301  wxString pro_name = fn.GetFullPath();
302 
303  Prj().ConfigSave( Kiface().KifaceSearch(), GROUP_PCB, GetProjectFileParameters(), pro_name );
304 }
305 
306 
308 {
309  PARAM_CFG_ARRAY pca;
310 
311  // This one cannot be cached because some settings are going to/from the BOARD,
312  // so pointers into that cannot be saved for long.
313 
314  pca.push_back( new PARAM_CFG_FILENAME( wxT( "PageLayoutDescrFile" ),
316 
317  pca.push_back( new PARAM_CFG_FILENAME( wxT( "LastNetListRead" ), &m_lastNetListRead ) );
318 
320 
321  return pca;
322 }
323 
324 
326 {
328 
329  if( m_configSettings.empty() )
330  {
331  COLORS_DESIGN_SETTINGS cds; // constructor fills this with sensible colors
332 
333  // Units used in dialogs and toolbars
334  m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "Units" ),
335  (int*)&g_UserUnit, MILLIMETRES ) );
336 
337  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "DisplayPolarCoords" ),
338  &displ_opts->m_DisplayPolarCood, false ) );
339  // Display options and modes:
340  m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "ShowNetNamesMode" ),
341  &displ_opts->m_DisplayNetNamesMode, 3, 0, 3 ) );
342  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "DisplayTrackFilled" ),
343  &displ_opts->m_DisplayPcbTrackFill, true ) );
344  m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "TrackDisplayClearance" ),
345  (int*) &displ_opts->m_ShowTrackClearanceMode,
347  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PadFill" ),
348  &displ_opts->m_DisplayPadFill, true ) );
349  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "ViaFill" ),
350  &displ_opts->m_DisplayViaFill, true ) );
351  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PadAffG" ),
352  &displ_opts->m_DisplayPadIsol, true ) );
353  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PadSNum" ),
354  &displ_opts->m_DisplayPadNum, true ) );
355  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "ModAffC" ),
356  &displ_opts->m_DisplayModEdgeFill, FILLED ) );
357  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "ModAffT" ),
358  &displ_opts->m_DisplayModTextFill, FILLED ) );
359  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PcbAffT" ),
360  &displ_opts->m_DisplayDrawItemsFill, FILLED ) );
361  m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "PcbShowZonesMode" ),
362  &displ_opts->m_DisplayZonesMode, 0, 0, 2 ) );
363 
364  // layer colors:
365  wxASSERT( DIM( cds.m_LayersColors ) >= PCB_LAYER_ID_COUNT );
366  for( int i = 0; i<PCB_LAYER_ID_COUNT; ++i )
367  {
368  wxString vn = wxString::Format(
369  wxT( "ColorPCBLayer_%s" ),
370  LSET::Name( PCB_LAYER_ID( i ) ) );
371 
372  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, vn, LOC_COLOR( i ), cds.m_LayersColors[i] ) );
373  }
374 
375  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorTxtFrontEx" ),
377  LIGHTGRAY ) );
378  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorTxtBackEx" ),
380  BLUE ) );
381  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorTxtInvisEx" ),
383  DARKGRAY ) );
384  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorAnchorEx" ),
385  ITEM_COLOR( LAYER_ANCHOR ), BLUE ) );
386  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPadBackEx" ),
387  ITEM_COLOR( LAYER_PAD_BK ), GREEN ) );
388  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorPadFrontEx" ),
389  ITEM_COLOR( LAYER_PAD_FR ), RED ) );
390  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorViaThruEx" ),
392  LIGHTGRAY ) );
393  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorViaBBlindEx" ),
395  BROWN ) );
396  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorViaMicroEx" ),
398  CYAN ) );
399  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorNonPlatedEx" ),
401  YELLOW ) );
402  m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColorRatsEx" ),
404  WHITE ) );
405 
406  // Miscellaneous:
407  m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "RotationAngle" ), &m_rotationAngle,
408  900, 1, 900 ) );
409  m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "MaxLnkS" ),
410  &displ_opts->m_MaxLinksShowed,
411  3, 0, 15 ) );
412  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "TwoSegT" ),
413  &g_TwoSegmentTrackBuild, true ) );
414  m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "SegmPcb45Only" )
415  , &g_Segments_45_Only, true ) );
416  }
417 
418  return m_configSettings;
419 }
bool g_Segments_45_Only
Definition: pcbnew.cpp:75
Definition: colors.h:57
#define DIM(x)
of elements in an array
Definition: macros.h:98
virtual void OnModify() override
Function OnModify must be called after a board change to set the modified flag.
Definition: pcbframe.cpp:996
A list of parameters type.
void Invoke3DShapeLibsDownloaderWizard(wxTopLevelWindow *aParent)
Function Invoke3DShapeLibsDownloaderWizard Runs the downloader wizard for easy 3D shape libraries dow...
VTBL_ENTRY void ConfigSave(const SEARCH_STACK &aSList, const wxString &aGroupName, const PARAM_CFG_ARRAY &aParams, const wxString &aFileName=wxEmptyString)
Function ConfigSave saves the current "project" parameters into the wxConfigBase* derivative...
Definition: project.cpp:307
Definition of class FOOTPRINT_EDIT_FRAME.
to draw blind/buried vias
#define ITEM_COLOR(item_visible)
Definition: pcbnew_config.h:14
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
PARAM_CFG_ARRAY GetProjectFileParameters()
Function GetProjectFileParameters returns a project file parameter list for Pcbnew.
void Process_Config(wxCommandEvent &event)
This file is part of the common library TODO brief description.
This file is part of the common library.
const wxString ProjectFileExtension
anchor of items having an anchor point (texts, footprints)
Class BOARD to handle a board.
const wxString ProjectFileWildcard
void ExportHotkeyConfigToFile(EDA_HOTKEY_CONFIG *aDescList, const wxString &aDefaultShortname)
Function ExportHotkeyConfigToFile Prompt the user for an old hotkey file to read, and read it...
Component library viewer main window.
Definition: modview_frame.h:44
MODULE * Next() const
Definition: class_module.h:99
bool LoadProjectSettings()
Load the current project's file configuration settings which are pertinent to this PCB_EDIT_FRAME ins...
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 ...
Definition: tool_pcb.cpp:709
VTBL_ENTRY const wxString GetProjectFullName() const
Function GetProjectFullName returns the full path and name of the project.
Definition: project.cpp:96
bool m_DisplayModEdgeFill
Definition: pcbstruct.h:69
BOARD * GetBoard() const
PARAM_CFG_ARRAY & GetConfigurationSettings()
Function GetConfigurationSettings returns the Pcbnew applications settings list.
bool m_DisplayPolarCood
Definition: pcbstruct.h:76
wxAuiManager m_auimgr
Definition: wxstruct.h:139
bool m_show_microwave_tools
Definition: wxPcbStruct.h:242
KIGFX::VIEW * GetView() const
Function GetView() Returns a pointer to the VIEW instance used in the panel.
int InvokeFootprintWizard(wxTopLevelWindow *aParent, FP_LIB_TABLE *aGlobal, FP_LIB_TABLE *aProject)
Function InvokeFootprintWizard Runs the footprint library wizard for easy library addition...
void SaveProjectSettings(bool aAskForSave) override
Function SaveProjectSettings saves changes to the project settings to the project (...
smd pads, back layer
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
Configuration parameter - PARAM_CFG_FILENAME Class Same as PARAM_CFG_WXSTRING, but stores "\" as "/"...
static WORKSHEET_LAYOUT & GetTheInstance()
static function: returns the instance of WORKSHEET_LAYOUT used in the application ...
void * GetDisplayOptions() override
Function GetDisplayOptions returns the display options current in use Display options are relative to...
Pcbnew hotkeys.
bool InvokeLayerSetup(wxTopLevelWindow *aCaller, BOARD *aBoard)
Function InvokeLayerSetup shows the layer setup dialog.
FP_LIB_TABLE GFootprintTable
The global footprint library table.
Definition: pcbnew.cpp:321
This file contains miscellaneous commonly used macros and functions.
bool m_show_layer_manager_tools
Definition: wxPcbStruct.h:243
Board plot function definition file.
struct EDA_HOTKEY_CONFIG g_Board_Editor_Hokeys_Descr[]
static wxString m_PageLayoutDescrFileName
the name of the page layout descr file, or emty to used the default pagelayout
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void DisplayHotkeyList(EDA_BASE_FRAME *aFrame, struct EDA_HOTKEY_CONFIG *aDescList)
Function DisplayHotkeyList Displays the current hotkey list.
bool m_DisplayPcbTrackFill
Definition: pcbstruct.h:71
PCB_LAYER_ID
A quick note on layer IDs:
COLOR4D m_LayersColors[LAYER_ID_COUNT]
Layer colors (tracks and graphic items)
int InvokePcbLibTableEditor(wxTopLevelWindow *aParent, FP_LIB_TABLE *aGlobal, FP_LIB_TABLE *aProject)
Function InvokePcbLibTableEditor shows the modal DIALOG_FP_LIB_TABLE for purposes of editing two lib ...
static const wxChar * Name(PCB_LAYER_ID aLayerId)
Function Name returns the fixed name association with aLayerId.
Definition: lset.cpp:73
Configuration parameter - SetColor Class.
const wxString & GetFileName() const
Definition: class_board.h:237
to draw usual through hole vias
Configuration parameter - Integer Class.
Definition: colors.h:59
The common library.
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:530
bool m_DisplayDrawItemsFill
Definition: pcbstruct.h:84
Common plot library Plot settings, and plotting engines (Postscript, Gerber, HPGL and DXF) ...
Configuration parameters for Pcbnew.
bool IsGalCanvasActive() const
Function IsGalCanvasActive is used to check which canvas (GAL-based or standard) is currently in use...
Definition: draw_frame.h:795
int m_DisplayZonesMode
Definition: pcbstruct.h:77
#define LOC_COLOR(layer)
Definition: pcbnew_config.h:13
Configuration parameter - Boolean Class.
Definition: colors.h:60
void Save(const wxString &aFileName) const
Function Save.
VTBL_ENTRY const wxString FootprintLibTblName() const
Function FootprintLibTblName returns the path and filename of this project's fp-lib-table, i.e.
Definition: project.cpp:114
void Update(VIEW_ITEM *aItem)
Function Update() For dynamic VIEWs, informs the associated VIEW that the graphical representation of...
Definition: view.cpp:1379
void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
WORKSHEET_LAYOUT handles the graphic items list to draw/plot the title block and other items (page re...
virtual void Format(OUTPUTFORMATTER *aOutput, int aIndentLevel) const override
Function Format.
Class DISPLAY_OPTIONS handles display options like enable/disable some optional drawings.
Definition: pcbstruct.h:62
VTBL_ENTRY FP_LIB_TABLE * PcbFootprintLibs(KIWAY &aKiway)
Return the table of footprint libraries.
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
int m_rotationAngle
User defined rotation angle (in tenths of a degree).
wxString m_lastNetListRead
Last net list read with relative path.
Definition: wxPcbStruct.h:100
TRACE_CLEARANCE_DISPLAY_MODE_T m_ShowTrackClearanceMode
How trace clearances are displayed.
Definition: pcbstruct.h:74
void InstallHotkeyFrame(EDA_BASE_FRAME *aParent, EDA_HOTKEY_CONFIG *aHotkeys)
Function InstallHotkeyFrame Create a hotkey editor dialog window with the provided hotkey configurati...
bool m_DisplayPadFill
Definition: pcbstruct.h:65
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:33
bool m_DisplayPadIsol
Definition: pcbstruct.h:68
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
smd pads, front layer
Definition: colors.h:58
DIALOG_PADS_MASK_CLEARANCE, derived from DIALOG_PADS_MASK_CLEARANCE_BASE.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
handle color for not plated holes
DLIST< MODULE > m_Modules
Definition: class_board.h:243
bool m_DisplayPadNum
Definition: pcbstruct.h:67
static const wxString MakeFullFileName(const wxString &aShortFileName, const wxString &aProjectPath)
Static function.
void ReCreateLibraryList()
Function ReCreateLibraryList.
The common library.
int m_DisplayNetNamesMode
Definition: pcbstruct.h:78
Definition: colors.h:49
Class FILE_OUTPUTFORMATTER may be used for text file output.
Definition: richio.h:492
Class COLORS_DESIGN_SETTINGS is a list of color settings for designs in Eeschema, Pcbnew and GerbView...
int m_MaxLinksShowed
Definition: pcbstruct.h:86
EDA_DRAW_PANEL_GAL * GetGalCanvas() const
Function GetGalCanvas returns a pointer to GAL-based canvas of given EDA draw frame.
Definition: draw_frame.h:803
classes and function to generate graphics to plt or draw titles blocks and frame references ...
void InstallPadOptionsFrame(D_PAD *pad)
void AppendConfigs(PARAM_CFG_ARRAY *aResult)
Function AppendConfigs appends to aResult the configuration setting accessors which will later allow ...
VTBL_ENTRY bool ConfigLoad(const SEARCH_STACK &aSearchS, const wxString &aGroupName, const PARAM_CFG_ARRAY &aParams, const wxString &aForeignConfigFileName=wxEmptyString)
Function ConfigLoad reads a subset of parameters from the "project" file.
Definition: project.cpp:342
Module description (excepted pads)
void ReFillLayerWidget()
Function ReFillLayerWidget changes out all the layers in m_Layers and may be called upon loading a ne...
Definition: pcbframe.cpp:581
void ImportHotkeyConfigFromFile(EDA_HOTKEY_CONFIG *aDescList, const wxString &aDefaultShortname)
Function ImportHotkeyConfigFromFile Prompt the user for an old hotkey file to read, and read it.
bool m_DisplayViaFill
Definition: pcbstruct.h:66
PARAM_CFG_ARRAY m_configSettings
List of Pcbnew configuration settings.
Definition: wxPcbStruct.h:98
#define GROUP_PCB
Names of sub sections where to store project info in *.pro project config files.
Definition: config_params.h:43
Definition: colors.h:68
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:69
Struct IO_ERROR is a class used to hold an error message and may be used when throwing exceptions con...
Definition: ki_exception.h:47
virtual void SetActiveLayer(PCB_LAYER_ID aLayer) override
Function SetActiveLayer will change the currently active layer to aLayer and also update the PCB_LAYE...
Definition: pcbframe.cpp:885
bool m_DisplayModTextFill
Definition: pcbstruct.h:70
virtual PCB_LAYER_ID GetActiveLayer() const
Function GetActiveLayer returns the active layer.
bool g_TwoSegmentTrackBuild
Definition: pcbnew.cpp:76
static wxString GetGlobalTableFileName()
Function GetGlobalTableFileName.
void SetPageLayout(const wxString &aFullFileName=wxEmptyString, bool Append=false)
Populates the list with a custom layout, or the default layout, if no custom layout available...
Definition: colors.h:62