KiCad PCB EDA Suite
DIALOG_DRC_CONTROL Class Reference

#include <dialog_drc.h>

Inheritance diagram for DIALOG_DRC_CONTROL:
DIALOG_DRC_CONTROL_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_DRC_CONTROL (DRC *aTester, PCB_EDIT_FRAME *aEditorFrame, wxWindow *aParent)
 Constructors. More...
 
 ~DIALOG_DRC_CONTROL ()
 
void SetRptSettings (bool aEnable, const wxString &aFileName)
 Enable/disable the report file creation. More...
 
void GetRptSettings (bool *aEnable, wxString &aFileName)
 
void UpdateDisplayedCounts ()
 
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...
 

Public Attributes

BOARD_DESIGN_SETTINGS m_BrdSettings
 
wxTextCtrl * m_SetClearance
 
wxTextCtrl * m_SetTrackMinWidthCtrl
 
wxTextCtrl * m_SetViaMinSizeCtrl
 
wxTextCtrl * m_SetMicroViakMinSizeCtrl
 
wxStaticText * m_MarkerCount
 
wxStaticText * m_UnconnectedCount
 
DRCLISTBOXm_ClearanceListBox
 
DRCLISTBOXm_UnconnectedListBox
 

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

wxStaticText * m_staticTextOptions
 
wxStaticText * m_ClearanceTitle
 
wxStaticText * m_TrackMinWidthTitle
 
wxStaticText * m_TrackMinWidthUnit
 
wxStaticText * m_ViaMinTitle
 
wxStaticText * m_ViaMinUnit
 
wxStaticText * m_MicroViaMinTitle
 
wxStaticText * m_MicroViaMinUnit
 
wxCheckBox * m_cbRefillZones
 
wxCheckBox * m_cbReportAllTrackErrors
 
wxCheckBox * m_cbCourtyardOverlap
 
wxCheckBox * m_cbCourtyardMissing
 
wxStaticText * m_staticTextRpt
 
wxCheckBox * m_CreateRptCtrl
 
wxTextCtrl * m_RptFilenameCtrl
 
wxButton * m_BrowseButton
 
wxStaticText * m_staticText6
 
wxTextCtrl * m_Messages
 
wxButton * m_buttonRunDRC
 
wxButton * m_buttonListUnconnected
 
wxButton * m_DeleteAllButton
 
wxButton * m_DeleteCurrentMarkerButton
 
wxStaticText * m_MarkerCountLabel
 
wxStaticLine * m_staticline1
 
wxStaticText * m_UnconnectedCountLabel
 
wxNotebook * m_Notebook
 
wxPanel * m_panelClearanceListBox
 
wxStdDialogButtonSizer * m_sdbSizer1
 
wxButton * m_sdbSizer1OK
 
wxButton * m_sdbSizer1Cancel
 
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

bool writeReport (const wxString &aFullFileName)
 Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open text file. More...
 
const wxString makeValidFileNameReport ()
 filenames can be entered by name. More...
 
void InitValues ()
 
void DisplayDRCValues ()
 
void SetDrcParmeters ()
 
void OnReportCheckBoxClicked (wxCommandEvent &event) override
 wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX More...
 
void OnButtonBrowseRptFileClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_BROWSE_RPT_FILE More...
 
void OnStartdrcClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_STARTDRC More...
 
void OnListUnconnectedClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_LIST_UNCONNECTED More...
 
void OnDeleteAllClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DELETE_ALL More...
 
void OnDeleteOneClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DELETE_ONE More...
 
void OnLeftDClickClearance (wxMouseEvent &event) override
 wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST More...
 
void OnRightUpClearance (wxMouseEvent &event) override
 wxEVT_RIGHT_UP event handler for ID_CLEARANCE_LIST More...
 
void OnLeftDClickUnconnected (wxMouseEvent &event) override
 wxEVT_LEFT_DCLICK event handler for ID_UNCONNECTED_LIST More...
 
void OnRightUpUnconnected (wxMouseEvent &event) override
 wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST More...
 
void OnCancelClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL More...
 
void OnOkClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK More...
 
void OnActivateDlg (wxActivateEvent &event) override
 handler for activate event, updating data which can be modified outside the dialog (DRC parameters) More...
 
void OnMarkerSelectionEvent (wxCommandEvent &event) override
 
void OnUnconnectedSelectionEvent (wxCommandEvent &event) override
 
void OnChangingMarkerList (wxNotebookEvent &event) override
 
void DelDRCMarkers ()
 
void RedrawDrawPanel ()
 
void OnPopupMenu (wxCommandEvent &event)
 

Private Attributes

BOARDm_currentBoard
 
DRCm_tester
 
PCB_EDIT_FRAMEm_brdEditor
 
wxConfigBase * m_config
 

Detailed Description

DrcDialog class declaration

Definition at line 53 of file dialog_drc.h.

Constructor & Destructor Documentation

DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL ( DRC aTester,
PCB_EDIT_FRAME aEditorFrame,
wxWindow *  aParent 
)

Constructors.

Definition at line 52 of file dialog_drc.cpp.

References DIALOG_SHIM::FinishDialogSettings(), PCB_BASE_FRAME::GetBoard(), BOARD::GetDesignSettings(), InitValues(), Kiface(), KIFACE_I::KifaceSettings(), m_brdEditor, m_BrdSettings, m_config, m_currentBoard, and m_tester.

53  :
54  DIALOG_DRC_CONTROL_BASE( aParent )
55 {
57  m_tester = aTester;
58  m_brdEditor = aEditorFrame;
61 
62  InitValues();
63 
64  // Now all widgets have the size fixed, call FinishDialogSettings
66 }
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
BOARD * GetBoard() const
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:56
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:532
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
wxConfigBase * m_config
Definition: dialog_drc.h:149
DIALOG_DRC_CONTROL_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("DRC Control"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
BOARD * m_currentBoard
Definition: dialog_drc.h:146
DIALOG_DRC_CONTROL::~DIALOG_DRC_CONTROL ( )

Definition at line 68 of file dialog_drc.cpp.

References ID_CLEARANCE_LIST, ID_UNCONNECTED_LIST, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardMissing, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardOverlap, DIALOG_DRC_CONTROL_BASE::m_cbRefillZones, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, m_config, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, OnLeftDClickClearance(), OnLeftDClickUnconnected(), OnPopupMenu(), OnRightUpClearance(), OnRightUpUnconnected(), RefillZonesBeforeDrc, TestFootprintCourtyardKey, and TestMissingCourtyardKey.

69 {
72  m_config->Write( RefillZonesBeforeDrc, m_cbRefillZones->GetValue() );
73 
74  // Disonnect events
75  m_ClearanceListBox->Disconnect( ID_CLEARANCE_LIST, wxEVT_LEFT_DCLICK,
76  wxMouseEventHandler(
78  m_ClearanceListBox->Disconnect( ID_CLEARANCE_LIST, wxEVT_RIGHT_UP,
79  wxMouseEventHandler(
81  m_UnconnectedListBox->Disconnect( ID_UNCONNECTED_LIST, wxEVT_LEFT_DCLICK,
82  wxMouseEventHandler( DIALOG_DRC_CONTROL::
83  OnLeftDClickUnconnected ), NULL, this );
84  m_UnconnectedListBox->Disconnect( ID_UNCONNECTED_LIST, wxEVT_RIGHT_UP,
85  wxMouseEventHandler(
87 
88  this->Disconnect( wxEVT_MENU, wxCommandEventHandler( DIALOG_DRC_CONTROL::OnPopupMenu ), NULL, this );
89 }
#define ID_CLEARANCE_LIST
void OnRightUpClearance(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:497
wxCheckBox * m_cbRefillZones
void OnLeftDClickClearance(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:381
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
#define TestMissingCourtyardKey
Definition: dialog_drc.cpp:47
void OnLeftDClickUnconnected(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:523
wxCheckBox * m_cbCourtyardMissing
wxConfigBase * m_config
Definition: dialog_drc.h:149
wxCheckBox * m_cbCourtyardOverlap
void OnPopupMenu(wxCommandEvent &event)
Definition: dialog_drc.cpp:422
#define RefillZonesBeforeDrc
Definition: dialog_drc.cpp:49
void OnRightUpUnconnected(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:471
#define ID_UNCONNECTED_LIST
#define TestFootprintCourtyardKey
Definition: dialog_drc.cpp:48

Member Function Documentation

void DIALOG_DRC_CONTROL::DelDRCMarkers ( )
private

Definition at line 649 of file dialog_drc.cpp.

References DRCLISTBOX::DeleteAllItems(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, and PCB_BASE_FRAME::SetCurItem().

Referenced by OnDeleteAllClick(), OnListUnconnectedClick(), and OnStartdrcClick().

650 {
651  m_brdEditor->SetCurItem( NULL ); // clear curr item, because it could be a DRC marker
654  m_DeleteCurrentMarkerButton->Enable( false );
655 }
void SetCurItem(BOARD_ITEM *aItem, bool aDisplayInfo=true)
Function SetCurItem sets the currently selected item and displays it in the MsgPanel.
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
void DeleteAllItems()
Function DeleteAllItems deletes all items in the list.
DRCLISTBOX * m_ClearanceListBox
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::DisplayDRCValues ( )
private

Definition at line 112 of file dialog_drc.cpp.

References g_UserUnit, GetAbbreviatedUnitsLabel(), m_BrdSettings, DIALOG_DRC_CONTROL_BASE::m_MicroViaMinUnit, BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, DIALOG_DRC_CONTROL_BASE::m_SetMicroViakMinSizeCtrl, DIALOG_DRC_CONTROL_BASE::m_SetTrackMinWidthCtrl, DIALOG_DRC_CONTROL_BASE::m_SetViaMinSizeCtrl, BOARD_DESIGN_SETTINGS::m_TrackMinWidth, DIALOG_DRC_CONTROL_BASE::m_TrackMinWidthUnit, DIALOG_DRC_CONTROL_BASE::m_ViaMinUnit, BOARD_DESIGN_SETTINGS::m_ViasMinSize, and PutValueInLocalUnits().

Referenced by InitValues(), and OnActivateDlg().

113 {
117 
121 }
wxStaticText * m_ViaMinUnit
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:56
wxTextCtrl * m_SetViaMinSizeCtrl
wxStaticText * m_MicroViaMinUnit
int m_TrackMinWidth
track min value for width ((min copper size value
int m_ViasMinSize
vias (not micro vias) min diameter
wxString GetAbbreviatedUnitsLabel(EDA_UNITS_T aUnit)
Definition: base_units.cpp:485
int m_MicroViasMinSize
micro vias (not vias) min diameter
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:57
void PutValueInLocalUnits(wxTextCtrl &aTextCtr, int aValue)
Function PutValueInLocalUnits converts aValue from internal units to user units and append the units ...
Definition: base_units.cpp:267
wxTextCtrl * m_SetMicroViakMinSizeCtrl
wxStaticText * m_TrackMinWidthUnit
wxTextCtrl * m_SetTrackMinWidthCtrl
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_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 }
void DIALOG_DRC_CONTROL::GetRptSettings ( bool *  aEnable,
wxString &  aFileName 
)

Definition at line 188 of file dialog_drc.cpp.

References DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl, and DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl.

Referenced by DRC::DestroyDRCDialog().

189 {
190  *aEnable = m_CreateRptCtrl->GetValue();
191  aFileName = m_RptFilenameCtrl->GetValue();
192 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
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_DRC_CONTROL::InitValues ( )
private

Definition at line 124 of file dialog_drc.cpp.

References DisplayDRCValues(), ID_CLEARANCE_LIST, ID_UNCONNECTED_LIST, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardMissing, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardOverlap, DIALOG_DRC_CONTROL_BASE::m_cbRefillZones, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, m_config, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, OnLeftDClickClearance(), OnLeftDClickUnconnected(), OnPopupMenu(), OnReportCheckBoxClicked(), OnRightUpClearance(), OnRightUpUnconnected(), RefillZonesBeforeDrc, TestFootprintCourtyardKey, and TestMissingCourtyardKey.

Referenced by DIALOG_DRC_CONTROL().

125 {
126  // Connect events and objects
127  m_ClearanceListBox->Connect( ID_CLEARANCE_LIST, wxEVT_LEFT_DCLICK,
128  wxMouseEventHandler(
130  m_ClearanceListBox->Connect( ID_CLEARANCE_LIST, wxEVT_RIGHT_UP,
131  wxMouseEventHandler(
133  m_UnconnectedListBox->Connect( ID_UNCONNECTED_LIST, wxEVT_LEFT_DCLICK,
134  wxMouseEventHandler( DIALOG_DRC_CONTROL::
135  OnLeftDClickUnconnected ), NULL, this );
136  m_UnconnectedListBox->Connect( ID_UNCONNECTED_LIST, wxEVT_RIGHT_UP,
137  wxMouseEventHandler(
139 
140  this->Connect( wxEVT_MENU, wxCommandEventHandler( DIALOG_DRC_CONTROL::OnPopupMenu ), NULL,
141  this );
142 
143 
144  m_DeleteCurrentMarkerButton->Enable( false );
145 
147 
148  // read options
149  bool value;
150  m_config->Read( TestMissingCourtyardKey, &value, false );
151  m_cbCourtyardMissing->SetValue( value );
152  m_config->Read( TestFootprintCourtyardKey, &value, false );
153  m_cbCourtyardOverlap->SetValue( value );
154  m_config->Read( RefillZonesBeforeDrc, &value, false );
155  m_cbRefillZones->SetValue( value );
156 
157  // Set the initial "enabled" status of the browse button and the text
158  // field for report name
159  wxCommandEvent junk;
160  OnReportCheckBoxClicked( junk );
161 
162  Layout(); // adding the units above expanded Clearance text, now resize.
163 
164  SetFocus();
165 }
#define ID_CLEARANCE_LIST
void OnRightUpClearance(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:497
wxCheckBox * m_cbRefillZones
void OnLeftDClickClearance(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:381
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
#define TestMissingCourtyardKey
Definition: dialog_drc.cpp:47
void OnLeftDClickUnconnected(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:523
wxCheckBox * m_cbCourtyardMissing
wxConfigBase * m_config
Definition: dialog_drc.h:149
wxCheckBox * m_cbCourtyardOverlap
void OnReportCheckBoxClicked(wxCommandEvent &event) override
wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX
Definition: dialog_drc.cpp:374
void OnPopupMenu(wxCommandEvent &event)
Definition: dialog_drc.cpp:422
#define RefillZonesBeforeDrc
Definition: dialog_drc.cpp:49
void OnRightUpUnconnected(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:471
#define ID_UNCONNECTED_LIST
#define TestFootprintCourtyardKey
Definition: dialog_drc.cpp:48
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
const wxString DIALOG_DRC_CONTROL::makeValidFileNameReport ( )
private

filenames can be entered by name.

Returns
a good report filename (with .rpt extension) (a full filename) from m_CreateRptCtrl

Definition at line 658 of file dialog_drc.cpp.

References PROJECT::GetProjectPath(), DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl, KIWAY_HOLDER::Prj(), and ReportFileExtension.

Referenced by OnListUnconnectedClick(), and OnStartdrcClick().

659 {
660  wxFileName fn = m_RptFilenameCtrl->GetValue();
661 
662  if( !fn.HasExt() )
663  {
664  fn.SetExt( ReportFileExtension );
665  m_RptFilenameCtrl->SetValue( fn.GetFullPath() );
666  }
667 
668  // Ensure it is an absolute filename. if it is given relative
669  // it will be made relative to the project
670  if( !fn.IsAbsolute() )
671  {
672  wxString prj_path = Prj().GetProjectPath();
673  fn.MakeAbsolute( prj_path );
674  }
675 
676  return fn.GetFullPath();
677 }
wxTextCtrl * m_RptFilenameCtrl
const wxString ReportFileExtension
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:100
void DIALOG_DRC_CONTROL::OnActivateDlg ( wxActivateEvent &  event)
overrideprivatevirtual

handler for activate event, updating data which can be modified outside the dialog (DRC parameters)

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 91 of file dialog_drc.cpp.

References DRC::DestroyDRCDialog(), DisplayDRCValues(), PCB_BASE_FRAME::GetBoard(), BOARD::GetDesignSettings(), m_brdEditor, m_BrdSettings, m_currentBoard, and m_tester.

92 {
94  {
95  // If m_currentBoard is not the current parent board,
96  // (for instance because a new board was loaded),
97  // close the dialog, because many pointers are now invalid
98  // in lists
99  SetReturnCode( wxID_CANCEL );
100  Close();
101  m_tester->DestroyDRCDialog( wxID_CANCEL );
102  return;
103  }
104 
105  // updating data which can be modified outside the dialog (DRC parameters, units ...)
106  // because the dialog is not modal
109 }
void DestroyDRCDialog(int aReason)
Deletes this ui dialog box and zeros out its pointer to remember the state of the dialog&#39;s existence...
Definition: drc.cpp:106
BOARD * GetBoard() const
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:56
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:532
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
BOARD * m_currentBoard
Definition: dialog_drc.h:146
void DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_BROWSE_RPT_FILE

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 336 of file dialog_drc.cpp.

References PCB_BASE_FRAME::GetBoard(), BOARD::GetFileName(), PROJECT::GetProjectPath(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl, KIWAY_HOLDER::Prj(), ReportFileExtension, and ReportFileWildcard().

Referenced by OnListUnconnectedClick(), and OnStartdrcClick().

337 {
338  wxFileName fn = m_brdEditor->GetBoard()->GetFileName();
339  fn.SetExt( ReportFileExtension );
340  wxString prj_path = Prj().GetProjectPath();
341 
342  wxFileDialog dlg( this, _( "Save DRC Report File" ), prj_path,
343  fn.GetFullName(), ReportFileWildcard(),
344  wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
345 
346  if( dlg.ShowModal() == wxID_CANCEL )
347  return;
348 
349  m_RptFilenameCtrl->SetValue( dlg.GetPath() );
350 }
wxTextCtrl * m_RptFilenameCtrl
BOARD * GetBoard() const
const wxString ReportFileExtension
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
wxString ReportFileWildcard()
const wxString & GetFileName() const
Definition: class_board.h:234
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:100
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::OnCancelClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 364 of file dialog_drc.cpp.

References DRC::DestroyDRCDialog(), and m_tester.

365 {
366  SetReturnCode( wxID_CANCEL );
367 
368  // The dialog can be modal or not modal.
369  // Leave the DRC caller destroy (or not) the dialog
370  m_tester->DestroyDRCDialog( wxID_CANCEL );
371 }
void DestroyDRCDialog(int aReason)
Deletes this ui dialog box and zeros out its pointer to remember the state of the dialog&#39;s existence...
Definition: drc.cpp:106
void DIALOG_DRC_CONTROL::OnChangingMarkerList ( wxNotebookEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 560 of file dialog_drc.cpp.

References DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, DIALOG_DRC_CONTROL_BASE::m_Notebook, and DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox.

561 {
562  // Shouldn't be necessary, but is on at least OSX
563  m_Notebook->ChangeSelection( event.GetSelection() );
564 
565  m_DeleteCurrentMarkerButton->Enable( false );
566  m_ClearanceListBox->SetSelection( -1 );
567  m_UnconnectedListBox->SetSelection( -1 );
568 }
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
void DIALOG_DRC_CONTROL::OnDeleteAllClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DELETE_ALL

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 261 of file dialog_drc.cpp.

References DelDRCMarkers(), RedrawDrawPanel(), and UpdateDisplayedCounts().

262 {
263  DelDRCMarkers();
264  RedrawDrawPanel();
266 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:753
void DIALOG_DRC_CONTROL::OnDeleteOneClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DELETE_ONE

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 718 of file dialog_drc.cpp.

References DRCLISTBOX::DeleteItem(), DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_Notebook, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, RedrawDrawPanel(), and UpdateDisplayedCounts().

719 {
720  int selectedIndex;
721  int curTab = m_Notebook->GetSelection();
722 
723  if( curTab == 0 )
724  {
725  selectedIndex = m_ClearanceListBox->GetSelection();
726 
727  if( selectedIndex != wxNOT_FOUND )
728  {
729  m_ClearanceListBox->DeleteItem( selectedIndex );
730 
731  // redraw the pcb
732  RedrawDrawPanel();
733  }
734  }
735  else if( curTab == 1 )
736  {
737  selectedIndex = m_UnconnectedListBox->GetSelection();
738 
739  if( selectedIndex != wxNOT_FOUND )
740  {
741  m_UnconnectedListBox->DeleteItem( selectedIndex );
742 
743  /* these unconnected DRC_ITEMs are not currently visible on the pcb
744  * RedrawDrawPanel();
745  */
746  }
747  }
748 
750 }
void DeleteItem(int aIndex)
Function DeleteElement will delete one of the items in the list.
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:753
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
void DIALOG_DRC_CONTROL::OnLeftDClickClearance ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 381 of file dialog_drc.cpp.

References PCB_BASE_FRAME::FocusOnLocation(), DRCLISTBOX::GetItem(), DRC_ITEM::GetParent(), DRC_ITEM::GetPointA(), EDA_DRAW_FRAME::IsGalCanvasActive(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_SHIM::Show(), and EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent().

Referenced by InitValues(), and ~DIALOG_DRC_CONTROL().

382 {
383  event.Skip();
384 
385  // I am assuming that the double click actually changed the selected item.
386  // please verify this.
387  int selection = m_ClearanceListBox->GetSelection();
388 
389  if( selection != wxNOT_FOUND )
390  {
391  // Find the selected MARKER in the PCB, position cursor there.
392  // Then close the dialog.
393  const DRC_ITEM* item = m_ClearanceListBox->GetItem( selection );
394 
395  if( item )
396  {
397  auto pos = item->GetPointA();
398 
399  if( auto marker = item->GetParent() )
400  pos = marker->GetPos();
401 
402  // When selecting a item, center it on GAL and just move the graphic
403  // cursor in legacy mode gives the best result
404  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
405  m_brdEditor->FocusOnLocation( pos, true, center );
406 
407  if( !IsModal() )
408  {
409  // turn control over to m_brdEditor, hide this DIALOG_DRC_CONTROL window,
410  // no destruction so we can preserve listbox cursor
411  Show( false );
412 
413  // We do not want the clarification popup window.
414  // when releasing the left button in the main window
416  }
417  }
418  }
419 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
MARKER_BASE * GetParent() const
Definition: drc_item.h:138
void FocusOnLocation(const wxPoint &aPos, bool aWarpMouseCursor=true, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
void SkipNextLeftButtonReleaseEvent()
function SkipNextLeftButtonReleaseEvent after calling this function, if the left mouse button is down...
Definition: draw_frame.cpp:300
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool IsGalCanvasActive() const
Function IsGalCanvasActive is used to check which canvas (GAL-based or standard) is currently in use...
Definition: draw_frame.h:887
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:261
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::OnLeftDClickUnconnected ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_LEFT_DCLICK event handler for ID_UNCONNECTED_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 523 of file dialog_drc.cpp.

References PCB_BASE_FRAME::FocusOnLocation(), DRCLISTBOX::GetItem(), DRC_ITEM::GetPointA(), EDA_DRAW_FRAME::IsGalCanvasActive(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, DIALOG_SHIM::Show(), and EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent().

Referenced by InitValues(), and ~DIALOG_DRC_CONTROL().

524 {
525  event.Skip();
526 
527  // I am assuming that the double click actually changed the selected item.
528  // please verify this.
529  int selection = m_UnconnectedListBox->GetSelection();
530 
531  if( selection != wxNOT_FOUND )
532  {
533  // Find the selected DRC_ITEM in the listbox, position cursor there,
534  // at the first of the two pads.
535  // Then hide the dialog.
536  const DRC_ITEM* item = m_UnconnectedListBox->GetItem( selection );
537  if( item )
538  {
539  // When selecting a item, center it on GAL and just move the graphic
540  // cursor in legacy mode gives the best result
541  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
542  m_brdEditor->FocusOnLocation( item->GetPointA(), true, center );
543 
544  if( !IsModal() )
545  {
546  Show( false );
547 
548  // We do not want the clarification popup window.
549  // when releasing the left button in the main window
551  }
552  }
553  }
554 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
void FocusOnLocation(const wxPoint &aPos, bool aWarpMouseCursor=true, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
void SkipNextLeftButtonReleaseEvent()
function SkipNextLeftButtonReleaseEvent after calling this function, if the left mouse button is down...
Definition: draw_frame.cpp:300
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool IsGalCanvasActive() const
Function IsGalCanvasActive is used to check which canvas (GAL-based or standard) is currently in use...
Definition: draw_frame.h:887
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:261
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::OnListUnconnectedClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_LIST_UNCONNECTED

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 269 of file dialog_drc.cpp.

References DelDRCMarkers(), DisplayError(), Format(), GetChars(), DRC::ListUnconnectedPads(), DIALOG_DRC_CONTROL_BASE::m_cbCourtyardMissing, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardOverlap, DIALOG_DRC_CONTROL_BASE::m_cbRefillZones, DIALOG_DRC_CONTROL_BASE::m_cbReportAllTrackErrors, DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl, DIALOG_DRC_CONTROL_BASE::m_Messages, DIALOG_DRC_CONTROL_BASE::m_Notebook, DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl, m_tester, makeValidFileNameReport(), OnButtonBrowseRptFileClick(), SetDrcParmeters(), DRC::SetSettings(), UpdateDisplayedCounts(), and writeReport().

270 {
271  wxString reportName;
272 
273  bool make_report = m_CreateRptCtrl->IsChecked();
274 
275  if( make_report ) // Create a file rpt
276  {
277  reportName = m_RptFilenameCtrl->GetValue();
278 
279  if( reportName.IsEmpty() )
280  {
281  wxCommandEvent junk;
283  }
284 
285  if( !reportName.IsEmpty() )
286  reportName = makeValidFileNameReport();
287  }
288 
289  SetDrcParmeters();
290 
291  m_tester->SetSettings( true, // Pad to pad DRC test enabled
292  true, // unconnected pads DRC test enabled
293  true, // DRC test for zones enabled
294  true, // DRC test for keepout areas enabled
295  m_cbRefillZones->GetValue(),
296  m_cbCourtyardOverlap->GetValue(),
297  m_cbCourtyardMissing->GetValue(),
298  m_cbReportAllTrackErrors->GetValue(),
299  reportName, make_report );
300 
301  DelDRCMarkers();
302 
303  wxBeginBusyCursor();
304 
305  m_Messages->Clear();
307 
308  m_Notebook->ChangeSelection( 1 ); // display the 2nd tab "Unconnected..."
309 
310  // Generate the report
311  if( !reportName.IsEmpty() )
312  {
313  if( writeReport( reportName ) )
314  {
315  wxString msg;
316  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
317  wxString caption( _( "Disk File Report Completed" ) );
318  wxMessageDialog popupWindow( this, msg, caption );
319  popupWindow.ShowModal();
320  }
321  else
322  DisplayError( this, wxString::Format( _( "Unable to create report file \"%s\""),
323  GetChars( reportName ) ) );
324  }
325 
327 
328  wxEndBusyCursor();
329 
330  /* there is currently nothing visible on the DrawPanel for unconnected pads
331  * RedrawDrawPanel();
332  */
333 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:753
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:658
void ListUnconnectedPads()
Gather a list of all the unconnected pads and shows them in the dialog, and optionally prints a repor...
Definition: drc.cpp:487
void SetSettings(bool aPad2PadTest, bool aUnconnectedTest, bool aZonesTest, bool aKeepoutTest, bool aRefillZones, bool aCourtyardTest, bool aCourtyardMissingTest, bool aReportAllTrackErrors, const wxString &aReportName, bool aSaveReport)
Save all the UI or test settings and may be called before running the tests.
Definition: drc.h:509
wxCheckBox * m_cbCourtyardMissing
wxCheckBox * m_cbCourtyardOverlap
void OnButtonBrowseRptFileClick(wxCommandEvent &event) override
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_BROWSE_RPT_FILE
Definition: dialog_drc.cpp:336
bool writeReport(const wxString &aFullFileName)
Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open tex...
Definition: dialog_drc.cpp:680
wxCheckBox * m_cbReportAllTrackErrors
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
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
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:185
void DIALOG_DRC_CONTROL::OnMarkerSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 571 of file dialog_drc.cpp.

References PCB_BASE_FRAME::FocusOnLocation(), DRCLISTBOX::GetItem(), DRC_ITEM::GetParent(), DRC_ITEM::GetPointA(), EDA_DRAW_FRAME::IsGalCanvasActive(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, and RedrawDrawPanel().

572 {
573  int selection = event.GetSelection();
574 
575  if( selection != wxNOT_FOUND )
576  {
577  // until a MARKER is selected, this button is not enabled.
578  m_DeleteCurrentMarkerButton->Enable( true );
579 
580  // Find the selected DRC_ITEM in the listbox, position cursor there,
581  // at the first of the two pads.
582  const DRC_ITEM* item = m_ClearanceListBox->GetItem( selection );
583  if( item )
584  {
585  auto pos = item->GetPointA();
586 
587  if( auto marker = item->GetParent() )
588  pos = marker->GetPos();
589 
590  // When selecting a item, center it on GAL and just move the graphic
591  // cursor in legacy mode gives the best result
592  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
593  m_brdEditor->FocusOnLocation( pos, false, center );
594  RedrawDrawPanel();
595  }
596  }
597 
598  event.Skip();
599 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
MARKER_BASE * GetParent() const
Definition: drc_item.h:138
void FocusOnLocation(const wxPoint &aPos, bool aWarpMouseCursor=true, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool IsGalCanvasActive() const
Function IsGalCanvasActive is used to check which canvas (GAL-based or standard) is currently in use...
Definition: draw_frame.h:887
const wxPoint & GetPointA() const
Definition: drc_item.h:261
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::OnOkClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 353 of file dialog_drc.cpp.

References DRC::DestroyDRCDialog(), m_tester, and SetDrcParmeters().

354 {
355  SetReturnCode( wxID_OK );
356  SetDrcParmeters();
357 
358  // The dialog can be modal or not modal.
359  // Leave the DRC caller destroy (or not) the dialog
360  m_tester->DestroyDRCDialog( wxID_OK );
361 }
void DestroyDRCDialog(int aReason)
Deletes this ui dialog box and zeros out its pointer to remember the state of the dialog&#39;s existence...
Definition: drc.cpp:106
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_DRC_CONTROL::OnPopupMenu ( wxCommandEvent &  event)
private

Definition at line 422 of file dialog_drc.cpp.

References PCB_BASE_FRAME::FocusOnLocation(), DRCLISTBOX::GetItem(), DRC_ITEM::GetPointA(), DRC_ITEM::GetPointB(), ID_POPUP_MARKERS_A, ID_POPUP_MARKERS_B, ID_POPUP_UNCONNECTED_A, ID_POPUP_UNCONNECTED_B, EDA_DRAW_FRAME::IsGalCanvasActive(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, and DIALOG_SHIM::Show().

Referenced by InitValues(), and ~DIALOG_DRC_CONTROL().

423 {
424  int source = event.GetId();
425 
426  const DRC_ITEM* item = nullptr;
427  wxPoint pos;
428 
429  int selection;
430 
431  switch( source )
432  {
434  selection = m_UnconnectedListBox->GetSelection();
435  item = m_UnconnectedListBox->GetItem( selection );
436  pos = item->GetPointA();
437  break;
438 
440  selection = m_UnconnectedListBox->GetSelection();
441  item = m_UnconnectedListBox->GetItem( selection );
442  pos = item->GetPointB();
443  break;
444 
445  case ID_POPUP_MARKERS_A:
446  selection = m_ClearanceListBox->GetSelection();
447  item = m_ClearanceListBox->GetItem( selection );
448  pos = item->GetPointA();
449  break;
450 
451  case ID_POPUP_MARKERS_B:
452  selection = m_ClearanceListBox->GetSelection();
453  item = m_ClearanceListBox->GetItem( selection );
454  pos = item->GetPointB();
455  break;
456  }
457 
458  if( item )
459  {
460  // When selecting a item, center it on GAL and just move the graphic
461  // cursor in legacy mode gives the best result
462  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
463  m_brdEditor->FocusOnLocation( pos, true, center );
464 
465  if( !IsModal() )
466  Show( false );
467  }
468 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
void FocusOnLocation(const wxPoint &aPos, bool aWarpMouseCursor=true, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
const wxPoint & GetPointB() const
Definition: drc_item.h:267
DRCLISTBOX * m_UnconnectedListBox
#define ID_POPUP_MARKERS_A
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
#define ID_POPUP_UNCONNECTED_B
bool IsGalCanvasActive() const
Function IsGalCanvasActive is used to check which canvas (GAL-based or standard) is currently in use...
Definition: draw_frame.h:887
#define ID_POPUP_MARKERS_B
#define ID_POPUP_UNCONNECTED_A
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:261
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::OnReportCheckBoxClicked ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 374 of file dialog_drc.cpp.

References DIALOG_DRC_CONTROL_BASE::m_BrowseButton, DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl, and DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl.

Referenced by InitValues().

375 {
376  m_RptFilenameCtrl->Enable( m_CreateRptCtrl->IsChecked() );
377  m_BrowseButton->Enable( m_CreateRptCtrl->IsChecked() );
378 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
void DIALOG_DRC_CONTROL::OnRightUpClearance ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_RIGHT_UP event handler for ID_CLEARANCE_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 497 of file dialog_drc.cpp.

References DRCLISTBOX::GetItem(), DRC_ITEM::GetTextA(), DRC_ITEM::GetTextB(), DRC_ITEM::HasSecondItem(), ID_POPUP_MARKERS_A, ID_POPUP_MARKERS_B, and DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox.

Referenced by InitValues(), and ~DIALOG_DRC_CONTROL().

498 {
499  // popup menu to go to either of the items listed in the DRC_ITEM.
500 
501  int selection = m_ClearanceListBox->GetSelection();
502 
503  if( selection != wxNOT_FOUND )
504  {
505  wxMenu menu;
506  wxMenuItem* mItem;
507  const DRC_ITEM* dItem = m_ClearanceListBox->GetItem( selection );
508 
509  mItem = new wxMenuItem( &menu, ID_POPUP_MARKERS_A, dItem->GetTextA() );
510  menu.Append( mItem );
511 
512  if( dItem->HasSecondItem() )
513  {
514  mItem = new wxMenuItem( &menu, ID_POPUP_MARKERS_B, dItem->GetTextB() );
515  menu.Append( mItem );
516  }
517 
518  PopupMenu( &menu );
519  }
520 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
bool HasSecondItem() const
Definition: drc_item.h:140
#define ID_POPUP_MARKERS_A
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
#define ID_POPUP_MARKERS_B
const wxString & GetTextA() const
Definition: drc_item.h:249
const wxString & GetTextB() const
Definition: drc_item.h:255
void DIALOG_DRC_CONTROL::OnRightUpUnconnected ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 471 of file dialog_drc.cpp.

References DRCLISTBOX::GetItem(), DRC_ITEM::GetTextA(), DRC_ITEM::GetTextB(), DRC_ITEM::HasSecondItem(), ID_POPUP_UNCONNECTED_A, ID_POPUP_UNCONNECTED_B, and DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox.

Referenced by InitValues(), and ~DIALOG_DRC_CONTROL().

472 {
473  // popup menu to go to either of the items listed in the DRC_ITEM.
474 
475  int selection = m_UnconnectedListBox->GetSelection();
476 
477  if( selection != wxNOT_FOUND )
478  {
479  wxMenu menu;
480  wxMenuItem* mItem;
481  const DRC_ITEM* dItem = m_UnconnectedListBox->GetItem( selection );
482 
483  mItem = new wxMenuItem( &menu, ID_POPUP_UNCONNECTED_A, dItem->GetTextA() );
484  menu.Append( mItem );
485 
486  if( dItem->HasSecondItem() )
487  {
488  mItem = new wxMenuItem( &menu, ID_POPUP_UNCONNECTED_B, dItem->GetTextB() );
489  menu.Append( mItem );
490  }
491 
492  PopupMenu( &menu );
493  }
494 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
bool HasSecondItem() const
Definition: drc_item.h:140
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
#define ID_POPUP_UNCONNECTED_B
#define ID_POPUP_UNCONNECTED_A
const wxString & GetTextA() const
Definition: drc_item.h:249
const wxString & GetTextB() const
Definition: drc_item.h:255
void DIALOG_DRC_CONTROL::OnStartdrcClick ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_STARTDRC

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 195 of file dialog_drc.cpp.

References DelDRCMarkers(), DisplayError(), dummy(), Format(), PCB_BASE_FRAME::GetBoard(), GetChars(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardMissing, DIALOG_DRC_CONTROL_BASE::m_cbCourtyardOverlap, DIALOG_DRC_CONTROL_BASE::m_cbRefillZones, DIALOG_DRC_CONTROL_BASE::m_cbReportAllTrackErrors, DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl, DIALOG_DRC_CONTROL_BASE::m_Messages, DIALOG_DRC_CONTROL_BASE::m_Notebook, DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl, BOARD::m_Status_Pcb, m_tester, makeValidFileNameReport(), OnButtonBrowseRptFileClick(), RedrawDrawPanel(), DRC::RunTests(), SetDrcParmeters(), DRC::SetSettings(), and writeReport().

196 {
197  wxString reportName;
198 
199  bool make_report = m_CreateRptCtrl->IsChecked();
200 
201  if( make_report ) // Create a rpt file
202  {
203  reportName = m_RptFilenameCtrl->GetValue();
204 
205  if( reportName.IsEmpty() )
206  {
207  wxCommandEvent dummy;
209  }
210 
211  if( !reportName.IsEmpty() )
212  reportName = makeValidFileNameReport();
213  }
214 
215  SetDrcParmeters();
216  m_tester->SetSettings( true, // Pad to pad DRC test enabled
217  true, // unconnected pads DRC test enabled
218  true, // DRC test for zones enabled
219  true, // DRC test for keepout areas enabled
220  m_cbRefillZones->GetValue(),
221  m_cbCourtyardOverlap->GetValue(),
222  m_cbCourtyardMissing->GetValue(),
223  m_cbReportAllTrackErrors->GetValue(),
224  reportName, make_report );
225 
226  DelDRCMarkers();
227 
228  wxBeginBusyCursor();
229 
230  // run all the tests, with no UI at this time.
231  m_Messages->Clear();
232  wxSafeYield(); // Allows time slice to refresh the m_Messages window
233  m_brdEditor->GetBoard()->m_Status_Pcb = 0; // Force full connectivity and ratsnest recalculations
235  m_Notebook->ChangeSelection( 0 ); // display the 1at tab "...Markers ..."
236 
237 
238  // Generate the report
239  if( !reportName.IsEmpty() )
240  {
241  if( writeReport( reportName ) )
242  {
243  wxString msg;
244  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
245 
246  wxString caption( _( "Disk File Report Completed" ) );
247  wxMessageDialog popupWindow( this, msg, caption );
248  popupWindow.ShowModal();
249  }
250  else
251  DisplayError( this, wxString::Format( _( "Unable to create report file \"%s\""),
252  GetChars( reportName ) ) );
253  }
254 
255  wxEndBusyCursor();
256 
257  RedrawDrawPanel();
258 }
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:658
BOARD * GetBoard() const
void SetSettings(bool aPad2PadTest, bool aUnconnectedTest, bool aZonesTest, bool aKeepoutTest, bool aRefillZones, bool aCourtyardTest, bool aCourtyardMissingTest, bool aReportAllTrackErrors, const wxString &aReportName, bool aSaveReport)
Save all the UI or test settings and may be called before running the tests.
Definition: drc.h:509
wxCheckBox * m_cbCourtyardMissing
wxCheckBox * m_cbCourtyardOverlap
void OnButtonBrowseRptFileClick(wxCommandEvent &event) override
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_BROWSE_RPT_FILE
Definition: dialog_drc.cpp:336
bool writeReport(const wxString &aFullFileName)
Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open tex...
Definition: dialog_drc.cpp:680
wxCheckBox * m_cbReportAllTrackErrors
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
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
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...
void RunTests(wxTextCtrl *aMessages=NULL)
Run all the tests specified with a previous call to SetSettings()
Definition: drc.cpp:363
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:185
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
int m_Status_Pcb
Flags used in ratsnest calculation and update.
Definition: class_board.h:237
void DIALOG_DRC_CONTROL::OnUnconnectedSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 602 of file dialog_drc.cpp.

References PCB_BASE_FRAME::FocusOnLocation(), DRCLISTBOX::GetItem(), DRC_ITEM::GetPointA(), EDA_DRAW_FRAME::IsGalCanvasActive(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, and RedrawDrawPanel().

603 {
604  int selection = event.GetSelection();
605 
606  if( selection != wxNOT_FOUND )
607  {
608  // until a MARKER is selected, this button is not enabled.
609  m_DeleteCurrentMarkerButton->Enable( true );
610 
611  // Find the selected DRC_ITEM in the listbox, position cursor there,
612  // at the first of the two pads.
613  const DRC_ITEM* item = m_UnconnectedListBox->GetItem( selection );
614 
615  if( item )
616  {
617  // When selecting a item, center it on GAL and just move the graphic
618  // cursor in legacy mode gives the best result
619  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
620  m_brdEditor->FocusOnLocation( item->GetPointA(), false, center );
621  RedrawDrawPanel();
622  }
623  }
624 
625  event.Skip();
626 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:45
void FocusOnLocation(const wxPoint &aPos, bool aWarpMouseCursor=true, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool IsGalCanvasActive() const
Function IsGalCanvasActive is used to check which canvas (GAL-based or standard) is currently in use...
Definition: draw_frame.h:887
const wxPoint & GetPointA() const
Definition: drc_item.h:261
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
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(), makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), 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_DRC_CONTROL::RedrawDrawPanel ( )
private

Definition at line 629 of file dialog_drc.cpp.

References EDA_DRAW_FRAME::GetCanvas(), m_brdEditor, and EDA_DRAW_PANEL::Refresh().

Referenced by OnDeleteAllClick(), OnDeleteOneClick(), OnMarkerSelectionEvent(), OnStartdrcClick(), and OnUnconnectedSelectionEvent().

630 {
631  int freezeCount = 0;
632 
633  while( m_brdEditor->IsFrozen() )
634  {
635  m_brdEditor->Thaw();
636  freezeCount++;
637  }
638 
640 
641  while( freezeCount > 0 )
642  {
643  m_brdEditor->Freeze();
644  freezeCount--;
645  }
646 }
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
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::SetDrcParmeters ( )
private

Definition at line 169 of file dialog_drc.cpp.

References PCB_BASE_FRAME::GetBoard(), m_brdEditor, m_BrdSettings, BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, DIALOG_DRC_CONTROL_BASE::m_SetMicroViakMinSizeCtrl, DIALOG_DRC_CONTROL_BASE::m_SetTrackMinWidthCtrl, DIALOG_DRC_CONTROL_BASE::m_SetViaMinSizeCtrl, BOARD_DESIGN_SETTINGS::m_TrackMinWidth, BOARD_DESIGN_SETTINGS::m_ViasMinSize, BOARD::SetDesignSettings(), and ValueFromTextCtrl().

Referenced by OnListUnconnectedClick(), OnOkClick(), and OnStartdrcClick().

170 {
174 
176 }
BOARD * GetBoard() const
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:56
wxTextCtrl * m_SetViaMinSizeCtrl
int m_TrackMinWidth
track min value for width ((min copper size value
int m_ViasMinSize
vias (not micro vias) min diameter
void SetDesignSettings(const BOARD_DESIGN_SETTINGS &aDesignSettings)
Function SetDesignSettings.
Definition: class_board.h:542
int m_MicroViasMinSize
micro vias (not vias) min diameter
int ValueFromTextCtrl(const wxTextCtrl &aTextCtr)
Convert the number Value in a string according to the internal units and the selected unit (g_UserUni...
Definition: base_units.cpp:386
wxTextCtrl * m_SetMicroViakMinSizeCtrl
wxTextCtrl * m_SetTrackMinWidthCtrl
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
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_DRC_CONTROL::SetRptSettings ( bool  aEnable,
const wxString &  aFileName 
)

Enable/disable the report file creation.

Parameters
aEnable= true to ask for creation
aFileName= the filename or the report file

Definition at line 179 of file dialog_drc.cpp.

References DIALOG_DRC_CONTROL_BASE::m_BrowseButton, DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl, and DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl.

Referenced by DRC::ShowDRCDialog().

180 {
181  m_RptFilenameCtrl->Enable( aEnable );
182  m_BrowseButton->Enable( aEnable );
183  m_CreateRptCtrl->SetValue( aEnable );
184  m_RptFilenameCtrl->SetValue( aFileName );
185 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
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(), OnLeftDClickClearance(), OnLeftDClickUnconnected(), 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_DRC_CONTROL::UpdateDisplayedCounts ( )

Definition at line 753 of file dialog_drc.cpp.

References Format(), DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_MarkerCount, DIALOG_DRC_CONTROL_BASE::m_UnconnectedCount, and DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox.

Referenced by OnDeleteAllClick(), OnDeleteOneClick(), OnListUnconnectedClick(), and DRC::updatePointers().

754 {
755  int marker_count = m_ClearanceListBox->GetItemCount();
756  int unconnected_count = m_UnconnectedListBox->GetItemCount();
757 
758  m_MarkerCount->SetLabelText( wxString::Format( "%d", marker_count ) );
759  m_UnconnectedCount->SetLabelText( wxString::Format( "%d", unconnected_count ) );
760 }
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
wxStaticText * m_UnconnectedCount
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
wxStaticText * m_MarkerCount
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_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_SHIM::IsQuasiModal(), and DIALOG_LAYERS_SETUP::OnInitDialog().

133 {
134  wxSize sz( 0, y );
135  return ConvertDialogToPixels( sz ).y;
136 }
bool DIALOG_DRC_CONTROL::writeReport ( const wxString &  aFullFileName)
private

Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open text file.

Parameters
aFullFileNameThe text filename to write the report to.
Returns
true if OK, false on error

Definition at line 680 of file dialog_drc.cpp.

References PCB_BASE_FRAME::GetBoard(), BOARD::GetFileName(), DRCLISTBOX::GetItem(), i, m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, DRC_ITEM::ShowReport(), and TO_UTF8.

Referenced by OnListUnconnectedClick(), and OnStartdrcClick().

681 {
682  FILE* fp = wxFopen( aFullFileName, wxT( "w" ) );
683 
684  if( fp == NULL )
685  return false;
686 
687  int count;
688 
689  fprintf( fp, "** Drc report for %s **\n",
691 
692  wxDateTime now = wxDateTime::Now();
693 
694  fprintf( fp, "** Created on %s **\n", TO_UTF8( now.Format( wxT( "%F %T" ) ) ) );
695 
696  count = m_ClearanceListBox->GetItemCount();
697 
698  fprintf( fp, "\n** Found %d DRC errors **\n", count );
699 
700  for( int i = 0; i<count; ++i )
701  fprintf( fp, "%s", TO_UTF8( m_ClearanceListBox->GetItem( i )->ShowReport()) );
702 
703  count = m_UnconnectedListBox->GetItemCount();
704 
705  fprintf( fp, "\n** Found %d unconnected pads **\n", count );
706 
707  for( int i = 0; i<count; ++i )
708  fprintf( fp, "%s", TO_UTF8( m_UnconnectedListBox->GetItem( i )->ShowReport() ) );
709 
710  fprintf( fp, "\n** End of Report **\n" );
711 
712  fclose( fp );
713 
714  return true;
715 }
wxString ShowReport() const
Function ShowReport translates this object into a text string suitable for saving to disk in a report...
Definition: drc_item.h:210
BOARD * GetBoard() const
DRCLISTBOX * m_UnconnectedListBox
#define TO_UTF8(wxstring)
Macro TO_UTF8 converts a wxString to a UTF8 encoded C string for all wxWidgets build modes...
Definition: macros.h:47
const wxString & GetFileName() const
Definition: class_board.h:234
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
size_t i
Definition: json11.cpp:597
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148

Member Data Documentation

BOARD_DESIGN_SETTINGS DIALOG_DRC_CONTROL::m_BrdSettings

Definition at line 56 of file dialog_drc.h.

Referenced by DIALOG_DRC_CONTROL(), DisplayDRCValues(), OnActivateDlg(), and SetDrcParmeters().

wxButton* DIALOG_DRC_CONTROL_BASE::m_BrowseButton
protectedinherited
wxButton* DIALOG_DRC_CONTROL_BASE::m_buttonListUnconnected
protectedinherited
wxButton* DIALOG_DRC_CONTROL_BASE::m_buttonRunDRC
protectedinherited
wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbCourtyardMissing
protectedinherited
wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbCourtyardOverlap
protectedinherited
wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbRefillZones
protectedinherited
wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbReportAllTrackErrors
protectedinherited
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_ClearanceTitle
protectedinherited

Definition at line 58 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxConfigBase* DIALOG_DRC_CONTROL::m_config
private

Definition at line 149 of file dialog_drc.h.

Referenced by DIALOG_DRC_CONTROL(), InitValues(), and ~DIALOG_DRC_CONTROL().

BOARD* DIALOG_DRC_CONTROL::m_currentBoard
private

Definition at line 146 of file dialog_drc.h.

Referenced by DIALOG_DRC_CONTROL(), and OnActivateDlg().

wxButton* DIALOG_DRC_CONTROL_BASE::m_DeleteAllButton
protectedinherited
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
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_MarkerCount
inherited
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_MarkerCountLabel
protectedinherited

Definition at line 79 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_Messages
protectedinherited
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_MicroViaMinTitle
protectedinherited

Definition at line 63 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_MicroViaMinUnit
protectedinherited
wxPanel* DIALOG_DRC_CONTROL_BASE::m_panelClearanceListBox
protectedinherited

Definition at line 83 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

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
wxStdDialogButtonSizer* DIALOG_DRC_CONTROL_BASE::m_sdbSizer1
protectedinherited

Definition at line 84 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxButton* DIALOG_DRC_CONTROL_BASE::m_sdbSizer1Cancel
protectedinherited
wxButton* DIALOG_DRC_CONTROL_BASE::m_sdbSizer1OK
protectedinherited
wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetClearance
inherited

Definition at line 108 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetMicroViakMinSizeCtrl
inherited
wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetTrackMinWidthCtrl
inherited
wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetViaMinSizeCtrl
inherited
wxStaticLine* DIALOG_DRC_CONTROL_BASE::m_staticline1
protectedinherited

Definition at line 80 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_staticText6
protectedinherited

Definition at line 73 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_staticTextOptions
protectedinherited

Definition at line 57 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_staticTextRpt
protectedinherited

Definition at line 69 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

DRC* DIALOG_DRC_CONTROL::m_tester
private
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_TrackMinWidthTitle
protectedinherited

Definition at line 59 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_TrackMinWidthUnit
protectedinherited
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_UnconnectedCount
inherited
wxStaticText* DIALOG_DRC_CONTROL_BASE::m_UnconnectedCountLabel
protectedinherited

Definition at line 81 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_ViaMinTitle
protectedinherited

Definition at line 61 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_ViaMinUnit
protectedinherited

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