KiCad PCB EDA Suite
DIALOG_COPPER_ZONE Class Reference
Inheritance diagram for DIALOG_COPPER_ZONE:
DIALOG_COPPER_ZONE_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_COPPER_ZONE (PCB_BASE_FRAME *aParent, ZONE_SETTINGS *aSettings)
 
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_T GetUserUnits () const override
 
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...
 
VTBL_ENTRY TOOL_MANAGERGetToolManager () const
 Function GetToolManager Return the tool manager instance, if any. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Protected Types

enum  {
  ID_DIALOG_COPPER_ZONE_BASE = 1000, ID_NETNAME_SELECTION, ID_TEXTCTRL_NETNAMES_FILTER, wxID_APPLY_FILTERS,
  ID_CORNER_SMOOTHING, ID_M_CORNERSMOOTHINGCTRL, ID_M_PRIORITYLEVELCTRL, ID_M_OUTLINEAPPEARANCECTRL,
  ID_M_PADINZONEOPT, wxID_ANTIPAD_SIZE, wxID_COPPER_BRIDGE_VALUE, wxID_BUTTON_EXPORT
}
 

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

wxBoxSizer * m_MainBoxSizer
 
wxDataViewListCtrl * m_layers
 
wxListBox * m_ListNetNameSelection
 
wxStaticText * m_staticTextDisplay
 
wxTextCtrl * m_DoNotShowNetNameFilter
 
wxStaticText * m_staticTextVFilter
 
wxTextCtrl * m_ShowNetNameFilter
 
wxButton * m_buttonRunFilter
 
wxCheckBox * m_showAllNetsOpt
 
wxCheckBox * m_sortByPadsOpt
 
wxBoxSizer * m_bNoNetWarning
 
wxStaticBitmap * m_bitmapNoNetWarning
 
wxStaticText * m_staticText18
 
wxCheckBox * m_constrainOutline
 
wxStaticText * m_staticTextSmoothing
 
wxChoice * m_cornerSmoothingChoice
 
wxStaticText * m_cornerRadiusLabel
 
wxTextCtrl * m_cornerRadiusCtrl
 
wxStaticText * m_cornerRadiusUnits
 
wxStaticText * m_staticTextPriorityLevel
 
wxSpinCtrl * m_PriorityLevelCtrl
 
wxStaticText * m_staticTextStyle
 
wxChoice * m_OutlineAppearanceCtrl
 
wxStaticText * m_clearanceLabel
 
wxTextCtrl * m_clearanceCtrl
 
wxStaticText * m_clearanceUnits
 
wxStaticText * m_minWidthLabel
 
wxTextCtrl * m_minWidthCtrl
 
wxStaticText * m_minWidthUnits
 
wxStaticText * m_connectionLabel
 
wxChoice * m_PadInZoneOpt
 
wxStaticText * m_antipadLabel
 
wxTextCtrl * m_antipadCtrl
 
wxStaticText * m_antipadUnits
 
wxStaticText * m_spokeWidthLabel
 
wxTextCtrl * m_spokeWidthCtrl
 
wxStaticText * m_spokeWidthUnits
 
wxStaticText * m_staticTextGridFillType
 
wxChoice * m_GridStyleCtrl
 
wxStaticText * m_staticTextGrindOrient
 
wxTextCtrl * m_tcGridStyleOrientation
 
wxStaticText * m_staticTextRotUnits
 
wxStaticText * m_staticTextStyleThickness
 
wxTextCtrl * m_tcGridStyleThickness
 
wxStaticText * m_GridStyleThicknessUnits
 
wxStaticText * m_staticTextGridGap
 
wxTextCtrl * m_tcGridStyleGap
 
wxStaticText * m_GridStyleGapUnits
 
wxStaticText * m_staticTextGridSmoothingLevel
 
wxSpinCtrl * m_spinCtrlSmoothLevel
 
wxStaticText * m_staticTextGridSmootingVal
 
wxSpinCtrlDouble * m_spinCtrlSmoothValue
 
wxButton * m_ExportSetupButton
 
wxStdDialogButtonSizer * m_sdbSizer
 
wxButton * m_sdbSizerOK
 
wxButton * m_sdbSizerCancel
 
EDA_UNITS_T 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
 

Private Member Functions

bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 
bool AcceptOptions (bool aUseExportableSetupOnly=false)
 
void OnStyleSelection (wxCommandEvent &event) override
 
void OnLayerSelection (wxDataViewEvent &event) override
 
void OnNetSortingOptionSelected (wxCommandEvent &event) override
 
void ExportSetupToOtherCopperZones (wxCommandEvent &event) override
 
void OnRunFiltersButtonClick (wxCommandEvent &event) override
 
void OnUpdateUI (wxUpdateUIEvent &) override
 
void OnButtonCancelClick (wxCommandEvent &event) override
 
void OnClose (wxCloseEvent &event) override
 
void buildAvailableListOfNets ()
 

Private Attributes

PCB_BASE_FRAMEm_Parent
 
wxConfigBase * m_Config
 
bool m_settingsExported
 
ZONE_SETTINGS m_settings
 
ZONE_SETTINGSm_ptr
 
bool m_NetSortingByPadCount
 
long m_NetFiltering
 
int m_cornerSmoothingType
 
UNIT_BINDER m_cornerRadius
 
UNIT_BINDER m_clearance
 
UNIT_BINDER m_minWidth
 
UNIT_BINDER m_antipadClearance
 
UNIT_BINDER m_spokeWidth
 
UNIT_BINDER m_gridStyleRotation
 
UNIT_BINDER m_gridStyleThickness
 
UNIT_BINDER m_gridStyleGap
 

Static Private Attributes

static wxString m_netNameShowFilter
 

Detailed Description

Definition at line 39 of file dialog_copper_zones.cpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
ID_DIALOG_COPPER_ZONE_BASE 
ID_NETNAME_SELECTION 
ID_TEXTCTRL_NETNAMES_FILTER 
wxID_APPLY_FILTERS 
ID_CORNER_SMOOTHING 
ID_M_CORNERSMOOTHINGCTRL 
ID_M_PRIORITYLEVELCTRL 
ID_M_OUTLINEAPPEARANCECTRL 
ID_M_PADINZONEOPT 
wxID_ANTIPAD_SIZE 
wxID_COPPER_BRIDGE_VALUE 
wxID_BUTTON_EXPORT 

Definition at line 47 of file dialog_copper_zones_base.h.

Constructor & Destructor Documentation

◆ DIALOG_COPPER_ZONE()

DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE ( PCB_BASE_FRAME aParent,
ZONE_SETTINGS aSettings 
)

Definition at line 105 of file dialog_copper_zones.cpp.

