KiCad PCB EDA Suite
DIALOG_ERC Class Reference

#include <dialog_erc.h>

Inheritance diagram for DIALOG_ERC:
DIALOG_ERC_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_ERC (SCH_EDIT_FRAME *parent)
 
 ~DIALOG_ERC ()
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Static Public Attributes

static bool m_TestSimilarLabels = true
 

Protected Member Functions

void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 

Protected Attributes

wxNotebook * m_NoteBook
 
wxPanel * m_PanelERC
 
wxStaticText * m_ErcTotalErrorsText
 
wxTextCtrl * m_TotalErrCount
 
wxStaticText * m_WarnErcErrorsText
 
wxTextCtrl * m_LastWarningCount
 
wxStaticText * m_LastErrCountText
 
wxTextCtrl * m_LastErrCount
 
wxStaticLine * m_staticline1
 
wxCheckBox * m_WriteResultOpt
 
wxStaticText * m_titleMessages
 
wxTextCtrl * m_MessagesList
 
wxStaticText * m_textMarkers
 
ERC_HTML_LISTFRAMEm_MarkersList
 
wxButton * m_buttondelmarkers
 
wxButton * m_buttonERC
 
wxButton * m_buttonClose
 
wxPanel * m_PanelERCOptions
 
wxCheckBox * m_cbTestSimilarLabels
 
wxCheckBox * m_cbTestUniqueGlbLabels
 
wxPanel * m_matrixPanel
 
wxButton * m_ResetOptButton
 
bool m_fixupsRun
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void Init ()
 
void OnCloseErcDialog (wxCloseEvent &event) override
 
void OnErcCmpClick (wxCommandEvent &event) override
 
void OnEraseDrcMarkersClick (wxCommandEvent &event) override
 
void OnButtonCloseClick (wxCommandEvent &event) override
 
void OnResetMatrixClick (wxCommandEvent &event) override
 
void OnLeftClickMarkersList (wxHtmlLinkEvent &event) override
 
void OnLeftDblClickMarkersList (wxMouseEvent &event) override
 
void TestErc (REPORTER &aReporter)
 
void DisplayERC_MarkersList ()
 
void SelLocal (wxCommandEvent &event)
 
void SelNewCmp (wxCommandEvent &event)
 
void ResetDefaultERCDiag (wxCommandEvent &event)
 
void ChangeErrorLevel (wxCommandEvent &event)
 
void ReBuildMatrixPanel ()
 
void setDRCMatrixButtonState (wxBitmapButton *aButton, int aState)
 
void updateMarkerCounts (SCH_SCREENS *screens)
 

Private Attributes

SCH_EDIT_FRAMEm_parent
 
wxBitmapButton * m_buttonList [PINTYPE_COUNT][PINTYPE_COUNT]
 
bool m_initialized
 
const SCH_MARKERm_lastMarkerFound
 

Static Private Attributes

static bool m_writeErcFile = false
 
static bool m_diagErcTableInit = false
 
static bool m_tstUniqueGlobalLabels = true
 

Detailed Description

Definition at line 37 of file dialog_erc.h.

Constructor & Destructor Documentation

DIALOG_ERC::DIALOG_ERC ( SCH_EDIT_FRAME parent)

Referenced by InvokeDialogERC().

DIALOG_ERC::~DIALOG_ERC ( )

Definition at line 89 of file dialog_erc.cpp.

References DIALOG_ERC_BASE::m_cbTestSimilarLabels, DIALOG_ERC_BASE::m_cbTestUniqueGlbLabels, m_TestSimilarLabels, and m_tstUniqueGlobalLabels.

90 {
93 }
static bool m_TestSimilarLabels
Definition: dialog_erc.h:51
wxCheckBox * m_cbTestUniqueGlbLabels
static bool m_tstUniqueGlobalLabels
Definition: dialog_erc.h:48
wxCheckBox * m_cbTestSimilarLabels

Member Function Documentation

void DIALOG_ERC::ChangeErrorLevel ( wxCommandEvent &  event)
private

Definition at line 427 of file dialog_erc.cpp.

References DiagErc, ERR, ID_MATRIX_0, OK, PINTYPE_COUNT, setDRCMatrixButtonState(), and WAR.

428 {
429  int id, level, ii, x, y;
430  wxPoint pos;
431 
432  id = event.GetId();
433  ii = id - ID_MATRIX_0;
434  wxBitmapButton* butt = (wxBitmapButton*) event.GetEventObject();
435  pos = butt->GetPosition();
436 
437  x = ii / PINTYPE_COUNT; y = ii % PINTYPE_COUNT;
438 
439  level = DiagErc[y][x];
440 
441  //change to the next error level
442  switch( level )
443  {
444  case OK:
445  level = WAR;
446  break;
447 
448  case WAR:
449  level = ERR;
450  break;
451 
452  case ERR:
453  level = OK;
454  break;
455  }
456 
457  setDRCMatrixButtonState( butt, level );
458 
459  DiagErc[y][x] = DiagErc[x][y] = level;
460 }
Definition: erc.h:43
void setDRCMatrixButtonState(wxBitmapButton *aButton, int aState)
Definition: dialog_erc.cpp:358
#define ID_MATRIX_0
Definition: dialog_erc.cpp:67
Definition: erc.h:42
Definition: erc.h:44
int DiagErc[PINTYPE_COUNT][PINTYPE_COUNT]
Definition: erc.cpp:124
void DIALOG_ERC::DisplayERC_MarkersList ( )
private

Definition at line 389 of file dialog_erc.cpp.

References ERC_HTML_LISTFRAME::AppendToList(), ERC_HTML_LISTFRAME::ClearList(), ERC_HTML_LISTFRAME::DisplayList(), g_RootSheet, MARKER_BASE::GetMarkerType(), i, DIALOG_ERC_BASE::m_MarkersList, MARKER_BASE::MARKER_ERC, SCH_ITEM::Next(), SCH_MARKER_T, and EDA_ITEM::Type().

Referenced by Init(), OnLeftClickMarkersList(), and TestErc().

390 {
391  SCH_SHEET_LIST sheetList( g_RootSheet);
393 
394  for( unsigned i = 0; i < sheetList.size(); i++ )
395  {
396  SCH_ITEM* item = sheetList[i].LastDrawList();
397 
398  for( ; item != NULL; item = item->Next() )
399  {
400  if( item->Type() != SCH_MARKER_T )
401  continue;
402 
403  SCH_MARKER* marker = (SCH_MARKER*) item;
404 
405  if( marker->GetMarkerType() != MARKER_BASE::MARKER_ERC )
406  continue;
407 
408  m_MarkersList->AppendToList( marker );
409  }
410  }
411 
413 }
Class SCH_SHEET_LIST.
KICAD_T Type() const
Function Type()
Definition: base_struct.h:209
void DisplayList()
Function DisplayList(); Build the Html marker list and show it.
SCH_ITEM * Next() const
ERC_HTML_LISTFRAME * m_MarkersList
enum TYPEMARKER GetMarkerType() const
Definition: marker_base.h:150
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:55
void AppendToList(SCH_MARKER *aMarker)
Function AppendToList.
void ClearList()
Function ClearList deletes all items shown in the list.
size_t i
Definition: json11.cpp:597
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 205 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues(), and DIALOG_SHIM::IsQuasiModal().

