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 Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL, SCREEN }
 

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 ()
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType ()
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 

Public Attributes

BOARD_DESIGN_SETTINGS m_BrdSettings
 
wxTextCtrl * m_SetTrackMinWidthCtrl
 
wxTextCtrl * m_SetViaMinSizeCtrl
 
wxTextCtrl * m_SetMicroViakMinSizeCtrl
 
DRCLISTBOXm_ClearanceListBox
 
DRCLISTBOXm_UnconnectedListBox
 
DRCLISTBOXm_FootprintsListBox
 

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...
 
void ResetSize ()
 Clear the existing dialog size and position. More...
 

Protected Attributes

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_cbReportTracksToZonesErrors
 
wxCheckBox * m_cbTestFootprints
 
wxTextCtrl * m_Messages
 
wxCheckBox * m_CreateRptCtrl
 
wxTextCtrl * m_RptFilenameCtrl
 
wxBitmapButton * m_BrowseButton
 
wxNotebook * m_Notebook
 
wxPanel * m_panelViolations
 
wxPanel * m_panelFootprintWarnings
 
wxBoxSizer * m_sizerButtons
 
wxButton * m_DeleteCurrentMarkerButton
 
wxButton * m_DeleteAllMarkersButton
 
wxStdDialogButtonSizer * m_sdbSizer1
 
wxButton * m_sdbSizer1OK
 
wxButton * m_sdbSizer1Cancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
std::vector< wxWindow * > m_tabOrder
 

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 SetDRCParameters ()
 
int rightUpClicSelection (DRCLISTBOX *aListBox, wxMouseEvent &event)
 
void OnReportCheckBoxClicked (wxCommandEvent &event) override
 wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_RPT_FILE More...
 
void OnReportFilenameEdited (wxCommandEvent &event) override
 wxEVT_COMMAND_TEXT_UPDATED event handler for m_RptFilenameCtrl 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 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 OnLeftUpClearance (wxMouseEvent &event) override
 wxEVT_LEFT_UP 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 OnLeftUpUnconnected (wxMouseEvent &event) override
 wxEVT_LEFT_UP event handler for ID_UNCONNECTED_LIST More...
 
void OnRightUpUnconnected (wxMouseEvent &event) override
 wxEVT_RIGHT_UP event handler for ID_UNCONNECTED_LIST More...
 
void OnLeftDClickFootprints (wxMouseEvent &event) override
 wxEVT_LEFT_DCLICK event handler for ID_FOOTPRINTS_LIST More...
 
void OnRightUpFootprints (wxMouseEvent &event) override
 wxEVT_RIGHT_UP event handler for ID_FOOTPRINTS_LIST More...
 
void OnCancelClick (wxCommandEvent &event) override
 wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL 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 OnFootprintsSelectionEvent (wxCommandEvent &event) override
 
void OnChangingMarkerList (wxNotebookEvent &event) override
 
void DelDRCMarkers ()
 
void RedrawDrawPanel ()
 
void doSelectionMenu (const DRC_ITEM *aItem)
 Run the SELECTION_TOOL's disambiguation menu to highlight the two BOARD_ITEMs in the DRC_ITEM. More...
 
bool focusOnItem (const DRC_ITEM *aItem)
 

Private Attributes

BOARDm_currentBoard
 
DRCm_tester
 
PCB_EDIT_FRAMEm_brdEditor
 
wxConfigBase * m_config
 
wxString m_markersTitleTemplate
 
wxString m_unconnectedTitleTemplate
 
wxString m_footprintsTitleTemplate
 
UNIT_BINDER m_trackMinWidth
 
UNIT_BINDER m_viaMinSize
 
UNIT_BINDER m_uviaMinSize
 

Detailed Description

Definition at line 51 of file dialog_drc.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 
SCREEN 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_DRC_CONTROL()

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

Constructors.

Definition at line 50 of file dialog_drc.cpp.

52  : DIALOG_DRC_CONTROL_BASE( aParent ),
54  m_TrackMinWidthUnit, true ),
57  m_MicroViaMinUnit, true )
58 {
59  SetName( DIALOG_DRC_WINDOW_NAME ); // Set a window name to be able to find it
60 
62  m_tester = aTester;
63  m_brdEditor = aEditorFrame;
66 
67  m_BrowseButton->SetBitmap( KiBitmap( folder_xpm ) );
68 
69  // We use a sdbSizer here to get the order right, which is platform-dependent
70  m_sdbSizer1OK->SetLabel( _( "Run DRC" ) );
71  m_sdbSizer1Cancel->SetLabel( _( "Close" ) );
72  m_sizerButtons->Layout();
73 
74  m_sdbSizer1OK->SetDefault();
75 
76  InitValues();
77 
79 }
wxStaticText * m_MicroViaMinTitle
const BITMAP_OPAQUE folder_xpm[1]
Definition: folder.cpp:20
wxStaticText * m_TrackMinWidthTitle
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
wxStaticText * m_ViaMinUnit
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:530
UNIT_BINDER m_viaMinSize
Definition: dialog_drc.h:172
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:54
wxStaticText * m_ViaMinTitle
wxTextCtrl * m_SetViaMinSizeCtrl
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:79
wxStaticText * m_MicroViaMinUnit
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
#define DIALOG_DRC_WINDOW_NAME
Definition: dialog_drc.h:49
wxBitmapButton * m_BrowseButton
wxConfigBase * m_config
Definition: dialog_drc.h:165
UNIT_BINDER m_uviaMinSize
Definition: dialog_drc.h:173
UNIT_BINDER m_trackMinWidth
Definition: dialog_drc.h:171
#define _(s)
Definition: 3d_actions.cpp:31
wxTextCtrl * m_SetMicroViakMinSizeCtrl
wxStaticText * m_TrackMinWidthUnit
wxTextCtrl * m_SetTrackMinWidthCtrl
BOARD * GetBoard() const
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:164
BOARD * m_currentBoard
Definition: dialog_drc.h:162

References _, DIALOG_DRC_WINDOW_NAME, DIALOG_SHIM::FinishDialogSettings(), folder_xpm, PCB_BASE_FRAME::GetBoard(), BOARD::GetDesignSettings(), InitValues(), KiBitmap(), Kiface(), KIFACE_I::KifaceSettings(), m_brdEditor, m_BrdSettings, DIALOG_DRC_CONTROL_BASE::m_BrowseButton, m_config, m_currentBoard, DIALOG_DRC_CONTROL_BASE::m_sdbSizer1Cancel, DIALOG_DRC_CONTROL_BASE::m_sdbSizer1OK, DIALOG_DRC_CONTROL_BASE::m_sizerButtons, and m_tester.

◆ ~DIALOG_DRC_CONTROL()

DIALOG_DRC_CONTROL::~DIALOG_DRC_CONTROL ( )

Member Function Documentation

◆ DelDRCMarkers()

void DIALOG_DRC_CONTROL::DelDRCMarkers ( )
private

Definition at line 531 of file dialog_drc.cpp.

532 {
533  // Clear current selection list to avoid selection of deleted items
535 
538  m_DeleteCurrentMarkerButton->Enable( false );
539 }
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:73
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Function RunAction() Runs the specified action.
Definition: tool_manager.h:109
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:164

References DRCLISTBOX::DeleteAllItems(), EDA_BASE_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(), and PCB_ACTIONS::selectionClear.

Referenced by OnDeleteAllClick(), and OnStartdrcClick().