105  :
106  DIALOG_COPPER_ZONE_BASE( aParent ),
114  false ),
118 {
119  m_Parent = aParent;
121  m_bitmapNoNetWarning->SetBitmap( KiBitmap( dialog_warning_xpm ) );
122 
123  m_ptr = aSettings;
124  m_settings = *aSettings;
126 
127  m_settingsExported = false;
128 
129  m_NetFiltering = false;
130  m_NetSortingByPadCount = true; // false = alphabetic sort, true = pad count sort
131 
132  m_sdbSizerOK->SetDefault();
133 
135 }
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...
DIALOG_COPPER_ZONE_BASE(wxWindow *parent, wxWindowID id=ID_DIALOG_COPPER_ZONE_BASE, const wxString &title=_("Copper Zone Properties"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(825, 528), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
void SetupLayersList(wxDataViewListCtrl *aList, PCB_BASE_FRAME *aFrame, bool aShowCopper)
A helper routine for the various zone dialogs (copper, non-copper, keepout).
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:79
PCB_BASE_FRAME * m_Parent
UNIT_BINDER m_gridStyleThickness

References DIALOG_SHIM::FinishDialogSettings(), KiBitmap(), Kiface(), KIFACE_I::KifaceSettings(), DIALOG_COPPER_ZONE_BASE::m_bitmapNoNetWarning, m_Config, DIALOG_COPPER_ZONE_BASE::m_layers, m_NetFiltering, m_NetSortingByPadCount, m_Parent, m_ptr, DIALOG_COPPER_ZONE_BASE::m_sdbSizerOK, m_settings, m_settingsExported, and ZONE_SETTINGS::SetupLayersList().

Member Function Documentation

◆ AcceptOptions()

bool DIALOG_COPPER_ZONE::AcceptOptions ( bool  aUseExportableSetupOnly = false)
private
Parameters
aUseExportableSetupOnlyis true to use exportable parameters only (used to export this setup to other zones).
Returns
bool - false if incorrect options, true if ok.

Definition at line 291 of file dialog_copper_zones.cpp.

292 {
293  if( !m_clearance.Validate( 0, Mils2iu( ZONE_CLEARANCE_MAX_VALUE_MIL ) ) )
294  return false;
295 
296  if( !m_minWidth.Validate( Mils2iu( ZONE_THICKNESS_MIN_VALUE_MIL ), INT_MAX ) )
297  return false;
298 
299  if( !m_cornerRadius.Validate( 0, INT_MAX ) )
300  return false;
301 
302  if( !m_spokeWidth.Validate( 0, INT_MAX ) )
303  return false;
304 
305  if( !m_gridStyleRotation.Validate( -1800, 1800 ) )
306  return false;
307 
309  {
310  int minThickness = m_minWidth.GetValue();
311 
312  if( !m_gridStyleThickness.Validate( minThickness, INT_MAX ) )
313  return false;
314 
315  if( !m_gridStyleGap.Validate( minThickness, INT_MAX ) )
316  return false;
317  }
318 
319  switch( m_PadInZoneOpt->GetSelection() )
320  {
325  }
326 
327  switch( m_OutlineAppearanceCtrl->GetSelection() )
328  {
332  }
333 
334  if( m_Config )
335  {
337  wxString filter = m_DoNotShowNetNameFilter->GetValue();
338  m_Config->Write( ZONE_NET_FILTER_STRING_KEY, filter );
339  }
340 
342 
345 
347 
349  ? 0 : m_cornerRadius.GetValue() );
350 
352 
354 
357 
359  {
360  DisplayError( this,
361  _( "Thermal relief spoke must be greater than the minimum width." ) );
362  return false;
363  }
364 
365  if( m_Config )
366  {
375  }
376 
377  // If we use only exportable to others zones parameters, exit here:
378  if( aUseExportableSetupOnly )
379  return true;
380 
381  // Get the layer selection for this zone
382  int layer = -1;
383  for( int ii = 0; ii < m_layers->GetItemCount(); ++ii )
384  {
385  if( m_layers->GetToggleValue( (unsigned) ii, 0 ) )
386  {
387  layer = ii;
388  break;
389  }
390  }
391 
392  if( layer < 0 )
393  {
394  DisplayError( this, _( "No layer selected." ) );
395  return false;
396  }
397 
398  NETINFO_ITEM* net = nullptr;
399 
400  // Search net_code for this net, if a net was selected
401  if( m_ListNetNameSelection->GetSelection() > 0 )
402  {
403  wxString netname = m_ListNetNameSelection->GetStringSelection();
404  net = m_Parent->GetBoard()->FindNet( netname );
405  }
406 
407  m_settings.m_NetcodeSelection = net ? net->GetNet() : 0;
408 
409  return true;
410 }
int m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:81
NETINFO_ITEM * FindNet(int aNetcode) const
Function FindNet searches for a net with the given netcode.
static wxString m_netNameShowFilter
void SetCornerSmoothingType(int aType)
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:87
virtual bool Validate(int aMin, int aMax, bool setFocusOnError=true)
Function Validate Validates the control against the given range, informing the user of any errors fou...
int GetCornerSmoothingType() const
#define ZONE_CLEARANCE_MAX_VALUE_MIL
Definition: zones.h:43
Pads are not covered.
Definition: zones.h:52
virtual int GetValue()
Function GetValue Returns the current value in Internal Units.
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:74
PCB_BASE_FRAME * m_Parent
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:62
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:64
#define ZONE_THERMAL_RELIEF_GAP_STRING_KEY
Definition: zones.h:32
#define ZONE_NET_FILTER_STRING_KEY
Definition: zones.h:31
Thermal relief only for THT pads.
Definition: zones.h:55
void ConfigBaseWriteDouble(wxConfigBase *aConfig, const wxString &aKey, double aValue)
Function ConfigBaseWriteDouble This is a helper function to write doubles in config We cannot use wxC...
#define ZONE_MIN_THICKNESS_WIDTH_STRING_KEY
Definition: zones.h:35
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:60
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
#define ZONE_THICKNESS_MIN_VALUE_MIL
Definition: zones.h:41
#define ZONE_THERMAL_RELIEF_COPPER_WIDTH_STRING_KEY
Definition: zones.h:33
int GetNet() const
Function GetNet.
Definition: netinfo.h:227
UNIT_BINDER m_gridStyleThickness
void SetCornerRadius(int aRadius)
#define IU_PER_MILS
Definition: plotter.cpp:134
#define ZONE_CLEARANCE_WIDTH_STRING_KEY
Definition: zones.h:34
void SetPadConnection(ZoneConnection aPadConnection)
#define ZONE_NET_OUTLINES_STYLE_KEY
Definition: zones.h:29
BOARD * GetBoard() const
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:244
Use thermal relief for pads.
Definition: zones.h:53
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:86
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:65
pads are covered by copper
Definition: zones.h:54

References ConfigBaseWriteDouble(), ZONE_CONTAINER::DIAGONAL_EDGE, ZONE_CONTAINER::DIAGONAL_FULL, DisplayError(), BOARD::FindNet(), PCB_BASE_FRAME::GetBoard(), ZONE_SETTINGS::GetCornerSmoothingType(), NETINFO_ITEM::GetNet(), UNIT_BINDER::GetValue(), IU_PER_MILS, m_antipadClearance, m_clearance, m_Config, DIALOG_COPPER_ZONE_BASE::m_constrainOutline, m_cornerRadius, DIALOG_COPPER_ZONE_BASE::m_cornerSmoothingChoice, DIALOG_COPPER_ZONE_BASE::m_DoNotShowNetNameFilter, ZONE_SETTINGS::m_FillMode, m_gridStyleGap, m_gridStyleRotation, m_gridStyleThickness, DIALOG_COPPER_ZONE_BASE::m_layers, DIALOG_COPPER_ZONE_BASE::m_ListNetNameSelection, m_minWidth, ZONE_SETTINGS::m_NetcodeSelection, m_netNameShowFilter, DIALOG_COPPER_ZONE_BASE::m_OutlineAppearanceCtrl, DIALOG_COPPER_ZONE_BASE::m_PadInZoneOpt, m_Parent, DIALOG_COPPER_ZONE_BASE::m_PriorityLevelCtrl, m_settings, DIALOG_COPPER_ZONE_BASE::m_ShowNetNameFilter, m_spokeWidth, ZONE_SETTINGS::m_ThermalReliefCopperBridge, ZONE_SETTINGS::m_ThermalReliefGap, ZONE_SETTINGS::m_Zone_45_Only, ZONE_SETTINGS::m_Zone_HatchingStyle, ZONE_SETTINGS::m_ZoneClearance, ZONE_SETTINGS::m_ZoneMinThickness, ZONE_SETTINGS::m_ZonePriority, ZONE_CONTAINER::NO_HATCH, PAD_ZONE_CONN_FULL, PAD_ZONE_CONN_NONE, PAD_ZONE_CONN_THERMAL, PAD_ZONE_CONN_THT_THERMAL, ZONE_SETTINGS::SetCornerRadius(), ZONE_SETTINGS::SetCornerSmoothingType(), ZONE_SETTINGS::SetPadConnection(), ZONE_SETTINGS::SMOOTHING_NONE, UNIT_BINDER::Validate(), ZFM_HATCH_PATTERN, ZONE_CLEARANCE_MAX_VALUE_MIL, ZONE_CLEARANCE_WIDTH_STRING_KEY, ZONE_MIN_THICKNESS_WIDTH_STRING_KEY, ZONE_NET_FILTER_STRING_KEY, ZONE_NET_OUTLINES_STYLE_KEY, ZONE_THERMAL_RELIEF_COPPER_WIDTH_STRING_KEY, ZONE_THERMAL_RELIEF_GAP_STRING_KEY, and ZONE_THICKNESS_MIN_VALUE_MIL.

Referenced by ExportSetupToOtherCopperZones(), and TransferDataFromWindow().

◆ buildAvailableListOfNets()

void DIALOG_COPPER_ZONE::buildAvailableListOfNets ( )
private

Definition at line 502 of file dialog_copper_zones.cpp.

503 {
504  wxArrayString listNetName;
505 
507 
508  if( m_NetFiltering )
509  {
510  wxString doNotShowFilter = m_DoNotShowNetNameFilter->GetValue();
511  wxString ShowFilter = m_ShowNetNameFilter->GetValue();
512 
513  for( unsigned ii = 0; ii < listNetName.GetCount(); ii++ )
514  {
515  if( listNetName[ii].Matches( doNotShowFilter ) )
516  {
517  listNetName.RemoveAt( ii );
518  ii--;
519  }
520  else if( !listNetName[ii].Matches( ShowFilter ) )
521  {
522  listNetName.RemoveAt( ii );
523  ii--;
524  }
525  }
526  }
527 
528  listNetName.Insert( wxT( "<no net>" ), 0 );
529 
530  // Ensure currently selected net for the zone is visible, regardless of filters
531  int selectedNetListNdx = 0;
532  int net_select = m_settings.m_NetcodeSelection;
533 
534  if( net_select > 0 )
535  {
536  NETINFO_ITEM* selectedNet = m_Parent->GetBoard()->FindNet( net_select );
537  if( selectedNet )
538  {
539  selectedNetListNdx = listNetName.Index( selectedNet->GetNetname() );
540 
541  if( wxNOT_FOUND == selectedNetListNdx )
542  {
543  // the currently selected net must *always* be visible.
544  // <no net> is the zero'th index, so pick next lowest
545  listNetName.Insert( selectedNet->GetNetname(), 1 );
546  selectedNetListNdx = 1;
547  }
548  }
549  }
550 
551  m_ListNetNameSelection->Clear();
552  m_ListNetNameSelection->InsertItems( listNetName, 0 );
553  m_ListNetNameSelection->SetSelection( selectedNetListNdx );
554  m_ListNetNameSelection->EnsureVisible( selectedNetListNdx );
555 }
NETINFO_ITEM * FindNet(int aNetcode) const
Function FindNet searches for a net with the given netcode.
int m_NetcodeSelection
Net code selection for the current zone.
Definition: zone_settings.h:74
PCB_BASE_FRAME * m_Parent
int SortedNetnamesList(wxArrayString &aNames, bool aSortbyPadsCount)
Function SortedNetnamesList.
const wxString & GetNetname() const
Function GetNetname.
Definition: netinfo.h:235
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:65
BOARD * GetBoard() const

References BOARD::FindNet(), PCB_BASE_FRAME::GetBoard(), NETINFO_ITEM::GetNetname(), DIALOG_COPPER_ZONE_BASE::m_DoNotShowNetNameFilter, DIALOG_COPPER_ZONE_BASE::m_ListNetNameSelection, ZONE_SETTINGS::m_NetcodeSelection, m_NetFiltering, m_NetSortingByPadCount, m_Parent, m_settings, DIALOG_COPPER_ZONE_BASE::m_ShowNetNameFilter, and BOARD::SortedNetnamesList().

Referenced by OnNetSortingOptionSelected(), OnRunFiltersButtonClick(), and TransferDataToWindow().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 237 of file dialog_shim.cpp.

238 {
239  // so we can do logging of this state change:
240 
241 #if 0 && defined(DEBUG)
242  const char* type_id = typeid( *this ).name();
243  printf( "DIALOG_SHIM %s: %s\n", type_id, enable ? "enabled" : "disabled" );
244  fflush(0); //Needed on msys2 to immediately print the message
245 #endif
246 
247  return wxDialog::Enable( enable );
248 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 397 of file dialog_shim.cpp.

398 {
399  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
400  // handle validation in the same way as other dialogs.
401  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
402  return;
403 
404  SetReturnCode( retCode );
405 
406  if( !IsQuasiModal() )
407  {
408  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
409  return;
410  }
411 
412  if( m_qmodal_loop )
413  {
414  if( m_qmodal_loop->IsRunning() )
415  m_qmodal_loop->Exit( 0 );
416  else
417  m_qmodal_loop->ScheduleExit( 0 );
418 
419  m_qmodal_loop = NULL;
420  }
421 
424 
425  Show( false );
426 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:183
bool IsQuasiModal()
Definition: dialog_shim.h:125
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:185

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, 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(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ ExportSetupToOtherCopperZones()

void DIALOG_COPPER_ZONE::ExportSetupToOtherCopperZones ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 469 of file dialog_copper_zones.cpp.

470 {
471  if( !AcceptOptions( true ) )
472  return;
473 
474  // Export settings ( but layer and netcode ) to others copper zones
475  BOARD* pcb = m_Parent->GetBoard();
476 
477  for( int ii = 0; ii < pcb->GetAreaCount(); ii++ )
478  {
479  ZONE_CONTAINER* zone = pcb->GetArea( ii );
480 
481  // Cannot export settings from a copper zone
482  // to a zone keepout:
483  if( zone->GetIsKeepout() )
484  continue;
485 
486  m_settings.ExportSetting( *zone, false ); // false = partial export
487  m_settingsExported = true;
488  m_Parent->OnModify();
489  }
490 }
Class ZONE_CONTAINER handles a list of polygons defining a copper zone.
Definition: class_zone.h:59
bool AcceptOptions(bool aUseExportableSetupOnly=false)
int GetAreaCount() const
Function GetAreaCount.
Definition: class_board.h:981
PCB_BASE_FRAME * m_Parent
void ExportSetting(ZONE_CONTAINER &aTarget, bool aFullExport=true) const
Function ExportSetting copy settings to a given zone.
bool GetIsKeepout() const
Accessors to parameters used in Keepout zones:
Definition: class_zone.h:651
virtual void OnModify()
Function OnModify Virtual Must be called after a change in order to set the "modify" flag of the curr...
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:170
ZONE_CONTAINER * GetArea(int index) const
Function GetArea returns the Area (Zone Container) at a given index.
Definition: class_board.h:952
BOARD * GetBoard() const

References AcceptOptions(), ZONE_SETTINGS::ExportSetting(), BOARD::GetArea(), BOARD::GetAreaCount(), PCB_BASE_FRAME::GetBoard(), ZONE_CONTAINER::GetIsKeepout(), m_Parent, m_settings, m_settingsExported, and PCB_BASE_FRAME::OnModify().

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

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

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_DRC_CONTROL::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_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXIT::DIALOG_EXIT(), 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_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_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_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), 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(), and DIALOG_COLOR_PICKER::TransferDataToWindow().

◆ GetToolManager()

TOOL_MANAGER * KIWAY_HOLDER::GetToolManager ( ) const
inherited

Function GetToolManager Return the tool manager instance, if any.

Definition at line 46 of file kiway_holder.cpp.

47 {
48  return nullptr;
49 }

Referenced by DIALOG_SHIM::DIALOG_SHIM().

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

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

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

◆ IsQuasiModal()

◆ 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 61 of file kiway_player.h.

62  {
63  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
64  return *m_kiway;
65  }
KIWAY * m_kiway
Definition: kiway_player.h:101

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), CVPCB_MAINFRAME::CreateScreenCmp(), SCH_EDIT_FRAME::CreateScreens(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), 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(), KIWAY_PLAYER::language_change(), KICAD_MANAGER_FRAME::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), LIB_VIEW_FRAME::OnAddPartToSchematic(), LIB_EDIT_FRAME::OnAddPartToSchematic(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), KICAD_MANAGER_FRAME::OnEditFpLibTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), KICAD_MANAGER_FRAME::OnEditSymLibTable(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenLibraryEditor(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnOpenPcbModuleEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), KICAD_MANAGER_FRAME::OnRunPcbFpEditor(), KICAD_MANAGER_FRAME::OnRunSchLibEditor(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), 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(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), KICAD_MANAGER_FRAME::RunEeschema(), KICAD_MANAGER_FRAME::RunPcbNew(), 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(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), EDA_BASE_FRAME::ShowPreferences(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ OnButtonCancelClick()

void DIALOG_COPPER_ZONE::OnButtonCancelClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 254 of file dialog_copper_zones.cpp.

255 {
256  // After an "Export Settings to Other Zones" cancel and close must return
257  // ZONE_EXPORT_VALUES instead of wxID_CANCEL.
258  Close( true );
259 }

◆ OnClose()

void DIALOG_COPPER_ZONE::OnClose ( wxCloseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 285 of file dialog_copper_zones.cpp.

286 {
287  EndModal( m_settingsExported ? ZONE_EXPORT_VALUES : wxID_CANCEL );
288 }
#define ZONE_EXPORT_VALUES
Definition: zones.h:46

References m_settingsExported, and ZONE_EXPORT_VALUES.

◆ OnLayerSelection()

void DIALOG_COPPER_ZONE::OnLayerSelection ( wxDataViewEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 424 of file dialog_copper_zones.cpp.

425 {
426  if( event.GetColumn() != 0 )
427  return;
428 
429  int row = m_layers->ItemToRow( event.GetItem() );
430 
431  if( m_layers->GetToggleValue( row, 0 ) )
432  {
433  wxVariant layerID;
434  m_layers->GetValue( layerID, row, 2 );
435  m_settings.m_CurrentZone_Layer = ToLAYER_ID( layerID.GetInteger() );
436 
437  // Turn all other checkboxes off.
438  for( int ii = 0; ii < m_layers->GetItemCount(); ++ii )
439  {
440  if( ii != row )
441  m_layers->SetToggleValue( false, ii, 0 );
442  }
443  }
444 }
PCB_LAYER_ID ToLAYER_ID(int aLayer)
Definition: lset.cpp:813
PCB_LAYER_ID m_CurrentZone_Layer
Layer used to create the current zone.
Definition: zone_settings.h:78

References ZONE_SETTINGS::m_CurrentZone_Layer, DIALOG_COPPER_ZONE_BASE::m_layers, m_settings, and ToLAYER_ID().

◆ OnNetSortingOptionSelected()

void DIALOG_COPPER_ZONE::OnNetSortingOptionSelected ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 447 of file dialog_copper_zones.cpp.

448 {
449  m_NetFiltering = !m_showAllNetsOpt->GetValue();
452 
454 
455  if( m_Config )
456  {
457  long configValue = m_NetFiltering ? 2 : 0;
458 
460  configValue += 1;
461 
462  m_Config->Write( ZONE_NET_SORT_OPTION_KEY, configValue );
463  wxString Filter = m_DoNotShowNetNameFilter->GetValue();
464  m_Config->Write( ZONE_NET_FILTER_STRING_KEY, Filter );
465  }
466 }
static wxString m_netNameShowFilter
#define ZONE_NET_SORT_OPTION_KEY
Definition: zones.h:30
#define ZONE_NET_FILTER_STRING_KEY
Definition: zones.h:31

References buildAvailableListOfNets(), m_Config, DIALOG_COPPER_ZONE_BASE::m_DoNotShowNetNameFilter, m_NetFiltering, m_netNameShowFilter, m_NetSortingByPadCount, DIALOG_COPPER_ZONE_BASE::m_showAllNetsOpt, DIALOG_COPPER_ZONE_BASE::m_ShowNetNameFilter, DIALOG_COPPER_ZONE_BASE::m_sortByPadsOpt, ZONE_NET_FILTER_STRING_KEY, and ZONE_NET_SORT_OPTION_KEY.

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 298 of file dialog_shim.cpp.

299 {
300  if( m_firstPaintEvent )
301  {
302 #ifdef __WXMAC__
303  fixOSXCancelButtonIssue( this );
304 #endif
305 
306  selectAllInTextCtrls( GetChildren() );
307 
309  m_initialFocusTarget->SetFocus();
310  else
311  SetFocus(); // Focus the dialog itself
312 
313  m_firstPaintEvent = false;
314  }
315 
316  event.Skip();
317 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:180
bool m_firstPaintEvent
Definition: dialog_shim.h:179
static void selectAllInTextCtrls(wxWindowList &children)

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

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnRunFiltersButtonClick()

void DIALOG_COPPER_ZONE::OnRunFiltersButtonClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 493 of file dialog_copper_zones.cpp.

494 {
495  m_NetFiltering = true;
496  m_showAllNetsOpt->SetValue( false );
497 
499 }

References buildAvailableListOfNets(), m_NetFiltering, and DIALOG_COPPER_ZONE_BASE::m_showAllNetsOpt.

◆ OnStyleSelection()

void DIALOG_COPPER_ZONE::OnStyleSelection ( wxCommandEvent &  event)
overrideprivatevirtual

◆ OnUpdateUI()

void DIALOG_COPPER_ZONE::OnUpdateUI ( wxUpdateUIEvent &  )
overrideprivatevirtual

Reimplemented from DIALOG_COPPER_ZONE_BASE.

Definition at line 233 of file dialog_copper_zones.cpp.

234 {
235  if( m_ListNetNameSelection->GetSelection() < 0 )
236  m_ListNetNameSelection->SetSelection( 0 );
237 
238  m_bNoNetWarning->Show( m_ListNetNameSelection->GetSelection() == 0 );
239 
240  if( m_cornerSmoothingType != m_cornerSmoothingChoice->GetSelection() )
241  {
243 
245  m_cornerRadiusLabel->SetLabel( _( "Chamfer distance:" ) );
246  else
247  m_cornerRadiusLabel->SetLabel( _( "Fillet radius:" ) );
248  }
249 
251 }

References DIALOG_COPPER_ZONE_BASE::m_bNoNetWarning, DIALOG_COPPER_ZONE_BASE::m_cornerRadiusCtrl, DIALOG_COPPER_ZONE_BASE::m_cornerRadiusLabel, DIALOG_COPPER_ZONE_BASE::m_cornerSmoothingChoice, m_cornerSmoothingType, DIALOG_COPPER_ZONE_BASE::m_ListNetNameSelection, ZONE_SETTINGS::SMOOTHING_CHAMFER, and ZONE_SETTINGS::SMOOTHING_NONE.

◆ Prj()

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.

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:61
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:163

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkAliasName(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), KICAD_MANAGER_FRAME::CreateNewProject(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), 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(), PCB_EDIT_FRAME::doAutoSave(), SCH_DRAWING_TOOLS::doPlaceComponent(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::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(), LIB_VIEW_FRAME::OnAddPartToSchematic(), LIB_EDIT_FRAME::OnAddPartToSchematic(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnConfigurePaths(), FOOTPRINT_EDIT_FRAME::OnConfigurePaths(), KICAD_MANAGER_FRAME::OnCreateProjectFromTemplate(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLoadProject(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbModuleEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), SCH_EDIT_FRAME::OnPrint(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), KICAD_MANAGER_FRAME::OnRunGerbview(), DIALOG_BOM::OnRunPlugin(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), KICAD_MANAGER_FRAME::OnSaveProject(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::PrintPage(), SCH_EDIT_FRAME::Process_Config(), 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(), 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(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), 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().

◆ 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 116 of file dialog_shim.h.

117  {
118  m_initialFocusTarget = aWindow;
119  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:180

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_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_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_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), and 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 53 of file kiway_holder.cpp.

54 {
55 #if defined(DEBUG)
56  // offer a trap point for debugging most any window
57  wxASSERT( aDest );
58  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
59  {
60  int breakhere=1;
61  (void) breakhere;
62  }
63 #endif
64 
65  (void) aDest;
66 
67  m_kiway = aKiway;
68 }
KIWAY * m_kiway
Definition: kiway_player.h:101
const char * name
Definition: DXF_plotter.cpp:61

References KIWAY_HOLDER::m_kiway, and name.

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

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

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

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), 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:174
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
const wxSize GetSize() const
Definition: eda_rect.h:101

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

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

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 343 of file dialog_shim.cpp.

344 {
345  // This is an exception safe way to zero a pointer before returning.
346  // Yes, even though DismissModal() clears this first normally, this is
347  // here in case there's an exception before the dialog is dismissed.
348  struct NULLER
349  {
350  void*& m_what;
351  NULLER( void*& aPtr ) : m_what( aPtr ) {}
352  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
353  } clear_this( (void*&) m_qmodal_loop );
354 
355  // release the mouse if it's currently captured as the window having it
356  // will be disabled when this dialog is shown -- but will still keep the
357  // capture making it impossible to do anything in the modal dialog itself
358  wxWindow* win = wxWindow::GetCapture();
359  if( win )
360  win->ReleaseMouse();
361 
362  // Get the optimal parent
363  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
364 
365  // Show the optimal parent
366  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
367 
368  wxASSERT_MSG( !m_qmodal_parent_disabler,
369  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
370 
371  // quasi-modal: disable only my "optimal" parent
373 
374 #ifdef __WXMAC__
375  // Apple in its infinite wisdom will raise a disabled window before even passing
376  // us the event, so we have no way to stop it. Instead, we must set an order on
377  // the windows so that the quasi-modal will be pushed in front of the disabled
378  // window when it is raised.
379  ReparentQuasiModal();
380 #endif
381  Show( true );
382 
383  m_qmodal_showing = true;
384 
385  WX_EVENT_LOOP event_loop;
386 
387  m_qmodal_loop = &event_loop;
388 
389  event_loop.Run();
390 
391  m_qmodal_showing = false;
392 
393  return GetReturnCode();
394 }
bool m_qmodal_showing
Definition: dialog_shim.h:184
#define WX_EVENT_LOOP
Definition: kiway_player.h:107
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:183
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:185
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 SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_TOOL::editFieldProperties(), LIB_EDIT_TOOL::editSymbolProperties(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), SCH_EDITOR_CONTROL::NavigateHierarchy(), PCB_EDIT_FRAME::OnEditTracksAndVias(), SCH_EDIT_FRAME::OnLaunchBomManager(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), EDIT_TOOL::Properties(), SCH_BASE_FRAME::SelectCompFromLibTree(), and PCB_BASE_FRAME::SelectFootprintFromLibTree().

◆ TransferDataFromWindow()

bool DIALOG_COPPER_ZONE::TransferDataFromWindow ( )
overrideprivate

Definition at line 262 of file dialog_copper_zones.cpp.

263 {
265 
266  if( m_GridStyleCtrl->GetSelection() > 0 )
268  else
270 
271  if( !AcceptOptions() )
272  return false;
273 
274  m_settings.m_HatchFillTypeOrientation = m_gridStyleRotation.GetValue()/10.0; // value is returned in deci-degree
279 
280  *m_ptr = m_settings;
281  return true;
282 }
static wxString m_netNameShowFilter
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:69
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:68
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:67
bool AcceptOptions(bool aUseExportableSetupOnly=false)
virtual int GetValue()
Function GetValue Returns the current value in Internal Units.
wxSpinCtrlDouble * m_spinCtrlSmoothValue
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:60
UNIT_BINDER m_gridStyleThickness
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:71
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:66

References AcceptOptions(), UNIT_BINDER::GetValue(), ZONE_SETTINGS::m_FillMode, DIALOG_COPPER_ZONE_BASE::m_GridStyleCtrl, m_gridStyleGap, m_gridStyleRotation, m_gridStyleThickness, ZONE_SETTINGS::m_HatchFillTypeGap, ZONE_SETTINGS::m_HatchFillTypeOrientation, ZONE_SETTINGS::m_HatchFillTypeSmoothingLevel, ZONE_SETTINGS::m_HatchFillTypeSmoothingValue, ZONE_SETTINGS::m_HatchFillTypeThickness, m_netNameShowFilter, m_ptr, m_settings, DIALOG_COPPER_ZONE_BASE::m_ShowNetNameFilter, DIALOG_COPPER_ZONE_BASE::m_spinCtrlSmoothLevel, DIALOG_COPPER_ZONE_BASE::m_spinCtrlSmoothValue, ZFM_HATCH_PATTERN, and ZFM_POLYGONS.

◆ TransferDataToWindow()

bool DIALOG_COPPER_ZONE::TransferDataToWindow ( )
overrideprivate

Definition at line 138 of file dialog_copper_zones.cpp.

139 {
144 
146  {
147  case ZONE_CONTAINER::NO_HATCH: m_OutlineAppearanceCtrl->SetSelection( 0 ); break;
148  case ZONE_CONTAINER::DIAGONAL_EDGE: m_OutlineAppearanceCtrl->SetSelection( 1 ); break;
149  case ZONE_CONTAINER::DIAGONAL_FULL: m_OutlineAppearanceCtrl->SetSelection( 2 ); break;
150  }
151 
154 
155  switch( m_settings.GetPadConnection() )
156  {
157  default:
158  case PAD_ZONE_CONN_THERMAL: m_PadInZoneOpt->SetSelection( 1 ); break;
159  case PAD_ZONE_CONN_THT_THERMAL: m_PadInZoneOpt->SetSelection( 2 ); break;
160  case PAD_ZONE_CONN_NONE: m_PadInZoneOpt->SetSelection( 3 ); break;
161  case PAD_ZONE_CONN_FULL: m_PadInZoneOpt->SetSelection( 0 ); break;
162  }
163 
164  // Do not enable/disable antipad clearance and spoke width. They might be needed if
165  // a module or pad overrides the zone to specify a thermal connection.
168 
169  wxString netNameDoNotShowFilter = wxT( "Net-*" );
170  m_NetFiltering = false;
171  m_NetSortingByPadCount = true;
172 
173  if( m_Config )
174  {
175  int opt = m_Config->Read( ZONE_NET_SORT_OPTION_KEY, 1l );
176  m_NetFiltering = opt >= 2;
177  m_NetSortingByPadCount = opt % 2;
178  m_Config->Read( ZONE_NET_FILTER_STRING_KEY, netNameDoNotShowFilter );
179  }
180 
182  m_DoNotShowNetNameFilter->SetValue( netNameDoNotShowFilter );
183  m_showAllNetsOpt->SetValue( !m_NetFiltering );
185 
186  // Build list of nets:
188 
190 
191  switch( m_settings.m_FillMode )
192  {
193  case ZFM_HATCH_PATTERN:
194  m_GridStyleCtrl->SetSelection( 1 ); break;
195  default:
196  m_GridStyleCtrl->SetSelection( 0 ); break;
197  }
198 
201 
202  // Gives a reasonable value to grid style parameters, if currently there are no defined
203  // parameters for grid pattern thickness and gap (if the value is 0)
204  // the grid pattern thickness default value is (arbitrary) m_ZoneMinThickness * 4
205  // or 1mm
206  // the grid pattern gap default value is (arbitrary) m_ZoneMinThickness * 6
207  // or 1.5 mm
208  int bestvalue = m_settings.m_HatchFillTypeThickness;
209 
210  if( bestvalue <= 0 ) // No defined value for m_HatchFillTypeThickness
211  bestvalue = std::max( m_settings.m_ZoneMinThickness * 4, Millimeter2iu( 1.0 ) );
212 
214 
215  bestvalue = m_settings.m_HatchFillTypeGap;
216 
217  if( bestvalue <= 0 ) // No defined value for m_HatchFillTypeGap
218  bestvalue = std::max( m_settings.m_ZoneMinThickness * 6, Millimeter2iu( 1.5 ) );
219 
221 
224 
225  // Enable/Disable some widgets
226  wxCommandEvent event;
227  OnStyleSelection( event );
228 
229  return true;
230 }
int m_Zone_HatchingStyle
Option to show the zone area (outlines only, short hatches or full hatches.
Definition: zone_settings.h:81
static wxString m_netNameShowFilter
long m_ThermalReliefCopperBridge
thickness of the copper bridge in thermal reliefs
Definition: zone_settings.h:87
int m_HatchFillTypeSmoothingLevel
Grid pattern smoothing type, similar to corner smoothing type.
Definition: zone_settings.h:69
double m_HatchFillTypeOrientation
Grid style shape: orientation of grid lines in degrees.
Definition: zone_settings.h:68
int GetCornerSmoothingType() const
int m_HatchFillTypeGap
Grid style shape: clearance between lines (0 -> solid shape)
Definition: zone_settings.h:67
virtual void SetUnits(EDA_UNITS_T aUnits, bool aUseMils=false)
Function SetUnits Normally not needed (as the UNIT_BINDER inherits from the parent frame),...
Definition: unit_binder.cpp:65
void OnStyleSelection(wxCommandEvent &event) override
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
Definition: dialog_shim.h:116
unsigned int GetCornerRadius() const
Pads are not covered.
Definition: zones.h:52
#define ZONE_NET_SORT_OPTION_KEY
Definition: zones.h:30
wxSpinCtrlDouble * m_spinCtrlSmoothValue
int m_ZonePriority
Priority (0 ... N) of the zone.
Definition: zone_settings.h:62
int m_ZoneClearance
Clearance value.
Definition: zone_settings.h:64
#define ZONE_NET_FILTER_STRING_KEY
Definition: zones.h:31
ZoneConnection GetPadConnection() const
Thermal relief only for THT pads.
Definition: zones.h:55
ZONE_FILL_MODE m_FillMode
Definition: zone_settings.h:60
#define max(a, b)
Definition: auxiliary.h:86
UNIT_BINDER m_gridStyleThickness
virtual void SetValue(int aValue)
Function SetValue Sets new value (in Internal Units) for the text field, taking care of units convers...
double m_HatchFillTypeSmoothingValue
Grid pattern chamfer distance/fillet value.
Definition: zone_settings.h:71
int m_HatchFillTypeThickness
Grid style shape: thickness of lines (if 0 -> solid shape)
Definition: zone_settings.h:66
Use thermal relief for pads.
Definition: zones.h:53
long m_ThermalReliefGap
thickness of the gap in thermal reliefs
Definition: zone_settings.h:86
int m_ZoneMinThickness
Min thickness value in filled areas.
Definition: zone_settings.h:65
pads are covered by copper
Definition: zones.h:54

References buildAvailableListOfNets(), DEGREES, ZONE_CONTAINER::DIAGONAL_EDGE, ZONE_CONTAINER::DIAGONAL_FULL, ZONE_SETTINGS::GetCornerRadius(), ZONE_SETTINGS::GetCornerSmoothingType(), ZONE_SETTINGS::GetPadConnection(), m_antipadClearance, m_clearance, m_Config, DIALOG_COPPER_ZONE_BASE::m_constrainOutline, m_cornerRadius, DIALOG_COPPER_ZONE_BASE::m_cornerSmoothingChoice, DIALOG_COPPER_ZONE_BASE::m_DoNotShowNetNameFilter, ZONE_SETTINGS::m_FillMode, DIALOG_COPPER_ZONE_BASE::m_GridStyleCtrl, m_gridStyleGap, m_gridStyleRotation, m_gridStyleThickness, ZONE_SETTINGS::m_HatchFillTypeGap, ZONE_SETTINGS::m_HatchFillTypeOrientation, ZONE_SETTINGS::m_HatchFillTypeSmoothingLevel, ZONE_SETTINGS::m_HatchFillTypeSmoothingValue, ZONE_SETTINGS::m_HatchFillTypeThickness, DIALOG_COPPER_ZONE_BASE::m_ListNetNameSelection, m_minWidth, m_NetFiltering, m_netNameShowFilter, m_NetSortingByPadCount, DIALOG_COPPER_ZONE_BASE::m_OutlineAppearanceCtrl, DIALOG_COPPER_ZONE_BASE::m_PadInZoneOpt, DIALOG_COPPER_ZONE_BASE::m_PriorityLevelCtrl, m_settings, DIALOG_COPPER_ZONE_BASE::m_showAllNetsOpt, DIALOG_COPPER_ZONE_BASE::m_ShowNetNameFilter, DIALOG_COPPER_ZONE_BASE::m_sortByPadsOpt, DIALOG_COPPER_ZONE_BASE::m_spinCtrlSmoothLevel, DIALOG_COPPER_ZONE_BASE::m_spinCtrlSmoothValue, m_spokeWidth, ZONE_SETTINGS::m_ThermalReliefCopperBridge, ZONE_SETTINGS::m_ThermalReliefGap, ZONE_SETTINGS::m_Zone_45_Only, ZONE_SETTINGS::m_Zone_HatchingStyle, ZONE_SETTINGS::m_ZoneClearance, ZONE_SETTINGS::m_ZoneMinThickness, ZONE_SETTINGS::m_ZonePriority, max, ZONE_CONTAINER::NO_HATCH, OnStyleSelection(), PAD_ZONE_CONN_FULL, PAD_ZONE_CONN_NONE, PAD_ZONE_CONN_THERMAL, PAD_ZONE_CONN_THT_THERMAL, DIALOG_SHIM::SetInitialFocus(), UNIT_BINDER::SetUnits(), UNIT_BINDER::SetValue(), ZFM_HATCH_PATTERN, ZONE_NET_FILTER_STRING_KEY, and ZONE_NET_SORT_OPTION_KEY.

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

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

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

Member Data Documentation

◆ m_antipadClearance

UNIT_BINDER DIALOG_COPPER_ZONE::m_antipadClearance
private

Definition at line 62 of file dialog_copper_zones.cpp.

Referenced by AcceptOptions(), and TransferDataToWindow().

◆ m_antipadCtrl

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_antipadCtrl
protectedinherited

◆ m_antipadLabel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_antipadLabel
protectedinherited

◆ m_antipadUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_antipadUnits
protectedinherited

◆ m_bitmapNoNetWarning

wxStaticBitmap* DIALOG_COPPER_ZONE_BASE::m_bitmapNoNetWarning
protectedinherited

◆ m_bNoNetWarning

wxBoxSizer* DIALOG_COPPER_ZONE_BASE::m_bNoNetWarning
protectedinherited

◆ m_buttonRunFilter

wxButton* DIALOG_COPPER_ZONE_BASE::m_buttonRunFilter
protectedinherited

◆ m_clearance

UNIT_BINDER DIALOG_COPPER_ZONE::m_clearance
private

Definition at line 60 of file dialog_copper_zones.cpp.

Referenced by AcceptOptions(), and TransferDataToWindow().

◆ m_clearanceCtrl

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_clearanceCtrl
protectedinherited

◆ m_clearanceLabel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_clearanceLabel
protectedinherited

◆ m_clearanceUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_clearanceUnits
protectedinherited

◆ m_Config

wxConfigBase* DIALOG_COPPER_ZONE::m_Config
private

◆ m_connectionLabel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_connectionLabel
protectedinherited

◆ m_constrainOutline

wxCheckBox* DIALOG_COPPER_ZONE_BASE::m_constrainOutline
protectedinherited

◆ m_cornerRadius

UNIT_BINDER DIALOG_COPPER_ZONE::m_cornerRadius
private

Definition at line 59 of file dialog_copper_zones.cpp.

Referenced by AcceptOptions(), and TransferDataToWindow().

◆ m_cornerRadiusCtrl

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_cornerRadiusCtrl
protectedinherited

◆ m_cornerRadiusLabel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_cornerRadiusLabel
protectedinherited

◆ m_cornerRadiusUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_cornerRadiusUnits
protectedinherited

◆ m_cornerSmoothingChoice

wxChoice* DIALOG_COPPER_ZONE_BASE::m_cornerSmoothingChoice
protectedinherited

◆ m_cornerSmoothingType

int DIALOG_COPPER_ZONE::m_cornerSmoothingType
private

Definition at line 57 of file dialog_copper_zones.cpp.

Referenced by OnUpdateUI().

◆ m_DoNotShowNetNameFilter

◆ m_ExportSetupButton

wxButton* DIALOG_COPPER_ZONE_BASE::m_ExportSetupButton
protectedinherited

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 179 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_GridStyleCtrl

◆ m_gridStyleGap

UNIT_BINDER DIALOG_COPPER_ZONE::m_gridStyleGap
private

◆ m_GridStyleGapUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_GridStyleGapUnits
protectedinherited

◆ m_gridStyleRotation

UNIT_BINDER DIALOG_COPPER_ZONE::m_gridStyleRotation
private

◆ m_gridStyleThickness

UNIT_BINDER DIALOG_COPPER_ZONE::m_gridStyleThickness
private

◆ m_GridStyleThicknessUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_GridStyleThicknessUnits
protectedinherited

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 180 of file dialog_shim.h.

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

◆ m_layers

wxDataViewListCtrl* DIALOG_COPPER_ZONE_BASE::m_layers
protectedinherited

◆ m_ListNetNameSelection

wxListBox* DIALOG_COPPER_ZONE_BASE::m_ListNetNameSelection
protectedinherited

◆ m_MainBoxSizer

wxBoxSizer* DIALOG_COPPER_ZONE_BASE::m_MainBoxSizer
protectedinherited

◆ m_minWidth

UNIT_BINDER DIALOG_COPPER_ZONE::m_minWidth
private

Definition at line 61 of file dialog_copper_zones.cpp.

Referenced by AcceptOptions(), and TransferDataToWindow().

◆ m_minWidthCtrl

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_minWidthCtrl
protectedinherited

◆ m_minWidthLabel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_minWidthLabel
protectedinherited

◆ m_minWidthUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_minWidthUnits
protectedinherited

◆ m_NetFiltering

long DIALOG_COPPER_ZONE::m_NetFiltering
private

◆ m_netNameShowFilter

wxString DIALOG_COPPER_ZONE::m_netNameShowFilter
staticprivate

◆ m_NetSortingByPadCount

bool DIALOG_COPPER_ZONE::m_NetSortingByPadCount
private

◆ m_OutlineAppearanceCtrl

wxChoice* DIALOG_COPPER_ZONE_BASE::m_OutlineAppearanceCtrl
protectedinherited

◆ m_PadInZoneOpt

wxChoice* DIALOG_COPPER_ZONE_BASE::m_PadInZoneOpt
protectedinherited

◆ m_Parent

PCB_BASE_FRAME* DIALOG_COPPER_ZONE::m_Parent
private

◆ m_PriorityLevelCtrl

wxSpinCtrl* DIALOG_COPPER_ZONE_BASE::m_PriorityLevelCtrl
protectedinherited

◆ m_ptr

ZONE_SETTINGS* DIALOG_COPPER_ZONE::m_ptr
private

Definition at line 51 of file dialog_copper_zones.cpp.

Referenced by DIALOG_COPPER_ZONE(), and TransferDataFromWindow().

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 183 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 184 of file dialog_shim.h.

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

◆ m_sdbSizer

wxStdDialogButtonSizer* DIALOG_COPPER_ZONE_BASE::m_sdbSizer
protectedinherited

◆ m_sdbSizerCancel

wxButton* DIALOG_COPPER_ZONE_BASE::m_sdbSizerCancel
protectedinherited

◆ m_sdbSizerOK

wxButton* DIALOG_COPPER_ZONE_BASE::m_sdbSizerOK
protectedinherited

◆ m_settings

◆ m_settingsExported

bool DIALOG_COPPER_ZONE::m_settingsExported
private

◆ m_showAllNetsOpt

◆ m_ShowNetNameFilter

◆ m_sortByPadsOpt

wxCheckBox* DIALOG_COPPER_ZONE_BASE::m_sortByPadsOpt
protectedinherited

◆ m_spinCtrlSmoothLevel

wxSpinCtrl* DIALOG_COPPER_ZONE_BASE::m_spinCtrlSmoothLevel
protectedinherited

◆ m_spinCtrlSmoothValue

wxSpinCtrlDouble* DIALOG_COPPER_ZONE_BASE::m_spinCtrlSmoothValue
protectedinherited

◆ m_spokeWidth

UNIT_BINDER DIALOG_COPPER_ZONE::m_spokeWidth
private

Definition at line 63 of file dialog_copper_zones.cpp.

Referenced by AcceptOptions(), and TransferDataToWindow().

◆ m_spokeWidthCtrl

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_spokeWidthCtrl
protectedinherited

◆ m_spokeWidthLabel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_spokeWidthLabel
protectedinherited

◆ m_spokeWidthUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_spokeWidthUnits
protectedinherited

◆ m_staticText18

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticText18
protectedinherited

◆ m_staticTextDisplay

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextDisplay
protectedinherited

◆ m_staticTextGridFillType

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextGridFillType
protectedinherited

◆ m_staticTextGridGap

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextGridGap
protectedinherited

◆ m_staticTextGridSmoothingLevel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextGridSmoothingLevel
protectedinherited

◆ m_staticTextGridSmootingVal

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextGridSmootingVal
protectedinherited

◆ m_staticTextGrindOrient

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextGrindOrient
protectedinherited

◆ m_staticTextPriorityLevel

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextPriorityLevel
protectedinherited

◆ m_staticTextRotUnits

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextRotUnits
protectedinherited

◆ m_staticTextSmoothing

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextSmoothing
protectedinherited

◆ m_staticTextStyle

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextStyle
protectedinherited

◆ m_staticTextStyleThickness

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextStyleThickness
protectedinherited

◆ m_staticTextVFilter

wxStaticText* DIALOG_COPPER_ZONE_BASE::m_staticTextVFilter
protectedinherited

◆ m_tcGridStyleGap

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_tcGridStyleGap
protectedinherited

◆ m_tcGridStyleOrientation

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_tcGridStyleOrientation
protectedinherited

◆ m_tcGridStyleThickness

wxTextCtrl* DIALOG_COPPER_ZONE_BASE::m_tcGridStyleThickness
protectedinherited

◆ m_units


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