206 {
207  // so we can do logging of this state change:
208 
209 #if defined(DEBUG)
210  const char* type_id = typeid( *this ).name();
211  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
212 #endif
213 
214  return wxDialog::Enable( enable );
215 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 610 of file dialog_shim.cpp.

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_FOOTPRINTS::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

611 {
612  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
613  // handle validation in the same way as other dialogs.
614  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
615  return;
616 
617  SetReturnCode( retCode );
618 
619  if( !IsQuasiModal() )
620  {
621  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
622  return;
623  }
624 
625  m_qmodal_showing = false;
626 
627  if( m_qmodal_loop )
628  {
629  if( m_qmodal_loop->IsRunning() )
630  m_qmodal_loop->Exit( 0 );
631  else
632  m_qmodal_loop->ScheduleExit( 0 );
633 
634  m_qmodal_loop = NULL;
635  }
636 
639 
640  Show( false );
641 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool IsQuasiModal()
Definition: dialog_shim.h:103
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 104 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by COLOR4D_PICKER_DLG::COLOR4D_PICKER_DLG(), DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_SHIM::IsQuasiModal(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DIALOG_EDIT_FPTEXT::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_FOOTPRINT_FP_EDITOR::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), and DIALOG_UPDATE_FIELDS::TransferDataToWindow().

105 {
106  // must be called from the constructor of derived classes,
107  // when all widgets are initialized, and therefore their size fixed
108 
109  // SetSizeHints fixes the minimal size of sizers in the dialog
110  // (SetSizeHints calls Fit(), so no need to call it)
111  GetSizer()->SetSizeHints( this );
112 
113  // the default position, when calling the first time the dlg
114  Center();
115 }
int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 125 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_SHIM::IsQuasiModal().

126 {
127  wxSize sz( x, 0 );
128  return ConvertDialogToPixels( sz ).x;
129 }
void DIALOG_ERC::Init ( )
private

Definition at line 96 of file dialog_erc.cpp.

References DisplayERC_MarkersList(), DIALOG_ERC_BASE::m_buttonERC, m_buttonList, DIALOG_ERC_BASE::m_cbTestSimilarLabels, DIALOG_ERC_BASE::m_cbTestUniqueGlbLabels, m_initialized, m_TestSimilarLabels, m_tstUniqueGlobalLabels, m_writeErcFile, DIALOG_ERC_BASE::m_WriteResultOpt, PINTYPE_COUNT, ReBuildMatrixPanel(), and updateMarkerCounts().

97 {
98  m_initialized = false;
99 
100  for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
101  {
102  for( int jj = 0; jj < PINTYPE_COUNT; jj++ )
103  m_buttonList[ii][jj] = NULL;
104  }
105 
106  m_WriteResultOpt->SetValue( m_writeErcFile );
109 
110  SCH_SCREENS screens;
111  updateMarkerCounts( &screens );
112 
114 
115  // Init Panel Matrix
117 
118  // Set the run ERC button as the default button.
119  m_buttonERC->SetDefault();
120 }
static bool m_TestSimilarLabels
Definition: dialog_erc.h:51
static bool m_writeErcFile
Definition: dialog_erc.h:46
bool m_initialized
Definition: dialog_erc.h:44
wxBitmapButton * m_buttonList[PINTYPE_COUNT][PINTYPE_COUNT]
Definition: dialog_erc.h:43
wxButton * m_buttonERC
wxCheckBox * m_cbTestUniqueGlbLabels
void updateMarkerCounts(SCH_SCREENS *screens)
Definition: dialog_erc.cpp:123
static bool m_tstUniqueGlobalLabels
Definition: dialog_erc.h:48
wxCheckBox * m_WriteResultOpt
void ReBuildMatrixPanel()
Definition: dialog_erc.cpp:272
Container class that holds multiple SCH_SCREEN objects in a hierarchy.
Definition: sch_screen.h:503
void DisplayERC_MarkersList()
Definition: dialog_erc.cpp:389
wxCheckBox * m_cbTestSimilarLabels
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

References KIWAY_HOLDER::m_kiway, KIWAY_HOLDER::Prj(), and KIWAY_HOLDER::SetKiway().

Referenced by SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), FOOTPRINT_EDIT_FRAME::GetIconScale(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), SCH_EDIT_FRAME::KiwayMailIn(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_CHOOSE_COMPONENT::OnIdle(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_WIZARD_FRAME::ReCreateVToolbar(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:85
void DIALOG_ERC::OnButtonCloseClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 161 of file dialog_erc.cpp.

162 {
163  Close();
164 }
void DIALOG_ERC::OnCloseErcDialog ( wxCloseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 167 of file dialog_erc.cpp.

168 {
169  Destroy();
170 }
void DIALOG_ERC::OnEraseDrcMarkersClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 146 of file dialog_erc.cpp.

References ERC_HTML_LISTFRAME::ClearList(), SCH_SCREENS::DeleteAllMarkers(), EDA_DRAW_FRAME::GetCanvas(), DIALOG_ERC_BASE::m_MarkersList, m_parent, MARKER_BASE::MARKER_ERC, EDA_DRAW_PANEL::Refresh(), and updateMarkerCounts().

147 {
148  SCH_SCREENS ScreenList;
149 
151  updateMarkerCounts( &ScreenList );
152 
154  m_parent->GetCanvas()->Refresh();
155 }
void DeleteAllMarkers(enum MARKER_BASE::TYPEMARKER aMarkerType)
Delete all electronic rules check markers of aMarkerType from all the screens in the list...
virtual void Refresh(bool eraseBackground=true, const wxRect *rect=NULL) override
Update the board display after modifying it bu a python script (note: it is automatically called by a...
Definition: draw_panel.cpp:338
EDA_DRAW_PANEL * GetCanvas()
Definition: draw_frame.h:351
ERC_HTML_LISTFRAME * m_MarkersList
SCH_EDIT_FRAME * m_parent
Definition: dialog_erc.h:42
void ClearList()
Function ClearList deletes all items shown in the list.
void updateMarkerCounts(SCH_SCREENS *screens)
Definition: dialog_erc.cpp:123
Container class that holds multiple SCH_SCREEN objects in a hierarchy.
Definition: sch_screen.h:503
void DIALOG_ERC::OnErcCmpClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 179 of file dialog_erc.cpp.

References ERC_HTML_LISTFRAME::ClearList(), DIALOG_ERC_BASE::m_MarkersList, DIALOG_ERC_BASE::m_MessagesList, and TestErc().

180 {
181  wxBusyCursor();
183 
184  m_MessagesList->Clear();
185  wxSafeYield(); // m_MarkersList must be redraw
186 
188  TestErc( reporter );
189 }
wxTextCtrl * m_MessagesList
ERC_HTML_LISTFRAME * m_MarkersList
Class WX_TEXT_CTRL_REPORTER is wrapper for reporting to a wxTextCtrl object.
Definition: reporter.h:103
void ClearList()
Function ClearList deletes all items shown in the list.
void TestErc(REPORTER &aReporter)
Definition: dialog_erc.cpp:463
void DIALOG_ERC::OnLeftClickMarkersList ( wxHtmlLinkEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 192 of file dialog_erc.cpp.

References DisplayERC_MarkersList(), g_RootSheet, SCH_EDIT_FRAME::GetCurrentSheet(), ERC_HTML_LISTFRAME::GetItem(), SCH_EDIT_FRAME::GetScreen(), BASE_SCREEN::GetZoom(), i, m_lastMarkerFound, DIALOG_ERC_BASE::m_MarkersList, m_parent, MARKER_BASE::m_Pos, SCH_ITEM::Next(), EDA_DRAW_FRAME::RedrawScreen(), EDA_DRAW_FRAME::SetCrossHairPosition(), SCH_EDIT_FRAME::SetCurrentSheet(), and SCH_SHEET_PATH::UpdateAllScreenReferences().

193 {
194  wxString link = event.GetLinkInfo().GetHref();
195 
196  m_lastMarkerFound = NULL;
197 
198  long index;
199 
200  if( !link.ToLong( &index ) )
201  return;
202 
203  const SCH_MARKER* marker = m_MarkersList->GetItem( index );
204 
205  if( marker == NULL )
206  return;
207 
208  // Search for the selected marker
209  unsigned i;
210  SCH_SHEET_LIST sheetList( g_RootSheet );
211  bool notFound = true;
212 
213  for( i = 0; i < sheetList.size(); i++ )
214  {
215  SCH_ITEM* item = (SCH_ITEM*) sheetList[i].LastDrawList();
216 
217  for( ; item; item = item->Next() )
218  {
219  if( item == marker )
220  {
221  notFound = false;
222  break;
223  }
224  }
225 
226  if( notFound == false )
227  break;
228  }
229 
230  if( notFound ) // Error
231  {
232  wxMessageBox( _( "Marker not found" ) );
233 
234  // The marker was deleted, so rebuild marker list
236  return;
237  }
238 
239  if( sheetList[i] != m_parent->GetCurrentSheet() )
240  {
241  sheetList[i].LastScreen()->SetZoom( m_parent->GetScreen()->GetZoom() );
242  m_parent->SetCurrentSheet( sheetList[i] );
244  }
245 
246  m_lastMarkerFound = marker;
247  m_parent->SetCrossHairPosition( marker->m_Pos );
248  m_parent->RedrawScreen( marker->m_Pos, false);
249 }
void SetCurrentSheet(const SCH_SHEET_PATH &aSheet)
Class SCH_SHEET_LIST.
double GetZoom() const
Function GetZoom returns the current "zoom factor", which is a measure of "internal units per device ...
Definition: base_screen.h:340
wxPoint m_Pos
position of the marker
Definition: marker_base.h:53
void UpdateAllScreenReferences()
Function UpdateAllScreenReferences updates the reference and the m_Multi parameter (part selection) f...
SCH_ITEM * Next() const
ERC_HTML_LISTFRAME * m_MarkersList
SCH_SCREEN * GetScreen() const override
Function GetScreen returns a pointer to a BASE_SCREEN or one of its derivatives.
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:55
SCH_SHEET_PATH & GetCurrentSheet()
SCH_EDIT_FRAME * m_parent
Definition: dialog_erc.h:42
void RedrawScreen(const wxPoint &aCenterPoint, bool aWarpPointer)
Function RedrawScreen redraws the entire screen area by updating the scroll bars and mouse pointer in...
Definition: zoom.cpp:46
const SCH_MARKER * GetItem(unsigned aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
size_t i
Definition: json11.cpp:597
void SetCrossHairPosition(const wxPoint &aPosition, bool aSnapToGrid=true)
Function SetCrossHairPosition sets the screen cross hair position to aPosition in logical (drawing) u...
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
const SCH_MARKER * m_lastMarkerFound
Definition: dialog_erc.h:45
void DisplayERC_MarkersList()
Definition: dialog_erc.cpp:389
void DIALOG_ERC::OnLeftDblClickMarkersList ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 252 of file dialog_erc.cpp.

References m_lastMarkerFound, m_parent, MARKER_BASE::m_Pos, EDA_DRAW_FRAME::RedrawScreen(), EDA_DRAW_FRAME::SetCrossHairPosition(), and EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent().

253 {
254  // Remember: OnLeftClickMarkersList was called just before
255  // and therefore m_lastMarkerFound was initialized.
256  // (NULL if not found)
257  if( m_lastMarkerFound )
258  {
261  // prevent a mouse left button release event in
262  // coming from the ERC dialog double click
263  // ( the button is released after closing this dialog and will generate
264  // an unwanted event in parent frame)
266  }
267 
268  Close();
269 }
wxPoint m_Pos
position of the marker
Definition: marker_base.h:53
void SkipNextLeftButtonReleaseEvent()
function SkipNextLeftButtonReleaseEvent after calling this function, if the left mouse button is down...
Definition: draw_frame.cpp:300
SCH_EDIT_FRAME * m_parent
Definition: dialog_erc.h:42
void RedrawScreen(const wxPoint &aCenterPoint, bool aWarpPointer)
Function RedrawScreen redraws the entire screen area by updating the scroll bars and mouse pointer in...
Definition: zoom.cpp:46
void SetCrossHairPosition(const wxPoint &aPosition, bool aSnapToGrid=true)
Function SetCrossHairPosition sets the screen cross hair position to aPosition in logical (drawing) u...
const SCH_MARKER * m_lastMarkerFound
Definition: dialog_erc.h:45
void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 271 of file dialog_shim.cpp.

References DIALOG_SHIM::m_fixupsRun, and recursiveDescent().

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and DIALOG_SHIM::IsQuasiModal().

272 {
273  if( !m_fixupsRun )
274  {
275 #if DLGSHIM_SELECT_ALL_IN_TEXT_CONTROLS
276  const bool selectAllInTextCtrls = true;
277 #else
278  const bool selectAllInTextCtrls = false;
279 #endif
280  wxWindow* firstTextCtrl = NULL;
281  wxWindow* windowWithFocus = NULL;
282 
283  recursiveDescent( GetChildren(), selectAllInTextCtrls, firstTextCtrl,
284  windowWithFocus );
285 
286 #if DLGSHIM_USE_SETFOCUS
287  // While it would be nice to honour any focus already set (which was
288  // recorded in windowWithFocus), the reality is that it's currently wrong
289  // far more often than it's right.
290  // So just focus on the first text control if we have one; otherwise the
291  // focus on the dialog itself, which will at least allow esc, return, etc.
292  // to function.
293  if( firstTextCtrl )
294  firstTextCtrl->SetFocus();
295  else
296  SetFocus();
297 #endif
298 
299 #ifdef __WXMAC__
300  fixOSXCancelButtonIssue( this );
301 #endif
302 
303  m_fixupsRun = true;
304  }
305 
306  event.Skip();
307 }
static void recursiveDescent(wxWindowList &children, const bool selectTextInTextCtrls, wxWindow *&firstTextCtrl, wxWindow *&windowWithFocus)
bool m_fixupsRun
Definition: dialog_shim.h:149
void DIALOG_ERC::OnResetMatrixClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 173 of file dialog_erc.cpp.

References ResetDefaultERCDiag().

174 {
175  ResetDefaultERCDiag( event );
176 }
void ResetDefaultERCDiag(wxCommandEvent &event)
Definition: dialog_erc.cpp:416
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 34 of file kiway_holder.cpp.

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), DIALOG_FOOTPRINT_FP_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile(), DIALOG_SYMBOL_LIB_TABLE::browseLibrariesHandler(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkNewAlias(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), LIB_EDIT_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_FOOTPRINT_FP_EDITOR::Edit3DShapeFileName(), DIALOG_FOOTPRINT_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::Files_io_from_id(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), FOOTPRINT_EDIT_FRAME::getLibPath(), LIB_EDIT_FRAME::getLibraryFileName(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), DIALOG_FOOTPRINT_FP_EDITOR::initModeditProperties(), DIALOG_FOOTPRINT_BOARD_EDITOR::InitModeditProperties(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), KIWAY_HOLDER::Kiway(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_GENDRILL::OnGenReportFile(), DIALOG_CHOOSE_COMPONENT::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_CHOOSE_COMPONENT::OnSchViewPaint(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), EDA_3D_VIEWER::takeScreenshot(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), and DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR().

35 {
36  return Kiway().Prj();
37 }
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
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:142
void DIALOG_ERC::ReBuildMatrixPanel ( )
private

Definition at line 272 of file dialog_erc.cpp.

References CommentERC_H, CommentERC_V, DefaultDiagErc, DiagErc, dummy(), ID_MATRIX_0, KiBitmap(), m_buttonList, m_diagErcTableInit, m_initialized, DIALOG_ERC_BASE::m_matrixPanel, max, PINTYPE_COUNT, setDRCMatrixButtonState(), wxPoint::x, and wxPoint::y.

Referenced by Init(), and ResetDefaultERCDiag().

273 {
274  // Try to know the size of bitmap button used in drc matrix
275  wxBitmapButton * dummy = new wxBitmapButton( m_matrixPanel, wxID_ANY, KiBitmap( ercerr_xpm ) );
276  wxSize bitmap_size = dummy->GetSize();
277  delete dummy;
278 
279  if( !m_diagErcTableInit )
280  {
281  memcpy( DiagErc, DefaultDiagErc, sizeof(DefaultDiagErc) );
282  m_diagErcTableInit = true;
283  }
284 
285  wxPoint pos;
286  // Get the current text size:use a dummy text.
287  wxStaticText* text = new wxStaticText( m_matrixPanel, -1, wxT( "W" ), pos );
288  int text_height = text->GetRect().GetHeight();
289  bitmap_size.y = std::max( bitmap_size.y, text_height );
290  delete text;
291 
292  // compute the Y pos interval:
293  pos.y = text_height;
294 
295  if( m_initialized == false )
296  {
297  std::vector<wxStaticText*> labels;
298 
299  // Print row labels
300  for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
301  {
302  int y = pos.y + (ii * bitmap_size.y);
303  text = new wxStaticText( m_matrixPanel, -1, CommentERC_H[ii],
304  wxPoint( 5, y + ( bitmap_size.y / 2) - (text_height / 2) ) );
305  labels.push_back( text );
306 
307  int x = text->GetRect().GetRight();
308  pos.x = std::max( pos.x, x );
309  }
310 
311  // Right-align
312  for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
313  {
314  wxPoint labelPos = labels[ ii ]->GetPosition();
315  labelPos.x = pos.x - labels[ ii ]->GetRect().GetWidth();
316  labels[ ii ]->SetPosition( labelPos );
317  }
318 
319  pos.x += 5;
320  }
321  else
322  pos = m_buttonList[0][0]->GetPosition();
323 
324  for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
325  {
326  int y = pos.y + (ii * bitmap_size.y);
327 
328  for( int jj = 0; jj <= ii; jj++ )
329  {
330  // Add column labels (only once)
331  int diag = DiagErc[ii][jj];
332  int x = pos.x + (jj * bitmap_size.x);
333 
334  if( (ii == jj) && !m_initialized )
335  {
336  wxPoint txtpos;
337  txtpos.x = x + (bitmap_size.x / 2);
338  txtpos.y = y - text_height;
339  text = new wxStaticText( m_matrixPanel, -1, CommentERC_V[ii], txtpos );
340  }
341 
342  int event_id = ID_MATRIX_0 + ii + ( jj * PINTYPE_COUNT );
343  BITMAP_DEF bitmap_butt = erc_green_xpm;
344 
345  delete m_buttonList[ii][jj];
346  m_buttonList[ii][jj] = new wxBitmapButton( m_matrixPanel,
347  event_id,
348  KiBitmap( bitmap_butt ),
349  wxPoint( x, y ) );
350  setDRCMatrixButtonState( m_buttonList[ii][jj], diag );
351  }
352  }
353 
354  m_initialized = true;
355 }
void setDRCMatrixButtonState(wxBitmapButton *aButton, int aState)
Definition: dialog_erc.cpp:358
PNG memory record (file in memory).
Definition: bitmap_types.h:41
const wxString CommentERC_H[]
Definition: erc.cpp:87
int DefaultDiagErc[PINTYPE_COUNT][PINTYPE_COUNT]
Default Look up table which gives the ERC error level for a pair of connected pins Same as DiagErc...
Definition: erc.cpp:133
#define ID_MATRIX_0
Definition: dialog_erc.cpp:67
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Function KiBitmap constructs a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:78
bool m_initialized
Definition: dialog_erc.h:44
wxBitmapButton * m_buttonList[PINTYPE_COUNT][PINTYPE_COUNT]
Definition: dialog_erc.h:43
wxPanel * m_matrixPanel
int DiagErc[PINTYPE_COUNT][PINTYPE_COUNT]
Definition: erc.cpp:124
static bool m_diagErcTableInit
Definition: dialog_erc.h:47
static LIB_PART * dummy()
Used when a LIB_PART is not found in library to draw a dummy shape This component is a 400 mils squar...
#define max(a, b)
Definition: auxiliary.h:86
const wxString CommentERC_V[]
Definition: erc.cpp:103
void DIALOG_ERC::ResetDefaultERCDiag ( wxCommandEvent &  event)
private

Definition at line 416 of file dialog_erc.cpp.

References DefaultDiagErc, DiagErc, DIALOG_ERC_BASE::m_cbTestSimilarLabels, DIALOG_ERC_BASE::m_cbTestUniqueGlbLabels, m_TestSimilarLabels, m_tstUniqueGlobalLabels, and ReBuildMatrixPanel().

Referenced by OnResetMatrixClick().

417 {
418  memcpy( DiagErc, DefaultDiagErc, sizeof( DiagErc ) );
420  m_TestSimilarLabels = true;
424 }
static bool m_TestSimilarLabels
Definition: dialog_erc.h:51
int DefaultDiagErc[PINTYPE_COUNT][PINTYPE_COUNT]
Default Look up table which gives the ERC error level for a pair of connected pins Same as DiagErc...
Definition: erc.cpp:133
wxCheckBox * m_cbTestUniqueGlbLabels
int DiagErc[PINTYPE_COUNT][PINTYPE_COUNT]
Definition: erc.cpp:124
static bool m_tstUniqueGlobalLabels
Definition: dialog_erc.h:48
void ReBuildMatrixPanel()
Definition: dialog_erc.cpp:272
wxCheckBox * m_cbTestSimilarLabels
void DIALOG_ERC::SelLocal ( wxCommandEvent &  event)
private
void DIALOG_ERC::SelNewCmp ( wxCommandEvent &  event)
private
void DIALOG_ERC::setDRCMatrixButtonState ( wxBitmapButton *  aButton,
int  aState 
)
private

Definition at line 358 of file dialog_erc.cpp.

References ERR, KiBitmap(), OK, and WAR.

Referenced by ChangeErrorLevel(), and ReBuildMatrixPanel().

359 {
360  BITMAP_DEF bitmap_butt = NULL;
361  wxString tooltip;
362 
363  switch( aState )
364  {
365  case OK:
366  bitmap_butt = erc_green_xpm;
367  tooltip = _( "No error or warning" );
368  break;
369 
370  case WAR:
371  bitmap_butt = ercwarn_xpm;
372  tooltip = _( "Generate warning" );
373  break;
374 
375  case ERR:
376  bitmap_butt = ercerr_xpm;
377  tooltip = _( "Generate error" );
378  break;
379  }
380 
381  if( bitmap_butt )
382  {
383  aButton->SetBitmap( KiBitmap( bitmap_butt ) );
384  aButton->SetToolTip( tooltip );
385  }
386 }
Definition: erc.h:43
PNG memory record (file in memory).
Definition: bitmap_types.h:41
Definition: erc.h:42
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Function KiBitmap constructs a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:78
Definition: erc.h:44
void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), KIWAY_HOLDER::Kiway(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

42 {
43 #if defined(DEBUG)
44  // offer a trap point for debugging most any window
45  wxASSERT( aDest );
46  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
47  {
48  int breakhere=1;
49  (void) breakhere;
50  }
51 #endif
52 
53  (void) aDest;
54 
55  m_kiway = aKiway;
56 }
KIWAY * m_kiway
Definition: kiway_player.h:85
const char * name
Definition: DXF_plotter.cpp:61
void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 118 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), HOTKEYS_EDITOR_DIALOG::HOTKEYS_EDITOR_DIALOG(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), DIALOG_SHIM::IsQuasiModal(), DIALOG_LAYERS_SETUP::OnInitDialog(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

119 {
120  wxSize sz( x, y );
121  SetSize( ConvertDialogToPixels( sz ) );
122 }
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 146 of file dialog_shim.cpp.

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, max, wxPoint::x, and wxPoint::y.

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_SHIM::IsQuasiModal(), DIALOG_SCH_FIND::OnCancel(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_FOOTPRINTS::OnQuit(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), SCH_COMPONENT::SetPosition(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

147 {
148  bool ret;
149  const char* hash_key;
150 
151  if( m_hash_key.size() )
152  {
153  // a special case like EDA_LIST_DIALOG, which has multiple uses.
154  hash_key = m_hash_key.c_str();
155  }
156  else
157  {
158  hash_key = typeid(*this).name();
159  }
160 
161  // Show or hide the window. If hiding, save current position and size.
162  // If showing, use previous position and size.
163  if( show )
164  {
165 #ifndef __WINDOWS__
166  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
167 #endif
168  ret = wxDialog::Show( show );
169 
170  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
171  EDA_RECT savedDialogRect = class_map[ hash_key ];
172 
173  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
174  {
175  SetSize( savedDialogRect.GetPosition().x,
176  savedDialogRect.GetPosition().y,
177  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
178  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
179  0 );
180  }
181 
182  // Be sure that the dialog appears in a visible area
183  // (the dialog position might have been stored at the time when it was
184  // shown on another display)
185  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
186  Centre();
187  }
188  else
189  {
190  // Save the dialog's position & size before hiding, using classname as key
191  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
192 
193 #ifdef __WXMAC__
194  if ( m_eventLoop )
195  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
196 #endif
197 
198  ret = wxDialog::Show( show );
199  }
200 
201  return ret;
202 }
const wxSize GetSize() const
Definition: eda_rect.h:101
std::string m_hash_key
Definition: dialog_shim.h:151
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:113
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 558 of file dialog_shim.cpp.

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), SCH_EDIT_FRAME::InstallHierarchyFrame(), InvokeDialogCreateBOMEditor(), InvokeDialogEditComponentsLibId(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

559 {
560  // This is an exception safe way to zero a pointer before returning.
561  // Yes, even though DismissModal() clears this first normally, this is
562  // here in case there's an exception before the dialog is dismissed.
563  struct NULLER
564  {
565  void*& m_what;
566  NULLER( void*& aPtr ) : m_what( aPtr ) {}
567  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
568  } clear_this( (void*&) m_qmodal_loop );
569 
570  // release the mouse if it's currently captured as the window having it
571  // will be disabled when this dialog is shown -- but will still keep the
572  // capture making it impossible to do anything in the modal dialog itself
573  wxWindow* win = wxWindow::GetCapture();
574  if( win )
575  win->ReleaseMouse();
576 
577  // Get the optimal parent
578  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
579 
580  // Show the optimal parent
581  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
582 
583  wxASSERT_MSG( !m_qmodal_parent_disabler,
584  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
585 
586  // quasi-modal: disable only my "optimal" parent
588 
589 #ifdef __WXMAC__
590  // Apple in its infinite wisdom will raise a disabled window before even passing
591  // us the event, so we have no way to stop it. Instead, we must set an order on
592  // the windows so that the quasi-modal will be pushed in front of the disabled
593  // window when it is raised.
594  ReparentQuasiModal();
595 #endif
596  Show( true );
597 
598  m_qmodal_showing = true;
599 
600  EVENT_LOOP event_loop;
601 
602  m_qmodal_loop = &event_loop;
603 
604  event_loop.Run();
605 
606  return GetReturnCode();
607 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
Toggle a window&#39;s "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
void DIALOG_ERC::TestErc ( REPORTER aReporter)
private

Definition at line 463 of file dialog_erc.cpp.

References SCH_SHEET_LIST::AnnotatePowerSymbols(), SCH_EDIT_FRAME::BuildNetListBase(), SCH_EDIT_FRAME::CheckAnnotate(), SCH_SCREENS::DeleteAllMarkers(), Diagnose(), DisplayERC_MarkersList(), ERCE_DIFFERENT_UNIT_NET, ErcFileWildcard(), ExecuteFile(), Format(), g_RootSheet, EDA_DRAW_FRAME::GetCanvas(), SCH_SCREEN::GetFileName(), GetNewTimeStamp(), SCH_SHEET::GetScreen(), REPORTER::HasMessage(), DIALOG_ERC_BASE::m_cbTestSimilarLabels, DIALOG_ERC_BASE::m_cbTestUniqueGlbLabels, m_parent, m_TestSimilarLabels, m_tstUniqueGlobalLabels, m_writeErcFile, DIALOG_ERC_BASE::m_WriteResultOpt, MARKER_BASE::MARKER_ERC, MARKER_BASE::MARKER_SEVERITY_ERROR, NET_BUS, NET_BUSLABELMEMBER, NET_GLOBBUSLABELMEMBER, NET_GLOBLABEL, NET_HIERBUSLABELMEMBER, NET_HIERLABEL, NET_ITEM_UNSPECIFIED, NET_JUNCTION, NET_LABEL, NET_NC, NET_NOCONNECT, NET_PIN, NET_PINLABEL, NET_SEGMENT, NET_SHEETBUSLABELMEMBER, NET_SHEETLABEL, NOC, Pgm(), QuoteFullPath(), EDA_DRAW_PANEL::Refresh(), REPORTER::Report(), REPORTER::RPT_ERROR, REPORTER::RPT_INFO, MARKER_BASE::SetData(), MARKER_BASE::SetErrorLevel(), MARKER_BASE::SetMarkerType(), EDA_ITEM::SetTimeStamp(), TestDuplicateSheetNames(), TestMultiunitFootprints(), TestOthersItems(), UNC, updateMarkerCounts(), and WriteDiagnosticERC().

Referenced by OnErcCmpClick().

464 {
465  wxFileName fn;
466 
467  m_writeErcFile = m_WriteResultOpt->GetValue();
470 
471  // Build the whole sheet list in hierarchy (sheet, not screen)
472  SCH_SHEET_LIST sheets( g_RootSheet );
473  sheets.AnnotatePowerSymbols();
474 
475  if( m_parent->CheckAnnotate( aReporter, false ) )
476  {
477  if( aReporter.HasMessage() )
478  aReporter.Report( _( "Annotation required!" ), REPORTER::RPT_ERROR );
479 
480  return;
481  }
482 
483  SCH_SCREENS screens;
484 
485  // Erase all previous DRC markers.
487 
488  /* Test duplicate sheet names inside a given sheet, one cannot have sheets with
489  * duplicate names (file names can be duplicated).
490  */
491  TestDuplicateSheetNames( true );
492 
493  /* Test is all units of each multiunit component have the same footprint assigned.
494  */
495  TestMultiunitFootprints( sheets );
496 
497  std::unique_ptr<NETLIST_OBJECT_LIST> objectsConnectedList( m_parent->BuildNetListBase() );
498 
499  // Reset the connection type indicator
500  objectsConnectedList->ResetConnectionsType();
501 
502  unsigned lastItemIdx;
503  unsigned nextItemIdx = lastItemIdx = 0;
504  int MinConn = NOC;
505 
506  /* Check that a pin appears in only one net. This check is necessary
507  * because multi-unit components that have shared pins can be wired to
508  * different nets.
509  */
510  std::unordered_map<wxString, wxString> pin_to_net_map;
511 
512  /* The netlist generated by SCH_EDIT_FRAME::BuildNetListBase is sorted
513  * by net number, which means we can group netlist items into ranges
514  * that live in the same net. The range from nextItem to the current
515  * item (exclusive) needs to be checked against the current item. The
516  * lastItem variable is used as a helper to pass the last item's number
517  * from one loop iteration to the next, which simplifies the initial
518  * pass.
519  */
520 
521  for( unsigned itemIdx = 0; itemIdx < objectsConnectedList->size(); itemIdx++ )
522  {
523  auto item = objectsConnectedList->GetItem( itemIdx );
524  auto lastItem = objectsConnectedList->GetItem( lastItemIdx );
525 
526  auto lastNet = lastItem->GetNet();
527  auto net = item->GetNet();
528 
529  wxASSERT_MSG( lastNet <= net, wxT( "Netlist not correctly ordered" ) );
530 
531  if( lastNet != net )
532  {
533  // New net found:
534  MinConn = NOC;
535  nextItemIdx = itemIdx;
536  }
537 
538  switch( item->m_Type )
539  {
540  // These items do not create erc problems
542  case NET_SEGMENT:
543  case NET_BUS:
544  case NET_JUNCTION:
545  case NET_LABEL:
546  case NET_BUSLABELMEMBER:
547  case NET_PINLABEL:
549  break;
550 
551  case NET_HIERLABEL:
553  case NET_SHEETLABEL:
555  // ERC problems when pin sheets do not match hierarchical labels.
556  // Each pin sheet must match a hierarchical label
557  // Each hierarchical label must match a pin sheet
558  objectsConnectedList->TestforNonOrphanLabel( itemIdx, nextItemIdx );
559  break;
560  case NET_GLOBLABEL:
562  objectsConnectedList->TestforNonOrphanLabel( itemIdx, nextItemIdx );
563  break;
564 
565  case NET_NOCONNECT:
566 
567  // ERC problems when a noconnect symbol is connected to more than one pin.
568  MinConn = NET_NC;
569 
570  if( objectsConnectedList->CountPinsInNet( nextItemIdx ) > 1 )
571  Diagnose( item, NULL, MinConn, UNC );
572 
573  break;
574 
575  case NET_PIN:
576  {
577  // Check if this pin has appeared before on a different net
578  if( item->m_Link )
579  {
580  auto ref = item->GetComponentParent()->GetRef( &item->m_SheetPath );
581  wxString pin_name = ref + "_" + item->m_PinNum;
582 
583  if( pin_to_net_map.count( pin_name ) == 0 )
584  {
585  pin_to_net_map[pin_name] = item->GetNetName();
586  }
587  else if( pin_to_net_map[pin_name] != item->GetNetName() )
588  {
589  SCH_MARKER* marker = new SCH_MARKER();
590 
591  marker->SetTimeStamp( GetNewTimeStamp() );
592  marker->SetData( ERCE_DIFFERENT_UNIT_NET, item->m_Start,
593  wxString::Format( _( "Pin %s on %s is connected to both %s and %s" ),
594  item->m_PinNum, ref, pin_to_net_map[pin_name], item->GetNetName() ),
595  item->m_Start );
598 
599  item->m_SheetPath.LastScreen()->Append( marker );
600  }
601  }
602 
603  // Look for ERC problems between pins:
604  TestOthersItems( objectsConnectedList.get(), itemIdx, nextItemIdx, &MinConn );
605  break;
606  }
607  }
608 
609  lastItemIdx = itemIdx;
610  }
611 
612  // Test similar labels (i;e. labels which are identical when
613  // using case insensitive comparisons)
614  if( m_TestSimilarLabels )
615  objectsConnectedList->TestforSimilarLabels();
616 
617  // Displays global results:
618  updateMarkerCounts( &screens );
619 
620  // Display diags:
622 
623  // Display new markers:
624  m_parent->GetCanvas()->Refresh();
625 
626  // Display message
627  aReporter.Report( _( "Finished" ), REPORTER::RPT_INFO );
628 
629  if( m_writeErcFile )
630  {
631  fn = g_RootSheet->GetScreen()->GetFileName();
632  fn.SetExt( wxT( "erc" ) );
633 
634  wxFileDialog dlg( this, _( "ERC File" ), fn.GetPath(), fn.GetFullName(),
635  ErcFileWildcard(), wxFD_SAVE );
636 
637  if( dlg.ShowModal() == wxID_CANCEL )
638  return;
639 
640  if( WriteDiagnosticERC( dlg.GetPath() ) )
641  ExecuteFile( this, Pgm().GetEditorName(), QuoteFullPath( fn ) );
642  }
643 }
Class SCH_SHEET_LIST.
virtual bool HasMessage() const =0
Function HasMessage Returns true if the reporter client is non-empty.
static bool m_TestSimilarLabels
Definition: dialog_erc.h:51
NETLIST_OBJECT_LIST * BuildNetListBase(bool updateStatusText=true)
Create a flat list which stores all connected objects.
void DeleteAllMarkers(enum MARKER_BASE::TYPEMARKER aMarkerType)
Delete all electronic rules check markers of aMarkerType from all the screens in the list...
void TestOthersItems(NETLIST_OBJECT_LIST *aList, unsigned aNetItemRef, unsigned aNetStart, int *aMinConnexion)
Perform ERC testing for electrical conflicts between NetItemRef and other items (mainly pin) on the s...
Definition: erc.cpp:430
static bool m_writeErcFile
Definition: dialog_erc.h:46
virtual void Refresh(bool eraseBackground=true, const wxRect *rect=NULL) override
Update the board display after modifying it bu a python script (note: it is automatically called by a...
Definition: draw_panel.cpp:338
EDA_DRAW_PANEL * GetCanvas()
Definition: draw_frame.h:351
const wxString & GetFileName() const
Definition: sch_screen.h:120
void Diagnose(NETLIST_OBJECT *aNetItemRef, NETLIST_OBJECT *aNetItemTst, int aMinConn, int aDiag)
Performs ERC testing and creates an ERC marker to show the ERC problem for aNetItemRef or between aNe...
Definition: erc.cpp:294
PGM_BASE & Pgm()
The global Program "get" accessor.
Definition: kicad.cpp:65
SCH_SCREEN * GetScreen()
Definition: sch_sheet.h:279
void SetData(int aErrorCode, const wxPoint &aMarkerPos, const wxString &aText, const wxPoint &aPos, const wxString &bText, const wxPoint &bPos)
Function SetData fills in all the reportable data associated with a MARKER.
#define ERCE_DIFFERENT_UNIT_NET
Definition: erc.h:65
bool WriteDiagnosticERC(const wxString &aFullFileName)
Function WriteDiagnosticERC save the ERC errors to aFullFileName.
Definition: erc.cpp:583
timestamp_t GetNewTimeStamp()
Definition: common.cpp:167
int TestDuplicateSheetNames(bool aCreateMarker)
Function TestDuplicateSheetNames( ) inside a given sheet, one cannot have sheets with duplicate names...
Definition: erc.cpp:177
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:55
Definition: erc.h:45
void SetMarkerType(enum TYPEMARKER aMarkerType)
accessors to set/get marker type (DRC, ERC, or other)
Definition: marker_base.h:145
SCH_EDIT_FRAME * m_parent
Definition: dialog_erc.h:42
wxCheckBox * m_cbTestUniqueGlbLabels
int CheckAnnotate(REPORTER &aReporter, bool aOneSheetOnly)
Check for annotation errors.
Definition: annotate.cpp:243
wxString ErcFileWildcard()
#define NOC
Definition: erc.h:73
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
wxString QuoteFullPath(wxFileName &fn, wxPathFormat format)
Quote return value of wxFileName::GetFullPath().
Definition: gestfich.cpp:417
void SetErrorLevel(MARKER_SEVERITY aErrorLevel)
accessors to set/get error levels (warning, error, fatal error..)
Definition: marker_base.h:133
void updateMarkerCounts(SCH_SCREENS *screens)
Definition: dialog_erc.cpp:123
static bool m_tstUniqueGlobalLabels
Definition: dialog_erc.h:48
virtual REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_UNDEFINED)=0
Function Report is a pure virtual function to override in the derived object.
wxCheckBox * m_WriteResultOpt
#define NET_NC
Definition: erc.h:71
int ExecuteFile(wxWindow *frame, const wxString &ExecFile, const wxString &param, wxProcess *callback)
Function ExecuteFile calls the executable file ExecFile with the command line parameters param...
Definition: gestfich.cpp:208
int TestMultiunitFootprints(SCH_SHEET_LIST &aSheetList)
Test if all units of each multiunit component have the same footprint assigned.
Definition: erc.cpp:228
Container class that holds multiple SCH_SCREEN objects in a hierarchy.
Definition: sch_screen.h:503
void DisplayERC_MarkersList()
Definition: dialog_erc.cpp:389
void SetTimeStamp(timestamp_t aNewTimeStamp)
Definition: base_struct.h:214
wxCheckBox * m_cbTestSimilarLabels
void DIALOG_ERC::updateMarkerCounts ( SCH_SCREENS screens)
private

Definition at line 123 of file dialog_erc.cpp.

References SCH_SCREENS::GetMarkerCount(), DIALOG_ERC_BASE::m_LastErrCount, DIALOG_ERC_BASE::m_LastWarningCount, DIALOG_ERC_BASE::m_TotalErrCount, MARKER_BASE::MARKER_ERC, MARKER_BASE::MARKER_SEVERITY_ERROR, MARKER_BASE::MARKER_SEVERITY_UNSPEC, and MARKER_BASE::MARKER_SEVERITY_WARNING.

Referenced by Init(), OnEraseDrcMarkersClick(), and TestErc().

124 {
125  int markers = screens->GetMarkerCount( MARKER_BASE::MARKER_ERC,
127  int warnings = screens->GetMarkerCount( MARKER_BASE::MARKER_ERC,
129  int errors = screens->GetMarkerCount( MARKER_BASE::MARKER_ERC,
131 
132  wxString num;
133  num.Printf( wxT( "%d" ), markers );
134  m_TotalErrCount->SetValue( num );
135 
136  num.Printf( wxT( "%d" ), errors );
137  m_LastErrCount->SetValue( num );
138 
139  num.Printf( wxT( "%d" ), warnings );
140  m_LastWarningCount->SetValue( num );
141 }
wxTextCtrl * m_TotalErrCount
wxTextCtrl * m_LastWarningCount
int GetMarkerCount(enum MARKER_BASE::TYPEMARKER aMarkerType, enum MARKER_BASE::MARKER_SEVERITY aSeverity)
Return the number of ERC markers of aMarkerType from all of the screens in the list.
wxTextCtrl * m_LastErrCount
int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 132 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_SHIM::IsQuasiModal(), and DIALOG_LAYERS_SETUP::OnInitDialog().

133 {
134  wxSize sz( 0, y );
135  return ConvertDialogToPixels( sz ).y;
136 }

Member Data Documentation

wxButton* DIALOG_ERC_BASE::m_buttonClose
protectedinherited
wxButton* DIALOG_ERC_BASE::m_buttondelmarkers
protectedinherited
wxButton* DIALOG_ERC_BASE::m_buttonERC
protectedinherited
wxBitmapButton* DIALOG_ERC::m_buttonList[PINTYPE_COUNT][PINTYPE_COUNT]
private

Definition at line 43 of file dialog_erc.h.

Referenced by Init(), and ReBuildMatrixPanel().

wxCheckBox* DIALOG_ERC_BASE::m_cbTestSimilarLabels
protectedinherited
wxCheckBox* DIALOG_ERC_BASE::m_cbTestUniqueGlbLabels
protectedinherited
bool DIALOG_ERC::m_diagErcTableInit = false
staticprivate

Definition at line 47 of file dialog_erc.h.

Referenced by ReBuildMatrixPanel().

wxStaticText* DIALOG_ERC_BASE::m_ErcTotalErrorsText
protectedinherited

Definition at line 53 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

bool DIALOG_SHIM::m_fixupsRun
protectedinherited

Definition at line 149 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

std::string DIALOG_SHIM::m_hash_key
protectedinherited
bool DIALOG_ERC::m_initialized
private

Definition at line 44 of file dialog_erc.h.

Referenced by Init(), and ReBuildMatrixPanel().

wxTextCtrl* DIALOG_ERC_BASE::m_LastErrCount
protectedinherited

Definition at line 58 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and updateMarkerCounts().

wxStaticText* DIALOG_ERC_BASE::m_LastErrCountText
protectedinherited

Definition at line 57 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

const SCH_MARKER* DIALOG_ERC::m_lastMarkerFound
private

Definition at line 45 of file dialog_erc.h.

Referenced by OnLeftClickMarkersList(), and OnLeftDblClickMarkersList().

wxTextCtrl* DIALOG_ERC_BASE::m_LastWarningCount
protectedinherited

Definition at line 56 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and updateMarkerCounts().

wxPanel* DIALOG_ERC_BASE::m_matrixPanel
protectedinherited

Definition at line 71 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and ReBuildMatrixPanel().

wxTextCtrl* DIALOG_ERC_BASE::m_MessagesList
protectedinherited

Definition at line 62 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and OnErcCmpClick().

wxNotebook* DIALOG_ERC_BASE::m_NoteBook
protectedinherited

Definition at line 51 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

wxPanel* DIALOG_ERC_BASE::m_PanelERC
protectedinherited

Definition at line 52 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

wxPanel* DIALOG_ERC_BASE::m_PanelERCOptions
protectedinherited

Definition at line 68 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

SCH_EDIT_FRAME* DIALOG_ERC::m_parent
private
EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 154 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited
wxButton* DIALOG_ERC_BASE::m_ResetOptButton
protectedinherited
wxStaticLine* DIALOG_ERC_BASE::m_staticline1
protectedinherited

Definition at line 59 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

bool DIALOG_ERC::m_TestSimilarLabels = true
static
wxStaticText* DIALOG_ERC_BASE::m_textMarkers
protectedinherited

Definition at line 63 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

wxStaticText* DIALOG_ERC_BASE::m_titleMessages
protectedinherited

Definition at line 61 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

wxTextCtrl* DIALOG_ERC_BASE::m_TotalErrCount
protectedinherited

Definition at line 54 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and updateMarkerCounts().

bool DIALOG_ERC::m_tstUniqueGlobalLabels = true
staticprivate

Definition at line 48 of file dialog_erc.h.

Referenced by Init(), ResetDefaultERCDiag(), TestErc(), and ~DIALOG_ERC().

wxStaticText* DIALOG_ERC_BASE::m_WarnErcErrorsText
protectedinherited

Definition at line 55 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

bool DIALOG_ERC::m_writeErcFile = false
staticprivate

Definition at line 46 of file dialog_erc.h.

Referenced by Init(), and TestErc().

wxCheckBox* DIALOG_ERC_BASE::m_WriteResultOpt
protectedinherited

Definition at line 60 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), Init(), and TestErc().


The documentation for this class was generated from the following files: