KiCad PCB EDA Suite
pcbframe.cpp File Reference

PCB editor main window implementation. More...

#include <fctsys.h>
#include <kiface_i.h>
#include <pgm_base.h>
#include <class_drawpanel.h>
#include <confirm.h>
#include <wxPcbStruct.h>
#include <collectors.h>
#include <build_version.h>
#include <macros.h>
#include <3d_viewer/eda_3d_viewer.h>
#include <msgpanel.h>
#include <fp_lib_table.h>
#include <bitmaps.h>
#include <pcbnew.h>
#include <pcbnew_id.h>
#include <drc_stuff.h>
#include <layer_widget.h>
#include <dialog_design_rules.h>
#include <class_pcb_layer_widget.h>
#include <hotkeys.h>
#include <pcbnew_config.h>
#include <module_editor_frame.h>
#include <dialog_helpers.h>
#include <dialog_plot.h>
#include <dialog_exchange_modules.h>
#include <convert_to_biu.h>
#include <view/view.h>
#include <view/view_controls.h>
#include <pcb_painter.h>
#include <invoke_pcb_dialog.h>
#include <class_track.h>
#include <class_board.h>
#include <class_module.h>
#include <worksheet_viewitem.h>
#include <ratsnest_data.h>
#include <ratsnest_viewitem.h>
#include <tool/tool_manager.h>
#include <tool/tool_dispatcher.h>
#include <tools/pcb_actions.h>
#include <wildcards_and_files_ext.h>
#include <pcb_draw_panel_gal.h>
#include <gal/graphics_abstraction_layer.h>
#include <functional>

Go to the source code of this file.

Functions

 EVT_MENU_RANGE (ID_PREFERENCES_HOTKEY_START, ID_PREFERENCES_HOTKEY_END, PCB_EDIT_FRAME::Process_Config) EVT_MENU(ID_MENU_PCB_RESET_TEXTMODULE_FIELDS_SIZES
 
PCB_EDIT_FRAME::OnResetModuleTextSizes EVT_TOOL (ID_TB_OPTIONS_DRC_OFF, PCB_EDIT_FRAME::OnSelectOptionToolbar) EVT_TOOL(ID_TB_OPTIONS_SHOW_RATSNEST
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar EVT_TOOL (ID_TB_OPTIONS_AUTO_DEL_TRACK, PCB_EDIT_FRAME::OnSelectOptionToolbar) EVT_TOOL(ID_TB_OPTIONS_SHOW_VIAS_SKETCH
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar EVT_TOOL (ID_TB_OPTIONS_SHOW_TRACKS_SKETCH, PCB_EDIT_FRAME::OnSelectOptionToolbar) EVT_TOOL(ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar EVT_TOOL (ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR_MICROWAVE, PCB_EDIT_FRAME::OnSelectOptionToolbar) EVT_TOOL_RANGE(ID_TB_OPTIONS_SHOW_ZONES
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar EVT_TOOL (ID_TB_OPTIONS_SHOW_MANAGE_LAYERS_VERTICAL_TOOLBAR, PCB_EDIT_FRAME::OnSelectOptionToolbar) EVT_TOOL_RANGE(ID_PCB_HIGHLIGHT_BUTT
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool EVT_TOOL_RANGE (ID_PCB_MUWAVE_START_CMD, ID_PCB_MUWAVE_END_CMD, PCB_EDIT_FRAME::ProcessMuWaveFunctions) EVT_MENU_RANGE(ID_POPUP_PCB_AUTOPLACE_START_RANGE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints EVT_MENU_RANGE (ID_POPUP_PCB_START_RANGE, ID_POPUP_PCB_END_RANGE, PCB_EDIT_FRAME::Process_Special_Functions) EVT_MENU_RANGE(ID_POPUP_PCB_SELECT_WIDTH_START_RANGE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event EVT_MENU_RANGE (ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE, PCB_EDIT_FRAME::Process_Special_Functions) EVT_UPDATE_UI(ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode EVT_UPDATE_UI (ID_TB_OPTIONS_SHOW_MANAGE_LAYERS_VERTICAL_TOOLBAR, PCB_EDIT_FRAME::OnUpdateShowLayerManager) EVT_UPDATE_UI(ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR_MICROWAVE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode PCB_EDIT_FRAME::OnUpdateShowMicrowaveToolbar EVT_UPDATE_UI (ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH, PCB_EDIT_FRAME::OnUpdateSelectAutoTrackWidth) EVT_UPDATE_UI(ID_POPUP_PCB_SELECT_CUSTOM_WIDTH
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode PCB_EDIT_FRAME::OnUpdateShowMicrowaveToolbar PCB_EDIT_FRAME::OnUpdateSelectCustomTrackWidth EVT_UPDATE_UI_RANGE (ID_POPUP_PCB_SELECT_WIDTH1, ID_POPUP_PCB_SELECT_WIDTH8, PCB_EDIT_FRAME::OnUpdateSelectTrackWidth) EVT_UPDATE_UI_RANGE(ID_POPUP_PCB_SELECT_VIASIZE1
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode PCB_EDIT_FRAME::OnUpdateShowMicrowaveToolbar PCB_EDIT_FRAME::OnUpdateSelectCustomTrackWidth PCB_EDIT_FRAME::OnUpdateSelectViaSize EVT_UPDATE_UI_RANGE (ID_PCB_HIGHLIGHT_BUTT, ID_PCB_MEASUREMENT_TOOL, PCB_EDIT_FRAME::OnUpdateVerticalToolbar) EVT_UPDATE_UI_RANGE(ID_TB_OPTIONS_SHOW_ZONES
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode PCB_EDIT_FRAME::OnUpdateShowMicrowaveToolbar PCB_EDIT_FRAME::OnUpdateSelectCustomTrackWidth PCB_EDIT_FRAME::OnUpdateSelectViaSize PCB_EDIT_FRAME::OnUpdateZoneDisplayStyle EVT_UPDATE_UI_RANGE (ID_PCB_MUWAVE_START_CMD, ID_PCB_MUWAVE_END_CMD, PCB_EDIT_FRAME::OnUpdateMuWaveToolbar) PCB_EDIT_FRAME
 

Variables

PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar ID_PCB_MEASUREMENT_TOOL
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool ID_POPUP_PCB_AUTOPLACE_END_RANGE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints ID_POPUP_PCB_SELECT_WIDTH_END_RANGE
 
PCB_EDIT_FRAME::OnResetModuleTextSizes PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectOptionToolbar PCB_EDIT_FRAME::OnSelectTool PCB_EDIT_FRAME::OnPlaceOrRouteFootprints PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode PCB_EDIT_FRAME::OnUpdateShowMicrowaveToolbar PCB_EDIT_FRAME::OnUpdateSelectCustomTrackWidth ID_POPUP_PCB_SELECT_VIASIZE8
 
static const wxString PlotLineWidthEntry = "PlotLineWidth_mm"
 
static const wxString MagneticPadsEntry = "PcbMagPadOpt"
 
static const wxString MagneticTracksEntry = "PcbMagTrackOpt"
 
static const wxString ShowMicrowaveEntry = "ShowMicrowaveTools"
 
static const wxString ShowLayerManagerEntry = "ShowLayerManagerTools"
 
static const wxString ShowPageLimitsEntry = "ShowPageLimits"
 

Detailed Description

PCB editor main window implementation.

Definition in file pcbframe.cpp.

Function Documentation

Definition at line 318 of file pcbframe.cpp.

References g_Board_Editor_Hokeys_Descr, EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE, PGM_BASE::GetExecutablePath(), EDA_PANEINFO::HorizontalToolbarPane(), ID_POPUP_GRID_LEVEL_1000, ID_POPUP_GRID_USER, KiBitmap(), EDA_PANEINFO::LayersToolbarPane(), PCAD2KICAD::Left, EDA_PANEINFO::MessageToolbarPane(), Pgm(), PCAD2KICAD::Right, and EDA_PANEINFO::VerticalToolbarPane().

325  :
326  PCB_BASE_EDIT_FRAME( aKiway, aParent, FRAME_PCB, wxT( "Pcbnew" ), wxDefaultPosition,
328 {
329  m_showBorderAndTitleBlock = true; // true to display sheet references
330  m_showAxis = false; // true to display X and Y axis
331  m_showOriginAxis = true;
332  m_showGridAxis = true;
333  m_SelTrackWidthBox = NULL;
334  m_SelViaSizeBox = NULL;
335  m_SelLayerBox = NULL;
336  m_show_microwave_tools = false;
337  m_show_layer_manager_tools = true;
338  m_hotkeysDescrList = g_Board_Editor_Hokeys_Descr;
339  m_hasAutoSave = true;
340  m_microWaveToolBar = NULL;
341 
342  m_rotationAngle = 900;
343 
344  // Create GAL canvas
345  EDA_DRAW_PANEL_GAL* galCanvas = new PCB_DRAW_PANEL_GAL( this, -1, wxPoint( 0, 0 ),
346  m_FrameSize,
347  GetGalDisplayOptions(),
349 
350  SetGalCanvas( galCanvas );
351 
352  SetBoard( new BOARD() );
353 
354  // Create the PCB_LAYER_WIDGET *after* SetBoard():
355 
356  wxFont font = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
357  int pointSize = font.GetPointSize();
358  int screenHeight = wxSystemSettings::GetMetric( wxSYS_SCREEN_Y );
359 
360  // printf( "pointSize:%d 80%%:%d\n", pointSize, (pointSize*8)/10 );
361 
362  if( screenHeight <= 900 )
363  pointSize = (pointSize * 8) / 10;
364 
365  m_Layers = new PCB_LAYER_WIDGET( this, GetCanvas(), pointSize );
366 
367  m_drc = new DRC( this ); // these 2 objects point to each other
368 
369  wxIcon icon;
370  icon.CopyFromBitmap( KiBitmap( icon_pcbnew_xpm ) );
371  SetIcon( icon );
372 
373  // LoadSettings() *after* creating m_LayersManager, because LoadSettings()
374  // initialize parameters in m_LayersManager
375  LoadSettings( config() );
376 
377  SetScreen( new PCB_SCREEN( GetPageSettings().GetSizeIU() ) );
378  GetScreen()->SetMaxUndoItems( m_UndoRedoCountMax );
379 
380  // PCB drawings start in the upper left corner.
381  GetScreen()->m_Center = false;
382 
383  SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
384 
385  GetScreen()->AddGrid( m_UserGridSize, m_UserGridUnit, ID_POPUP_GRID_USER );
386  GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );
387 
388  if( m_canvas )
389  m_canvas->SetEnableBlockCommands( true );
390 
391  ReCreateMenuBar();
392  ReCreateHToolbar();
393  ReCreateAuxiliaryToolbar();
394  ReCreateVToolbar();
395  ReCreateOptToolbar();
396 
397  ReCreateMicrowaveVToolbar();
398 
399  m_auimgr.SetManagedWindow( this );
400 
401  EDA_PANEINFO horiz;
402  horiz.HorizontalToolbarPane();
403 
404  EDA_PANEINFO vert;
405  vert.VerticalToolbarPane();
406 
407  EDA_PANEINFO mesg;
408  mesg.MessageToolbarPane();
409 
410  // Create a wxAuiPaneInfo for the Layers Manager, not derived from the template.
411  // LAYER_WIDGET is floatable, but initially docked at far right
412  EDA_PANEINFO lyrs;
413  lyrs.LayersToolbarPane();
414  lyrs.MinSize( m_Layers->GetBestSize() ); // updated in ReFillLayerWidget
415  lyrs.BestSize( m_Layers->GetBestSize() );
416  lyrs.Caption( _( "Visibles" ) );
417  lyrs.TopDockable( false ).BottomDockable( false );
418 
419  if( m_mainToolBar ) // The main horizontal toolbar
420  {
421  m_auimgr.AddPane( m_mainToolBar,
422  wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top().Row( 0 ) );
423  }
424 
425  if( m_auxiliaryToolBar ) // the auxiliary horizontal toolbar, that shows track and via sizes, zoom ...)
426  {
427  m_auimgr.AddPane( m_auxiliaryToolBar,
428  wxAuiPaneInfo( horiz ).Name( wxT( "m_auxiliaryToolBar" ) ).Top().Row( 1 ) );
429  }
430 
431  if( m_microWaveToolBar ) // The auxiliary vertical right toolbar (currently microwave tools)
432  m_auimgr.AddPane( m_microWaveToolBar,
433  wxAuiPaneInfo( vert ).Name( wxT( "m_microWaveToolBar" ) ).
434  Right().Layer( 1 ).Position(1).Hide() );
435 
436  if( m_drawToolBar ) // The main right vertical toolbar
437  m_auimgr.AddPane( m_drawToolBar,
438  wxAuiPaneInfo( vert ).Name( wxT( "m_VToolBar" ) ).Right().Layer( 2 ) );
439 
440  // Add the layer manager ( most right side of pcbframe )
441  m_auimgr.AddPane( m_Layers, lyrs.Name( wxT( "m_LayersManagerToolBar" ) ).Right().Layer( 3 ) );
442 
443  if( m_optionsToolBar ) // The left vertical toolbar (fast acces display options of Pcbnew)
444  {
445  m_auimgr.AddPane( m_optionsToolBar,
446  wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left().Layer(1) );
447 
448  m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
449  m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).Show( m_show_microwave_tools );
450  }
451 
452  if( m_canvas )
453  m_auimgr.AddPane( m_canvas,
454  wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
455 
456  if( GetGalCanvas() )
457  m_auimgr.AddPane( (wxWindow*) GetGalCanvas(),
458  wxAuiPaneInfo().Name( wxT( "DrawFrameGal" ) ).CentrePane().Hide() );
459 
460  if( m_messagePanel )
461  m_auimgr.AddPane( m_messagePanel,
462  wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) );
463 
464  ReFillLayerWidget(); // this is near end because contents establish size
465  m_Layers->ReFillRender(); // Update colors in Render after the config is read
466  syncLayerWidgetLayer();
467 
468  m_auimgr.Update();
469 
470  setupTools();
471 
472  Zoom_Automatique( false );
473 
474  EDA_DRAW_PANEL_GAL::GAL_TYPE canvasType = LoadCanvasTypeSetting();
475 
476  if( canvasType != EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE )
477  {
478  if( GetGalCanvas()->SwitchBackend( canvasType ) )
479  UseGalCanvas( true );
480  }
481 
482  enableGALSpecificMenus();
483 
484  // disable Export STEP item if kicad2step does not exist
485  wxString strK2S = Pgm().GetExecutablePath();
486  #ifdef __WXMAC__
487  strK2S += "Contents/MacOS/";
488  #endif
489  wxFileName appK2S( strK2S, "kicad2step" );
490 
491  #ifdef _WIN32
492  appK2S.SetExt( "exe" );
493  #endif
494 
495  if( !appK2S.FileExists() )
496  GetMenuBar()->FindItem( ID_GEN_EXPORT_FILE_STEP )->Enable( false );
497 }
EDA_PANEINFO & HorizontalToolbarPane()
Function HorizontalToolbarPane Change *this to a horizontal toolbar for KiCad.
Definition: wxstruct.h:474
#define KICAD_DEFAULT_DRAWFRAME_STYLE
Definition: wxstruct.h:55
VTBL_ENTRY const wxString & GetExecutablePath() const
Definition: pgm_base.h:173
Class PCB_LAYER_WIDGET is here to implement the abstract functions of LAYER_WIDGET so they may be tie...
PGM_BASE & Pgm()
The global Program "get" accessor.
Definition: kicad.cpp:65
EDA_PANEINFO & LayersToolbarPane()
Function LayersToolbarPane Change *this to a layers toolbar for KiCad.
Definition: wxstruct.h:526
Specialization of the wxAuiPaneInfo class for KiCad panels.
Definition: wxstruct.h:465
struct EDA_HOTKEY_CONFIG g_Board_Editor_Hokeys_Descr[]
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Function KiBitmap constructs a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:36
EDA_PANEINFO & VerticalToolbarPane()
Function VerticalToolbarPane Change *this to a vertical toolbar for KiCad.
Definition: wxstruct.h:492
ID_POPUP_GRID_USER
Definition: draw_frame.cpp:105
EDA_PANEINFO & MessageToolbarPane()
Function MessageToolbarPane Change *this to a message pane for KiCad.
Definition: wxstruct.h:511
Common, abstract interface for edit frames.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:166
Class DRC is the Design Rule Checker, and performs all the DRC tests.
Definition: drc_stuff.h:158
#define PCB_EDIT_FRAME_NAME
Class PCB_EDIT_FRAME is the main frame for Pcbnew.
Definition: wxPcbStruct.h:78

Variable Documentation