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 55 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.

56  :
57  DIALOG_DRC_CONTROL_BASE( aParent )
58 {
60  m_tester = aTester;
61  m_brdEditor = aEditorFrame;
64 
65  InitValues();
66 
67  // Now all widgets have the size fixed, call FinishDialogSettings
69 }
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:535
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 71 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.

72 {
75  m_config->Write( RefillZonesBeforeDrc, m_cbRefillZones->GetValue() );
76 
77  // Disonnect events
78  m_ClearanceListBox->Disconnect( ID_CLEARANCE_LIST, wxEVT_LEFT_DCLICK,
79  wxMouseEventHandler(
81  m_ClearanceListBox->Disconnect( ID_CLEARANCE_LIST, wxEVT_RIGHT_UP,
82  wxMouseEventHandler(
84  m_UnconnectedListBox->Disconnect( ID_UNCONNECTED_LIST, wxEVT_LEFT_DCLICK,
85  wxMouseEventHandler( DIALOG_DRC_CONTROL::
86  OnLeftDClickUnconnected ), NULL, this );
87  m_UnconnectedListBox->Disconnect( ID_UNCONNECTED_LIST, wxEVT_RIGHT_UP,
88  wxMouseEventHandler(
90 
91  this->Disconnect( wxEVT_MENU, wxCommandEventHandler( DIALOG_DRC_CONTROL::OnPopupMenu ), NULL, this );
92 }
#define ID_CLEARANCE_LIST
void OnRightUpClearance(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:500
wxCheckBox * m_cbRefillZones
void OnLeftDClickClearance(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:384
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
#define TestMissingCourtyardKey
Definition: dialog_drc.cpp:50
void OnLeftDClickUnconnected(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:526
wxCheckBox * m_cbCourtyardMissing
wxConfigBase * m_config
Definition: dialog_drc.h:149
wxCheckBox * m_cbCourtyardOverlap
void OnPopupMenu(wxCommandEvent &event)
Definition: dialog_drc.cpp:425
#define RefillZonesBeforeDrc
Definition: dialog_drc.cpp:52
void OnRightUpUnconnected(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:474
#define ID_UNCONNECTED_LIST
#define TestFootprintCourtyardKey
Definition: dialog_drc.cpp:51

Member Function Documentation

void DIALOG_DRC_CONTROL::DelDRCMarkers ( )
private

Definition at line 652 of file dialog_drc.cpp.

References DRCLISTBOX::DeleteAllItems(), EDA_DRAW_FRAME::GetToolManager(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, TOOL_MANAGER::RunAction(), PCB_ACTIONS::selectionClear, and PCB_BASE_FRAME::SetCurItem().

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

653 {
654  m_brdEditor->SetCurItem( NULL ); // clear curr item, because it could be a DRC marker
655 
656  // Clear current selection list to avoid selection of deleted items
658 
661  m_DeleteCurrentMarkerButton->Enable( false );
662 }
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:53
void SetCurItem(BOARD_ITEM *aItem, bool aDisplayInfo=true)
Function SetCurItem sets the currently selected item and displays it in the MsgPanel.
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Function RunAction() Runs the specified action.
Definition: tool_manager.h:125
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
void DeleteAllItems()
Function DeleteAllItems deletes all items in the list.
DRCLISTBOX * m_ClearanceListBox
TOOL_MANAGER * GetToolManager() const
Function GetToolManager returns the tool manager instance, if any.
Definition: draw_frame.h:910
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::DisplayDRCValues ( )
private

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

116 {
120 
124 }
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 612 of file dialog_shim.cpp.

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, 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().

613 {
614  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
615  // handle validation in the same way as other dialogs.
616  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
617  return;
618 
619  SetReturnCode( retCode );
620 
621  if( !IsQuasiModal() )
622  {
623  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
624  return;
625  }
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 }
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_MODEDIT_FP_BODY_ITEM_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_FOOTPRINT_FP_EDITOR::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 191 of file dialog_drc.cpp.

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

Referenced by DRC::DestroyDRCDialog().

192 {
193  *aEnable = m_CreateRptCtrl->GetValue();
194  aFileName = m_RptFilenameCtrl->GetValue();
195 }
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 127 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().

128 {
129  // Connect events and objects
130  m_ClearanceListBox->Connect( ID_CLEARANCE_LIST, wxEVT_LEFT_DCLICK,
131  wxMouseEventHandler(
133  m_ClearanceListBox->Connect( ID_CLEARANCE_LIST, wxEVT_RIGHT_UP,
134  wxMouseEventHandler(
136  m_UnconnectedListBox->Connect( ID_UNCONNECTED_LIST, wxEVT_LEFT_DCLICK,
137  wxMouseEventHandler( DIALOG_DRC_CONTROL::
138  OnLeftDClickUnconnected ), NULL, this );
139  m_UnconnectedListBox->Connect( ID_UNCONNECTED_LIST, wxEVT_RIGHT_UP,
140  wxMouseEventHandler(
142 
143  this->Connect( wxEVT_MENU, wxCommandEventHandler( DIALOG_DRC_CONTROL::OnPopupMenu ), NULL,
144  this );
145 
146 
147  m_DeleteCurrentMarkerButton->Enable( false );
148 
150 
151  // read options
152  bool value;
153  m_config->Read( TestMissingCourtyardKey, &value, false );
154  m_cbCourtyardMissing->SetValue( value );
155  m_config->Read( TestFootprintCourtyardKey, &value, false );
156  m_cbCourtyardOverlap->SetValue( value );
157  m_config->Read( RefillZonesBeforeDrc, &value, false );
158  m_cbRefillZones->SetValue( value );
159 
160  // Set the initial "enabled" status of the browse button and the text
161  // field for report name
162  wxCommandEvent junk;
163  OnReportCheckBoxClicked( junk );
164 
165  Layout(); // adding the units above expanded Clearance text, now resize.
166 
167  SetFocus();
168 }
#define ID_CLEARANCE_LIST
void OnRightUpClearance(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:500
wxCheckBox * m_cbRefillZones
void OnLeftDClickClearance(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_CLEARANCE_LIST
Definition: dialog_drc.cpp:384
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
#define TestMissingCourtyardKey
Definition: dialog_drc.cpp:50
void OnLeftDClickUnconnected(wxMouseEvent &event) override
wxEVT_LEFT_DCLICK event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:526
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:377
void OnPopupMenu(wxCommandEvent &event)
Definition: dialog_drc.cpp:425
#define RefillZonesBeforeDrc
Definition: dialog_drc.cpp:52
void OnRightUpUnconnected(wxMouseEvent &event) override
wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST
Definition: dialog_drc.cpp:474
#define ID_UNCONNECTED_LIST
#define TestFootprintCourtyardKey
Definition: dialog_drc.cpp:51
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(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), 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(), 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(), 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(), 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 665 of file dialog_drc.cpp.

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

Referenced by OnListUnconnectedClick(), and OnStartdrcClick().

666 {
667  wxFileName fn = m_RptFilenameCtrl->GetValue();
668 
669  if( !fn.HasExt() )
670  {
671  fn.SetExt( ReportFileExtension );
672  m_RptFilenameCtrl->SetValue( fn.GetFullPath() );
673  }
674 
675  // Ensure it is an absolute filename. if it is given relative
676  // it will be made relative to the project
677  if( !fn.IsAbsolute() )
678  {
679  wxString prj_path = Prj().GetProjectPath();
680  fn.MakeAbsolute( prj_path );
681  }
682 
683  return fn.GetFullPath();
684 }
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:102
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 94 of file dialog_drc.cpp.

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

95 {
97  {
98  // If m_currentBoard is not the current parent board,
99  // (for instance because a new board was loaded),
100  // close the dialog, because many pointers are now invalid
101  // in lists
102  SetReturnCode( wxID_CANCEL );
103  Close();
104  m_tester->DestroyDRCDialog( wxID_CANCEL );
105  return;
106  }
107 
108  // updating data which can be modified outside the dialog (DRC parameters, units ...)
109  // because the dialog is not modal
112 }
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:117
BOARD * GetBoard() const
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:56
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:535
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 339 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().

340 {
341  wxFileName fn = m_brdEditor->GetBoard()->GetFileName();
342  fn.SetExt( ReportFileExtension );
343  wxString prj_path = Prj().GetProjectPath();
344 
345  wxFileDialog dlg( this, _( "Save DRC Report File" ), prj_path,
346  fn.GetFullName(), ReportFileWildcard(),
347  wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
348 
349  if( dlg.ShowModal() == wxID_CANCEL )
350  return;
351 
352  m_RptFilenameCtrl->SetValue( dlg.GetPath() );
353 }
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:236
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:102
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 367 of file dialog_drc.cpp.

References DRC::DestroyDRCDialog(), and m_tester.

368 {
369  SetReturnCode( wxID_CANCEL );
370 
371  // The dialog can be modal or not modal.
372  // Leave the DRC caller destroy (or not) the dialog
373  m_tester->DestroyDRCDialog( wxID_CANCEL );
374 }
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:117
void DIALOG_DRC_CONTROL::OnChangingMarkerList ( wxNotebookEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

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

564 {
565  // Shouldn't be necessary, but is on at least OSX
566  m_Notebook->ChangeSelection( event.GetSelection() );
567 
568  m_DeleteCurrentMarkerButton->Enable( false );
569  m_ClearanceListBox->SetSelection( -1 );
570  m_UnconnectedListBox->SetSelection( -1 );
571 }
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 264 of file dialog_drc.cpp.

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

265 {
266  DelDRCMarkers();
267  RedrawDrawPanel();
269 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:760
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 725 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().

726 {
727  int selectedIndex;
728  int curTab = m_Notebook->GetSelection();
729 
730  if( curTab == 0 )
731  {
732  selectedIndex = m_ClearanceListBox->GetSelection();
733 
734  if( selectedIndex != wxNOT_FOUND )
735  {
736  m_ClearanceListBox->DeleteItem( selectedIndex );
737 
738  // redraw the pcb
739  RedrawDrawPanel();
740  }
741  }
742  else if( curTab == 1 )
743  {
744  selectedIndex = m_UnconnectedListBox->GetSelection();
745 
746  if( selectedIndex != wxNOT_FOUND )
747  {
748  m_UnconnectedListBox->DeleteItem( selectedIndex );
749 
750  /* these unconnected DRC_ITEMs are not currently visible on the pcb
751  * RedrawDrawPanel();
752  */
753  }
754  }
755 
757 }
void DeleteItem(int aIndex)
Function DeleteElement will delete one of the items in the list.
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:760
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 384 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().

385 {
386  event.Skip();
387 
388  // I am assuming that the double click actually changed the selected item.
389  // please verify this.
390  int selection = m_ClearanceListBox->GetSelection();
391 
392  if( selection != wxNOT_FOUND )
393  {
394  // Find the selected MARKER in the PCB, position cursor there.
395  // Then close the dialog.
396  const DRC_ITEM* item = m_ClearanceListBox->GetItem( selection );
397 
398  if( item )
399  {
400  auto pos = item->GetPointA();
401 
402  if( auto marker = item->GetParent() )
403  pos = marker->GetPos();
404 
405  // When selecting a item, center it on GAL and just move the graphic
406  // cursor in legacy mode gives the best result
407  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
408  m_brdEditor->FocusOnLocation( pos, true, center );
409 
410  if( !IsModal() )
411  {
412  // turn control over to m_brdEditor, hide this DIALOG_DRC_CONTROL window,
413  // no destruction so we can preserve listbox cursor
414  Show( false );
415 
416  // We do not want the clarification popup window.
417  // when releasing the left button in the main window
419  }
420  }
421  }
422 }
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:139
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:895
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:262
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 526 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().

527 {
528  event.Skip();
529 
530  // I am assuming that the double click actually changed the selected item.
531  // please verify this.
532  int selection = m_UnconnectedListBox->GetSelection();
533 
534  if( selection != wxNOT_FOUND )
535  {
536  // Find the selected DRC_ITEM in the listbox, position cursor there,
537  // at the first of the two pads.
538  // Then hide the dialog.
539  const DRC_ITEM* item = m_UnconnectedListBox->GetItem( selection );
540  if( item )
541  {
542  // When selecting a item, center it on GAL and just move the graphic
543  // cursor in legacy mode gives the best result
544  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
545  m_brdEditor->FocusOnLocation( item->GetPointA(), true, center );
546 
547  if( !IsModal() )
548  {
549  Show( false );
550 
551  // We do not want the clarification popup window.
552  // when releasing the left button in the main window
554  }
555  }
556  }
557 }
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:895
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:262
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 272 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().

273 {
274  wxString reportName;
275 
276  bool make_report = m_CreateRptCtrl->IsChecked();
277 
278  if( make_report ) // Create a file rpt
279  {
280  reportName = m_RptFilenameCtrl->GetValue();
281 
282  if( reportName.IsEmpty() )
283  {
284  wxCommandEvent junk;
286  }
287 
288  if( !reportName.IsEmpty() )
289  reportName = makeValidFileNameReport();
290  }
291 
292  SetDrcParmeters();
293 
294  m_tester->SetSettings( true, // Pad to pad DRC test enabled
295  true, // unconnected pads DRC test enabled
296  true, // DRC test for zones enabled
297  true, // DRC test for keepout areas enabled
298  m_cbRefillZones->GetValue(),
299  m_cbCourtyardOverlap->GetValue(),
300  m_cbCourtyardMissing->GetValue(),
301  m_cbReportAllTrackErrors->GetValue(),
302  reportName, make_report );
303 
304  DelDRCMarkers();
305 
306  wxBeginBusyCursor();
307 
308  m_Messages->Clear();
310 
311  m_Notebook->ChangeSelection( 1 ); // display the 2nd tab "Unconnected..."
312 
313  // Generate the report
314  if( !reportName.IsEmpty() )
315  {
316  if( writeReport( reportName ) )
317  {
318  wxString msg;
319  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
320  wxString caption( _( "Disk File Report Completed" ) );
321  wxMessageDialog popupWindow( this, msg, caption );
322  popupWindow.ShowModal();
323  }
324  else
325  DisplayError( this, wxString::Format( _( "Unable to create report file \"%s\""),
326  GetChars( reportName ) ) );
327  }
328 
330 
331  wxEndBusyCursor();
332 
333  /* there is currently nothing visible on the DrawPanel for unconnected pads
334  * RedrawDrawPanel();
335  */
336 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:760
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:665
void ListUnconnectedPads()
Gather a list of all the unconnected pads and shows them in the dialog, and optionally prints a repor...
Definition: drc.cpp:529
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:504
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:339
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:687
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 574 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().

575 {
576  int selection = event.GetSelection();
577 
578  if( selection != wxNOT_FOUND )
579  {
580  // until a MARKER is selected, this button is not enabled.
581  m_DeleteCurrentMarkerButton->Enable( true );
582 
583  // Find the selected DRC_ITEM in the listbox, position cursor there,
584  // at the first of the two pads.
585  const DRC_ITEM* item = m_ClearanceListBox->GetItem( selection );
586  if( item )
587  {
588  auto pos = item->GetPointA();
589 
590  if( auto marker = item->GetParent() )
591  pos = marker->GetPos();
592 
593  // When selecting a item, center it on GAL and just move the graphic
594  // cursor in legacy mode gives the best result
595  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
596  m_brdEditor->FocusOnLocation( pos, false, center );
597  RedrawDrawPanel();
598  }
599  }
600 
601  event.Skip();
602 }
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:139
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:895
const wxPoint & GetPointA() const
Definition: drc_item.h:262
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 356 of file dialog_drc.cpp.

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

357 {
358  SetReturnCode( wxID_OK );
359  SetDrcParmeters();
360 
361  // The dialog can be modal or not modal.
362  // Leave the DRC caller destroy (or not) the dialog
363  m_tester->DestroyDRCDialog( wxID_OK );
364 }
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:117
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 425 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().

426 {
427  int source = event.GetId();
428 
429  const DRC_ITEM* item = nullptr;
430  wxPoint pos;
431 
432  int selection;
433 
434  switch( source )
435  {
437  selection = m_UnconnectedListBox->GetSelection();
438  item = m_UnconnectedListBox->GetItem( selection );
439  pos = item->GetPointA();
440  break;
441 
443  selection = m_UnconnectedListBox->GetSelection();
444  item = m_UnconnectedListBox->GetItem( selection );
445  pos = item->GetPointB();
446  break;
447 
448  case ID_POPUP_MARKERS_A:
449  selection = m_ClearanceListBox->GetSelection();
450  item = m_ClearanceListBox->GetItem( selection );
451  pos = item->GetPointA();
452  break;
453 
454  case ID_POPUP_MARKERS_B:
455  selection = m_ClearanceListBox->GetSelection();
456  item = m_ClearanceListBox->GetItem( selection );
457  pos = item->GetPointB();
458  break;
459  }
460 
461  if( item )
462  {
463  // When selecting a item, center it on GAL and just move the graphic
464  // cursor in legacy mode gives the best result
465  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
466  m_brdEditor->FocusOnLocation( pos, true, center );
467 
468  if( !IsModal() )
469  Show( false );
470  }
471 }
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:268
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:895
#define ID_POPUP_MARKERS_B
#define ID_POPUP_UNCONNECTED_A
bool Show(bool show) override
const wxPoint & GetPointA() const
Definition: drc_item.h:262
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 377 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().

378 {
379  m_RptFilenameCtrl->Enable( m_CreateRptCtrl->IsChecked() );
380  m_BrowseButton->Enable( m_CreateRptCtrl->IsChecked() );
381 }
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 500 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().

501 {
502  // popup menu to go to either of the items listed in the DRC_ITEM.
503 
504  int selection = m_ClearanceListBox->GetSelection();
505 
506  if( selection != wxNOT_FOUND )
507  {
508  wxMenu menu;
509  wxMenuItem* mItem;
510  const DRC_ITEM* dItem = m_ClearanceListBox->GetItem( selection );
511 
512  mItem = new wxMenuItem( &menu, ID_POPUP_MARKERS_A, dItem->GetTextA() );
513  menu.Append( mItem );
514 
515  if( dItem->HasSecondItem() )
516  {
517  mItem = new wxMenuItem( &menu, ID_POPUP_MARKERS_B, dItem->GetTextB() );
518  menu.Append( mItem );
519  }
520 
521  PopupMenu( &menu );
522  }
523 }
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:141
#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:250
const wxString & GetTextB() const
Definition: drc_item.h:256
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 474 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().

475 {
476  // popup menu to go to either of the items listed in the DRC_ITEM.
477 
478  int selection = m_UnconnectedListBox->GetSelection();
479 
480  if( selection != wxNOT_FOUND )
481  {
482  wxMenu menu;
483  wxMenuItem* mItem;
484  const DRC_ITEM* dItem = m_UnconnectedListBox->GetItem( selection );
485 
486  mItem = new wxMenuItem( &menu, ID_POPUP_UNCONNECTED_A, dItem->GetTextA() );
487  menu.Append( mItem );
488 
489  if( dItem->HasSecondItem() )
490  {
491  mItem = new wxMenuItem( &menu, ID_POPUP_UNCONNECTED_B, dItem->GetTextB() );
492  menu.Append( mItem );
493  }
494 
495  PopupMenu( &menu );
496  }
497 }
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:141
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:250
const wxString & GetTextB() const
Definition: drc_item.h:256
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 198 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().

199 {
200  wxString reportName;
201 
202  bool make_report = m_CreateRptCtrl->IsChecked();
203 
204  if( make_report ) // Create a rpt file
205  {
206  reportName = m_RptFilenameCtrl->GetValue();
207 
208  if( reportName.IsEmpty() )
209  {
210  wxCommandEvent dummy;
212  }
213 
214  if( !reportName.IsEmpty() )
215  reportName = makeValidFileNameReport();
216  }
217 
218  SetDrcParmeters();
219  m_tester->SetSettings( true, // Pad to pad DRC test enabled
220  true, // unconnected pads DRC test enabled
221  true, // DRC test for zones enabled
222  true, // DRC test for keepout areas enabled
223  m_cbRefillZones->GetValue(),
224  m_cbCourtyardOverlap->GetValue(),
225  m_cbCourtyardMissing->GetValue(),
226  m_cbReportAllTrackErrors->GetValue(),
227  reportName, make_report );
228 
229  DelDRCMarkers();
230 
231  wxBeginBusyCursor();
232 
233  // run all the tests, with no UI at this time.
234  m_Messages->Clear();
235  wxSafeYield(); // Allows time slice to refresh the m_Messages window
236  m_brdEditor->GetBoard()->m_Status_Pcb = 0; // Force full connectivity and ratsnest recalculations
238  m_Notebook->ChangeSelection( 0 ); // display the 1at tab "...Markers ..."
239 
240 
241  // Generate the report
242  if( !reportName.IsEmpty() )
243  {
244  if( writeReport( reportName ) )
245  {
246  wxString msg;
247  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
248 
249  wxString caption( _( "Disk File Report Completed" ) );
250  wxMessageDialog popupWindow( this, msg, caption );
251  popupWindow.ShowModal();
252  }
253  else
254  DisplayError( this, wxString::Format( _( "Unable to create report file \"%s\""),
255  GetChars( reportName ) ) );
256  }
257 
258  wxEndBusyCursor();
259 
260  RedrawDrawPanel();
261 }
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:665
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:504
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:339
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:687
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:401
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:239
void DIALOG_DRC_CONTROL::OnUnconnectedSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

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

606 {
607  int selection = event.GetSelection();
608 
609  if( selection != wxNOT_FOUND )
610  {
611  // until a MARKER is selected, this button is not enabled.
612  m_DeleteCurrentMarkerButton->Enable( true );
613 
614  // Find the selected DRC_ITEM in the listbox, position cursor there,
615  // at the first of the two pads.
616  const DRC_ITEM* item = m_UnconnectedListBox->GetItem( selection );
617 
618  if( item )
619  {
620  // When selecting a item, center it on GAL and just move the graphic
621  // cursor in legacy mode gives the best result
622  bool center = m_brdEditor->IsGalCanvasActive() ? true : false;
623  m_brdEditor->FocusOnLocation( item->GetPointA(), false, center );
624  RedrawDrawPanel();
625  }
626  }
627 
628  event.Skip();
629 }
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:895
const wxPoint & GetPointA() const
Definition: drc_item.h:262
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(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), 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(), 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 632 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().

633 {
634  int freezeCount = 0;
635 
636  while( m_brdEditor->IsFrozen() )
637  {
638  m_brdEditor->Thaw();
639  freezeCount++;
640  }
641 
643 
644  while( freezeCount > 0 )
645  {
646  m_brdEditor->Freeze();
647  freezeCount--;
648  }
649 }
virtual void Refresh(bool eraseBackground=true, const wxRect *rect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
Definition: draw_panel.cpp:338
EDA_DRAW_PANEL * GetCanvas()
Definition: draw_frame.h:359
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:148
void DIALOG_DRC_CONTROL::SetDrcParmeters ( )
private

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

173 {
177 
179 }
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:545
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 182 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().

183 {
184  m_RptFilenameCtrl->Enable( aEnable );
185  m_BrowseButton->Enable( aEnable );
186  m_CreateRptCtrl->SetValue( aEnable );
187  m_RptFilenameCtrl->SetValue( aFileName );
188 }
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(), InvokeDialogEditComponentsLibId(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnLaunchBomManager(), 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  m_qmodal_showing = false;
607 
608  return GetReturnCode();
609 }
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 760 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().

761 {
762  int marker_count = m_ClearanceListBox->GetItemCount();
763  int unconnected_count = m_UnconnectedListBox->GetItemCount();
764 
765  m_MarkerCount->SetLabelText( wxString::Format( "%d", marker_count ) );
766  m_UnconnectedCount->SetLabelText( wxString::Format( "%d", unconnected_count ) );
767 }
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 687 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().

688 {
689  FILE* fp = wxFopen( aFullFileName, wxT( "w" ) );
690 
691  if( fp == NULL )
692  return false;
693 
694  int count;
695 
696  fprintf( fp, "** Drc report for %s **\n",
698 
699  wxDateTime now = wxDateTime::Now();
700 
701  fprintf( fp, "** Created on %s **\n", TO_UTF8( now.Format( wxT( "%F %T" ) ) ) );
702 
703  count = m_ClearanceListBox->GetItemCount();
704 
705  fprintf( fp, "\n** Found %d DRC errors **\n", count );
706 
707  for( int i = 0; i<count; ++i )
708  fprintf( fp, "%s", TO_UTF8( m_ClearanceListBox->GetItem( i )->ShowReport()) );
709 
710  count = m_UnconnectedListBox->GetItemCount();
711 
712  fprintf( fp, "\n** Found %d unconnected pads **\n", count );
713 
714  for( int i = 0; i<count; ++i )
715  fprintf( fp, "%s", TO_UTF8( m_UnconnectedListBox->GetItem( i )->ShowReport() ) );
716 
717  fprintf( fp, "\n** End of Report **\n" );
718 
719  fclose( fp );
720 
721  return true;
722 }
wxString ShowReport() const
Function ShowReport translates this object into a text string suitable for saving to disk in a report...
Definition: drc_item.h:211
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:236
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

Definition at line 155 of file dialog_shim.h.

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

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: