31#include <wx/treebook.h>
111 field.m_Ctrl->Bind( wxEVT_TEXT,
112 [
this]( wxCommandEvent& aEvent )
120 [
this]( wxTimerEvent& )
172 std::vector<BOARD_DESIGN_SETTINGS::VALIDATION_ERROR> errors =
175 if( !errors.empty() )
179 const std::map<wxString, wxWindow*> fieldToControl = {
199 wxWindow* control =
nullptr;
201 if(
auto it = fieldToControl.find( error.
setting_name ); it != fieldToControl.end() )
202 control = it->second;
250 std::map<wxString, wxString> messages;
252 for(
const std::vector<BOARD_DESIGN_SETTINGS::VALIDATION_ERROR>& issues :
257 wxString& msg = messages[issue.setting_name];
262 msg += issue.error_message;
268 auto it = messages.find( field.m_Setting );
269 bool show = it != messages.end() && field.m_Ctrl->IsShown();
271 field.m_Warning->SetWarning( show ? it->second : wxString() );
constexpr int ARC_HIGH_DEF
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
@ edge_to_copper_clearance
@ hole_to_copper_clearance
static const ADVANCED_CFG & GetCfg()
Get the singleton instance's config, which is shared by all consumers.
Container for design settings for a BOARD object.
std::vector< VALIDATION_ERROR > GetDesignRuleWarnings(std::optional< EDA_UNITS > aUnits=std::nullopt) const
Find design rule values that are legal but have no effect because other rules imply a stricter limit.
int m_CopperEdgeClearance
int m_MinSilkTextThickness
std::vector< VALIDATION_ERROR > ValidateDesignRules(std::optional< EDA_UNITS > aUnits=std::nullopt) const
Validate design settings values and return per-field errors.
bool m_UseHeightForLengthCalcs
Enable inclusion of stackup height in track length measurements and length tuning.
bool m_ZoneKeepExternalFillets
int m_ViasMinAnnularWidth
Information pertinent to a Pcbnew printed circuit board.
BOARD_DESIGN_SETTINGS & GetDesignSettings()
A warning icon drawn inside the right edge of a field, left of its dropdown button when it has one,...
static PAGED_DIALOG * GetDialog(wxWindow *aWindow)
void SetError(const wxString &aMessage, const wxString &aPageName, int aCtrlId, int aRow=-1, int aCol=-1)
wxCheckBox * m_useHeightForLengthCalcs
wxTextCtrl * m_MinDrillCtrl
wxStaticText * m_TrackMinWidthTitle
wxStaticText * m_TrackMinWidthUnits
wxStaticText * m_uviaMinSizeLabel
wxStaticText * m_MinDrillTitle
wxStaticBitmap * m_bitmapMinViaDiameter
wxStaticText * m_ViaMinTitle
wxTextCtrl * m_SetHoleToHoleCtrl
wxTextCtrl * m_ViaMinAnnulusCtrl
wxStaticBitmap * m_bitmapMinuViaDrill
wxStaticText * m_MinConnUnits
wxStaticText * m_HoleClearanceUnits
wxTextCtrl * m_textHeightCtrl
wxStaticText * m_MinDrillUnits
wxTextCtrl * m_minGrooveWidthCtrl
wxTextCtrl * m_clearanceCtrl
wxStaticBitmap * m_bitmapMinViaAnnulus
wxStaticText * m_EdgeClearanceLabel
wxStaticBitmap * m_bitmapMinTrackWidth
wxTextCtrl * m_uviaMinSizeCtrl
wxStaticText * m_textThicknessUnits
wxStaticText * m_ViaMinAnnulusTitle
wxStaticText * m_textHeightLabel
wxStaticText * m_minGrooveWidthUnits
wxStaticText * m_HoleToHoleTitle
wxStaticText * m_textThicknessLabel
wxCheckBox * m_allowExternalFilletsOpt
wxStaticText * m_maxErrorTitle
wxStaticText * m_MinConnTitle
wxStaticText * m_ViaMinUnits
wxStaticText * m_uviaMinDrillUnits
wxStaticText * m_uviaMinSizeUnits
wxStaticBitmap * m_spokeBitmap
wxStaticText * m_minGrooveWidthLabel
wxStaticBitmap * m_bitmapMinGrooveWidth
wxTextCtrl * m_maxErrorCtrl
wxStaticText * m_HoleClearanceLabel
wxStaticBitmap * m_bitmapEdgeClearance
wxStaticBitmap * m_bitmapClearance
wxStaticText * m_EdgeClearanceUnits
wxStaticText * m_clearanceTitle
wxStaticText * m_stCircleToPolyWarning
wxTextCtrl * m_SetViasMinSizeCtrl
wxStaticText * m_clearanceUnits
wxStaticBitmap * m_bitmapHoleClearance
wxStaticText * m_ViaMinAnnulusUnits
wxStaticText * m_textHeightUnits
wxStaticBitmap * m_filletBitmap
wxStaticText * m_uviaMinDrillLabel
wxStaticText * m_HoleToHoleUnits
wxStaticBitmap * m_bitmapMinuViaDiameter
wxStaticText * m_silkClearanceLabel
wxStaticText * m_maxErrorUnits
wxTextCtrl * m_EdgeClearanceCtrl
wxTextCtrl * m_HoleClearanceCtrl
wxStaticBitmap * m_bitmapMinViaDrill
wxTextCtrl * m_uviaMinDrillCtrl
wxTextCtrl * m_silkClearanceCtrl
wxStaticText * m_silkClearanceUnits
wxTextCtrl * m_textThicknessCtrl
wxStaticBitmap * m_bitmapMinConn
wxSpinCtrl * m_minResolvedSpokeCountCtrl
wxTextCtrl * m_MinConnCtrl
PANEL_SETUP_CONSTRAINTS_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_TrackMinWidthCtrl
wxStaticBitmap * m_bitmapMinHoleClearance
UNIT_BINDER m_minGrooveWidth
PANEL_SETUP_CONSTRAINTS(wxWindow *aParentWindow, PCB_EDIT_FRAME *aFrame)
UNIT_BINDER m_holeClearance
UNIT_BINDER m_silkClearance
UNIT_BINDER m_holeToHoleMin
std::vector< CONSTRAINT_FIELD > m_fields
UNIT_BINDER m_trackMinWidth
UNIT_BINDER m_throughHoleMin
UNIT_BINDER m_uviaMinSize
UNIT_BINDER m_uviaMinDrill
BOARD_DESIGN_SETTINGS * m_BrdSettings
void ImportSettingsFrom(BOARD *aBoard)
bool TransferDataToWindow() override
UNIT_BINDER m_viaMinAnnulus
void applyValues(BOARD_DESIGN_SETTINGS &aSettings) const
UNIT_BINDER m_minTextThickness
UNIT_BINDER m_minTextHeight
wxTimer m_validationTimer
UNIT_BINDER m_minClearance
UNIT_BINDER m_edgeClearance
void updateWarnings()
Show a warning icon, with the reason as its tooltip, over each field whose value has an issue.
bool TransferDataFromWindow() override
The main frame for Pcbnew.
KICOMMON_API wxFont GetSmallInfoFont(wxWindow *aWindow)
KICOMMON_API wxSize GetTextSize(const wxString &aSingleLine, wxWindow *aWindow)
Return the size of aSingleLine of text when it is rendered in aWindow using whatever font is currentl...