87 void OnClose( wxCloseEvent& event )
override;
104 #define MIN_THICKNESS ZONE_THICKNESS_MIN_VALUE_MIL*IU_PER_MILS 109 m_cornerRadius( aParent, m_cornerRadiusLabel, m_cornerRadiusCtrl, m_cornerRadiusUnits, true ),
110 m_clearance( aParent, m_clearanceLabel, m_clearanceCtrl, m_clearanceUnits, true ),
111 m_minWidth( aParent, m_minWidthLabel, m_minWidthCtrl, m_minWidthUnits, true ),
112 m_antipadClearance( aParent, m_antipadLabel, m_antipadCtrl, m_antipadUnits, true ),
113 m_spokeWidth( aParent, m_spokeWidthLabel, m_spokeWidthCtrl, m_spokeWidthUnits, true ),
114 m_gridStyleRotation( aParent, m_staticTextGrindOrient, m_tcGridStyleOrientation,
115 m_staticTextRotUnits, false ),
116 m_gridStyleThickness( aParent, m_staticTextStyleThickness,
117 m_tcGridStyleThickness, m_GridStyleThicknessUnits, false ),
118 m_gridStyleGap( aParent, m_staticTextGridGap, m_tcGridStyleGap, m_GridStyleGapUnits, false ),
119 m_islandThreshold( aParent, m_islandThresholdLabel,
120 m_tcIslandThreshold, m_islandThresholdUnits, false )
137 [&]( wxCommandEvent& )
193 wxString netNameDoNotShowFilter = wxT(
"Net-*" );
203 netNameDoNotShowFilter = cfg->m_Zones.net_filter;
252 wxCommandEvent event;
403 DisplayError(
this,
_(
"Thermal spoke width cannot be smaller than the minimum width." ) );
417 if( aUseExportableSetupOnly )
423 for(
int ii = 0; ii <
m_layers->GetItemCount(); ++ii )
425 if(
m_layers->GetToggleValue( (
unsigned) ii, 0 ) )
465 if( event.GetColumn() != 0 )
468 int row =
m_layers->ItemToRow( event.GetItem() );
470 bool checked =
m_layers->GetToggleValue( row, 0 );
473 m_layers->GetValue( layerID, row, 2 );
494 cfg->m_Zones.net_sort_mode = configValue;
511 if( zone->GetIsRuleArea() )
532 wxArrayString listNetName;
541 for(
unsigned ii = 0; ii < listNetName.GetCount(); ii++ )
543 if( listNetName[ii].Lower().Matches( doNotShowFilter ) )
545 listNetName.RemoveAt( ii );
548 else if( !listNetName[ii].Lower().Matches( ShowFilter ) )
550 listNetName.RemoveAt( ii );
556 listNetName.Insert( wxT(
"<no net>" ), 0 );
559 int selectedNetListNdx = 0;
567 selectedNetListNdx = listNetName.Index( selectedNet->
GetNetname() );
569 if( wxNOT_FOUND == selectedNetListNdx )
573 listNetName.Insert( selectedNet->
GetNetname(), 1 );
574 selectedNetListNdx = 1;
void OnRunFiltersButtonClick(wxCommandEvent &event) override
int m_HatchSmoothingLevel
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
void SetMinIslandArea(long long int aArea)
NETINFO_ITEM * FindNet(int aNetcode) const
Search for a net with the given netcode.
wxSpinCtrl * m_PriorityLevelCtrl
UNIT_BINDER m_islandThreshold
wxTextCtrl * m_tcGridStyleOrientation
void SetIslandRemovalMode(ISLAND_REMOVAL_MODE aRemove)
void OnButtonCancelClick(wxCommandEvent &event) override
static wxString m_netNameShowFilter
wxChoice * m_GridStyleCtrl
This file is part of the common library.
double m_HatchSmoothingValue
wxTextCtrl * m_tcGridStyleGap
long long int GetMinIslandArea() const
void SetCornerSmoothingType(int aType)
void OnLayerSelection(wxDataViewEvent &event) override
ZONE_BORDER_DISPLAY_STYLE m_ZoneBorderDisplayStyle
Option to show the zone area (outlines only, short hatches or full hatches.
int GetCornerSmoothingType() const
#define ZONE_CLEARANCE_MAX_VALUE_MIL
void SetDataType(EDA_DATA_TYPE aDataType)
Used to override the datatype of the displayed property (default is DISTANCE)
wxTextCtrl * m_tcIslandThreshold
UNIT_BINDER m_gridStyleGap
int m_cornerSmoothingType
wxChoice * m_cornerSmoothingChoice
wxTextCtrl * m_DoNotShowNetNameFilter
#define ZONE_EXPORT_VALUES
const ISLAND_REMOVAL_MODE GetIslandRemovalMode() const
wxChoice * m_PadInZoneOpt
Class DIALOG_COPPER_ZONE_BASE.
ZONE_CONNECTION GetPadConnection() const
wxChoice * m_OutlineDisplayCtrl
void OnStyleSelection(wxCommandEvent &event) override
wxTextCtrl * m_tcZoneName
void SetInitialFocus(wxWindow *aWindow)
Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.
unsigned int GetCornerRadius() const
wxStaticText * m_islandThresholdUnits
bool AcceptOptions(bool aUseExportableSetupOnly=false)
void buildAvailableListOfNets()
wxTextCtrl * m_cornerRadiusCtrl
T NormalizeAngle180(T Angle)
Normalize angle to be in the -180.0 .. 180.0 range.
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
pads are covered by copper
void SetPadConnection(ZONE_CONNECTION aPadConnection)
PCB_BASE_FRAME * m_Parent
void ExportSetting(ZONE &aTarget, bool aFullExport=true) const
Function ExportSetting copy settings to a given zone.
const BITMAP_OPAQUE dialog_warning_xpm[1]
wxCheckBox * m_constrainOutline
wxSpinCtrlDouble * m_spinCtrlSmoothValue
UNIT_BINDER m_antipadClearance
bool TransferDataFromWindow() override
wxDataViewListCtrl * m_layers
wxBoxSizer * m_bNoNetWarning
int SortedNetnamesList(wxArrayString &aNames, bool aSortbyPadsCount)
wxStaticText * m_islandThresholdLabel
const wxString & GetNetname() const
ZONE handles a list of polygons defining a copper zone.
wxChoice * m_cbRemoveIslands
void ExportSetupToOtherCopperZones(wxCommandEvent &event) override
wxTextCtrl * m_ShowNetNameFilter
UNIT_BINDER m_gridStyleRotation
Thermal relief only for THT pads.
ZONE_SETTINGS handles zones parameters.
wxTextCtrl * m_tcGridStyleThickness
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
Use thermal relief for pads.
ZONE_FILL_MODE m_FillMode
virtual void SetUnits(EDA_UNITS aUnits)
Normally not needed (as the UNIT_BINDER inherits from the parent frame), but can be used to set to DE...
virtual void OnModify()
Must be called after a change in order to set the "modify" flag of the current screen and update the ...
Handle the data for a net.
#define ZONE_THICKNESS_MIN_VALUE_MIL
virtual bool Validate(double aMin, double aMax, EDA_UNITS aUnits=EDA_UNITS::UNSCALED)
Validate the control against the given range, informing the user of any errors found.
long m_ThermalReliefSpokeWidth
wxStaticBitmap * m_bitmapNoNetWarning
UNIT_BINDER m_gridStyleThickness
Information pertinent to a Pcbnew printed circuit board.
virtual void SetValue(int aValue)
Set new value (in Internal Units) for the text field, taking care of units conversion.
void SetCornerRadius(int aRadius)
PCBNEW_SETTINGS * GetPcbNewSettings() const
DIALOG_COPPER_ZONE(PCB_BASE_FRAME *aParent, ZONE_SETTINGS *aSettings)
void OnNetSortingOptionSelected(wxCommandEvent &event) override
virtual long long int GetValue()
Return the current value in Internal Units.
int InvokeCopperZonesEditor(PCB_BASE_FRAME *aCaller, ZONE_SETTINGS *aSettings)
Function InvokeCopperZonesEditor invokes up a modal dialog window for copper zone editing.
wxSpinCtrl * m_spinCtrlSmoothLevel
UNIT_BINDER m_cornerRadius
void SetupLayersList(wxDataViewListCtrl *aList, PCB_BASE_FRAME *aFrame, bool aShowCopper, bool aFpEditorMode=false)
A helper routine for the various zone dialogs (copper, non-copper, keepout).
bool m_NetSortingByPadCount
virtual void SetDoubleValue(double aValue)
Set new value (in Internal Units) for the text field, taking care of units conversion.
wxListBox * m_ListNetNameSelection
static constexpr int Millimeter2iu(double mm)
wxCheckBox * m_showAllNetsOpt
bool TransferDataToWindow() override
PCB_LAYER_ID ToLAYER_ID(int aLayer)
double m_HatchOrientation
Base PCB main window class for Pcbnew, Gerbview, and CvPcb footprint viewer.
wxStaticText * m_cornerRadiusLabel
void OnClose(wxCloseEvent &event) override
void OnUpdateUI(wxUpdateUIEvent &) override
wxCheckBox * m_sortByPadsOpt