◆ DisplayDRCValues()

void DIALOG_DRC_CONTROL::DisplayDRCValues ( )
private

Definition at line 111 of file dialog_drc.cpp.

112 {
116 }
UNIT_BINDER m_viaMinSize
Definition: dialog_drc.h:172
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:54
int m_TrackMinWidth
track min value for width ((min copper size value
int m_ViasMinSize
vias (not micro vias) min diameter
int m_MicroViasMinSize
micro vias (not vias) min diameter
UNIT_BINDER m_uviaMinSize
Definition: dialog_drc.h:173
UNIT_BINDER m_trackMinWidth
Definition: dialog_drc.h:171
virtual void SetValue(int aValue)
Function SetValue Sets new value (in Internal Units) for the text field, taking care of units convers...

References m_BrdSettings, BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, m_trackMinWidth, BOARD_DESIGN_SETTINGS::m_TrackMinWidth, m_uviaMinSize, m_viaMinSize, BOARD_DESIGN_SETTINGS::m_ViasMinSize, and UNIT_BINDER::SetValue().

Referenced by InitValues(), and OnActivateDlg().

◆ doSelectionMenu()

void DIALOG_DRC_CONTROL::doSelectionMenu ( const DRC_ITEM aItem)
private

Run the SELECTION_TOOL's disambiguation menu to highlight the two BOARD_ITEMs in the DRC_ITEM.

Definition at line 382 of file dialog_drc.cpp.

383 {
384  // popup menu to go to either of the items listed in the DRC_ITEM.
385 
386  BOARD_ITEM* first = aItem->GetMainItem( m_brdEditor->GetBoard() );
387  BOARD_ITEM* second = nullptr;
388 
389  GENERAL_COLLECTOR items;
390 
391  items.Append( first );
392 
393  if( aItem->HasSecondItem() )
394  {
395  second = aItem->GetAuxiliaryItem( m_brdEditor->GetBoard() );
396  items.Append( second );
397  }
398 
399  WINDOW_THAWER thawer( m_brdEditor );
402 
403  // If we got an item, focus on it
404  BOARD_ITEM* selection = items.GetCount() ? items[0] : nullptr;
405 
406  if( selection && ( selection == first || selection == second ) )
407  m_brdEditor->FocusOnLocation( selection->GetPosition(), true );
408 
410 }
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class,...
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
BOARD_ITEM * GetAuxiliaryItem(BOARD *aBoard) const
Definition: drc_item.cpp:258
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Function RunAction() Runs the specified action.
Definition: tool_manager.h:109
static TOOL_ACTION selectionMenu
Runs a selection menu to select from a list of items.
Definition: pcb_actions.h:84
void Append(EDA_ITEM *item)
Function Append adds an item to the end of the list.
Definition: collector.h:135
int GetCount() const
Function GetCount returns the number of objects in the list.
Definition: collector.h:116
BOARD_ITEM * GetMainItem(BOARD *aBoard) const
Access to A and B items for BOARDs.
Definition: drc_item.cpp:252
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
virtual const wxPoint GetPosition() const =0
bool HasSecondItem() const
Definition: drc_item.h:167
void FocusOnLocation(const wxPoint &aPos, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
Used when the right click button is pressed, or when the select tool is in effect.
Definition: collectors.h:240
void VetoContextMenuMouseWarp()
Disables mouse warping after the current context menu is closed.
Definition: tool_manager.h:384
BOARD * GetBoard() const
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164

References COLLECTOR::Append(), EDA_DRAW_FRAME::FocusOnLocation(), DRC_ITEM::GetAuxiliaryItem(), PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetCanvas(), COLLECTOR::GetCount(), DRC_ITEM::GetMainItem(), BOARD_ITEM::GetPosition(), EDA_BASE_FRAME::GetToolManager(), DRC_ITEM::HasSecondItem(), m_brdEditor, EDA_DRAW_PANEL_GAL::Refresh(), TOOL_MANAGER::RunAction(), PCB_ACTIONS::selectionMenu, and TOOL_MANAGER::VetoContextMenuMouseWarp().

Referenced by OnRightUpClearance(), OnRightUpFootprints(), and OnRightUpUnconnected().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 262 of file dialog_shim.cpp.

263 {
264  // so we can do logging of this state change:
265 
266 #if 0 && defined(DEBUG)
267  const char* type_id = typeid( *this ).name();
268  printf( "DIALOG_SHIM %s: %s\n", type_id, enable ? "enabled" : "disabled" );
269  fflush(0); //Needed on msys2 to immediately print the message
270 #endif
271 
272  return wxDialog::Enable( enable );
273 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 419 of file dialog_shim.cpp.

420 {
421  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
422  // handle validation in the same way as other dialogs.
423  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
424  return;
425 
426  SetReturnCode( retCode );
427 
428  if( !IsQuasiModal() )
429  {
430  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
431  "wasn't called" );
432  return;
433  }
434 
435  if( m_qmodal_loop )
436  {
437  if( m_qmodal_loop->IsRunning() )
438  m_qmodal_loop->Exit( 0 );
439  else
440  m_qmodal_loop->ScheduleExit( 0 );
441 
443  }
444 
447 
448  Show( false );
449 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:205
#define NULL
bool IsQuasiModal()
Definition: dialog_shim.h:124
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:208

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

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_COMPONENTS_LIBID::onCancel(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ FinishDialogSettings()

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 137 of file dialog_shim.cpp.

138 {
139  // must be called from the constructor of derived classes,
140  // when all widgets are initialized, and therefore their size fixed
141 
142  // SetSizeHints fixes the minimal size of sizers in the dialog
143  // (SetSizeHints calls Fit(), so no need to call it)
144  GetSizer()->SetSizeHints( this );
145 
146  // the default position, when calling the first time the dlg
147  Center();
148 }

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_EDITOR_DATA::DIALOG_EDITOR_DATA(), 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_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS(), DIALOG_FP_BROWSER_DISPLAY_OPTIONS::DIALOG_FP_BROWSER_DISPLAY_OPTIONS(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), 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_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), DIALOG_COLOR_PICKER::TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ focusOnItem()

bool DIALOG_DRC_CONTROL::focusOnItem ( const DRC_ITEM aItem)
private

Definition at line 315 of file dialog_drc.cpp.

316 {
317  if( !aItem )
318  return false;
319 
320  auto toolmgr = m_brdEditor->GetToolManager();
321  auto pos = aItem->GetPointA();
322  auto marker = static_cast<MARKER_PCB*>( aItem->GetParent() );
323 
324  if( marker )
325  {
326  pos = marker->GetPos();
327 
328  toolmgr->RunAction( PCB_ACTIONS::selectionClear, true );
329  toolmgr->RunAction( PCB_ACTIONS::selectItem, true, marker );
330  }
331 
332  m_brdEditor->FocusOnLocation( pos, true );
334 
335  return true;
336 }
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:73
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
MARKER_BASE * GetParent() const
Definition: drc_item.h:165
const wxPoint & GetPointA() const
Definition: drc_item.h:226
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
void FocusOnLocation(const wxPoint &aPos, bool aCenterView=false)
Useful to focus on a particular location, in find functions Move the graphic cursor (crosshair cursor...
static TOOL_ACTION selectItem
Selects an item (specified as the event parameter).
Definition: pcb_actions.h:76
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164

References EDA_DRAW_FRAME::FocusOnLocation(), PCB_BASE_FRAME::GetCanvas(), DRC_ITEM::GetParent(), DRC_ITEM::GetPointA(), EDA_BASE_FRAME::GetToolManager(), m_brdEditor, EDA_DRAW_PANEL_GAL::Refresh(), PCB_ACTIONS::selectionClear, and PCB_ACTIONS::selectItem.

Referenced by OnDeleteOneClick(), OnFootprintsSelectionEvent(), OnLeftDClickClearance(), OnLeftDClickFootprints(), OnLeftDClickUnconnected(), OnLeftUpClearance(), OnLeftUpUnconnected(), OnMarkerSelectionEvent(), and OnUnconnectedSelectionEvent().

◆ GetRptSettings()

void DIALOG_DRC_CONTROL::GetRptSettings ( bool *  aEnable,
wxString &  aFileName 
)

Definition at line 161 of file dialog_drc.cpp.

162 {
163  *aEnable = m_CreateRptCtrl->GetValue();
164  aFileName = m_RptFilenameCtrl->GetValue();
165 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl

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

Referenced by DRC::DestroyDRCDialog().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( )
inlineinherited

Definition at line 49 of file kiway_holder.h.

49 { return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:82

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and GERBVIEW_FRAME::SaveSettings().

◆ GetUserUnits()

◆ HorizPixelsFromDU()

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 158 of file dialog_shim.cpp.

159 {
160  wxSize sz( x, 0 );
161  return ConvertDialogToPixels( sz ).x;
162 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT().

◆ InitValues()

void DIALOG_DRC_CONTROL::InitValues ( )
private

Definition at line 119 of file dialog_drc.cpp.

120 {
121  m_markersTitleTemplate = m_Notebook->GetPageText( 0 );
122  m_unconnectedTitleTemplate = m_Notebook->GetPageText( 1 );
123  m_footprintsTitleTemplate = m_Notebook->GetPageText( 2 );
124 
125  m_DeleteCurrentMarkerButton->Enable( false );
126 
128 
129  // read options
130  bool value;
131  m_config->Read( DrcRefillZonesKey, &value, false );
132  m_cbRefillZones->SetValue( value );
133  m_config->Read( DrcTrackToZoneTestKey, &value, false );
134  m_cbReportTracksToZonesErrors->SetValue( value );
135  m_config->Read( DrcTestFootprintsKey, &value, false );
136  m_cbTestFootprints->SetValue( value );
137 
138  Layout(); // adding the units above expanded Clearance text, now resize.
139 
140  SetFocus();
141 }
wxCheckBox * m_cbTestFootprints
wxCheckBox * m_cbRefillZones
wxCheckBox * m_cbReportTracksToZonesErrors
wxButton * m_DeleteCurrentMarkerButton
#define DrcTestFootprintsKey
Definition: dialog_drc.cpp:47
wxString m_unconnectedTitleTemplate
Definition: dialog_drc.h:168
wxString m_footprintsTitleTemplate
Definition: dialog_drc.h:169
wxString m_markersTitleTemplate
Definition: dialog_drc.h:167
wxConfigBase * m_config
Definition: dialog_drc.h:165
#define DrcRefillZonesKey
Definition: dialog_drc.cpp:45
#define DrcTrackToZoneTestKey
Definition: dialog_drc.cpp:46

References DisplayDRCValues(), DrcRefillZonesKey, DrcTestFootprintsKey, DrcTrackToZoneTestKey, DIALOG_DRC_CONTROL_BASE::m_cbRefillZones, DIALOG_DRC_CONTROL_BASE::m_cbReportTracksToZonesErrors, DIALOG_DRC_CONTROL_BASE::m_cbTestFootprints, m_config, DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, m_footprintsTitleTemplate, m_markersTitleTemplate, DIALOG_DRC_CONTROL_BASE::m_Notebook, and m_unconnectedTitleTemplate.

Referenced by DIALOG_DRC_CONTROL().

◆ IsCtrl()

static bool DIALOG_SHIM::IsCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 137 of file dialog_shim.h.

138  {
139  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
140  !e.ShiftDown() && !e.MetaDown();
141  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook(), and DIALOG_LABEL_EDITOR::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

static bool DIALOG_SHIM::IsShiftCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 143 of file dialog_shim.h.

144  {
145  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
146  e.ShiftDown() && !e.MetaDown();
147  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook(), and DIALOG_LABEL_EDITOR::OnCharHook().

◆ Kiway()

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 56 of file kiway_holder.h.

57  {
58  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
59  return *m_kiway;
60  }
KIWAY * m_kiway
Definition: kiway_holder.h:81

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), SCH_EDIT_FRAME::CreateScreens(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), CVPCB_MAINFRAME::DisplayStatus(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), EDIT_TOOL::EditFpInFpEditor(), SCH_EDIT_FRAME::EditSheet(), SCH_EDITOR_CONTROL::EditWithLibEdit(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::InitSheet(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadSheetFromFile(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), LIB_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDITOR_CONTROL::Paste(), KIWAY_HOLDER::Prj(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ makeValidFileNameReport()

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 542 of file dialog_drc.cpp.

543 {
544  wxFileName fn = m_RptFilenameCtrl->GetValue();
545 
546  if( !fn.HasExt() )
547  {
548  fn.SetExt( ReportFileExtension );
549  m_RptFilenameCtrl->SetValue( fn.GetFullPath() );
550  }
551 
552  // Ensure it is an absolute filename. if it is given relative
553  // it will be made relative to the project
554  if( !fn.IsAbsolute() )
555  {
556  wxString prj_path = Prj().GetProjectPath();
557  fn.MakeAbsolute( prj_path );
558  }
559 
560  return fn.GetFullPath();
561 }
wxTextCtrl * m_RptFilenameCtrl
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:102
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
const std::string ReportFileExtension

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

Referenced by OnStartdrcClick().

◆ OnActivateDlg()

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 90 of file dialog_drc.cpp.

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

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

◆ OnButtonBrowseRptFileClick()

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 237 of file dialog_drc.cpp.

238 {
239  wxFileName fn = m_brdEditor->GetBoard()->GetFileName();
240  fn.SetExt( ReportFileExtension );
241  wxString prj_path = Prj().GetProjectPath();
242 
243  wxFileDialog dlg( this, _( "Save DRC Report File" ), prj_path, fn.GetFullName(),
244  ReportFileWildcard(), wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
245 
246  if( dlg.ShowModal() == wxID_CANCEL )
247  return;
248 
249  m_CreateRptCtrl->SetValue( true );
250  m_RptFilenameCtrl->SetValue( dlg.GetPath() );
251 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
const wxString & GetFileName() const
Definition: class_board.h:215
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:102
wxString ReportFileWildcard()
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
const std::string ReportFileExtension
#define _(s)
Definition: 3d_actions.cpp:31
BOARD * GetBoard() const
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164

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

Referenced by OnStartdrcClick().

◆ OnCancelClick()

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 254 of file dialog_drc.cpp.

255 {
256  SetReturnCode( wxID_CANCEL );
258 
259  // The dialog can be modal or not modal.
260  // Leave the DRC caller destroy (or not) the dialog
261  m_tester->DestroyDRCDialog( wxID_CANCEL );
262 }
void DestroyDRCDialog(int aReason)
Deletes this ui dialog box and zeros out its pointer to remember the state of the dialog's existence.

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

◆ OnChangingMarkerList()

void DIALOG_DRC_CONTROL::OnChangingMarkerList ( wxNotebookEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 460 of file dialog_drc.cpp.

461 {
462  // Shouldn't be necessary, but is on at least OSX
463  if( event.GetSelection() >= 0 )
464  m_Notebook->ChangeSelection( (unsigned) event.GetSelection() );
465 
466  m_DeleteCurrentMarkerButton->Enable( false );
467  m_ClearanceListBox->SetSelection( -1 );
468  m_UnconnectedListBox->SetSelection( -1 );
469 }
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox

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.

◆ OnDeleteAllClick()

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 229 of file dialog_drc.cpp.

230 {
231  DelDRCMarkers();
232  RedrawDrawPanel();
234 }
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:662

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

◆ OnDeleteOneClick()

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 610 of file dialog_drc.cpp.

611 {
612  ssize_t selectedIndex;
613  int curTab = m_Notebook->GetSelection();
614 
615  if( curTab == 0 )
616  {
617  selectedIndex = m_ClearanceListBox->GetSelection();
618 
619  if( selectedIndex != wxNOT_FOUND )
620  {
621  // Clear the selection. It may be the selected DRC marker.
623 
624  ssize_t newIndex = wxNOT_FOUND;
625 
626  if( m_ClearanceListBox->GetItemCount() > 1 )
627  {
628  newIndex = std::min( selectedIndex,
629  static_cast<ssize_t>( m_ClearanceListBox->GetItemCount() - 2 ) );
630  }
631 
632  m_ClearanceListBox->DeleteItem( selectedIndex );
633 
634  if( newIndex != wxNOT_FOUND )
635  {
636  focusOnItem( m_ClearanceListBox->GetItem( newIndex ) );
637  m_ClearanceListBox->SetSelection( newIndex );
638  }
639 
640  // redraw the pcb
641  RedrawDrawPanel();
642  }
643  }
644  else if( curTab == 1 )
645  {
646  selectedIndex = m_UnconnectedListBox->GetSelection();
647 
648  if( selectedIndex != wxNOT_FOUND )
649  {
650  m_UnconnectedListBox->DeleteItem( selectedIndex );
651 
652  /* these unconnected DRC_ITEMs are not currently visible on the pcb
653  * RedrawDrawPanel();
654  */
655  }
656  }
657 
659 }
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:73
void DeleteItem(int aIndex)
Function DeleteElement will delete one of the items in the list.
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
void UpdateDisplayedCounts()
Definition: dialog_drc.cpp:662
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Function RunAction() Runs the specified action.
Definition: tool_manager.h:109
DRCLISTBOX * m_UnconnectedListBox
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164

References DRCLISTBOX::DeleteItem(), focusOnItem(), DRCLISTBOX::GetItem(), EDA_BASE_FRAME::GetToolManager(), m_brdEditor, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DIALOG_DRC_CONTROL_BASE::m_Notebook, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, RedrawDrawPanel(), TOOL_MANAGER::RunAction(), PCB_ACTIONS::selectionClear, and UpdateDisplayedCounts().

◆ OnFootprintsSelectionEvent()

void DIALOG_DRC_CONTROL::OnFootprintsSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 506 of file dialog_drc.cpp.

507 {
508  int selection = event.GetSelection();
509 
510  if( selection != wxNOT_FOUND )
511  {
512  // until a MARKER is selected, this button is not enabled.
513  m_DeleteCurrentMarkerButton->Enable( true );
514 
515  // Find the selected DRC_ITEM in the listbox, position cursor there.
516  focusOnItem( m_FootprintsListBox->GetItem( selection ) );
517  }
518 
519  event.Skip();
520 }
wxButton * m_DeleteCurrentMarkerButton
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315
DRCLISTBOX * m_FootprintsListBox

References focusOnItem(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, and DIALOG_DRC_CONTROL_BASE::m_FootprintsListBox.

◆ OnLeftDClickClearance()

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 278 of file dialog_drc.cpp.

279 {
280  event.Skip();
281 
282  int selection = m_ClearanceListBox->GetSelection();
283 
284  if( selection != wxNOT_FOUND )
285  {
286  if( focusOnItem( m_ClearanceListBox->GetItem( selection ) ) )
287  {
288  // turn control over to m_brdEditor, hide this DIALOG_DRC_CONTROL window,
289  // no destruction so we can preserve listbox cursor
290  if( !IsModal() )
291  Show( false );
292  }
293  }
294 }
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315
bool Show(bool show) override

References focusOnItem(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, and DIALOG_SHIM::Show().

◆ OnLeftDClickFootprints()

void DIALOG_DRC_CONTROL::OnLeftDClickFootprints ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_LEFT_DCLICK event handler for ID_FOOTPRINTS_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 413 of file dialog_drc.cpp.

414 {
415  event.Skip();
416 
417  int selection = m_FootprintsListBox->GetSelection();
418 
419  if( selection != wxNOT_FOUND )
420  {
421  // Find the selected DRC_ITEM in the listbox, position cursor there.
422  // Then hide the dialog.
423  if( focusOnItem( m_FootprintsListBox->GetItem( selection ) ) )
424  {
425  if( !IsModal() )
426  Show( false );
427  }
428  }
429 }
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315
bool Show(bool show) override
DRCLISTBOX * m_FootprintsListBox

References focusOnItem(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_FootprintsListBox, and DIALOG_SHIM::Show().

◆ OnLeftDClickUnconnected()

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 432 of file dialog_drc.cpp.

433 {
434  event.Skip();
435 
436  int selection = m_UnconnectedListBox->GetSelection();
437 
438  if( selection != wxNOT_FOUND )
439  {
440  if( focusOnItem( m_UnconnectedListBox->GetItem( selection ) ) )
441  {
442  // turn control over to m_brdEditor, hide this DIALOG_DRC_CONTROL window,
443  // no destruction so we can preserve listbox cursor
444  if( !IsModal() )
445  Show( false );
446  }
447  }
448 }
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315
bool Show(bool show) override

References focusOnItem(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, and DIALOG_SHIM::Show().

◆ OnLeftUpClearance()

void DIALOG_DRC_CONTROL::OnLeftUpClearance ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_LEFT_UP event handler for ID_CLEARANCE_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 306 of file dialog_drc.cpp.

307 {
308  int selection = m_ClearanceListBox->GetSelection();
309 
310  if( selection != wxNOT_FOUND )
311  focusOnItem( m_ClearanceListBox->GetItem( selection ) );
312 }
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315

References focusOnItem(), DRCLISTBOX::GetItem(), and DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox.

◆ OnLeftUpUnconnected()

void DIALOG_DRC_CONTROL::OnLeftUpUnconnected ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_LEFT_UP event handler for ID_UNCONNECTED_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 451 of file dialog_drc.cpp.

452 {
453  int selection = m_UnconnectedListBox->GetSelection();
454 
455  if( selection != wxNOT_FOUND )
456  focusOnItem( m_UnconnectedListBox->GetItem( selection ) );
457 }
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315

References focusOnItem(), DRCLISTBOX::GetItem(), and DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox.

◆ OnMarkerSelectionEvent()

void DIALOG_DRC_CONTROL::OnMarkerSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 472 of file dialog_drc.cpp.

473 {
474  int selection = event.GetSelection();
475 
476  if( selection != wxNOT_FOUND )
477  {
478  // until a MARKER is selected, this button is not enabled.
479  m_DeleteCurrentMarkerButton->Enable( true );
480 
481  // Find the selected DRC_ITEM in the listbox, position cursor there.
482  focusOnItem( m_ClearanceListBox->GetItem( selection ) );
483  }
484 
485  event.Skip();
486 }
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315

References focusOnItem(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, and DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton.

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 320 of file dialog_shim.cpp.

321 {
322  if( m_firstPaintEvent )
323  {
324 #ifdef __WXMAC__
325  fixOSXCancelButtonIssue( this );
326 #endif
327 
328  selectAllInTextCtrls( GetChildren() );
329 
331  m_initialFocusTarget->SetFocus();
332  else
333  SetFocus(); // Focus the dialog itself
334 
335  m_firstPaintEvent = false;
336  }
337 
338  event.Skip();
339 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:203
bool m_firstPaintEvent
Definition: dialog_shim.h:202
static void selectAllInTextCtrls(wxWindowList &children)

References DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnReportCheckBoxClicked()

void DIALOG_DRC_CONTROL::OnReportCheckBoxClicked ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_RPT_FILE

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 265 of file dialog_drc.cpp.

266 {
267  if( m_CreateRptCtrl->IsChecked() )
268  m_RptFilenameCtrl->SetFocus();
269 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl

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

◆ OnReportFilenameEdited()

void DIALOG_DRC_CONTROL::OnReportFilenameEdited ( wxCommandEvent &  event)
overrideprivatevirtual

wxEVT_COMMAND_TEXT_UPDATED event handler for m_RptFilenameCtrl

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 272 of file dialog_drc.cpp.

273 {
274  m_CreateRptCtrl->SetValue( event.GetString().Length() );
275 }
wxCheckBox * m_CreateRptCtrl

References DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl.

◆ OnRightUpClearance()

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 372 of file dialog_drc.cpp.

373 {
374  // popup menu to go to either of the items listed in the DRC_ITEM.
375  int selection = rightUpClicSelection( m_ClearanceListBox, event );
376 
377  if( selection != wxNOT_FOUND )
378  doSelectionMenu( m_ClearanceListBox->GetItem( selection ) );
379 }
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
int rightUpClicSelection(DRCLISTBOX *aListBox, wxMouseEvent &event)
Definition: dialog_drc.cpp:339
void doSelectionMenu(const DRC_ITEM *aItem)
Run the SELECTION_TOOL's disambiguation menu to highlight the two BOARD_ITEMs in the DRC_ITEM.
Definition: dialog_drc.cpp:382

References doSelectionMenu(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, and rightUpClicSelection().

◆ OnRightUpFootprints()

void DIALOG_DRC_CONTROL::OnRightUpFootprints ( wxMouseEvent &  event)
overrideprivatevirtual

wxEVT_RIGHT_UP event handler for ID_FOOTPRINTS_LIST

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 297 of file dialog_drc.cpp.

298 {
299  int selection = rightUpClicSelection( m_FootprintsListBox, event );
300 
301  if( selection != wxNOT_FOUND )
303 }
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
int rightUpClicSelection(DRCLISTBOX *aListBox, wxMouseEvent &event)
Definition: dialog_drc.cpp:339
void doSelectionMenu(const DRC_ITEM *aItem)
Run the SELECTION_TOOL's disambiguation menu to highlight the two BOARD_ITEMs in the DRC_ITEM.
Definition: dialog_drc.cpp:382
DRCLISTBOX * m_FootprintsListBox

References doSelectionMenu(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_FootprintsListBox, and rightUpClicSelection().

◆ OnRightUpUnconnected()

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 362 of file dialog_drc.cpp.

363 {
364  // popup menu to go to either of the items listed in the DRC_ITEM.
365  int selection = rightUpClicSelection( m_UnconnectedListBox, event );
366 
367  if( selection != wxNOT_FOUND )
369 }
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
int rightUpClicSelection(DRCLISTBOX *aListBox, wxMouseEvent &event)
Definition: dialog_drc.cpp:339
void doSelectionMenu(const DRC_ITEM *aItem)
Run the SELECTION_TOOL's disambiguation menu to highlight the two BOARD_ITEMs in the DRC_ITEM.
Definition: dialog_drc.cpp:382

References doSelectionMenu(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, and rightUpClicSelection().

◆ OnStartdrcClick()

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 168 of file dialog_drc.cpp.

169 {
170  wxString reportName, msg;
171 
172  bool make_report = m_CreateRptCtrl->IsChecked();
173 
174  if( make_report ) // Create a rpt file
175  {
176  reportName = m_RptFilenameCtrl->GetValue();
177 
178  if( reportName.IsEmpty() )
179  {
180  wxCommandEvent dummy;
182  }
183 
184  if( !reportName.IsEmpty() )
185  reportName = makeValidFileNameReport();
186  }
187 
190  m_tester->m_rptFilename = reportName;
191  m_tester->m_doCreateRptFile = make_report;
192  m_tester->m_refillZones = m_cbRefillZones->GetValue();
195 
196  DelDRCMarkers();
197 
198  wxBeginBusyCursor();
199  wxWindowDisabler disabler;
200 
201  // run all the tests, with no UI at this time.
202  m_Messages->Clear();
203  wxSafeYield(); // Allows time slice to refresh the Messages
205  m_Notebook->ChangeSelection( 0 ); // display the "Problems/Markers" tab
206 
207  // Generate the report
208  if( !reportName.IsEmpty() )
209  {
210  if( writeReport( reportName ) )
211  {
212  msg.Printf( _( "Report file \"%s\" created" ), GetChars( reportName ) );
213  wxMessageDialog popupWindow( this, msg, _( "Disk File Report Completed" ) );
214  popupWindow.ShowModal();
215  }
216  else
217  {
218  msg.Printf( _( "Unable to create report file \"%s\"" ), GetChars( reportName ) );
219  DisplayError( this, msg );
220  }
221  }
222 
223  wxEndBusyCursor();
224 
225  RedrawDrawPanel();
226 }
bool m_refillZones
Definition: drc.h:205
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:236
bool m_doCreateRptFile
Definition: drc.h:204
wxCheckBox * m_cbTestFootprints
wxCheckBox * m_cbRefillZones
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl
wxCheckBox * m_cbReportTracksToZonesErrors
const wxString makeValidFileNameReport()
filenames can be entered by name.
Definition: dialog_drc.cpp:542
bool m_testFootprints
Definition: drc.h:207
bool m_doZonesTest
Definition: drc.h:202
bool m_reportAllTrackErrors
Definition: drc.h:206
void OnButtonBrowseRptFileClick(wxCommandEvent &event) override
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_BROWSE_RPT_FILE
Definition: dialog_drc.cpp:237
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:564
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:101
wxString m_rptFilename
Definition: drc.h:209
static LIB_PART * dummy()
Used to draw a dummy shape when a LIB_PART is not found in library.
#define _(s)
Definition: 3d_actions.cpp:31
void RunTests(wxTextCtrl *aMessages=NULL)
Run all the tests specified with a previous call to SetSettings()

References _, DelDRCMarkers(), DisplayError(), dummy(), GetChars(), DIALOG_DRC_CONTROL_BASE::m_cbRefillZones, DIALOG_DRC_CONTROL_BASE::m_cbReportAllTrackErrors, DIALOG_DRC_CONTROL_BASE::m_cbReportTracksToZonesErrors, DIALOG_DRC_CONTROL_BASE::m_cbTestFootprints, DIALOG_DRC_CONTROL_BASE::m_CreateRptCtrl, DRC::m_doCreateRptFile, DRC::m_doZonesTest, DIALOG_DRC_CONTROL_BASE::m_Messages, DIALOG_DRC_CONTROL_BASE::m_Notebook, DRC::m_refillZones, DRC::m_reportAllTrackErrors, DRC::m_rptFilename, DIALOG_DRC_CONTROL_BASE::m_RptFilenameCtrl, m_tester, DRC::m_testFootprints, makeValidFileNameReport(), OnButtonBrowseRptFileClick(), RedrawDrawPanel(), DRC::RunTests(), SetDRCParameters(), and writeReport().

◆ OnUnconnectedSelectionEvent()

void DIALOG_DRC_CONTROL::OnUnconnectedSelectionEvent ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_CONTROL_BASE.

Definition at line 489 of file dialog_drc.cpp.

490 {
491  int selection = event.GetSelection();
492 
493  if( selection != wxNOT_FOUND )
494  {
495  // until a MARKER is selected, this button is not enabled.
496  m_DeleteCurrentMarkerButton->Enable( true );
497 
498  // Find the selected DRC_ITEM in the listbox, position cursor there.
499  focusOnItem( m_UnconnectedListBox->GetItem( selection ) );
500  }
501 
502  event.Skip();
503 }
wxButton * m_DeleteCurrentMarkerButton
DRCLISTBOX * m_UnconnectedListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
bool focusOnItem(const DRC_ITEM *aItem)
Definition: dialog_drc.cpp:315

References focusOnItem(), DRCLISTBOX::GetItem(), DIALOG_DRC_CONTROL_BASE::m_DeleteCurrentMarkerButton, and DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox.

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

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

Definition at line 35 of file kiway_holder.cpp.

36 {
37  return Kiway().Prj();
38 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_holder.h:56
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:171

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), LIB_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), KICAD_MANAGER_FRAME::CreateNewProject(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), 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_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PCB_EDIT_FRAME::doAutoSave(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), LIB_CONTROL::ExportSymbolAsSVG(), LIB_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::GetSelectedSymbol(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectFile(), CVPCB_MAINFRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), makeValidFileNameReport(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), DIALOG_SCH_SHEET_PROPS::OnBrowseClicked(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), MODULE_EDITOR_TOOLS::PasteFootprint(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), SCH_DRAWING_TOOLS::PlaceComponent(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Print(), SCH_EDIT_FRAME::PrintPage(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDIT_FRAME::RescueLegacyProject(), SCH_EDIT_FRAME::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), SCH_EDIT_FRAME::SaveProject(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), LIB_EDIT_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), KICAD_MANAGER_FRAME::SetProjectFileName(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::UpdateTitle(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME().

◆ RedrawDrawPanel()

void DIALOG_DRC_CONTROL::RedrawDrawPanel ( )
private

Definition at line 523 of file dialog_drc.cpp.

524 {
525  WINDOW_THAWER thawer( m_brdEditor );
526 
528 }
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164

References PCB_BASE_FRAME::GetCanvas(), m_brdEditor, and EDA_DRAW_PANEL_GAL::Refresh().

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

◆ ResetSize()

void DIALOG_SHIM::ResetSize ( )
protectedinherited

Clear the existing dialog size and position.

This will cause the dialog size to be clear so the next time the dialog is shown the sizers will layout the dialog accordingly. This useful when there are dialog windows that size changes due to layout dependency hidden controls.

Definition at line 237 of file dialog_shim.cpp.

238 {
239  const char* hash_key;
240 
241  if( m_hash_key.size() )
242  {
243  // a special case like EDA_LIST_DIALOG, which has multiple uses.
244  hash_key = m_hash_key.c_str();
245  }
246  else
247  {
248  hash_key = typeid(*this).name();
249  }
250 
251  RECT_MAP::iterator it = class_map.find( hash_key );
252 
253  if( it == class_map.end() )
254  return;
255 
256  EDA_RECT rect = it->second;
257  rect.SetSize( 0, 0 );
258  class_map[ hash_key ] = rect;
259 }
std::string m_hash_key
Definition: dialog_shim.h:197
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:144
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44

References class_map, DIALOG_SHIM::m_hash_key, and EDA_RECT::SetSize().

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY().

◆ rightUpClicSelection()

int DIALOG_DRC_CONTROL::rightUpClicSelection ( DRCLISTBOX aListBox,
wxMouseEvent &  event 
)
private
Returns
the selection on a right click on a DRCLISTBOX return wxNOT_FOUND if no selection

Definition at line 339 of file dialog_drc.cpp.

340 {
341 #if wxCHECK_VERSION( 3, 1, 3 )
342  // wxWidgets 3.1.3 has a bug in HitTest(): one cannot have the item selection
343  // on a right click: the returned value is always 10 so do not try to select
344  // an item on the right click. Just use the current selection (if any)
345  int selection = aListBox->GetSelection();
346 #else
347  // Check if user right-clicked on a different item, and select the right clicked item
348  int selection = aListBox->HitTest( event.GetPosition() );
349 
350  if( selection >= (int) aListBox->GetItemCount() ) // Should not happen.
351  selection = wxNOT_FOUND;
352 #endif
353  if( selection == wxNOT_FOUND )
354  selection = aListBox->GetSelection();
355  else if( aListBox->GetSelection() != selection )
356  aListBox->SetSelection( selection );
357 
358  return selection;
359 }

Referenced by OnRightUpClearance(), OnRightUpFootprints(), and OnRightUpUnconnected().

◆ SetDRCParameters()

void DIALOG_DRC_CONTROL::SetDRCParameters ( )
private

Definition at line 144 of file dialog_drc.cpp.

145 {
149 
151 }
UNIT_BINDER m_viaMinSize
Definition: dialog_drc.h:172
BOARD_DESIGN_SETTINGS m_BrdSettings
Definition: dialog_drc.h:54
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:540
int m_MicroViasMinSize
micro vias (not vias) min diameter
UNIT_BINDER m_uviaMinSize
Definition: dialog_drc.h:173
UNIT_BINDER m_trackMinWidth
Definition: dialog_drc.h:171
virtual long long int GetValue()
Function GetValue Returns the current value in Internal Units.
BOARD * GetBoard() const
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164

References PCB_BASE_FRAME::GetBoard(), UNIT_BINDER::GetValue(), m_brdEditor, m_BrdSettings, BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, m_trackMinWidth, BOARD_DESIGN_SETTINGS::m_TrackMinWidth, m_uviaMinSize, m_viaMinSize, BOARD_DESIGN_SETTINGS::m_ViasMinSize, and BOARD::SetDesignSettings().

Referenced by OnCancelClick(), and OnStartdrcClick().

◆ SetInitialFocus()

void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 115 of file dialog_shim.h.

116  {
117  m_initialFocusTarget = aWindow;
118  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:203

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), LIB_EDIT_FRAME::savePartAs(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ SetKiway()

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 42 of file kiway_holder.cpp.

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

References KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), InvokePcbLibTableEditor(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetRptSettings()

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 154 of file dialog_drc.cpp.

155 {
156  m_RptFilenameCtrl->SetValue( aFileName );
157  m_CreateRptCtrl->SetValue( aEnable );
158 }
wxCheckBox * m_CreateRptCtrl
wxTextCtrl * m_RptFilenameCtrl

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

Referenced by DRC::ShowDRCDialog().

◆ SetSizeInDU()

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 151 of file dialog_shim.cpp.

152 {
153  wxSize sz( x, y );
154  SetSize( ConvertDialogToPixels( sz ) );
155 }

Referenced by DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 178 of file dialog_shim.cpp.

179 {
180  bool ret;
181  const char* hash_key;
182 
183  if( m_hash_key.size() )
184  {
185  // a special case like EDA_LIST_DIALOG, which has multiple uses.
186  hash_key = m_hash_key.c_str();
187  }
188  else
189  {
190  hash_key = typeid(*this).name();
191  }
192 
193  // Show or hide the window. If hiding, save current position and size.
194  // If showing, use previous position and size.
195  if( show )
196  {
197 #ifndef __WINDOWS__
198  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
199 #endif
200  ret = wxDialog::Show( show );
201 
202  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
203  EDA_RECT savedDialogRect = class_map[ hash_key ];
204 
205  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
206  {
207  SetSize( savedDialogRect.GetPosition().x,
208  savedDialogRect.GetPosition().y,
209  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
210  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
211  0 );
212  }
213 
214  // Be sure that the dialog appears in a visible area
215  // (the dialog position might have been stored at the time when it was
216  // shown on another display)
217  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
218  Centre();
219  }
220  else
221  {
222  // Save the dialog's position & size before hiding, using classname as key
223  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
224 
225 #ifdef __WXMAC__
226  if ( m_eventLoop )
227  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
228 #endif
229 
230  ret = wxDialog::Show( show );
231  }
232 
233  return ret;
234 }
std::string m_hash_key
Definition: dialog_shim.h:197
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:115
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
const wxSize GetSize() const
Definition: eda_rect.h:103

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

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), SCH_EDIT_FRAME::OnAnnotate(), OnLeftDClickClearance(), OnLeftDClickFootprints(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), OnLeftDClickUnconnected(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 365 of file dialog_shim.cpp.

366 {
367  // This is an exception safe way to zero a pointer before returning.
368  // Yes, even though DismissModal() clears this first normally, this is
369  // here in case there's an exception before the dialog is dismissed.
370  struct NULLER
371  {
372  void*& m_what;
373  NULLER( void*& aPtr ) : m_what( aPtr ) {}
374  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
375  } clear_this( (void*&) m_qmodal_loop );
376 
377  // release the mouse if it's currently captured as the window having it
378  // will be disabled when this dialog is shown -- but will still keep the
379  // capture making it impossible to do anything in the modal dialog itself
380  wxWindow* win = wxWindow::GetCapture();
381  if( win )
382  win->ReleaseMouse();
383 
384  // Get the optimal parent
385  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
386 
387  // Show the optimal parent
388  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
389 
390  wxASSERT_MSG( !m_qmodal_parent_disabler,
391  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
392 
393  // quasi-modal: disable only my "optimal" parent
395 
396 #ifdef __WXMAC__
397  // Apple in its infinite wisdom will raise a disabled window before even passing
398  // us the event, so we have no way to stop it. Instead, we must set an order on
399  // the windows so that the quasi-modal will be pushed in front of the disabled
400  // window when it is raised.
401  ReparentQuasiModal();
402 #endif
403  Show( true );
404 
405  m_qmodal_showing = true;
406 
407  WX_EVENT_LOOP event_loop;
408 
409  m_qmodal_loop = &event_loop;
410 
411  event_loop.Run();
412 
413  m_qmodal_showing = false;
414 
415  return GetReturnCode();
416 }
bool m_qmodal_showing
Definition: dialog_shim.h:207
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:205
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:208
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:35
#define DBG(x)
Definition: fctsys.h:33

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

Referenced by LIB_EDIT_TOOL::editFieldProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), LIB_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_BASE_FRAME::SelectCompFromLibTree(), and PCB_BASE_FRAME::SelectFootprintFromLibTree().

◆ UpdateDisplayedCounts()

void DIALOG_DRC_CONTROL::UpdateDisplayedCounts ( )

Definition at line 662 of file dialog_drc.cpp.

663 {
664  wxString msg;
665 
666  if( m_tester->m_drcRun )
667  {
668  msg.sprintf( m_markersTitleTemplate, (int) m_ClearanceListBox->GetItemCount() );
669  m_Notebook->SetPageText( 0, msg );
670 
671  msg.sprintf( m_unconnectedTitleTemplate, (int) m_UnconnectedListBox->GetItemCount() );
672  m_Notebook->SetPageText( 1, msg );
673 
675  msg.sprintf( m_footprintsTitleTemplate, (int) m_FootprintsListBox->GetItemCount() );
676  else
677  {
679  msg.Replace( wxT( "%d" ), _( "not run" ) );
680  }
681  m_Notebook->SetPageText( 2, msg );
682  }
683  else
684  {
686  msg.Replace( wxT( "(%d)" ), wxEmptyString );
687  m_Notebook->SetPageText( 0, msg );
688 
690  msg.Replace( wxT( "(%d)" ), wxEmptyString );
691  m_Notebook->SetPageText( 1, msg );
692 
694  msg.Replace( wxT( "(%d)" ), wxEmptyString );
695  m_Notebook->SetPageText( 2, msg );
696  }
697 }
DRCLISTBOX * m_UnconnectedListBox
wxString m_unconnectedTitleTemplate
Definition: dialog_drc.h:168
wxString m_footprintsTitleTemplate
Definition: dialog_drc.h:169
wxString m_markersTitleTemplate
Definition: dialog_drc.h:167
DRCLISTBOX * m_ClearanceListBox
bool m_drcRun
Definition: drc.h:244
bool m_footprintsTested
Definition: drc.h:245
#define _(s)
Definition: 3d_actions.cpp:31
DRCLISTBOX * m_FootprintsListBox

References _, DIALOG_DRC_CONTROL_BASE::m_ClearanceListBox, DRC::m_drcRun, DIALOG_DRC_CONTROL_BASE::m_FootprintsListBox, DRC::m_footprintsTested, m_footprintsTitleTemplate, m_markersTitleTemplate, DIALOG_DRC_CONTROL_BASE::m_Notebook, m_tester, DIALOG_DRC_CONTROL_BASE::m_UnconnectedListBox, and m_unconnectedTitleTemplate.

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

◆ VertPixelsFromDU()

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 165 of file dialog_shim.cpp.

166 {
167  wxSize sz( 0, y );
168  return ConvertDialogToPixels( sz ).y;
169 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT().

◆ writeReport()

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 564 of file dialog_drc.cpp.

565 {
566  FILE* fp = wxFopen( aFullFileName, wxT( "w" ) );
567 
568  if( fp == NULL )
569  return false;
570 
571  int count;
572  EDA_UNITS units = GetUserUnits();
573 
574  fprintf( fp, "** Drc report for %s **\n", TO_UTF8( m_brdEditor->GetBoard()->GetFileName() ) );
575 
576  wxDateTime now = wxDateTime::Now();
577 
578  fprintf( fp, "** Created on %s **\n", TO_UTF8( now.Format( wxT( "%F %T" ) ) ) );
579 
580  count = m_ClearanceListBox->GetItemCount();
581 
582  fprintf( fp, "\n** Found %d DRC errors **\n", count );
583 
584  for( int i = 0; i < count; ++i )
585  fprintf( fp, "%s", TO_UTF8( m_ClearanceListBox->GetItem( i )->ShowReport( units ) ) );
586 
587  count = m_UnconnectedListBox->GetItemCount();
588 
589  fprintf( fp, "\n** Found %d unconnected pads **\n", count );
590 
591  for( int i = 0; i < count; ++i )
592  fprintf( fp, "%s", TO_UTF8( m_UnconnectedListBox->GetItem( i )->ShowReport( units ) ) );
593 
594  count = m_FootprintsListBox->GetItemCount();
595 
596  fprintf( fp, "\n** Found %d Footprint errors **\n", count );
597 
598  for( int i = 0; i < count; ++i )
599  fprintf( fp, "%s", TO_UTF8( m_FootprintsListBox->GetItem( i )->ShowReport( units ) ) );
600 
601 
602  fprintf( fp, "\n** End of Report **\n" );
603 
604  fclose( fp );
605 
606  return true;
607 }
EDA_UNITS
Definition: common.h:72
const wxString & GetFileName() const
Definition: class_board.h:215
DRCLISTBOX * m_UnconnectedListBox
EDA_UNITS GetUserUnits() const
Definition: dialog_shim.h:132
#define TO_UTF8(wxstring)
Macro TO_UTF8 converts a wxString to a UTF8 encoded C string for all wxWidgets build modes.
Definition: macros.h:48
#define NULL
DRCLISTBOX * m_ClearanceListBox
const DRC_ITEM * GetItem(int aIndex)
Function GetItem returns a requested DRC_ITEM* or NULL.
DRCLISTBOX * m_FootprintsListBox
BOARD * GetBoard() const
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:164
wxString ShowReport(EDA_UNITS aUnits) const
Function ShowReport translates this object into a text string suitable for saving to disk in a report...

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

Referenced by OnStartdrcClick().

Member Data Documentation

◆ m_brdEditor

◆ m_BrdSettings

BOARD_DESIGN_SETTINGS DIALOG_DRC_CONTROL::m_BrdSettings

Definition at line 54 of file dialog_drc.h.

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

◆ m_BrowseButton

wxBitmapButton* DIALOG_DRC_CONTROL_BASE::m_BrowseButton
protectedinherited

◆ m_cbRefillZones

wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbRefillZones
protectedinherited

◆ m_cbReportAllTrackErrors

wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbReportAllTrackErrors
protectedinherited

◆ m_cbReportTracksToZonesErrors

wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbReportTracksToZonesErrors
protectedinherited

◆ m_cbTestFootprints

wxCheckBox* DIALOG_DRC_CONTROL_BASE::m_cbTestFootprints
protectedinherited

◆ m_ClearanceListBox

◆ m_config

wxConfigBase* DIALOG_DRC_CONTROL::m_config
private

Definition at line 165 of file dialog_drc.h.

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

◆ m_CreateRptCtrl

◆ m_currentBoard

BOARD* DIALOG_DRC_CONTROL::m_currentBoard
private

Definition at line 162 of file dialog_drc.h.

Referenced by DIALOG_DRC_CONTROL(), and OnActivateDlg().

◆ m_DeleteAllMarkersButton

wxButton* DIALOG_DRC_CONTROL_BASE::m_DeleteAllMarkersButton
protectedinherited

◆ m_DeleteCurrentMarkerButton

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 202 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_FootprintsListBox

◆ m_footprintsTitleTemplate

wxString DIALOG_DRC_CONTROL::m_footprintsTitleTemplate
private

Definition at line 169 of file dialog_drc.h.

Referenced by InitValues(), and UpdateDisplayedCounts().

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 203 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

◆ m_markersTitleTemplate

wxString DIALOG_DRC_CONTROL::m_markersTitleTemplate
private

Definition at line 167 of file dialog_drc.h.

Referenced by InitValues(), and UpdateDisplayedCounts().

◆ m_Messages

wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_Messages
protectedinherited

◆ m_MicroViaMinTitle

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_MicroViaMinTitle
protectedinherited

Definition at line 58 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_MicroViaMinUnit

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_MicroViaMinUnit
protectedinherited

Definition at line 59 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_Notebook

◆ m_panelFootprintWarnings

wxPanel* DIALOG_DRC_CONTROL_BASE::m_panelFootprintWarnings
protectedinherited

Definition at line 70 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_panelViolations

wxPanel* DIALOG_DRC_CONTROL_BASE::m_panelViolations
protectedinherited

Definition at line 69 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 205 of file dialog_shim.h.

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

◆ m_qmodal_parent_disabler

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited

◆ m_qmodal_showing

bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 207 of file dialog_shim.h.

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

◆ m_RptFilenameCtrl

◆ m_sdbSizer1

wxStdDialogButtonSizer* DIALOG_DRC_CONTROL_BASE::m_sdbSizer1
protectedinherited

Definition at line 74 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_sdbSizer1Cancel

wxButton* DIALOG_DRC_CONTROL_BASE::m_sdbSizer1Cancel
protectedinherited

◆ m_sdbSizer1OK

wxButton* DIALOG_DRC_CONTROL_BASE::m_sdbSizer1OK
protectedinherited

◆ m_SetMicroViakMinSizeCtrl

wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetMicroViakMinSizeCtrl
inherited

Definition at line 104 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_SetTrackMinWidthCtrl

wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetTrackMinWidthCtrl
inherited

Definition at line 102 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_SetViaMinSizeCtrl

wxTextCtrl* DIALOG_DRC_CONTROL_BASE::m_SetViaMinSizeCtrl
inherited

Definition at line 103 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_sizerButtons

wxBoxSizer* DIALOG_DRC_CONTROL_BASE::m_sizerButtons
protectedinherited

◆ m_tabOrder

◆ m_tester

DRC* DIALOG_DRC_CONTROL::m_tester
private

◆ m_trackMinWidth

UNIT_BINDER DIALOG_DRC_CONTROL::m_trackMinWidth
private

Definition at line 171 of file dialog_drc.h.

Referenced by DisplayDRCValues(), and SetDRCParameters().

◆ m_TrackMinWidthTitle

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_TrackMinWidthTitle
protectedinherited

Definition at line 54 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_TrackMinWidthUnit

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_TrackMinWidthUnit
protectedinherited

Definition at line 55 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_UnconnectedListBox

◆ m_unconnectedTitleTemplate

wxString DIALOG_DRC_CONTROL::m_unconnectedTitleTemplate
private

Definition at line 168 of file dialog_drc.h.

Referenced by InitValues(), and UpdateDisplayedCounts().

◆ m_units

◆ m_uviaMinSize

UNIT_BINDER DIALOG_DRC_CONTROL::m_uviaMinSize
private

Definition at line 173 of file dialog_drc.h.

Referenced by DisplayDRCValues(), and SetDRCParameters().

◆ m_viaMinSize

UNIT_BINDER DIALOG_DRC_CONTROL::m_viaMinSize
private

Definition at line 172 of file dialog_drc.h.

Referenced by DisplayDRCValues(), and SetDRCParameters().

◆ m_ViaMinTitle

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_ViaMinTitle
protectedinherited

Definition at line 56 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().

◆ m_ViaMinUnit

wxStaticText* DIALOG_DRC_CONTROL_BASE::m_ViaMinUnit
protectedinherited

Definition at line 57 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_CONTROL_BASE::DIALOG_DRC_CONTROL_BASE().


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