diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.cpp b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.cpp
index c689e98fb5..8600f0d12a 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.cpp
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.cpp
@@ -96,6 +96,12 @@ DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR( PCB_EDIT_FRAME* a
bLowerSizer3D->Add( m_PreviewPane, 1, wxEXPAND, 5 );
+ wxFont infoFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
+ infoFont.SetSymbolicSize( wxFONTSIZE_X_SMALL );
+ m_staticTextInfoValNeg->SetFont( infoFont );
+ m_staticTextInfoValPos->SetFont( infoFont );
+ m_staticTextInfo2->SetFont( infoFont );
+
m_NoteBook->SetSelection( m_page );
m_sdbSizerStdButtonsOK->SetDefault();
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.h b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.h
index aec1639580..8597c4802e 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.h
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor.h
@@ -75,7 +75,6 @@ private:
// virtual event functions
void OnEditValue( wxCommandEvent& event ) override;
void OnEditReference( wxCommandEvent& event ) override;
- void On3DShapeSelection( wxCommandEvent& event );
void On3DShapeNameSelected( wxCommandEvent& event ) override;
void Edit3DShapeFilename( wxCommandEvent& event ) override
{
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.cpp b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.cpp
index 1034fbc77b..609aade606 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.cpp
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.cpp
@@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 4 2017)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
-// PLEASE DO "NOT" EDIT THIS FILE!
+// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "widgets/text_ctrl_eval.h"
@@ -57,6 +57,9 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
bSizerLeft->Add( bSizerVal, 0, wxEXPAND, 5 );
+
+ bSizerLeft->Add( 0, 0, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
wxString m_LayerCtrlChoices[] = { _("Front"), _("Back") };
int m_LayerCtrlNChoices = sizeof( m_LayerCtrlChoices ) / sizeof( wxString );
m_LayerCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Board Side:"), wxDefaultPosition, wxDefaultSize, m_LayerCtrlNChoices, m_LayerCtrlChoices, 1, wxRA_SPECIFY_COLS );
@@ -71,45 +74,53 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
m_staticTextRotation = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation (-360 to 360):"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRotation->Wrap( -1 );
- bSizerLeft->Add( m_staticTextRotation, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizerLeft->Add( m_staticTextRotation, 0, wxRIGHT|wxLEFT, 5 );
m_OrientValueCtrl = new TEXT_CTRL_EVAL( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
bSizerLeft->Add( m_OrientValueCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_staticTextPos = new wxStaticText( m_PanelProperties, wxID_ANY, _("Position:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPos->Wrap( -1 );
- bSizerLeft->Add( m_staticTextPos, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ bSizerLeft->Add( 0, 0, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
wxFlexGridSizer* fgSizerPos;
- fgSizerPos = new wxFlexGridSizer( 2, 3, 5, 0 );
- fgSizerPos->AddGrowableCol( 1 );
+ fgSizerPos = new wxFlexGridSizer( 4, 2, 0, 0 );
+ fgSizerPos->AddGrowableCol( 0 );
fgSizerPos->SetFlexibleDirection( wxHORIZONTAL );
fgSizerPos->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_XPosLabel = new wxStaticText( m_PanelProperties, wxID_ANY, _("X"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_XPosLabel = new wxStaticText( m_PanelProperties, wxID_ANY, _("X Position:"), wxDefaultPosition, wxDefaultSize, 0 );
m_XPosLabel->Wrap( -1 );
- fgSizerPos->Add( m_XPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ fgSizerPos->Add( m_XPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ fgSizerPos->Add( 0, 0, 1, wxEXPAND, 5 );
m_ModPositionX = new TEXT_CTRL_EVAL( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerPos->Add( m_ModPositionX, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
+ fgSizerPos->Add( m_ModPositionX, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
m_XPosUnit = new wxStaticText( m_PanelProperties, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_XPosUnit->Wrap( -1 );
- fgSizerPos->Add( m_XPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ fgSizerPos->Add( m_XPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- m_YPosLabel = new wxStaticText( m_PanelProperties, wxID_ANY, _("Y"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_YPosLabel = new wxStaticText( m_PanelProperties, wxID_ANY, _("Y Position:"), wxDefaultPosition, wxDefaultSize, 0 );
m_YPosLabel->Wrap( -1 );
- fgSizerPos->Add( m_YPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+ fgSizerPos->Add( m_YPosLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
+
+
+ fgSizerPos->Add( 0, 0, 1, wxEXPAND, 5 );
m_ModPositionY = new TEXT_CTRL_EVAL( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerPos->Add( m_ModPositionY, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
+ fgSizerPos->Add( m_ModPositionY, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
m_YPosUnit = new wxStaticText( m_PanelProperties, wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_YPosUnit->Wrap( -1 );
- fgSizerPos->Add( m_YPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ fgSizerPos->Add( m_YPosUnit, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
- bSizerLeft->Add( fgSizerPos, 0, wxEXPAND|wxBOTTOM, 5 );
+ bSizerLeft->Add( fgSizerPos, 0, wxALL|wxBOTTOM|wxEXPAND, 5 );
+
+
+ bSizerLeft->Add( 0, 0, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 );
m_TextSheetPath = new wxStaticText( m_PanelProperties, wxID_ANY, _("Sheet path:"), wxDefaultPosition, wxDefaultSize, 0 );
m_TextSheetPath->Wrap( -1 );
@@ -121,6 +132,9 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
bSizerLeft->Add( m_textCtrlSheetPath, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ bSizerLeft->Add( 0, 0, 0, wxEXPAND|wxBOTTOM, 5 );
+
+
m_PanelPropertiesBoxSizer->Add( bSizerLeft, 1, wxEXPAND, 5 );
m_PropRightSizer = new wxBoxSizer( wxVERTICAL );
@@ -164,9 +178,9 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
wxBoxSizer* bSizerRotOpt;
bSizerRotOpt = new wxBoxSizer( wxVERTICAL );
- m_staticText11 = new wxStaticText( sbSizerAP->GetStaticBox(), wxID_ANY, _("Rotate 90 degrees"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText11 = new wxStaticText( sbSizerAP->GetStaticBox(), wxID_ANY, _("Allow 90º rotation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText11->Wrap( -1 );
- bSizerRotOpt->Add( m_staticText11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ bSizerRotOpt->Add( m_staticText11, 0, wxRIGHT|wxLEFT, 5 );
m_CostRot90Ctrl = new wxSlider( sbSizerAP->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS );
bSizerRotOpt->Add( m_CostRot90Ctrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
@@ -177,9 +191,9 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
wxBoxSizer* bSizerMoveOpt;
bSizerMoveOpt = new wxBoxSizer( wxVERTICAL );
- m_staticText12 = new wxStaticText( sbSizerAP->GetStaticBox(), wxID_ANY, _("Rotate 180 degrees"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText12 = new wxStaticText( sbSizerAP->GetStaticBox(), wxID_ANY, _("Allow 180º rotation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText12->Wrap( -1 );
- bSizerMoveOpt->Add( m_staticText12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ bSizerMoveOpt->Add( m_staticText12, 0, wxRIGHT|wxLEFT, 5 );
m_CostRot180Ctrl = new wxSlider( sbSizerAP->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS );
bSizerMoveOpt->Add( m_CostRot180Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
@@ -188,126 +202,118 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
sbSizerAP->Add( bSizerMoveOpt, 1, wxEXPAND, 5 );
- m_PropRightSizer->Add( sbSizerAP, 0, wxEXPAND|wxALL, 0 );
+ m_PropRightSizer->Add( sbSizerAP, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
wxStaticBoxSizer* sbSizerLocalProperties;
sbSizerLocalProperties = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Local Settings:") ), wxVERTICAL );
- wxBoxSizer* bSizer11;
- bSizer11 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer10;
- bSizer10 = new wxBoxSizer( wxHORIZONTAL );
+ wxGridBagSizer* gbSizer1;
+ gbSizer1 = new wxGridBagSizer( 0, 0 );
+ gbSizer1->SetFlexibleDirection( wxBOTH );
+ gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ gbSizer1->SetEmptyCellSize( wxSize( 0,0 ) );
m_staticText16 = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad connection to zones:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText16->Wrap( -1 );
- bSizer10->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ gbSizer1->Add( m_staticText16, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxLEFT, 5 );
wxString m_ZoneConnectionChoiceChoices[] = { _("Use zone setting"), _("Solid"), _("Thermal relief"), _("None") };
int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString );
m_ZoneConnectionChoice = new wxChoice( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 );
m_ZoneConnectionChoice->SetSelection( 0 );
- bSizer10->Add( m_ZoneConnectionChoice, 1, wxALL|wxEXPAND, 5 );
+ gbSizer1->Add( m_ZoneConnectionChoice, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
+ m_staticline1 = new wxStaticLine( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ gbSizer1->Add( m_staticline1, wxGBPosition( 1, 0 ), wxGBSpan( 1, 3 ), wxEXPAND | wxALL, 5 );
- bSizer11->Add( bSizer10, 1, wxEXPAND, 5 );
+ wxBoxSizer* bSizer10;
+ bSizer10 = new wxBoxSizer( wxVERTICAL );
- m_staticTextInfo = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Set clearances to 0 to use global values."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfo = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Set clearances to 0 to use netclass values."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfo->Wrap( -1 );
- m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizer11->Add( m_staticTextInfo, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer10->Add( m_staticTextInfo, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_staticTextInfoValPos = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Positive clearance means area bigger than the pad."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfoValPos = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Positive clearance means area bigger than the pad (usual for solder mask)."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfoValPos->Wrap( -1 );
- m_staticTextInfoValPos->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextInfoValPos->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizer11->Add( m_staticTextInfoValPos, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizer10->Add( m_staticTextInfoValPos, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_staticTextInfoValNeg = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Negative clearance means area smaller than the pad."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfoValNeg = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Negative clearance means area smaller than the pad (usual for solder paste)."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfoValNeg->Wrap( -1 );
- m_staticTextInfoValNeg->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextInfoValNeg->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizer11->Add( m_staticTextInfoValNeg, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticTextInfo2 = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("These values are used only to build the mask shape\nof pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextInfo2->Wrap( -1 );
- m_staticTextInfo2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
-
- bSizer11->Add( m_staticTextInfo2, 0, wxALL, 5 );
+ bSizer10->Add( m_staticTextInfoValNeg, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- sbSizerLocalProperties->Add( bSizer11, 0, wxEXPAND, 5 );
-
- wxFlexGridSizer* fgSizerClearances;
- fgSizerClearances = new wxFlexGridSizer( 5, 3, 0, 0 );
- fgSizerClearances->AddGrowableCol( 1 );
- fgSizerClearances->SetFlexibleDirection( wxBOTH );
- fgSizerClearances->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ gbSizer1->Add( bSizer10, wxGBPosition( 2, 0 ), wxGBSpan( 1, 3 ), wxEXPAND, 5 );
m_staticTextNetClearance = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextNetClearance->Wrap( -1 );
m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for all pad of this footprint\nIf 0, the Netclass values are used\nThis value can be superseded by a pad local value.") );
- fgSizerClearances->Add( m_staticTextNetClearance, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ gbSizer1->Add( m_staticTextNetClearance, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
m_NetClearanceValueCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerClearances->Add( m_NetClearanceValueCtrl, 1, wxALL|wxEXPAND, 5 );
+ gbSizer1->Add( m_NetClearanceValueCtrl, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxBOTTOM, 5 );
m_NetClearanceUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_NetClearanceUnits->Wrap( -1 );
- fgSizerClearances->Add( m_NetClearanceUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticline1 = new wxStaticLine( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerClearances->Add( m_staticline1, 1, wxEXPAND, 5 );
-
- m_staticline2 = new wxStaticLine( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerClearances->Add( m_staticline2, 1, wxEXPAND, 5 );
-
- m_staticline3 = new wxStaticLine( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerClearances->Add( m_staticline3, 1, wxEXPAND, 5 );
+ gbSizer1->Add( m_NetClearanceUnits, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
m_MaskClearanceTitle = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_MaskClearanceTitle->Wrap( -1 );
m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between pads and the solder mask\nfor this footprint\nThis value can be superseded by a pad local value.\nIf 0, the global value is used") );
- fgSizerClearances->Add( m_MaskClearanceTitle, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ gbSizer1->Add( m_MaskClearanceTitle, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
m_SolderMaskMarginCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerClearances->Add( m_SolderMaskMarginCtrl, 1, wxALL|wxEXPAND, 5 );
+ m_SolderMaskMarginCtrl->SetMinSize( wxSize( 150,-1 ) );
+
+ gbSizer1->Add( m_SolderMaskMarginCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP, 5 );
m_SolderMaskMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_SolderMaskMarginUnits->Wrap( -1 );
- fgSizerClearances->Add( m_SolderMaskMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderMaskMarginUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
m_staticTextSolderPaste = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextSolderPaste->Wrap( -1 );
m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between pads and the solder paste\nfor this footprint.\nThis value can be superseded by a pad local values.\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") );
- fgSizerClearances->Add( m_staticTextSolderPaste, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
+ gbSizer1->Add( m_staticTextSolderPaste, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
m_SolderPasteMarginCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerClearances->Add( m_SolderPasteMarginCtrl, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderPasteMarginCtrl, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxBOTTOM, 2 );
m_SolderPasteMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_SolderPasteMarginUnits->Wrap( -1 );
- fgSizerClearances->Add( m_SolderPasteMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderPasteMarginUnits, wxGBPosition( 5, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
m_staticTextRatio = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRatio->Wrap( -1 );
m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between pads and the solder paste\nfor this footprint.\nA value of 10 means the clearance value is 10 per cent of the pad size\nThis value can be superseded by a pad local value.\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") );
- fgSizerClearances->Add( m_staticTextRatio, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ gbSizer1->Add( m_staticTextRatio, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
m_SolderPasteMarginRatioCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerClearances->Add( m_SolderPasteMarginRatioCtrl, 1, wxALL|wxEXPAND, 5 );
+ gbSizer1->Add( m_SolderPasteMarginRatioCtrl, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM, 2 );
m_SolderPasteRatioMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_SolderPasteRatioMarginUnits->Wrap( -1 );
- fgSizerClearances->Add( m_SolderPasteRatioMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderPasteRatioMarginUnits, wxGBPosition( 6, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
+
+ m_staticTextInfo2 = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Note: solder mask and paste values are used only for pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfo2->Wrap( -1 );
+ m_staticTextInfo2->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+
+ gbSizer1->Add( m_staticTextInfo2, wxGBPosition( 7, 0 ), wxGBSpan( 1, 3 ), wxALL, 5 );
- sbSizerLocalProperties->Add( fgSizerClearances, 1, wxEXPAND, 5 );
+ gbSizer1->AddGrowableCol( 1 );
+
+ sbSizerLocalProperties->Add( gbSizer1, 0, wxEXPAND, 5 );
m_PropRightSizer->Add( sbSizerLocalProperties, 0, wxALL|wxEXPAND, 5 );
@@ -376,7 +382,7 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
bSizerMain3D->Fit( m_Panel3D );
m_NoteBook->AddPage( m_Panel3D, _("3D Settings"), false );
- m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND | wxALL, 5 );
+ m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_sdbSizerStdButtons = new wxStdDialogButtonSizer();
m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK );
@@ -385,7 +391,7 @@ DIALOG_FOOTPRINT_BOARD_EDITOR_BASE::DIALOG_FOOTPRINT_BOARD_EDITOR_BASE( wxWindow
m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel );
m_sdbSizerStdButtons->Realize();
- m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxALL|wxEXPAND, 5 );
+ m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND, 5 );
this->SetSizer( m_GeneralBoxSizer );
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.fbp b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.fbp
index 26a573ee42..b87b59d94c 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.fbp
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.fbp
@@ -95,7 +95,7 @@
private
+
+ 5
+ wxEXPAND|wxTOP|wxBOTTOM
+ 1
+
+ 0
+ protected
+ 0
+
+
5
wxALL|wxEXPAND
@@ -995,7 +1005,7 @@
5
- wxTOP|wxRIGHT|wxLEFT
+ wxRIGHT|wxLEFT
0
1
@@ -1167,108 +1177,35 @@
-
+
5
- wxTOP|wxRIGHT|wxLEFT
+ wxEXPAND|wxTOP|wxBOTTOM
0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Position:
-
- 0
-
-
- 0
-
- 1
- m_staticTextPos
- 1
-
-
+
+ 0
protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 0
-
+
5
- wxEXPAND|wxBOTTOM
+ wxALL|wxBOTTOM|wxEXPAND
0
-
- 3
+
+ 2
wxHORIZONTAL
- 1
+ 0
0
fgSizerPos
wxFLEX_GROWMODE_SPECIFIED
none
- 2
- 5
+ 4
+ 0
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT
+ wxALIGN_CENTER_VERTICAL|wxRIGHT
0
1
@@ -1298,7 +1235,7 @@
0
0
wxID_ANY
- X
+ X Position:
0
@@ -1349,9 +1286,19 @@
+
+ 5
+ wxEXPAND
+ 1
+
+ 0
+ protected
+ 0
+
+
5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT
+ wxALIGN_CENTER_VERTICAL|wxEXPAND
1
1
@@ -1442,7 +1389,7 @@
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT
+ wxALIGN_CENTER_VERTICAL|wxLEFT
0
1
@@ -1525,7 +1472,7 @@
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT
+ wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT
0
1
@@ -1555,7 +1502,7 @@
0
0
wxID_ANY
- Y
+ Y Position:
0
@@ -1606,9 +1553,19 @@
+
+ 5
+ wxEXPAND
+ 1
+
+ 0
+ protected
+ 0
+
+
5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT
+ wxALIGN_CENTER_VERTICAL|wxEXPAND
1
1
@@ -1699,7 +1656,7 @@
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT
+ wxALIGN_CENTER_VERTICAL|wxLEFT
0
1
@@ -1782,6 +1739,16 @@
+
+ 5
+ wxEXPAND|wxTOP|wxBOTTOM
+ 1
+
+ 0
+ protected
+ 0
+
+
5
wxTOP|wxRIGHT|wxLEFT
@@ -1956,6 +1923,16 @@
+
+ 5
+ wxEXPAND|wxBOTTOM
+ 0
+
+ 0
+ protected
+ 0
+
+
@@ -2434,8 +2411,8 @@
- 0
- wxEXPAND|wxALL
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
0
wxID_ANY
@@ -2457,7 +2434,7 @@
none
5
- wxALIGN_CENTER_HORIZONTAL|wxALL
+ wxRIGHT|wxLEFT
0
1
@@ -2487,7 +2464,7 @@
0
0
wxID_ANY
- Rotate 90 degrees
+ Allow 90º rotation:
0
@@ -2659,7 +2636,7 @@
none
5
- wxALIGN_CENTER_HORIZONTAL|wxALL
+ wxRIGHT|wxLEFT
0
1
@@ -2689,7 +2666,7 @@
0
0
wxID_ANY
- Rotate 180 degrees
+ Allow 180º rotation:
0
@@ -2869,23 +2846,293 @@
5
wxEXPAND
0
-
+
+ 0,0
+ wxBOTH
+ 1
+
+ 0
- bSizer11
- wxVERTICAL
+ gbSizer1
+ wxFLEX_GROWMODE_SPECIFIED
none
-
+ 0
+
5
+ 1
+ 0
+ wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Pad connection to zones:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText16
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 2
+ 1
+ wxEXPAND|wxBOTTOM|wxRIGHT
+ 0
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ "Use zone setting" "Solid" "Thermal relief" "None"
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_ZoneConnectionChoice
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 0
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 3
+ 0
+ wxEXPAND | wxALL
+ 1
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticline1
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+ wxLI_HORIZONTAL
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 3
+ 0
wxEXPAND
- 1
+ 2
+ 1
bSizer10
- wxHORIZONTAL
+ wxVERTICAL
none
5
- wxALIGN_CENTER_VERTICAL|wxALL
+ wxTOP|wxRIGHT|wxLEFT
0
1
@@ -2911,11 +3158,11 @@
1
1
-
+ ,90,90,-1,70,0
0
0
wxID_ANY
- Pad connection to zones:
+ Set clearances to 0 to use netclass values.
0
@@ -2923,7 +3170,7 @@
0
1
- m_staticText16
+ m_staticTextInfo
1
@@ -2966,11 +3213,11 @@
-
+
5
- wxALL|wxEXPAND
- 1
-
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
1
1
1
@@ -2984,7 +3231,6 @@
1
0
- "Use zone setting" "Solid" "Thermal relief" "None"
1
1
@@ -2995,10 +3241,11 @@
1
1
-
+ ,93,90,10,70,0
0
0
wxID_ANY
+ Positive clearance means area bigger than the pad (usual for solder mask).
0
@@ -3006,7 +3253,7 @@
0
1
- m_ZoneConnectionChoice
+ m_staticTextInfoValPos
1
@@ -3014,22 +3261,100 @@
1
Resizable
- 0
1
0
-
- wxFILTER_NONE
- wxDefaultValidator
-
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,93,90,10,70,0
+ 0
+ 0
+ wxID_ANY
+ Negative clearance means area smaller than the pad (usual for solder paste).
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextInfoValNeg
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
-
@@ -3056,360 +3381,13 @@
-
+
5
- wxTOP|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,92,-1,70,0
- 0
- 0
- wxID_ANY
- Set clearances to 0 to use global values.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfo
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxTOP|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,93,90,-1,70,0
- 0
- 0
- wxID_ANY
- Positive clearance means area bigger than the pad.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfoValPos
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,93,90,-1,70,0
- 0
- 0
- wxID_ANY
- Negative clearance means area smaller than the pad.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfoValNeg
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,92,-1,70,0
- 0
- 0
- wxID_ANY
- These values are used only to build the mask shape
of pads on copper layers.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfo2
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxEXPAND
- 1
-
- 3
- wxBOTH
- 1
-
- 0
-
- fgSizerClearances
- wxFLEX_GROWMODE_SPECIFIED
- none
- 5
- 0
-
- 5
- wxALIGN_CENTER_VERTICAL|wxLEFT
- 0
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 3
+ 1
1
1
@@ -3489,10 +3467,13 @@
-
+
5
- wxALL|wxEXPAND
- 1
+ 1
+ 1
+ wxEXPAND|wxTOP|wxBOTTOM
+ 3
+ 1
1
1
@@ -3580,10 +3561,13 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT
- 0
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 3
+ 1
1
1
@@ -3663,253 +3647,13 @@
-
+
5
- wxEXPAND
- 1
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline1
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxEXPAND
- 1
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline2
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxEXPAND
- 1
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline3
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxALL|wxALIGN_CENTER_VERTICAL
- 0
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 4
+ 1
1
1
@@ -3989,10 +3733,13 @@
-
+
5
- wxALL|wxEXPAND
- 1
+ 1
+ 1
+ wxEXPAND|wxTOP
+ 4
+ 1
1
1
@@ -4027,7 +3774,7 @@
0
0
-
+ 150,-1
1
m_SolderMaskMarginCtrl
1
@@ -4080,10 +3827,13 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT
- 0
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 4
+ 1
1
1
@@ -4163,10 +3913,13 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT
- 0
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 5
+ 1
1
1
@@ -4246,10 +3999,13 @@
-
- 5
- wxEXPAND|wxLEFT|wxRIGHT
- 1
+
+ 2
+ 1
+ 1
+ wxEXPAND|wxTOP|wxBOTTOM
+ 5
+ 1
1
1
@@ -4337,10 +4093,13 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT
- 0
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 5
+ 1
1
1
@@ -4420,10 +4179,13 @@
-
+
5
- wxALL|wxALIGN_CENTER_VERTICAL
- 0
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 6
+ 1
1
1
@@ -4503,10 +4265,13 @@
-
- 5
- wxALL|wxEXPAND
- 1
+
+ 2
+ 1
+ 1
+ wxEXPAND|wxBOTTOM
+ 6
+ 1
1
1
@@ -4594,10 +4359,13 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT
- 0
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 6
+ 1
1
1
@@ -4677,6 +4445,92 @@
+
+ 5
+ 3
+ 0
+ wxALL
+ 7
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,90,10,70,0
+ 0
+ 0
+ wxID_ANY
+ Note: solder mask and paste values are used only for pads on copper layers.
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextInfo2
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5275,7 +5129,7 @@
5
- wxALL|wxEXPAND
+ wxEXPAND
0
0
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.h b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.h
index b97e533367..3d714d905f 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.h
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_BoardEditor_base.h
@@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 4 2017)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
-// PLEASE DO "NOT" EDIT THIS FILE!
+// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_EDIT_FOOTPRINT_FOR_BOARDEDITOR_BASE_H__
@@ -11,7 +11,6 @@
#include
#include
#include
-class DIALOG_SHIM;
class TEXT_CTRL_EVAL;
#include "dialog_shim.h"
@@ -29,6 +28,7 @@ class TEXT_CTRL_EVAL;
#include
#include
#include
+#include
#include
#include
#include
@@ -69,7 +69,6 @@ class DIALOG_FOOTPRINT_BOARD_EDITOR_BASE : public DIALOG_SHIM
wxRadioBox* m_OrientCtrl;
wxStaticText* m_staticTextRotation;
TEXT_CTRL_EVAL* m_OrientValueCtrl;
- wxStaticText* m_staticTextPos;
wxStaticText* m_XPosLabel;
TEXT_CTRL_EVAL* m_ModPositionX;
wxStaticText* m_XPosUnit;
@@ -89,16 +88,13 @@ class DIALOG_FOOTPRINT_BOARD_EDITOR_BASE : public DIALOG_SHIM
wxSlider* m_CostRot180Ctrl;
wxStaticText* m_staticText16;
wxChoice* m_ZoneConnectionChoice;
+ wxStaticLine* m_staticline1;
wxStaticText* m_staticTextInfo;
wxStaticText* m_staticTextInfoValPos;
wxStaticText* m_staticTextInfoValNeg;
- wxStaticText* m_staticTextInfo2;
wxStaticText* m_staticTextNetClearance;
TEXT_CTRL_EVAL* m_NetClearanceValueCtrl;
wxStaticText* m_NetClearanceUnits;
- wxStaticLine* m_staticline1;
- wxStaticLine* m_staticline2;
- wxStaticLine* m_staticline3;
wxStaticText* m_MaskClearanceTitle;
TEXT_CTRL_EVAL* m_SolderMaskMarginCtrl;
wxStaticText* m_SolderMaskMarginUnits;
@@ -108,6 +104,7 @@ class DIALOG_FOOTPRINT_BOARD_EDITOR_BASE : public DIALOG_SHIM
wxStaticText* m_staticTextRatio;
TEXT_CTRL_EVAL* m_SolderPasteMarginRatioCtrl;
wxStaticText* m_SolderPasteRatioMarginUnits;
+ wxStaticText* m_staticTextInfo2;
wxPanel* m_Panel3D;
wxBoxSizer* bSizerMain3D;
wxListBox* m_3D_ShapeNameListBox;
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor.cpp b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor.cpp
index dbdc7991ff..3569cc4c5a 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor.cpp
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor.cpp
@@ -91,6 +91,12 @@ DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR( FOOTPRINT_EDIT_FRAME* aP
m_FootprintNameCtrl->SetValidator( FILE_NAME_CHAR_VALIDATOR() );
initModeditProperties();
+ wxFont infoFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
+ infoFont.SetSymbolicSize( wxFONTSIZE_X_SMALL );
+ m_staticTextInfoValNeg->SetFont( infoFont );
+ m_staticTextInfoValPos->SetFont( infoFont );
+ m_staticTextInfo2->SetFont( infoFont );
+
m_NoteBook->SetSelection( m_page );
m_sdbSizerStdButtonsOK->SetDefault();
@@ -217,6 +223,26 @@ void DIALOG_FOOTPRINT_FP_EDITOR::initModeditProperties()
m_CostRot90Ctrl->SetValue( m_currentModule->GetPlacementCost90() );
m_CostRot180Ctrl->SetValue( m_currentModule->GetPlacementCost180() );
+ switch( m_currentModule->GetZoneConnection() )
+ {
+ default:
+ case PAD_ZONE_CONN_INHERITED:
+ m_ZoneConnectionChoice->SetSelection( 0 );
+ break;
+
+ case PAD_ZONE_CONN_FULL:
+ m_ZoneConnectionChoice->SetSelection( 1 );
+ break;
+
+ case PAD_ZONE_CONN_THERMAL:
+ m_ZoneConnectionChoice->SetSelection( 2 );
+ break;
+
+ case PAD_ZONE_CONN_NONE:
+ m_ZoneConnectionChoice->SetSelection( 3 );
+ break;
+ }
+
// Initialize dialog relative to masks clearances
m_NetClearanceUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
m_SolderMaskMarginUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
@@ -511,20 +537,40 @@ bool DIALOG_FOOTPRINT_FP_EDITOR::TransferDataFromWindow()
m_currentModule->SetDescription( m_DocCtrl->GetValue() );
m_currentModule->SetKeywords( m_KeywordCtrl->GetValue() );
- // Init footprint name in library
+ // Set footprint name in library
if( ! footprintName.IsEmpty() )
{
m_currentFPID.SetLibItemName( footprintName, false );
m_currentModule->SetFPID( m_currentFPID );
}
- // Init Fields:
+ // Set fields
TEXTE_MODULE& reference = m_currentModule->Reference();
reference = *m_referenceCopy;
TEXTE_MODULE& value = m_currentModule->Value();
value = *m_valueCopy;
- // Initialize masks clearances
+ switch( m_ZoneConnectionChoice->GetSelection() )
+ {
+ default:
+ case 0:
+ m_currentModule->SetZoneConnection( PAD_ZONE_CONN_INHERITED );
+ break;
+
+ case 1:
+ m_currentModule->SetZoneConnection( PAD_ZONE_CONN_FULL );
+ break;
+
+ case 2:
+ m_currentModule->SetZoneConnection( PAD_ZONE_CONN_THERMAL );
+ break;
+
+ case 3:
+ m_currentModule->SetZoneConnection( PAD_ZONE_CONN_NONE );
+ break;
+ }
+
+ // Set masks clearances
m_currentModule->SetLocalClearance( localNetClearance );
m_currentModule->SetLocalSolderMaskMargin( ValueFromTextCtrl( *m_SolderMaskMarginCtrl ) );
m_currentModule->SetLocalSolderPasteMargin( ValueFromTextCtrl( *m_SolderPasteMarginCtrl ) );
@@ -532,7 +578,7 @@ bool DIALOG_FOOTPRINT_FP_EDITOR::TransferDataFromWindow()
msg = m_SolderPasteMarginRatioCtrl->GetValue();
msg.ToDouble( &dtmp );
- // A -50% margin ratio means no paste on a pad, the ratio must be >= -50 %
+ // A -50% margin ratio means no paste on a pad, the ratio must be >= -50%
if( dtmp < -50.0 )
dtmp = -50.0;
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.cpp b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.cpp
index c2df8b1e47..c35b5bbc1e 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.cpp
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.cpp
@@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 4 2017)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
-// PLEASE DO "NOT" EDIT THIS FILE!
+// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "widgets/text_ctrl_eval.h"
@@ -22,77 +22,80 @@ DIALOG_FOOTPRINT_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_EDITOR_BASE( wxWindow* pare
wxBoxSizer* m_PanelPropertiesBoxSizer;
m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL );
- wxStaticBoxSizer* PropLeftSizer;
- PropLeftSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Fields:") ), wxVERTICAL );
+ wxBoxSizer* bLeftSizer;
+ bLeftSizer = new wxBoxSizer( wxVERTICAL );
- m_staticTextDoc = new wxStaticText( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Document link:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDoc->Wrap( -1 );
- PropLeftSizer->Add( m_staticTextDoc, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_DocCtrl = new wxTextCtrl( PropLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- PropLeftSizer->Add( m_DocCtrl, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND, 5 );
-
- m_staticTextKeywords = new wxStaticText( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Keywords:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextKeywords->Wrap( -1 );
- PropLeftSizer->Add( m_staticTextKeywords, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_KeywordCtrl = new wxTextCtrl( PropLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- PropLeftSizer->Add( m_KeywordCtrl, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND, 5 );
-
- m_staticTextRef = new wxStaticText( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Reference:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRef = new wxStaticText( m_PanelProperties, wxID_ANY, _("Reference:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRef->Wrap( -1 );
- PropLeftSizer->Add( m_staticTextRef, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bLeftSizer->Add( m_staticTextRef, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerRef;
bSizerRef = new wxBoxSizer( wxHORIZONTAL );
- m_ReferenceCtrl = new wxTextCtrl( PropLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
+ m_ReferenceCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
bSizerRef->Add( m_ReferenceCtrl, 1, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
- m_button4 = new wxButton( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ m_button4 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
bSizerRef->Add( m_button4, 0, wxBOTTOM|wxRIGHT, 5 );
- PropLeftSizer->Add( bSizerRef, 0, wxEXPAND, 5 );
+ bLeftSizer->Add( bSizerRef, 0, wxEXPAND, 5 );
- m_staticTextVal = new wxStaticText( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Value:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextVal = new wxStaticText( m_PanelProperties, wxID_ANY, _("Value:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextVal->Wrap( -1 );
- PropLeftSizer->Add( m_staticTextVal, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bLeftSizer->Add( m_staticTextVal, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerVal;
bSizerVal = new wxBoxSizer( wxHORIZONTAL );
- m_ValueCtrl = new wxTextCtrl( PropLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
+ m_ValueCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
bSizerVal->Add( m_ValueCtrl, 1, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
- m_button5 = new wxButton( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ m_button5 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
bSizerVal->Add( m_button5, 0, wxBOTTOM|wxRIGHT, 5 );
- PropLeftSizer->Add( bSizerVal, 0, wxEXPAND, 5 );
+ bLeftSizer->Add( bSizerVal, 0, wxEXPAND|wxBOTTOM, 5 );
- PropLeftSizer->Add( 0, 20, 0, 0, 5 );
+ bLeftSizer->Add( 0, 0, 0, wxEXPAND|wxTOP|wxBOTTOM, 10 );
- m_staticTextFp = new wxStaticText( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Footprint name in library:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDoc = new wxStaticText( m_PanelProperties, wxID_ANY, _("Document link:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDoc->Wrap( -1 );
+ bLeftSizer->Add( m_staticTextDoc, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_DocCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bLeftSizer->Add( m_DocCtrl, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND, 5 );
+
+ m_staticTextKeywords = new wxStaticText( m_PanelProperties, wxID_ANY, _("Keywords:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextKeywords->Wrap( -1 );
+ bLeftSizer->Add( m_staticTextKeywords, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_KeywordCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bLeftSizer->Add( m_KeywordCtrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+
+ bLeftSizer->Add( 0, 20, 0, wxTOP|wxBOTTOM, 10 );
+
+ m_staticTextFp = new wxStaticText( m_PanelProperties, wxID_ANY, _("Footprint name in library:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextFp->Wrap( -1 );
- PropLeftSizer->Add( m_staticTextFp, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bLeftSizer->Add( m_staticTextFp, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_FootprintNameCtrl = new wxTextCtrl( PropLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- PropLeftSizer->Add( m_FootprintNameCtrl, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND, 5 );
+ m_FootprintNameCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bLeftSizer->Add( m_FootprintNameCtrl, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND, 5 );
- m_staticTextLibNickname = new wxStaticText( PropLeftSizer->GetStaticBox(), wxID_ANY, _("Library nickname:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLibNickname = new wxStaticText( m_PanelProperties, wxID_ANY, _("Library nickname:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextLibNickname->Wrap( -1 );
- PropLeftSizer->Add( m_staticTextLibNickname, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bLeftSizer->Add( m_staticTextLibNickname, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_LibraryNicknameCtrl = new wxTextCtrl( PropLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
- PropLeftSizer->Add( m_LibraryNicknameCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ m_LibraryNicknameCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
+ bLeftSizer->Add( m_LibraryNicknameCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
- PropLeftSizer->Add( 0, 0, 0, wxEXPAND, 5 );
+ bLeftSizer->Add( 0, 0, 1, wxEXPAND|wxBOTTOM, 5 );
- m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 );
+ m_PanelPropertiesBoxSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
m_PropRightSizer = new wxBoxSizer( wxVERTICAL );
@@ -120,9 +123,9 @@ DIALOG_FOOTPRINT_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_EDITOR_BASE( wxWindow* pare
wxBoxSizer* bSizerRot90;
bSizerRot90 = new wxBoxSizer( wxVERTICAL );
- m_staticText11 = new wxStaticText( sbSizerAutoplace->GetStaticBox(), wxID_ANY, _("Rotation 90 degree"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText11 = new wxStaticText( sbSizerAutoplace->GetStaticBox(), wxID_ANY, _("Allow 90º rotation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText11->Wrap( -1 );
- bSizerRot90->Add( m_staticText11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ bSizerRot90->Add( m_staticText11, 0, wxRIGHT|wxLEFT, 5 );
m_CostRot90Ctrl = new wxSlider( sbSizerAutoplace->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxSize( -1,-1 ), wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS );
bSizerRot90->Add( m_CostRot90Ctrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
@@ -133,9 +136,9 @@ DIALOG_FOOTPRINT_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_EDITOR_BASE( wxWindow* pare
wxBoxSizer* bSizerRot180;
bSizerRot180 = new wxBoxSizer( wxVERTICAL );
- m_staticText12 = new wxStaticText( sbSizerAutoplace->GetStaticBox(), wxID_ANY, _("Rotation 180 degree"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText12 = new wxStaticText( sbSizerAutoplace->GetStaticBox(), wxID_ANY, _("Allow 180º rotation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText12->Wrap( -1 );
- bSizerRot180->Add( m_staticText12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+ bSizerRot180->Add( m_staticText12, 0, wxRIGHT|wxLEFT, 5 );
m_CostRot180Ctrl = new wxSlider( sbSizerAutoplace->GetStaticBox(), wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS );
bSizerRot180->Add( m_CostRot180Ctrl, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
@@ -146,103 +149,118 @@ DIALOG_FOOTPRINT_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_EDITOR_BASE( wxWindow* pare
m_PropRightSizer->Add( sbSizerAutoplace, 0, wxEXPAND|wxALL, 5 );
- wxStaticBoxSizer* sbSizer8;
- sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Local Clearance Values:") ), wxVERTICAL );
+ wxStaticBoxSizer* sbSizerLocalProperties;
+ sbSizerLocalProperties = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Local Settings:") ), wxVERTICAL );
- m_staticTextInfo = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Set clearances to 0 to use global values."), wxDefaultPosition, wxDefaultSize, 0 );
+ wxGridBagSizer* gbSizer1;
+ gbSizer1 = new wxGridBagSizer( 0, 0 );
+ gbSizer1->SetFlexibleDirection( wxBOTH );
+ gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticText16 = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad connection to zones:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText16->Wrap( -1 );
+ gbSizer1->Add( m_staticText16, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxString m_ZoneConnectionChoiceChoices[] = { _("Use zone setting"), _("Solid"), _("Thermal relief"), _("None") };
+ int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString );
+ m_ZoneConnectionChoice = new wxChoice( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 );
+ m_ZoneConnectionChoice->SetSelection( 0 );
+ gbSizer1->Add( m_ZoneConnectionChoice, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticline11 = new wxStaticLine( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ gbSizer1->Add( m_staticline11, wxGBPosition( 1, 0 ), wxGBSpan( 1, 3 ), wxEXPAND | wxALL, 5 );
+
+ wxBoxSizer* bSizer10;
+ bSizer10 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextInfo = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Set clearances to 0 to use netclass values."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfo->Wrap( -1 );
- m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- sbSizer8->Add( m_staticTextInfo, 0, wxALL, 5 );
+ bSizer10->Add( m_staticTextInfo, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_staticTextInfoValPos = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Positive clearance means area bigger than the pad."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfoValPos = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Positive clearance means area bigger than the pad (usual for solder mask)."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfoValPos->Wrap( -1 );
- m_staticTextInfoValPos->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextInfoValPos->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- sbSizer8->Add( m_staticTextInfoValPos, 0, wxRIGHT|wxLEFT, 5 );
+ bSizer10->Add( m_staticTextInfoValPos, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_staticTextInfoValNeg = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Negative clearance means area smaller than the pad."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfoValNeg = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Negative clearance means area smaller than the pad (usual for solder paste)."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfoValNeg->Wrap( -1 );
- m_staticTextInfoValNeg->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextInfoValNeg->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- sbSizer8->Add( m_staticTextInfoValNeg, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bSizer10->Add( m_staticTextInfoValNeg, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- m_staticTextInfo2 = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("These values are used only to build the mask shape\nof pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextInfo2->Wrap( -1 );
- m_staticTextInfo2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
- sbSizer8->Add( m_staticTextInfo2, 0, wxALL, 5 );
+ gbSizer1->Add( bSizer10, wxGBPosition( 2, 0 ), wxGBSpan( 1, 3 ), wxEXPAND, 5 );
- wxFlexGridSizer* fgSizer1;
- fgSizer1 = new wxFlexGridSizer( 5, 3, 0, 0 );
- fgSizer1->AddGrowableCol( 1 );
- fgSizer1->SetFlexibleDirection( wxBOTH );
- fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextNetClearance = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNetClearance = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextNetClearance->Wrap( -1 );
- fgSizer1->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+ m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for all pad of this footprint\nIf 0, the Netclass values are used\nThis value can be superseded by a pad local value.") );
- m_NetClearanceValueCtrl = new TEXT_CTRL_EVAL( sbSizer8->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer1->Add( m_NetClearanceValueCtrl, 0, wxALL|wxEXPAND, 5 );
+ gbSizer1->Add( m_staticTextNetClearance, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_NetClearanceUnits = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_NetClearanceValueCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ gbSizer1->Add( m_NetClearanceValueCtrl, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_NetClearanceUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_NetClearanceUnits->Wrap( -1 );
- fgSizer1->Add( m_NetClearanceUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+ gbSizer1->Add( m_NetClearanceUnits, wxGBPosition( 3, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticline1 = new wxStaticLine( sbSizer8->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizer1->Add( m_staticline1, 0, wxEXPAND, 5 );
-
- m_staticline2 = new wxStaticLine( sbSizer8->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizer1->Add( m_staticline2, 0, wxEXPAND, 5 );
-
- m_staticline3 = new wxStaticLine( sbSizer8->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizer1->Add( m_staticline3, 0, wxEXPAND, 5 );
-
- m_MaskClearanceTitle = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_MaskClearanceTitle = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_MaskClearanceTitle->Wrap( -1 );
m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between pads and the solder mask\nfor this footprint\nThis value can be superseded by a pad local value.\nIf 0, the global value is used") );
- fgSizer1->Add( m_MaskClearanceTitle, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ gbSizer1->Add( m_MaskClearanceTitle, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
- m_SolderMaskMarginCtrl = new TEXT_CTRL_EVAL( sbSizer8->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer1->Add( m_SolderMaskMarginCtrl, 0, wxALL|wxEXPAND, 5 );
+ m_SolderMaskMarginCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_SolderMaskMarginCtrl->SetMinSize( wxSize( 150,-1 ) );
- m_SolderMaskMarginUnits = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("inch"), wxDefaultPosition, wxDefaultSize, 0 );
+ gbSizer1->Add( m_SolderMaskMarginCtrl, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP, 5 );
+
+ m_SolderMaskMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_SolderMaskMarginUnits->Wrap( -1 );
- fgSizer1->Add( m_SolderMaskMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderMaskMarginUnits, wxGBPosition( 4, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticTextSolderPaste = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSolderPaste = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextSolderPaste->Wrap( -1 );
m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between pads and the solder paste\nfor this footprint.\nThis value can be superseded by a pad local values.\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") );
- fgSizer1->Add( m_staticTextSolderPaste, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ gbSizer1->Add( m_staticTextSolderPaste, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
- m_SolderPasteMarginCtrl = new TEXT_CTRL_EVAL( sbSizer8->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer1->Add( m_SolderPasteMarginCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+ m_SolderPasteMarginCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ gbSizer1->Add( m_SolderPasteMarginCtrl, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxTOP|wxBOTTOM, 2 );
- m_SolderPasteMarginUnits = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_SolderPasteMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("unit"), wxDefaultPosition, wxDefaultSize, 0 );
m_SolderPasteMarginUnits->Wrap( -1 );
- fgSizer1->Add( m_SolderPasteMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderPasteMarginUnits, wxGBPosition( 5, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- m_staticTextRatio = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("Solder paste ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRatio = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Solder paste ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextRatio->Wrap( -1 );
m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between pads and the solder paste\nfor this footprint.\nA value of 10 means the clearance value is 10 per cent of the pad size\nThis value can be superseded by a pad local value.\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") );
- fgSizer1->Add( m_staticTextRatio, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+ gbSizer1->Add( m_staticTextRatio, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
- m_SolderPasteMarginRatioCtrl = new TEXT_CTRL_EVAL( sbSizer8->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer1->Add( m_SolderPasteMarginRatioCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+ m_SolderPasteMarginRatioCtrl = new TEXT_CTRL_EVAL( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ gbSizer1->Add( m_SolderPasteMarginRatioCtrl, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxBOTTOM, 2 );
- m_SolderPasteRatioMarginUnits = new wxStaticText( sbSizer8->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_SolderPasteRatioMarginUnits = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
m_SolderPasteRatioMarginUnits->Wrap( -1 );
- fgSizer1->Add( m_SolderPasteRatioMarginUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+ gbSizer1->Add( m_SolderPasteRatioMarginUnits, wxGBPosition( 6, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
+
+ m_staticTextInfo2 = new wxStaticText( sbSizerLocalProperties->GetStaticBox(), wxID_ANY, _("Note: solder mask and paste values are used only for pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfo2->Wrap( -1 );
+ m_staticTextInfo2->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+
+ gbSizer1->Add( m_staticTextInfo2, wxGBPosition( 7, 0 ), wxGBSpan( 1, 3 ), wxALL, 5 );
- sbSizer8->Add( fgSizer1, 1, wxEXPAND, 5 );
+ gbSizer1->AddGrowableCol( 1 );
+
+ sbSizerLocalProperties->Add( gbSizer1, 0, wxEXPAND, 5 );
- m_PropRightSizer->Add( sbSizer8, 0, wxEXPAND|wxALL, 5 );
+ m_PropRightSizer->Add( sbSizerLocalProperties, 1, wxALL|wxEXPAND, 5 );
m_PanelPropertiesBoxSizer->Add( m_PropRightSizer, 0, 0, 5 );
@@ -309,7 +327,7 @@ DIALOG_FOOTPRINT_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_EDITOR_BASE( wxWindow* pare
bSizerMain3D->Fit( m_Panel3D );
m_NoteBook->AddPage( m_Panel3D, _("3D Settings"), false );
- m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND | wxALL, 5 );
+ m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_sdbSizerStdButtons = new wxStdDialogButtonSizer();
m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK );
@@ -318,7 +336,7 @@ DIALOG_FOOTPRINT_FP_EDITOR_BASE::DIALOG_FOOTPRINT_FP_EDITOR_BASE( wxWindow* pare
m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel );
m_sdbSizerStdButtons->Realize();
- m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALL, 5 );
+ m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND, 5 );
this->SetSizer( m_GeneralBoxSizer );
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.fbp b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.fbp
index ec862bd7aa..edf5b3c7db 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.fbp
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.fbp
@@ -95,7 +95,7 @@
private
5
- wxEXPAND | wxALL
+ wxEXPAND|wxTOP|wxRIGHT|wxLEFT
1
1
@@ -260,365 +260,13 @@
none
5
- wxEXPAND|wxLEFT|wxRIGHT|wxTOP
+ wxEXPAND
1
-
- wxID_ANY
- Fields:
+
- PropLeftSizer
+ bLeftSizer
wxVERTICAL
- 1
none
-
-
- 5
- wxTOP|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Document link:
-
- 0
-
-
- 0
-
- 1
- m_staticTextDoc
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_DocCtrl
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxTOP|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Keywords:
-
- 0
-
-
- 0
-
- 1
- m_staticTextKeywords
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_KeywordCtrl
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
5
wxTOP|wxRIGHT|wxLEFT
@@ -977,7 +625,7 @@
5
- wxEXPAND
+ wxEXPAND|wxBOTTOM
0
@@ -1165,9 +813,367 @@
+
+ 10
+ wxEXPAND|wxTOP|wxBOTTOM
+ 0
+
+ 0
+ protected
+ 0
+
+
5
-
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Document link:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextDoc
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+ 0
+
+ 0
+
+ 1
+ m_DocCtrl
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Keywords:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextKeywords
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+ 0
+
+ 0
+
+ 1
+ m_KeywordCtrl
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 10
+ wxTOP|wxBOTTOM
0
20
@@ -1525,8 +1531,8 @@
5
- wxEXPAND
- 0
+ wxEXPAND|wxBOTTOM
+ 1
0
protected
@@ -1748,18 +1754,18 @@
1
none
-
+
5
1
-
+
bSizerRot90
wxVERTICAL
none
5
- wxALIGN_CENTER_HORIZONTAL|wxALL
+ wxRIGHT|wxLEFT
0
1
@@ -1789,7 +1795,7 @@
0
0
wxID_ANY
- Rotation 90 degree
+ Allow 90º rotation:
0
@@ -1950,18 +1956,18 @@
-
+
5
1
-
+
bSizerRot180
wxVERTICAL
none
5
- wxALIGN_CENTER_HORIZONTAL|wxALL
+ wxRIGHT|wxLEFT
0
1
@@ -1991,7 +1997,7 @@
0
0
wxID_ANY
- Rotation 180 degree
+ Allow 180º rotation:
0
@@ -2154,372 +2160,566 @@
-
+
5
- wxEXPAND|wxALL
- 0
-
+ wxALL|wxEXPAND
+ 1
+
wxID_ANY
- Local Clearance Values:
+ Local Settings:
- sbSizer8
+ sbSizerLocalProperties
wxVERTICAL
1
none
-
- 5
- wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,92,-1,70,0
- 0
- 0
- wxID_ANY
- Set clearances to 0 to use global values.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfo
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,93,90,-1,70,0
- 0
- 0
- wxID_ANY
- Positive clearance means area bigger than the pad.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfoValPos
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,93,90,-1,70,0
- 0
- 0
- wxID_ANY
- Negative clearance means area smaller than the pad.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfoValNeg
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,92,-1,70,0
- 0
- 0
- wxID_ANY
- These values are used only to build the mask shape
of pads on copper layers.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfo2
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
5
wxEXPAND
- 1
-
- 3
+ 0
+
+
wxBOTH
1
0
- fgSizer1
+ gbSizer1
wxFLEX_GROWMODE_SPECIFIED
none
- 5
0
-
+
5
- wxLEFT|wxALIGN_CENTER_VERTICAL
- 0
-
+ 1
+ 0
+ wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Pad connection to zones:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText16
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 2
+ 1
+ wxEXPAND|wxBOTTOM|wxRIGHT
+ 0
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ "Use zone setting" "Solid" "Thermal relief" "None"
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_ZoneConnectionChoice
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 0
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 3
+ 0
+ wxEXPAND | wxALL
+ 1
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticline11
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+ wxLI_HORIZONTAL
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 3
+ 0
+ wxEXPAND
+ 2
+ 1
+
+
+ bSizer10
+ wxVERTICAL
+ none
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,90,-1,70,0
+ 0
+ 0
+ wxID_ANY
+ Set clearances to 0 to use netclass values.
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextInfo
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,93,90,10,70,0
+ 0
+ 0
+ wxID_ANY
+ Positive clearance means area bigger than the pad (usual for solder mask).
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextInfoValPos
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,93,90,10,70,0
+ 0
+ 0
+ wxID_ANY
+ Negative clearance means area smaller than the pad (usual for solder paste).
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextInfoValNeg
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 3
+ 1
+
1
1
1
@@ -2568,7 +2768,7 @@
0
-
+ This is the local net clearance for all pad of this footprint
If 0, the Netclass values are used
This value can be superseded by a pad local value.
@@ -2598,11 +2798,14 @@
-
+
5
- wxALL|wxEXPAND
- 0
-
+ 1
+ 1
+ wxEXPAND|wxTOP|wxBOTTOM
+ 3
+ 1
+
1
1
1
@@ -2689,11 +2892,14 @@
-
+
5
- wxRIGHT|wxALIGN_CENTER_VERTICAL
- 0
-
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 3
+ 1
+
1
1
1
@@ -2721,7 +2927,7 @@
0
0
wxID_ANY
- Inch
+ unit
0
@@ -2772,254 +2978,14 @@
-
+
5
- wxEXPAND
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline1
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxEXPAND
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline2
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxEXPAND
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline3
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxLEFT
- 0
-
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 4
+ 1
+
1
1
1
@@ -3098,11 +3064,14 @@
-
+
5
- wxALL|wxEXPAND
- 0
-
+ 1
+ 1
+ wxEXPAND|wxTOP
+ 4
+ 1
+
1
1
1
@@ -3136,7 +3105,7 @@
0
0
-
+ 150,-1
1
m_SolderMaskMarginCtrl
1
@@ -3189,11 +3158,14 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT
- 0
-
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 4
+ 1
+
1
1
1
@@ -3221,7 +3193,7 @@
0
0
wxID_ANY
- inch
+ unit
0
@@ -3272,11 +3244,14 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxLEFT
- 0
-
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 5
+ 1
+
1
1
1
@@ -3355,11 +3330,14 @@
-
- 5
- wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT
- 0
-
+
+ 2
+ 1
+ 1
+ wxEXPAND|wxTOP|wxBOTTOM
+ 5
+ 1
+
1
1
1
@@ -3446,11 +3424,14 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT
- 0
-
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 5
+ 1
+
1
1
1
@@ -3478,7 +3459,7 @@
0
0
wxID_ANY
- Inch
+ unit
0
@@ -3529,11 +3510,14 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxLEFT
- 0
-
+ 1
+ 0
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 6
+ 1
+
1
1
1
@@ -3612,11 +3596,14 @@
-
- 5
- wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT
- 0
-
+
+ 2
+ 1
+ 1
+ wxEXPAND|wxBOTTOM
+ 6
+ 1
+
1
1
1
@@ -3703,11 +3690,14 @@
-
+
5
- wxALIGN_CENTER_VERTICAL|wxRIGHT
- 0
-
+ 1
+ 2
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT
+ 6
+ 1
+
1
1
1
@@ -3786,6 +3776,92 @@
+
+ 5
+ 3
+ 0
+ wxALL
+ 7
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,90,10,70,0
+ 0
+ 0
+ wxID_ANY
+ Note: solder mask and paste values are used only for pads on copper layers.
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticTextInfo2
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4384,7 +4460,7 @@
5
- wxEXPAND|wxALL
+ wxEXPAND
0
0
diff --git a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.h b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.h
index 764baad204..260e6c64ef 100644
--- a/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.h
+++ b/pcbnew/dialogs/dialog_edit_footprint_for_fp_editor_base.h
@@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 4 2017)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
-// PLEASE DO "NOT" EDIT THIS FILE!
+// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_EDIT_FOOTPRINT_FOR_FP_EDITOR_BASE_H__
@@ -11,7 +11,6 @@
#include
#include
#include
-class DIALOG_SHIM;
class TEXT_CTRL_EVAL;
#include "dialog_shim.h"
@@ -24,10 +23,12 @@ class TEXT_CTRL_EVAL;
#include
#include
#include
-#include
#include
#include
+#include
+#include
#include
+#include
#include
#include
#include
@@ -54,16 +55,16 @@ class DIALOG_FOOTPRINT_FP_EDITOR_BASE : public DIALOG_SHIM
protected:
wxNotebook* m_NoteBook;
wxPanel* m_PanelProperties;
- wxStaticText* m_staticTextDoc;
- wxTextCtrl* m_DocCtrl;
- wxStaticText* m_staticTextKeywords;
- wxTextCtrl* m_KeywordCtrl;
wxStaticText* m_staticTextRef;
wxTextCtrl* m_ReferenceCtrl;
wxButton* m_button4;
wxStaticText* m_staticTextVal;
wxTextCtrl* m_ValueCtrl;
wxButton* m_button5;
+ wxStaticText* m_staticTextDoc;
+ wxTextCtrl* m_DocCtrl;
+ wxStaticText* m_staticTextKeywords;
+ wxTextCtrl* m_KeywordCtrl;
wxStaticText* m_staticTextFp;
wxTextCtrl* m_FootprintNameCtrl;
wxStaticText* m_staticTextLibNickname;
@@ -74,16 +75,15 @@ class DIALOG_FOOTPRINT_FP_EDITOR_BASE : public DIALOG_SHIM
wxSlider* m_CostRot90Ctrl;
wxStaticText* m_staticText12;
wxSlider* m_CostRot180Ctrl;
+ wxStaticText* m_staticText16;
+ wxChoice* m_ZoneConnectionChoice;
+ wxStaticLine* m_staticline11;
wxStaticText* m_staticTextInfo;
wxStaticText* m_staticTextInfoValPos;
wxStaticText* m_staticTextInfoValNeg;
- wxStaticText* m_staticTextInfo2;
wxStaticText* m_staticTextNetClearance;
TEXT_CTRL_EVAL* m_NetClearanceValueCtrl;
wxStaticText* m_NetClearanceUnits;
- wxStaticLine* m_staticline1;
- wxStaticLine* m_staticline2;
- wxStaticLine* m_staticline3;
wxStaticText* m_MaskClearanceTitle;
TEXT_CTRL_EVAL* m_SolderMaskMarginCtrl;
wxStaticText* m_SolderMaskMarginUnits;
@@ -93,6 +93,7 @@ class DIALOG_FOOTPRINT_FP_EDITOR_BASE : public DIALOG_SHIM
wxStaticText* m_staticTextRatio;
TEXT_CTRL_EVAL* m_SolderPasteMarginRatioCtrl;
wxStaticText* m_SolderPasteRatioMarginUnits;
+ wxStaticText* m_staticTextInfo2;
wxPanel* m_Panel3D;
wxListBox* m_3D_ShapeNameListBox;
wxButton* m_buttonBrowse;
diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp
index cd8b7a7fbf..cb0bdbfd90 100644
--- a/pcbnew/dialogs/dialog_pad_properties.cpp
+++ b/pcbnew/dialogs/dialog_pad_properties.cpp
@@ -125,6 +125,9 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aP
m_cbShowPadOutline->SetValue( m_drawPadOutlineMode );
+ m_FlippedWarningIcon->SetBitmap( KiBitmap( dialog_warning_xpm ) );
+ m_nonCopperWarningIcon->SetBitmap( KiBitmap( dialog_warning_xpm ) );
+
m_padMaster = &m_parent->GetDesignSettings().m_Pad_Master;
m_dummyPad = new D_PAD( (MODULE*) NULL );
@@ -135,6 +138,12 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aP
initValues();
+ wxFont infoFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
+ infoFont.SetSymbolicSize( wxFONTSIZE_SMALL );
+ m_staticTextInfoNegVal->SetFont( infoFont );
+ m_staticTextInfoPosValue->SetFont( infoFont );
+ m_nonCopperNote->SetFont( infoFont );
+
// Usually, TransferDataToWindow is called by OnInitDialog
// calling it here fixes all widgets sizes, and FinishDialogSettings can
// safely fix minsizes
@@ -549,8 +558,7 @@ void DIALOG_PAD_PROPERTIES::initValues()
m_primitives = m_dummyPad->GetPrimitives();
- m_FlippedWarningIcon->SetBitmap( KiBitmap( dialog_warning_xpm ) );
- m_FlippedWarningSizer->Show(m_isFlipped);
+ m_FlippedWarningSizer->Show( m_isFlipped );
m_PadNumCtrl->SetValue( m_dummyPad->GetName() );
m_PadNetNameCtrl->SetValue( m_dummyPad->GetNetname() );
diff --git a/pcbnew/dialogs/dialog_pad_properties.h b/pcbnew/dialogs/dialog_pad_properties.h
index 4987287535..10ede8bcbb 100644
--- a/pcbnew/dialogs/dialog_pad_properties.h
+++ b/pcbnew/dialogs/dialog_pad_properties.h
@@ -119,9 +119,10 @@ private:
void OnResize( wxSizeEvent& event );
void OnCancel( wxCommandEvent& event ) override;
- void updateUITextWarning( wxUpdateUIEvent& event ) override
+ void OnUpdateUINonCopperWarning( wxUpdateUIEvent& event ) override
{
- event.Enable( ( m_dummyPad->GetLayerSet() & LSET::AllCuMask() ).any() );
+ bool isOnCopperLayer = ( m_dummyPad->GetLayerSet() & LSET::AllCuMask() ).any();
+ m_nonCopperWarningBook->SetSelection( isOnCopperLayer ? 0 : 1 );
}
void OnPadShapeSelection( wxCommandEvent& event ) override;
diff --git a/pcbnew/dialogs/dialog_pad_properties_base.cpp b/pcbnew/dialogs/dialog_pad_properties_base.cpp
index ea3f9d44d7..033b7b2537 100644
--- a/pcbnew/dialogs/dialog_pad_properties_base.cpp
+++ b/pcbnew/dialogs/dialog_pad_properties_base.cpp
@@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 4 2017)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
-// PLEASE DO "NOT" EDIT THIS FILE!
+// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "widgets/text_ctrl_eval.h"
@@ -312,7 +312,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
bSizer10->Add( fgSizerGeometry, 0, wxEXPAND, 5 );
wxStaticBoxSizer* m_LayersSizer;
- m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelGeneral, wxID_ANY, _("Layers:") ), wxVERTICAL );
+ m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelGeneral, wxID_ANY, _("Layers") ), wxVERTICAL );
m_FlippedWarningSizer = new wxBoxSizer( wxHORIZONTAL );
@@ -400,32 +400,27 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
wxBoxSizer* bSizerClearance;
bSizerClearance = new wxBoxSizer( wxVERTICAL );
- m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextWarning->Wrap( -1 );
- m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
+ wxStaticText* m_staticTextHint;
+ m_staticTextHint = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set values to 0 to use parent footprint or netclass values."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHint->Wrap( -1 );
+ m_staticTextHint->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizerClearance->Add( m_staticTextWarning, 0, wxALL, 5 );
+ bSizerClearance->Add( m_staticTextHint, 0, wxTOP|wxRIGHT|wxLEFT, 10 );
- m_staticTextInfo = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("These parameters are used only by pads on copper layers.\nPads only on technical layers do not use these parameters."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextInfo->Wrap( -1 );
- m_staticTextInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
-
- bSizerClearance->Add( m_staticTextInfo, 0, wxALL, 5 );
-
- m_staticTextInfoPosValue = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Positive clearance means area bigger than the pad (usual for mask clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInfoPosValue = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Positive clearance means area bigger than the pad (usual for mask clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfoPosValue->Wrap( -1 );
- m_staticTextInfoPosValue->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextInfoPosValue->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizerClearance->Add( m_staticTextInfoPosValue, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ bSizerClearance->Add( m_staticTextInfoPosValue, 0, wxTOP|wxRIGHT|wxLEFT, 10 );
m_staticTextInfoNegVal = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Negative clearance means area smaller than the pad (usual for paste clearance)."), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextInfoNegVal->Wrap( -1 );
- m_staticTextInfoNegVal->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ m_staticTextInfoNegVal->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizerClearance->Add( m_staticTextInfoNegVal, 0, wxALL, 5 );
+ bSizerClearance->Add( m_staticTextInfoNegVal, 0, wxBOTTOM|wxRIGHT|wxLEFT, 10 );
wxStaticBoxSizer* sbClearancesSizer;
- sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances:") ), wxVERTICAL );
+ sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances") ), wxVERTICAL );
wxFlexGridSizer* fgClearancesGridSizer;
fgClearancesGridSizer = new wxFlexGridSizer( 4, 3, 0, 0 );
@@ -437,14 +432,14 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
m_staticTextNetClearance->Wrap( -1 );
m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for pad.\nIf 0, the footprint local value or the Netclass value is used") );
- fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );
+ fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
m_NetClearanceValueCtrl = new TEXT_CTRL_EVAL( sbClearancesSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxEXPAND|wxLEFT|wxTOP, 5 );
+ fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxEXPAND|wxBOTTOM|wxLEFT, 5 );
m_NetClearanceUnits = new wxStaticText( sbClearancesSizer->GetStaticBox(), wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 );
m_NetClearanceUnits->Wrap( -1 );
- fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5 );
+ fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_MaskClearanceTitle = new wxStaticText( sbClearancesSizer->GetStaticBox(), wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 );
m_MaskClearanceTitle->Wrap( -1 );
@@ -488,10 +483,52 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
sbClearancesSizer->Add( fgClearancesGridSizer, 0, wxEXPAND, 5 );
+ m_nonCopperWarningBook = new wxSimplebook( sbClearancesSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ wxPanel* notePanel;
+ notePanel = new wxPanel( m_nonCopperWarningBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bNoteSizer;
+ bNoteSizer = new wxBoxSizer( wxVERTICAL );
+
+ m_nonCopperNote = new wxStaticText( notePanel, wxID_ANY, _("Note: solder mask and paste values are used only for pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_nonCopperNote->Wrap( -1 );
+ m_nonCopperNote->SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+
+ bNoteSizer->Add( m_nonCopperNote, 0, wxBOTTOM|wxRIGHT|wxTOP, 15 );
+
+
+ notePanel->SetSizer( bNoteSizer );
+ notePanel->Layout();
+ bNoteSizer->Fit( notePanel );
+ m_nonCopperWarningBook->AddPage( notePanel, _("a page"), false );
+ wxPanel* warningPanel;
+ warningPanel = new wxPanel( m_nonCopperWarningBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bWarningSizer;
+ bWarningSizer = new wxBoxSizer( wxHORIZONTAL );
+
+ bWarningSizer->SetMinSize( wxSize( -1,50 ) );
+ m_nonCopperWarningIcon = new wxStaticBitmap( warningPanel, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 48,48 ), 0 );
+ m_nonCopperWarningIcon->SetMinSize( wxSize( 48,48 ) );
+
+ bWarningSizer->Add( m_nonCopperWarningIcon, 0, wxALL, 5 );
+
+ m_nonCopperWarningText = new wxStaticText( warningPanel, wxID_ANY, _("Note: solder mask and paste values are used only for pads on copper layers."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_nonCopperWarningText->Wrap( -1 );
+ m_nonCopperWarningText->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+
+ bWarningSizer->Add( m_nonCopperWarningText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ warningPanel->SetSizer( bWarningSizer );
+ warningPanel->Layout();
+ bWarningSizer->Fit( warningPanel );
+ m_nonCopperWarningBook->AddPage( warningPanel, _("a page"), false );
+
+ sbClearancesSizer->Add( m_nonCopperWarningBook, 1, wxEXPAND | wxALL, 5 );
+
bSizerClearance->Add( sbClearancesSizer, 0, wxALL|wxEXPAND, 5 );
- m_sbSizerZonesSettings = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Connection to Copper Zones:") ), wxVERTICAL );
+ m_sbSizerZonesSettings = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Connection to Copper Zones") ), wxVERTICAL );
wxFlexGridSizer* fgSizerCopperZonesOpts;
fgSizerCopperZonesOpts = new wxFlexGridSizer( 0, 3, 0, 0 );
@@ -501,13 +538,13 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
m_staticText40 = new wxStaticText( m_sbSizerZonesSettings->GetStaticBox(), wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText40->Wrap( -1 );
- fgSizerCopperZonesOpts->Add( m_staticText40, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );
+ fgSizerCopperZonesOpts->Add( m_staticText40, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
wxString m_ZoneConnectionChoiceChoices[] = { _("From parent footprint"), _("Solid"), _("Thermal relief"), _("None") };
int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString );
m_ZoneConnectionChoice = new wxChoice( m_sbSizerZonesSettings->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 );
m_ZoneConnectionChoice->SetSelection( 0 );
- fgSizerCopperZonesOpts->Add( m_ZoneConnectionChoice, 0, wxLEFT|wxTOP|wxEXPAND, 5 );
+ fgSizerCopperZonesOpts->Add( m_ZoneConnectionChoice, 0, wxEXPAND|wxLEFT, 5 );
fgSizerCopperZonesOpts->Add( 0, 0, 1, wxEXPAND, 5 );
@@ -540,7 +577,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
bSizerClearance->Add( m_sbSizerZonesSettings, 0, wxALL|wxEXPAND, 5 );
- m_sbSizerCustomShapedZonesSettings = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Connection to Copper Zones:") ), wxVERTICAL );
+ m_sbSizerCustomShapedZonesSettings = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Connection to Copper Zones") ), wxVERTICAL );
wxFlexGridSizer* fgSizerCustomShapedCopperZonesOpts;
fgSizerCustomShapedCopperZonesOpts = new wxFlexGridSizer( 0, 2, 0, 0 );
@@ -550,17 +587,17 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
m_staticTextCsZconnTitle = new wxStaticText( m_sbSizerCustomShapedZonesSettings->GetStaticBox(), wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextCsZconnTitle->Wrap( -1 );
- fgSizerCustomShapedCopperZonesOpts->Add( m_staticTextCsZconnTitle, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP, 5 );
+ fgSizerCustomShapedCopperZonesOpts->Add( m_staticTextCsZconnTitle, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
wxString m_ZoneConnectionCustomChoices[] = { _("None"), _("Solid") };
int m_ZoneConnectionCustomNChoices = sizeof( m_ZoneConnectionCustomChoices ) / sizeof( wxString );
m_ZoneConnectionCustom = new wxChoice( m_sbSizerCustomShapedZonesSettings->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionCustomNChoices, m_ZoneConnectionCustomChoices, 0 );
m_ZoneConnectionCustom->SetSelection( 0 );
- fgSizerCustomShapedCopperZonesOpts->Add( m_ZoneConnectionCustom, 0, wxALL|wxEXPAND, 5 );
+ fgSizerCustomShapedCopperZonesOpts->Add( m_ZoneConnectionCustom, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_staticTextcps = new wxStaticText( m_sbSizerCustomShapedZonesSettings->GetStaticBox(), wxID_ANY, _("Custom pad shape in zone:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextcps->Wrap( -1 );
- fgSizerCustomShapedCopperZonesOpts->Add( m_staticTextcps, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+ fgSizerCustomShapedCopperZonesOpts->Add( m_staticTextcps, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
wxString m_ZoneCustomPadShapeChoices[] = { _("Use pad shape"), _("Use pad convex hull") };
int m_ZoneCustomPadShapeNChoices = sizeof( m_ZoneCustomPadShapeChoices ) / sizeof( wxString );
@@ -572,7 +609,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
m_sbSizerCustomShapedZonesSettings->Add( fgSizerCustomShapedCopperZonesOpts, 0, wxEXPAND, 5 );
- bSizerClearance->Add( m_sbSizerCustomShapedZonesSettings, 1, wxEXPAND, 5 );
+ bSizerClearance->Add( m_sbSizerCustomShapedZonesSettings, 1, wxALL|wxEXPAND, 5 );
bSizerPanelClearance->Add( bSizerClearance, 0, wxALL|wxEXPAND, 5 );
@@ -652,11 +689,11 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
bSizerDisplayPad->Add( 0, 0, 0, wxBOTTOM|wxEXPAND|wxTOP, 3 );
wxStaticBoxSizer* sbSizeModuleInfo;
- sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Parent Footprint Orientation:") ), wxVERTICAL );
+ sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Parent Footprint Orientation") ), wxVERTICAL );
m_staticModuleSideValue = new wxStaticText( sbSizeModuleInfo->GetStaticBox(), wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticModuleSideValue->Wrap( -1 );
- sbSizeModuleInfo->Add( m_staticModuleSideValue, 0, wxALL|wxBOTTOM|wxTOP, 5 );
+ sbSizeModuleInfo->Add( m_staticModuleSideValue, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerParentInfo;
bSizerParentInfo = new wxBoxSizer( wxHORIZONTAL );
@@ -750,9 +787,8 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
m_PadLayerDraft->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this );
m_PadLayerECO1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this );
m_PadLayerECO2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this );
- m_staticTextWarning->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_PAD_PROPERTIES_BASE::updateUITextWarning ), NULL, this );
- m_staticTextInfo->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_PAD_PROPERTIES_BASE::updateUiTextInfo ), NULL, this );
m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this );
+ m_nonCopperWarningBook->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnUpdateUINonCopperWarning ), NULL, this );
m_listCtrlPrimitives->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_PAD_PROPERTIES_BASE::onPrimitiveDClick ), NULL, this );
m_listCtrlPrimitives->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPrimitiveSelection ), NULL, this );
m_listCtrlPrimitives->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPrimitiveSelection ), NULL, this );
@@ -799,9 +835,8 @@ DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE()
m_PadLayerDraft->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this );
m_PadLayerECO1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this );
m_PadLayerECO2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this );
- m_staticTextWarning->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_PAD_PROPERTIES_BASE::updateUITextWarning ), NULL, this );
- m_staticTextInfo->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_PAD_PROPERTIES_BASE::updateUiTextInfo ), NULL, this );
m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this );
+ m_nonCopperWarningBook->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnUpdateUINonCopperWarning ), NULL, this );
m_listCtrlPrimitives->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_PAD_PROPERTIES_BASE::onPrimitiveDClick ), NULL, this );
m_listCtrlPrimitives->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPrimitiveSelection ), NULL, this );
m_listCtrlPrimitives->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPrimitiveSelection ), NULL, this );
diff --git a/pcbnew/dialogs/dialog_pad_properties_base.fbp b/pcbnew/dialogs/dialog_pad_properties_base.fbp
index 23a9af5d9a..4e193981a7 100644
--- a/pcbnew/dialogs/dialog_pad_properties_base.fbp
+++ b/pcbnew/dialogs/dialog_pad_properties_base.fbp
@@ -5494,7 +5494,7 @@
1
wxID_ANY
- Layers:
+ Layers
-1,-1
m_LayersSizer
wxVERTICAL
@@ -7009,8 +7009,8 @@
wxVERTICAL
none
- 5
- wxALL
+ 10
+ wxTOP|wxRIGHT|wxLEFT
0
1
@@ -7036,11 +7036,11 @@
1
1
- ,90,92,-1,70,0
+ ,90,90,-1,70,0
0
0
wxID_ANY
- Set fields to 0 to use parent or global values.
+ Set values to 0 to use parent footprint or netclass values.
0
@@ -7048,11 +7048,11 @@
0
1
- m_staticTextWarning
+ m_staticTextHint
1
- protected
+ none
1
Resizable
@@ -7088,94 +7088,11 @@
- updateUITextWarning
+
- 5
- wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,92,-1,70,0
- 0
- 0
- wxID_ANY
- These parameters are used only by pads on copper layers.
Pads only on technical layers do not use these parameters.
-
- 0
-
-
- 0
-
- 1
- m_staticTextInfo
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- updateUiTextInfo
-
-
-
- 5
+ 10
wxTOP|wxRIGHT|wxLEFT
0
@@ -7202,11 +7119,11 @@
1
1
- ,93,90,-1,70,0
+ ,93,90,12,70,0
0
0
wxID_ANY
- Positive clearance means area bigger than the pad (usual for mask clearance).
+ Positive clearance means area bigger than the pad (usual for mask clearance).
0
@@ -7258,8 +7175,8 @@
- 5
- wxALL
+ 10
+ wxBOTTOM|wxRIGHT|wxLEFT
0
1
@@ -7285,7 +7202,7 @@
1
1
- ,93,90,-1,70,0
+ ,93,90,12,70,0
0
0
wxID_ANY
@@ -7346,7 +7263,7 @@
0
wxID_ANY
- Clearances:
+ Clearances
sbClearancesSizer
wxVERTICAL
@@ -7371,7 +7288,7 @@
0
5
- wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT
0
1
@@ -7454,7 +7371,7 @@
5
- wxEXPAND|wxLEFT|wxTOP
+ wxEXPAND|wxBOTTOM|wxLEFT
0
1
@@ -7545,7 +7462,7 @@
5
- wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT
0
1
@@ -8399,6 +8316,505 @@
+
+ 5
+ wxEXPAND | wxALL
+ 1
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_nonCopperWarningBook
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+ ; forward_declare
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OnUpdateUINonCopperWarning
+
+ a page
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ notePanel
+ 1
+
+
+ none
+ 1
+
+ Resizable
+ 1
+
+ ; forward_declare
+ 0
+
+
+
+ wxTAB_TRAVERSAL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bNoteSizer
+ wxVERTICAL
+ none
+
+ 15
+ wxBOTTOM|wxRIGHT|wxTOP
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,90,12,70,0
+ 0
+ 0
+ wxID_ANY
+ Note: solder mask and paste values are used only for pads on copper layers.
+
+ 0
+
+
+ 0
+ -1,-1
+ 1
+ m_nonCopperNote
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a page
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ warningPanel
+ 1
+
+
+ none
+ 1
+
+ Resizable
+ 1
+
+ ; forward_declare
+ 0
+
+
+
+ wxTAB_TRAVERSAL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -1,50
+ bWarningSizer
+ wxHORIZONTAL
+ none
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+ 48,48
+ 1
+ m_nonCopperWarningIcon
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+ 48,48
+ ; forward_declare
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,90,-1,70,0
+ 0
+ 0
+ wxID_ANY
+ Note: solder mask and paste values are used only for pads on copper layers.
+
+ 0
+
+
+ 0
+
+ 1
+ m_nonCopperWarningText
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8407,7 +8823,7 @@
0
wxID_ANY
- Connection to Copper Zones:
+ Connection to Copper Zones
m_sbSizerZonesSettings
wxVERTICAL
@@ -8432,7 +8848,7 @@
0
5
- wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP
+ wxALIGN_CENTER_VERTICAL|wxLEFT
0
1
@@ -8515,7 +8931,7 @@
5
- wxLEFT|wxTOP|wxEXPAND
+ wxEXPAND|wxLEFT
0
1
@@ -9131,11 +9547,11 @@
5
- wxEXPAND
+ wxALL|wxEXPAND
1
wxID_ANY
- Connection to Copper Zones:
+ Connection to Copper Zones
m_sbSizerCustomShapedZonesSettings
wxVERTICAL
@@ -9160,7 +9576,7 @@
0
5
- wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT
0
1
@@ -9243,7 +9659,7 @@
5
- wxALL|wxEXPAND
+ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
0
1
@@ -9331,7 +9747,7 @@
5
- wxALL|wxALIGN_CENTER_VERTICAL
+ wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT
0
1
@@ -10454,7 +10870,7 @@
0
wxID_ANY
- Parent Footprint Orientation:
+ Parent Footprint Orientation
-1,-1
sbSizeModuleInfo
wxVERTICAL
@@ -10463,7 +10879,7 @@
5
- wxALL|wxBOTTOM|wxTOP
+ wxBOTTOM|wxRIGHT|wxLEFT
0
1
diff --git a/pcbnew/dialogs/dialog_pad_properties_base.h b/pcbnew/dialogs/dialog_pad_properties_base.h
index e018e50df8..91b938261d 100644
--- a/pcbnew/dialogs/dialog_pad_properties_base.h
+++ b/pcbnew/dialogs/dialog_pad_properties_base.h
@@ -1,8 +1,8 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 4 2017)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
-// PLEASE DO "NOT" EDIT THIS FILE!
+// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__
@@ -11,9 +11,7 @@
#include
#include
#include
-class DIALOG_SHIM;
class TEXT_CTRL_EVAL;
-class wxListView;
#include "dialog_shim.h"
#include
@@ -33,6 +31,7 @@ class wxListView;
#include
#include
#include
+#include
#include
#include
#include
@@ -138,8 +137,6 @@ class DIALOG_PAD_PROPERTIES_BASE : public DIALOG_SHIM
wxCheckBox* m_PadLayerECO1;
wxCheckBox* m_PadLayerECO2;
wxPanel* m_localSettingsPanel;
- wxStaticText* m_staticTextWarning;
- wxStaticText* m_staticTextInfo;
wxStaticText* m_staticTextInfoPosValue;
wxStaticText* m_staticTextInfoNegVal;
wxStaticText* m_staticTextNetClearance;
@@ -154,6 +151,10 @@ class DIALOG_PAD_PROPERTIES_BASE : public DIALOG_SHIM
wxStaticText* m_staticTextRatio;
TEXT_CTRL_EVAL* m_SolderPasteMarginRatioCtrl;
wxStaticText* m_SolderPasteRatioMarginUnits;
+ wxSimplebook* m_nonCopperWarningBook;
+ wxStaticText* m_nonCopperNote;
+ wxStaticBitmap* m_nonCopperWarningIcon;
+ wxStaticText* m_nonCopperWarningText;
wxStaticBoxSizer* m_sbSizerZonesSettings;
wxStaticText* m_staticText40;
wxChoice* m_ZoneConnectionChoice;
@@ -200,8 +201,7 @@ class DIALOG_PAD_PROPERTIES_BASE : public DIALOG_SHIM
virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); }
virtual void onCornerSizePercentChange( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); }
- virtual void updateUITextWarning( wxUpdateUIEvent& event ) { event.Skip(); }
- virtual void updateUiTextInfo( wxUpdateUIEvent& event ) { event.Skip(); }
+ virtual void OnUpdateUINonCopperWarning( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void onPrimitiveDClick( wxMouseEvent& event ) { event.Skip(); }
virtual void OnPrimitiveSelection( wxListEvent& event ) { event.Skip(); }
virtual void onDeletePrimitive( wxCommandEvent& event ) { event.Skip(); }