30#include <wx/radiobut.h>
77 wxGridCellAttr* attr =
new wxGridCellAttr;
83 if( !
m_Parent->GetBoard()->IsLayerEnabled( copper ) )
84 forbiddenLayers.
set( copper );
145 switch(
m_settings->m_ZoneBorderDisplayStyle )
195 for(
const auto& [layer, props] :
m_settings->m_LayerProperties )
197 if( props.hatching_offset.has_value() )
202 wxCommandEvent aEvent;
249 wxCommandEvent* evt =
new wxCommandEvent( EVT_ZONE_NAME_UPDATE );
251 wxQueueEvent( m_parent, evt );
337 DisplayErrorMessage(
this,
_(
"Thermal spoke width cannot be smaller than the minimum width." ) );
345 if( aUseExportableSetupOnly )
358 for(
auto& [layer, props] :
m_settings->m_LayerProperties )
359 props.hatching_offset = std::nullopt;
387 wxCommandEvent* evt =
new wxCommandEvent( EVT_ZONE_NET_UPDATE );
389 wxQueueEvent( m_parent, evt );
413 [&]() -> std::pair<int, int>
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
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()
ZONES_CONTAINER & m_ZoneContainer
void ActivateSelectedZone(ZONE *new_zone) override
UNIT_BINDER m_antipadClearance
bool TransferZoneSettingsFromWindow()
void OnUserConfirmChange() override
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
PCB_BASE_FRAME * m_Parent
UNIT_BINDER m_islandThreshold
~PANEL_ZONE_PROPERTIES() override
void onHatched(wxCommandEvent &event) override
void OnRemoveIslandsSelection(wxCommandEvent &event) override
UNIT_BINDER m_gridStyleRotation
void OnDeleteLayerItem(wxCommandEvent &event) override
std::shared_ptr< ZONE_SETTINGS > m_settings
PANEL_ZONE_PROPERTIES(wxWindow *aParent, PCB_BASE_FRAME *aFrame, ZONES_CONTAINER &aZoneContainer)
void OnCornerSmoothingSelection(wxCommandEvent &event) override
UNIT_BINDER m_minThickness
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