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_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:490
wxCheckBox * m_cbRefillZones
void OnLeftDClickClearance(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:379
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:516
wxCheckBox * m_cbCourtyardMissing
wxConfigBase * m_config
Definition: dialog_drc.h:149
wxCheckBox * m_cbCourtyardOverlap
void OnPopupMenu(wxCommandEvent &event)
Definition: dialog_drc.cpp:415
#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:464
#define ID_UNCONNECTED_LIST
#define TestFootprintCourtyardKey
Definition: dialog_drc.cpp:48

Member Function Documentation

void DIALOG_DRC_CONTROL::DelDRCMarkers ( )
private

Definition at line 637 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().

638 {
639  m_brdEditor->SetCurItem( NULL ); // clear curr item, because it could be a DRC marker
642  m_DeleteCurrentMarkerButton->Enable( false );
643 }
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:484
int m_MicroViasMinSize
micro vias (not vias) min diameter
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
void PutValueInLocalUnits(wxTextCtrl &aTextCtr, int aValue)
Function PutValueInLocalUnits converts aValue from internal units to user units and append the units ...
Definition: base_units.cpp:266
wxTextCtrl * m_SetMicroViakMinSizeCtrl
wxStaticText * m_TrackMinWidthUnit
wxTextCtrl * m_SetTrackMinWidthCtrl
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 199 of file dialog_shim.cpp.

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

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

Definition at line 604 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().

605 {
606  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
607  // handle validation in the same way as other dialogs.
608  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
609  return;
610 
611  SetReturnCode( retCode );
612 
613  if( !IsQuasiModal() )
614  {
615  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
616  return;
617  }
618 
619  m_qmodal_showing = false;
620 
621  if( m_qmodal_loop )
622  {
623  if( m_qmodal_loop->IsRunning() )
624  m_qmodal_loop->Exit( 0 );
625  else
626  m_qmodal_loop->ScheduleExit( 0 );
627 
628  m_qmodal_loop = NULL;
629  }
630 
633 
634  Show( false );
635 }
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_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:490
wxCheckBox * m_cbRefillZones
void OnLeftDClickClearance(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:379
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:516
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:372
void OnPopupMenu(wxCommandEvent &event)
Definition: dialog_drc.cpp:415
#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:464
#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_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(), SCH_EDIT_FRAME::ImportFile(), PCB_EDIT_FRAME::ImportFile(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), 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_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_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 646 of file dialog_drc.cpp.

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

Referenced by OnListUnconnectedClick(), and OnStartdrcClick().

647 {
648  wxFileName fn = m_RptFilenameCtrl->GetValue();
649 
650  if( !fn.HasExt() )
651  {
652  fn.SetExt( ReportFileExtension );
653  m_RptFilenameCtrl->SetValue( fn.GetFullPath() );
654  }
655 
656  // Ensure it is an absolute filename. if it is given relative
657  // it will be made relative to the project
658  if( !fn.IsAbsolute() )
659  {
660  wxString prj_path = Prj().GetProjectPath();
661  fn.MakeAbsolute( prj_path );
662  }
663 
664  return fn.GetFullPath();
665 }
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:102
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 334 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().

335 {
336  wxFileName fn = m_brdEditor->GetBoard()->GetFileName();
337  fn.SetExt( ReportFileExtension );
338  wxString prj_path = Prj().GetProjectPath();
339 
340  wxFileDialog dlg( this, _( "Save DRC Report File" ), prj_path,
341  fn.GetFullName(), ReportFileWildcard(),
342  wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
343 
344  if( dlg.ShowModal() == wxID_CANCEL )
345  return;
346 
347  m_RptFilenameCtrl->SetValue( dlg.GetPath() );
348 }
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 362 of file dialog_drc.cpp.

References DRC::DestroyDRCDialog(), and m_tester.

363 {
364  SetReturnCode( wxID_CANCEL );
365 
366  // The dialog can be modal or not modal.
367  // Leave the DRC caller destroy (or not) the dialog
368  m_tester->DestroyDRCDialog( wxID_CANCEL );
369 }
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:102
void DIALOG_DRC_CONTROL::OnChangingMarkerList ( wxNotebookEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 553 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.

554 {
555  // Shouldn't be necessary, but is on at least OSX
556  m_Notebook->ChangeSelection( event.GetSelection() );
557 
558  m_DeleteCurrentMarkerButton->Enable( false );
559  m_ClearanceListBox->SetSelection( -1 );
560  m_UnconnectedListBox->SetSelection( -1 );
561 }
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 260 of file dialog_drc.cpp.

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

261 {
262  DelDRCMarkers();
263  RedrawDrawPanel();
265 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:741
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 706 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().

707 {
708  int selectedIndex;
709  int curTab = m_Notebook->GetSelection();
710 
711  if( curTab == 0 )
712  {
713  selectedIndex = m_ClearanceListBox->GetSelection();
714 
715  if( selectedIndex != wxNOT_FOUND )
716  {
717  m_ClearanceListBox->DeleteItem( selectedIndex );
718 
719  // redraw the pcb
720  RedrawDrawPanel();
721  }
722  }
723  else if( curTab == 1 )
724  {
725  selectedIndex = m_UnconnectedListBox->GetSelection();
726 
727  if( selectedIndex != wxNOT_FOUND )
728  {
729  m_UnconnectedListBox->DeleteItem( selectedIndex );
730 
731  /* these unconnected DRC_ITEMs are not currently visible on the pcb
732  * RedrawDrawPanel();
733  */
734  }
735  }
736 
738 }
void DeleteItem(int aIndex)
Function DeleteElement will delete one of the items in the list.
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:741
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 379 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_ClearanceListBox, DIALOG_SHIM::Show(), and EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent().

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

380 {
381  event.Skip();
382 
383  // I am assuming that the double click actually changed the selected item.
384  // please verify this.
385  int selection = m_ClearanceListBox->GetSelection();
386 
387  if( selection != wxNOT_FOUND )
388  {
389  // Find the selected MARKER in the PCB, position cursor there.
390  // Then close the dialog.
391  const DRC_ITEM* item = m_ClearanceListBox->GetItem( selection );
392 
393  if( item )
394  {
395  // When selecting a item, center it on GAL and just move the graphic
396  // cursor in legacy mode gives the best result
397  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
398  m_brdEditor->FocusOnLocation( item->GetPointA(), true, center );
399 
400  if( !IsModal() )
401  {
402  // turn control over to m_brdEditor, hide this DIALOG_DRC_CONTROL window,
403  // no destruction so we can preserve listbox cursor
404  Show( false );
405 
406  // We do not want the clarification popup window.
407  // when releasing the left button in the main window
409  }
410  }
411  }
412 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
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:289
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:874
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:252
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 516 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().

517 {
518  event.Skip();
519 
520  // I am assuming that the double click actually changed the selected item.
521  // please verify this.
522  int selection = m_UnconnectedListBox->GetSelection();
523 
524  if( selection != wxNOT_FOUND )
525  {
526  // Find the selected DRC_ITEM in the listbox, position cursor there,
527  // at the first of the two pads.
528  // Then hide the dialog.
529  const DRC_ITEM* item = m_UnconnectedListBox->GetItem( selection );
530  if( item )
531  {
532  // When selecting a item, center it on GAL and just move the graphic
533  // cursor in legacy mode gives the best result
534  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
535  m_brdEditor->FocusOnLocation( item->GetPointA(), true, center );
536 
537  if( !IsModal() )
538  {
539  Show( false );
540 
541  // We do not want the clarification popup window.
542  // when releasing the left button in the main window
544  }
545  }
546  }
547 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
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:289
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:874
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:252
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 268 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_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().

269 {
270  wxString reportName;
271 
272  bool make_report = m_CreateRptCtrl->IsChecked();
273 
274  if( make_report ) // Create a file rpt
275  {
276  reportName = m_RptFilenameCtrl->GetValue();
277 
278  if( reportName.IsEmpty() )
279  {
280  wxCommandEvent junk;
282  }
283 
284  if( !reportName.IsEmpty() )
285  reportName = makeValidFileNameReport();
286  }
287 
288  SetDrcParmeters();
289 
290  m_tester->SetSettings( true, // Pad to pad DRC test enabled
291  true, // unconnected pads DRC test enabled
292  true, // DRC test for zones enabled
293  true, // DRC test for keepout areas enabled
294  m_cbRefillZones->GetValue(),
295  m_cbCourtyardOverlap->GetValue(),
296  m_cbCourtyardMissing->GetValue(),
297  reportName, make_report );
298 
299  DelDRCMarkers();
300 
301  wxBeginBusyCursor();
302 
303  m_Messages->Clear();
305 
306  m_Notebook->ChangeSelection( 1 ); // display the 2nd tab "Unconnected..."
307 
308  // Generate the report
309  if( !reportName.IsEmpty() )
310  {
311  if( writeReport( reportName ) )
312  {
313  wxString msg;
314  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
315  wxString caption( _( "Disk File Report Completed" ) );
316  wxMessageDialog popupWindow( this, msg, caption );
317  popupWindow.ShowModal();
318  }
319  else
320  DisplayError( this, wxString::Format( _( "Unable to create report file \"%s\""),
321  GetChars( reportName ) ) );
322  }
323 
325 
326  wxEndBusyCursor();
327 
328  /* there is currently nothing visible on the DrawPanel for unconnected pads
329  * RedrawDrawPanel();
330  */
331 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:741
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:646
void ListUnconnectedPads()
Gather a list of all the unconnected pads and shows them in the dialog, and optionally prints a repor...
Definition: drc.cpp:485
void SetSettings(bool aPad2PadTest, bool aUnconnectedTest, bool aZonesTest, bool aKeepoutTest, bool aRefillZones, bool aCourtyardTest, bool aCourtyardMissingTest, const wxString &aReportName, bool aSaveReport)
Save all the UI or test settings and may be called before running the tests.
Definition: drc.h:507
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:334
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:668
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:241
void DIALOG_DRC_CONTROL::OnMarkerSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 564 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_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, and RedrawDrawPanel().

565 {
566  int selection = event.GetSelection();
567 
568  if( selection != wxNOT_FOUND )
569  {
570  // until a MARKER is selected, this button is not enabled.
571  m_DeleteCurrentMarkerButton->Enable( true );
572 
573  // Find the selected DRC_ITEM in the listbox, position cursor there,
574  // at the first of the two pads.
575  const DRC_ITEM* item = m_ClearanceListBox->GetItem( selection );
576  if( item )
577  {
578  // When selecting a item, center it on GAL and just move the graphic
579  // cursor in legacy mode gives the best result
580  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
581  m_brdEditor->FocusOnLocation( item->GetPointA(), false, center );
582  RedrawDrawPanel();
583  }
584  }
585 
586  event.Skip();
587 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
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:874
const wxPoint & GetPointA() const
Definition: drc_item.h:252
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 351 of file dialog_drc.cpp.

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

352 {
353  SetReturnCode( wxID_OK );
354  SetDrcParmeters();
355 
356  // The dialog can be modal or not modal.
357  // Leave the DRC caller destroy (or not) the dialog
358  m_tester->DestroyDRCDialog( wxID_OK );
359 }
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:102
void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 265 of file dialog_shim.cpp.

References DIALOG_SHIM::m_fixupsRun, and recursiveDescent().

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

266 {
267  if( !m_fixupsRun )
268  {
269 #if DLGSHIM_SELECT_ALL_IN_TEXT_CONTROLS
270  const bool selectAllInTextCtrls = true;
271 #else
272  const bool selectAllInTextCtrls = false;
273 #endif
274  wxWindow* firstTextCtrl = NULL;
275  wxWindow* windowWithFocus = NULL;
276 
277  recursiveDescent( GetChildren(), selectAllInTextCtrls, firstTextCtrl,
278  windowWithFocus );
279 
280 #if DLGSHIM_USE_SETFOCUS
281  // While it would be nice to honour any focus already set (which was
282  // recorded in windowWithFocus), the reality is that it's currently wrong
283  // far more often than it's right.
284  // So just focus on the first text control if we have one; otherwise the
285  // focus on the dialog itself, which will at least allow esc, return, etc.
286  // to function.
287  if( firstTextCtrl )
288  firstTextCtrl->SetFocus();
289  else
290  SetFocus();
291 #endif
292 
293 #ifdef __WXMAC__
294  fixOSXCancelButtonIssue( this );
295 #endif
296 
297  m_fixupsRun = true;
298  }
299 
300  event.Skip();
301 }
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 415 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().

416 {
417  int source = event.GetId();
418 
419  const DRC_ITEM* item = nullptr;
420  wxPoint pos;
421 
422  int selection;
423 
424  switch( source )
425  {
427  selection = m_UnconnectedListBox->GetSelection();
428  item = m_UnconnectedListBox->GetItem( selection );
429  pos = item->GetPointA();
430  break;
431 
433  selection = m_UnconnectedListBox->GetSelection();
434  item = m_UnconnectedListBox->GetItem( selection );
435  pos = item->GetPointB();
436  break;
437 
438  case ID_POPUP_MARKERS_A:
439  selection = m_ClearanceListBox->GetSelection();
440  item = m_ClearanceListBox->GetItem( selection );
441  pos = item->GetPointA();
442  break;
443 
444  case ID_POPUP_MARKERS_B:
445  selection = m_ClearanceListBox->GetSelection();
446  item = m_ClearanceListBox->GetItem( selection );
447  pos = item->GetPointB();
448  break;
449  }
450 
451  if( item )
452  {
453  // When selecting a item, center it on GAL and just move the graphic
454  // cursor in legacy mode gives the best result
455  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
456  m_brdEditor->FocusOnLocation( pos, true, center );
457 
458  if( !IsModal() )
459  Show( false );
460  }
461 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
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:258
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:874
#define ID_POPUP_MARKERS_B
#define ID_POPUP_UNCONNECTED_A
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:252
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 372 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().

373 {
374  m_RptFilenameCtrl->Enable( m_CreateRptCtrl->IsChecked() );
375  m_BrowseButton->Enable( m_CreateRptCtrl->IsChecked() );
376 }
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 490 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().

491 {
492  // popup menu to go to either of the items listed in the DRC_ITEM.
493 
494  int selection = m_ClearanceListBox->GetSelection();
495 
496  if( selection != wxNOT_FOUND )
497  {
498  wxMenu menu;
499  wxMenuItem* mItem;
500  const DRC_ITEM* dItem = m_ClearanceListBox->GetItem( selection );
501 
502  mItem = new wxMenuItem( &menu, ID_POPUP_MARKERS_A, dItem->GetTextA() );
503  menu.Append( mItem );
504 
505  if( dItem->HasSecondItem() )
506  {
507  mItem = new wxMenuItem( &menu, ID_POPUP_MARKERS_B, dItem->GetTextB() );
508  menu.Append( mItem );
509  }
510 
511  PopupMenu( &menu );
512  }
513 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
bool HasSecondItem() const
Definition: drc_item.h:131
#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:240
const wxString & GetTextB() const
Definition: drc_item.h:246
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 464 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().

465 {
466  // popup menu to go to either of the items listed in the DRC_ITEM.
467 
468  int selection = m_UnconnectedListBox->GetSelection();
469 
470  if( selection != wxNOT_FOUND )
471  {
472  wxMenu menu;
473  wxMenuItem* mItem;
474  const DRC_ITEM* dItem = m_UnconnectedListBox->GetItem( selection );
475 
476  mItem = new wxMenuItem( &menu, ID_POPUP_UNCONNECTED_A, dItem->GetTextA() );
477  menu.Append( mItem );
478 
479  if( dItem->HasSecondItem() )
480  {
481  mItem = new wxMenuItem( &menu, ID_POPUP_UNCONNECTED_B, dItem->GetTextB() );
482  menu.Append( mItem );
483  }
484 
485  PopupMenu( &menu );
486  }
487 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
bool HasSecondItem() const
Definition: drc_item.h:131
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:240
const wxString & GetTextB() const
Definition: drc_item.h:246
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_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  reportName, make_report );
224 
225  DelDRCMarkers();
226 
227  wxBeginBusyCursor();
228 
229  // run all the tests, with no UI at this time.
230  m_Messages->Clear();
231  wxSafeYield(); // Allows time slice to refresh the m_Messages window
232  m_brdEditor->GetBoard()->m_Status_Pcb = 0; // Force full connectivity and ratsnest recalculations
234  m_Notebook->ChangeSelection( 0 ); // display the 1at tab "...Markers ..."
235 
236 
237  // Generate the report
238  if( !reportName.IsEmpty() )
239  {
240  if( writeReport( reportName ) )
241  {
242  wxString msg;
243  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
244 
245  wxString caption( _( "Disk File Report Completed" ) );
246  wxMessageDialog popupWindow( this, msg, caption );
247  popupWindow.ShowModal();
248  }
249  else
250  DisplayError( this, wxString::Format( _( "Unable to create report file \"%s\""),
251  GetChars( reportName ) ) );
252  }
253 
254  wxEndBusyCursor();
255 
256  RedrawDrawPanel();
257 }
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:646
BOARD * GetBoard() const
void SetSettings(bool aPad2PadTest, bool aUnconnectedTest, bool aZonesTest, bool aKeepoutTest, bool aRefillZones, bool aCourtyardTest, bool aCourtyardMissingTest, const wxString &aReportName, bool aSaveReport)
Save all the UI or test settings and may be called before running the tests.
Definition: drc.h:507
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:334
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:668
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:358
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:241
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 590 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().

591 {
592  int selection = event.GetSelection();
593 
594  if( selection != wxNOT_FOUND )
595  {
596  // until a MARKER is selected, this button is not enabled.
597  m_DeleteCurrentMarkerButton->Enable( true );
598 
599  // Find the selected DRC_ITEM in the listbox, position cursor there,
600  // at the first of the two pads.
601  const DRC_ITEM* item = m_UnconnectedListBox->GetItem( selection );
602 
603  if( item )
604  {
605  // When selecting a item, center it on GAL and just move the graphic
606  // cursor in legacy mode gives the best result
607  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
608  m_brdEditor->FocusOnLocation( item->GetPointA(), false, center );
609  RedrawDrawPanel();
610  }
611  }
612 
613  event.Skip();
614 }
Class DRC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. ...
Definition: drc_item.h:43
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:874
const wxPoint & GetPointA() const
Definition: drc_item.h:252
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(), SCH_EDIT_FRAME::ImportFile(), PCB_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(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::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(), PCB_EDITOR_CONTROL::PlaceModule(), 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(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), 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(), CVPCB_MAINFRAME::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 617 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().

618 {
619  int freezeCount = 0;
620 
621  while( m_brdEditor->IsFrozen() )
622  {
623  m_brdEditor->Thaw();
624  freezeCount++;
625  }
626 
628 
629  while( freezeCount > 0 )
630  {
631  m_brdEditor->Freeze();
632  freezeCount--;
633  }
634 }
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:339
EDA_DRAW_PANEL * GetCanvas()
Definition: draw_frame.h:342
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:385
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  else
183  {
184  // Save the dialog's position & size before hiding, using classname as key
185  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
186 
187 #ifdef __WXMAC__
188  if ( m_eventLoop )
189  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
190 #endif
191 
192  ret = wxDialog::Show( show );
193  }
194 
195  return ret;
196 }
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 552 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().

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

742 {
743  int marker_count = m_ClearanceListBox->GetItemCount();
744  int unconnected_count = m_UnconnectedListBox->GetItemCount();
745 
746  m_MarkerCount->SetLabelText( wxString::Format( "%d", marker_count ) );
747  m_UnconnectedCount->SetLabelText( wxString::Format( "%d", unconnected_count ) );
748 }
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_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 668 of file dialog_drc.cpp.

References PCB_BASE_FRAME::GetBoard(), BOARD::GetFileName(), DRCLISTBOX::GetItem(), 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().

669 {
670  FILE* fp = wxFopen( aFullFileName, wxT( "w" ) );
671 
672  if( fp == NULL )
673  return false;
674 
675  int count;
676 
677  fprintf( fp, "** Drc report for %s **\n",
679 
680  wxDateTime now = wxDateTime::Now();
681 
682  fprintf( fp, "** Created on %s **\n", TO_UTF8( now.Format( wxT( "%F %T" ) ) ) );
683 
684  count = m_ClearanceListBox->GetItemCount();
685 
686  fprintf( fp, "\n** Found %d DRC errors **\n", count );
687 
688  for( int i = 0; i<count; ++i )
689  fprintf( fp, "%s", TO_UTF8( m_ClearanceListBox->GetItem( i )->ShowReport()) );
690 
691  count = m_UnconnectedListBox->GetItemCount();
692 
693  fprintf( fp, "\n** Found %d unconnected pads **\n", count );
694 
695  for( int i = 0; i<count; ++i )
696  fprintf( fp, "%s", TO_UTF8( m_UnconnectedListBox->GetItem( i )->ShowReport() ) );
697 
698  fprintf( fp, "\n** End of Report **\n" );
699 
700  fclose( fp );
701 
702  return true;
703 }
wxString ShowReport() const
Function ShowReport translates this object into a text string suitable for saving to disk in a report...
Definition: drc_item.h:201
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.
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
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 78 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 82 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 83 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 107 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 79 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 72 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 68 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 80 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: