29#include <wx/radiobut.h>
75 wxGridCellAttr* attr =
new wxGridCellAttr;
81 if( !
m_frame->GetBoard()->IsLayerEnabled( copper ) )
82 forbiddenLayers.
set( copper );
138 switch(
m_settings->m_ZoneBorderDisplayStyle )
188 for(
const auto& [layer, props] :
m_settings->m_LayerProperties )
190 if( props.hatching_offset.has_value() )
195 wxCommandEvent aEvent;
240 wxCommandEvent* evt =
new wxCommandEvent( EVT_ZONE_NAME_UPDATE );
242 wxQueueEvent( m_parent, evt );
328 DisplayErrorMessage(
this,
_(
"Thermal spoke width cannot be smaller than the minimum width." ) );
336 if( aUseExportableSetupOnly )
349 for(
auto& [layer, props] :
m_settings->m_LayerProperties )
350 props.hatching_offset = std::nullopt;
380 wxCommandEvent* evt =
new wxCommandEvent( EVT_ZONE_NET_UPDATE );
382 wxQueueEvent( m_parent, evt );
406 [&]() -> std::pair<int, int>
428 m_copperZoneInfoBar->ShowMessage(
_(
"<no net> will result in an isolated copper island." ), wxICON_WARNING );
constexpr EDA_IU_SCALE pcbIUScale
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
BASE_SET & set(size_t pos)
Dialog helper object to sit in the inheritance tree between wxDialog and any class written by wxFormB...
Add mouse and command handling (such as cut, copy, and paste) to a WX_GRID instance.
LSET is a set of PCB_LAYER_IDs.
static LSET AllNonCuMask()
Return a mask holding all layer minus CU layers.
static LSET AllCuMask(int aCuLayerCount)
Return a mask holding the requested number of Cu PCB_LAYER_IDs.
wxTextCtrl * m_tcGridStyleGap
wxStaticText * m_staticText40
PANEL_ZONE_PROPERTIES_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
wxTextCtrl * m_cornerRadiusCtrl
wxTextCtrl * m_spokeWidthCtrl
wxChoice * m_cornerSmoothingChoice
STD_BITMAP_BUTTON * m_bpDeleteCustomLayer
wxSpinCtrl * m_spinCtrlSmoothLevel
wxStaticText * m_offsetOverridesLabel
wxTextCtrl * m_tcIslandThreshold
wxStaticText * m_islandThresholdUnits
wxTextCtrl * m_antipadCtrl
wxTextCtrl * m_outlineHatchPitchCtrl
wxStaticText * m_cornerRadiusUnits
wxStaticText * m_cornerRadiusLabel
wxStaticText * m_staticTextGrindOrient
wxStaticText * m_clearanceLabel
wxStaticText * m_spokeWidthLabel
wxChoice * m_cbRemoveIslands
wxStaticText * m_GridStyleThicknessUnits
NET_SELECTOR * m_netSelector
wxTextCtrl * m_tcGridStyleThickness
wxSpinCtrlDouble * m_spinCtrlSmoothValue
wxStaticText * m_staticTextStyleThickness
wxStaticText * m_staticTextGridGap
wxStaticText * m_clearanceUnits
wxStaticText * m_outlineHatchUnits
wxStaticText * m_staticTextRotUnits
wxTextCtrl * m_clearanceCtrl
wxStaticText * m_staticTextGridSmoothingLevel
wxTextCtrl * m_minWidthCtrl
STD_BITMAP_BUTTON * m_bpAddCustomLayer
wxChoice * m_PadInZoneOpt
wxStaticText * m_islandThresholdLabel
wxTextCtrl * m_tcZoneName
wxInfoBar * m_copperZoneInfoBar
wxStaticText * m_antipadLabel
wxStaticText * m_antipadUnits
wxTextCtrl * m_tcGridStyleOrientation
wxStaticText * m_minWidthUnits
wxStaticText * m_staticTextGridSmootingVal
WX_GRID * m_layerSpecificOverrides
wxStaticText * m_minWidthLabel
wxStaticText * m_GridStyleGapUnits
wxStaticText * m_stBorderHatchPitchText
wxStaticText * m_spokeWidthUnits
wxChoice * m_OutlineDisplayCtrl
UNIT_BINDER m_gridStyleGap
void OnAddLayerItem(wxCommandEvent &event) override
static constexpr int INVALID_NET_CODE
bool TransferZoneSettingsToWindow()
UNIT_BINDER m_antipadClearance
PANEL_ZONE_PROPERTIES(wxWindow *aParent, PCB_BASE_FRAME *aFrame, ZONE_SETTINGS_BAG &aZonesSettingsBag)
bool TransferZoneSettingsFromWindow()
UNIT_BINDER m_outlineHatchPitch
void OnZoneNameChanged(wxCommandEvent &event) override
void onNetSelector(wxCommandEvent &aEvent)
UNIT_BINDER m_cornerRadius
bool AcceptOptions(bool aUseExportableSetupOnly=false)
UNIT_BINDER m_gridStyleThickness
UNIT_BINDER m_islandThreshold
~PANEL_ZONE_PROPERTIES() override
void onHatched(wxCommandEvent &event) override
void OnRemoveIslandsSelection(wxCommandEvent &event) override
void SetZone(ZONE *new_zone)
ZONE_SETTINGS_BAG & m_zonesSettingsBag
UNIT_BINDER m_gridStyleRotation
void OnDeleteLayerItem(wxCommandEvent &event) override
std::shared_ptr< ZONE_SETTINGS > m_settings
void OnCornerSmoothingSelection(wxCommandEvent &event) override
LAYER_PROPERTIES_GRID_TABLE * m_layerPropsTable
Base PCB main window class for Pcbnew, Gerbview, and CvPcb footprint viewer.
Handle a list of polygons defining a copper zone.
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
This file is part of the common library.
PCB_LAYER_ID
A quick note on layer IDs:
wxDEFINE_EVENT(EVT_ZONE_NAME_UPDATE, wxCommandEvent)
T NormalizeAngle180(T Angle)
Normalize angle to be in the -180.0 .
ISLAND_REMOVAL_MODE
Whether or not to remove isolated islands from a zone.
#define ZONE_CLEARANCE_MAX_VALUE_MM
@ THERMAL
Use thermal relief for pads.
@ THT_THERMAL
Thermal relief only for THT pads.
@ NONE
Pads are not covered.
@ FULL
pads are covered by copper
#define ZONE_BORDER_HATCH_MINDIST_MM
#define ZONE_THICKNESS_MIN_VALUE_MM
#define ZONE_BORDER_HATCH_MAXDIST_MM