Pcbnew: Fix Bug #951414 (Windows specific)
Ckecks more pad parameters in pad editor dialog (previously not tested, so a pad could have some very incorrect parameters)
This commit is contained in:
parent
c047d7f484
commit
3976d5087e
|
@ -21,6 +21,7 @@
|
||||||
#include <class_module.h>
|
#include <class_module.h>
|
||||||
|
|
||||||
#include <dialog_pad_properties_base.h>
|
#include <dialog_pad_properties_base.h>
|
||||||
|
#include <html_messagebox.h>
|
||||||
|
|
||||||
|
|
||||||
// list of pad shapes.
|
// list of pad shapes.
|
||||||
|
@ -84,6 +85,7 @@ private:
|
||||||
static wxSize prevSize;
|
static wxSize prevSize;
|
||||||
|
|
||||||
void initValues();
|
void initValues();
|
||||||
|
bool PadValuesOK(); // test if all values are acceptable for the pad
|
||||||
void OnPadShapeSelection( wxCommandEvent& event );
|
void OnPadShapeSelection( wxCommandEvent& event );
|
||||||
void OnDrillShapeSelected( wxCommandEvent& event );
|
void OnDrillShapeSelected( wxCommandEvent& event );
|
||||||
void PadOrientEvent( wxCommandEvent& event );
|
void PadOrientEvent( wxCommandEvent& event );
|
||||||
|
@ -93,7 +95,7 @@ private:
|
||||||
void OnSetLayers( wxCommandEvent& event );
|
void OnSetLayers( wxCommandEvent& event );
|
||||||
void OnCancelButtonClick( wxCommandEvent& event );
|
void OnCancelButtonClick( wxCommandEvent& event );
|
||||||
void OnPaintShowPanel( wxPaintEvent& event );
|
void OnPaintShowPanel( wxPaintEvent& event );
|
||||||
bool TransfertDataToPad( D_PAD* aPad, bool aPromptOnError = false );
|
bool TransfertDataToPad( D_PAD* aPad );
|
||||||
void OnValuesChanged( wxCommandEvent& event );
|
void OnValuesChanged( wxCommandEvent& event );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -209,6 +211,23 @@ void DIALOG_PAD_PROPERTIES::initValues()
|
||||||
wxString msg;
|
wxString msg;
|
||||||
double angle;
|
double angle;
|
||||||
|
|
||||||
|
// Setup layers names from board
|
||||||
|
// Should be made first, before calling m_rbCopperLayersSel->SetSelection()
|
||||||
|
m_rbCopperLayersSel->SetString( 0, m_Board->GetLayerName( LAYER_N_FRONT ) );
|
||||||
|
m_rbCopperLayersSel->SetString( 1, m_Board->GetLayerName( LAYER_N_BACK ) );
|
||||||
|
|
||||||
|
m_PadLayerAdhCmp->SetLabel( m_Board->GetLayerName( ADHESIVE_N_FRONT ) );
|
||||||
|
m_PadLayerAdhCu->SetLabel( m_Board->GetLayerName( ADHESIVE_N_BACK ) );
|
||||||
|
m_PadLayerPateCmp->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_FRONT ) );
|
||||||
|
m_PadLayerPateCu->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_BACK ) );
|
||||||
|
m_PadLayerSilkCmp->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_FRONT ) );
|
||||||
|
m_PadLayerSilkCu->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_BACK ) );
|
||||||
|
m_PadLayerMaskCmp->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_FRONT ) );
|
||||||
|
m_PadLayerMaskCu->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_BACK ) );
|
||||||
|
m_PadLayerECO1->SetLabel( m_Board->GetLayerName( ECO1_N ) );
|
||||||
|
m_PadLayerECO2->SetLabel( m_Board->GetLayerName( ECO2_N ) );
|
||||||
|
m_PadLayerDraft->SetLabel( m_Board->GetLayerName( DRAW_N ) );
|
||||||
|
|
||||||
m_isFlipped = false;
|
m_isFlipped = false;
|
||||||
|
|
||||||
if( m_CurrentPad )
|
if( m_CurrentPad )
|
||||||
|
@ -424,26 +443,9 @@ void DIALOG_PAD_PROPERTIES::initValues()
|
||||||
else
|
else
|
||||||
m_DrillShapeCtrl->SetSelection( 1 );
|
m_DrillShapeCtrl->SetSelection( 1 );
|
||||||
|
|
||||||
// Setup layers names from board
|
|
||||||
|
|
||||||
m_rbCopperLayersSel->SetString( 0, m_Board->GetLayerName( LAYER_N_FRONT ) );
|
|
||||||
m_rbCopperLayersSel->SetString( 1, m_Board->GetLayerName( LAYER_N_BACK ) );
|
|
||||||
|
|
||||||
m_PadLayerAdhCmp->SetLabel( m_Board->GetLayerName( ADHESIVE_N_FRONT ) );
|
|
||||||
m_PadLayerAdhCu->SetLabel( m_Board->GetLayerName( ADHESIVE_N_BACK ) );
|
|
||||||
m_PadLayerPateCmp->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_FRONT ) );
|
|
||||||
m_PadLayerPateCu->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_BACK ) );
|
|
||||||
m_PadLayerSilkCmp->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_FRONT ) );
|
|
||||||
m_PadLayerSilkCu->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_BACK ) );
|
|
||||||
m_PadLayerMaskCmp->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_FRONT ) );
|
|
||||||
m_PadLayerMaskCu->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_BACK ) );
|
|
||||||
m_PadLayerECO1->SetLabel( m_Board->GetLayerName( ECO1_N ) );
|
|
||||||
m_PadLayerECO2->SetLabel( m_Board->GetLayerName( ECO2_N ) );
|
|
||||||
m_PadLayerDraft->SetLabel( m_Board->GetLayerName( DRAW_N ) );
|
|
||||||
|
|
||||||
// Update some dialog widgets state (Enable/disable options):
|
// Update some dialog widgets state (Enable/disable options):
|
||||||
wxCommandEvent cmd_event;
|
wxCommandEvent cmd_event;
|
||||||
OnPadShapeSelection( cmd_event );
|
SetPadLayersList( m_dummyPad->GetLayerMask() );
|
||||||
OnDrillShapeSelected( cmd_event );
|
OnDrillShapeSelected( cmd_event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -623,23 +625,93 @@ void DIALOG_PAD_PROPERTIES::OnSetLayers( wxCommandEvent& event )
|
||||||
m_panelShowPad->Refresh();
|
m_panelShowPad->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test if all values are acceptable for the pad
|
||||||
|
bool DIALOG_PAD_PROPERTIES::PadValuesOK()
|
||||||
|
{
|
||||||
|
bool error = TransfertDataToPad( m_dummyPad );
|
||||||
|
|
||||||
|
wxArrayString error_msgs;
|
||||||
|
wxString msg;
|
||||||
|
|
||||||
|
// Test for incorrect values
|
||||||
|
if( (m_dummyPad->GetSize().x < m_dummyPad->GetDrillSize().x) ||
|
||||||
|
(m_dummyPad->GetSize().y < m_dummyPad->GetDrillSize().y) )
|
||||||
|
{
|
||||||
|
error_msgs.Add( _( "Incorrect value for pad drill: pad drill bigger than pad size" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
int padlayers_mask = m_dummyPad->GetLayerMask();
|
||||||
|
if( ( padlayers_mask == 0 ) && ( m_dummyPad->GetAttribute() != PAD_HOLE_NOT_PLATED ) )
|
||||||
|
error_msgs.Add( _( "Error: pad has no layer and is not a mechanical pad" ) );
|
||||||
|
|
||||||
|
padlayers_mask &= (LAYER_BACK | LAYER_FRONT);
|
||||||
|
if( padlayers_mask == 0 )
|
||||||
|
{
|
||||||
|
if( m_dummyPad->GetDrillSize().x || m_dummyPad->GetDrillSize().y )
|
||||||
|
{
|
||||||
|
msg = _( "Error: pad is not on a copper layer and has a hole" );
|
||||||
|
if( m_dummyPad->GetAttribute() == PAD_HOLE_NOT_PLATED )
|
||||||
|
{
|
||||||
|
msg += wxT("\n");
|
||||||
|
msg += _( "For NPTH pad, set pad drill value to pad size value,\n\
|
||||||
|
if you do not want this pad plotted in gerber files");
|
||||||
|
}
|
||||||
|
error_msgs.Add( msg );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( m_dummyPad->GetSize().x / 2 <= ABS( m_dummyPad->GetOffset().x ) ||
|
||||||
|
m_dummyPad->GetSize().y / 2 <= ABS( m_dummyPad->GetOffset().y ) )
|
||||||
|
{
|
||||||
|
error_msgs.Add( _( "Incorrect value for pad offset" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( error )
|
||||||
|
{
|
||||||
|
error_msgs.Add( _( "Too large value for pad delta size" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
switch( m_dummyPad->GetAttribute() )
|
||||||
|
{
|
||||||
|
case PAD_STANDARD : // Pad through hole, a hole is expected
|
||||||
|
if( m_dummyPad->GetDrillSize().x <= 0 )
|
||||||
|
error_msgs.Add( _( "Incorrect value for pad drill (too small value)" ) );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PAD_SMD: // SMD and Connector pads (One external copper layer only)
|
||||||
|
case PAD_CONN:
|
||||||
|
if( (padlayers_mask & LAYER_BACK) && (padlayers_mask & LAYER_FRONT) )
|
||||||
|
error_msgs.Add( _( "Error: only one copper layer allowed for this pad" ) );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PAD_HOLE_NOT_PLATED: // Not plated
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( error_msgs.GetCount() )
|
||||||
|
{
|
||||||
|
HTML_MESSAGE_BOX dlg( this, _("Pad setup errors list" ) );
|
||||||
|
dlg.ListSet( error_msgs );
|
||||||
|
dlg.ShowModal();
|
||||||
|
}
|
||||||
|
return error_msgs.GetCount() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event )
|
void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event )
|
||||||
|
|
||||||
/* Updates the different parameters for the component being edited.
|
/* Updates the different parameters for the component being edited.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
|
if( ! PadValuesOK() )
|
||||||
|
return;
|
||||||
|
|
||||||
bool rastnestIsChanged = false;
|
bool rastnestIsChanged = false;
|
||||||
int isign = m_isFlipped ? -1 : 1;
|
int isign = m_isFlipped ? -1 : 1;
|
||||||
|
|
||||||
prevPosition = GetPosition();
|
prevPosition = GetPosition();
|
||||||
prevSize = GetSize();
|
prevSize = GetSize();
|
||||||
|
|
||||||
bool success = TransfertDataToPad( m_dummyPad, true );
|
TransfertDataToPad( &m_Pad_Master );
|
||||||
if( !success ) // An error on parameters has occured
|
|
||||||
return;
|
|
||||||
|
|
||||||
TransfertDataToPad( &m_Pad_Master, false );
|
|
||||||
|
|
||||||
if( m_CurrentPad ) // Set current Pad parameters
|
if( m_CurrentPad ) // Set current Pad parameters
|
||||||
{
|
{
|
||||||
|
@ -745,9 +817,7 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy values from dialog to aPad parameters.
|
// Copy values from dialog to aPad parameters.
|
||||||
// If aPromptOnError is true, and an incorrect value is detected,
|
bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad )
|
||||||
// user will be prompted for an error
|
|
||||||
bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad, bool aPromptOnError )
|
|
||||||
{
|
{
|
||||||
long padLayerMask;
|
long padLayerMask;
|
||||||
int internalUnits = m_Parent->GetInternalUnits();
|
int internalUnits = m_Parent->GetInternalUnits();
|
||||||
|
@ -980,47 +1050,7 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad, bool aPromptOnError
|
||||||
|
|
||||||
aPad->SetLayerMask( padLayerMask );
|
aPad->SetLayerMask( padLayerMask );
|
||||||
|
|
||||||
// Test for incorrect values
|
return error;
|
||||||
if( aPromptOnError )
|
|
||||||
{
|
|
||||||
if( (aPad->GetSize().x < aPad->GetDrillSize().x) || (aPad->GetSize().y < aPad->GetDrillSize().y) )
|
|
||||||
{
|
|
||||||
DisplayError( NULL, _( "Incorrect value for pad drill: pad drill bigger than pad size" ) );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int padlayers_mask = padLayerMask & (LAYER_BACK | LAYER_FRONT);
|
|
||||||
if( padlayers_mask == 0 )
|
|
||||||
{
|
|
||||||
if( aPad->GetDrillSize().x || aPad->GetDrillSize().y )
|
|
||||||
{
|
|
||||||
msg = _( "Error: pad is not on a copper layer and has a hole" );
|
|
||||||
if( aPad->GetAttribute() == PAD_HOLE_NOT_PLATED )
|
|
||||||
{
|
|
||||||
msg += wxT("\n");
|
|
||||||
msg += _( "For NPTH pad, set pad drill value to pad size value,\n\
|
|
||||||
if you do not want this pad plotted in gerber files");
|
|
||||||
}
|
|
||||||
DisplayError( NULL, msg );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( aPad->GetSize().x / 2 <= ABS( aPad->GetOffset().x ) ||
|
|
||||||
aPad->GetSize().y / 2 <= ABS( aPad->GetOffset().y ) )
|
|
||||||
{
|
|
||||||
DisplayError( NULL, _( "Incorrect value for pad offset" ) );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( error )
|
|
||||||
{
|
|
||||||
DisplayError( NULL, _( "Too large value for pad delta size" ) );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Jun 30 2011)
|
// C++ code generated with wxFormBuilder (version Feb 9 2012)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -54,6 +54,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_PadType->SetSelection( 0 );
|
m_PadType->SetSelection( 0 );
|
||||||
fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer6;
|
wxFlexGridSizer* fgSizer6;
|
||||||
|
@ -61,20 +62,6 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
fgSizer6->SetFlexibleDirection( wxBOTH );
|
fgSizer6->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText45->Wrap( -1 );
|
|
||||||
fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
|
||||||
|
|
||||||
wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") };
|
|
||||||
int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString );
|
|
||||||
m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 );
|
|
||||||
m_PadShape->SetSelection( 0 );
|
|
||||||
fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
|
||||||
|
|
||||||
m_staticText46 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticText46->Wrap( -1 );
|
|
||||||
fgSizer6->Add( m_staticText46, 0, wxALL, 5 );
|
|
||||||
|
|
||||||
m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText4->Wrap( -1 );
|
m_staticText4->Wrap( -1 );
|
||||||
fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
|
fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
|
||||||
|
@ -88,14 +75,27 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
|
|
||||||
m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText41->Wrap( -1 );
|
m_staticText41->Wrap( -1 );
|
||||||
fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
|
fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
|
||||||
|
|
||||||
m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_PadPosY_Unit->Wrap( -1 );
|
m_PadPosY_Unit->Wrap( -1 );
|
||||||
fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
|
fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||||
|
|
||||||
|
m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticText45->Wrap( -1 );
|
||||||
|
fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") };
|
||||||
|
int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString );
|
||||||
|
m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 );
|
||||||
|
m_PadShape->SetSelection( 0 );
|
||||||
|
fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
fgSizer6->Add( 0, 0, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText12->Wrap( -1 );
|
m_staticText12->Wrap( -1 );
|
||||||
|
@ -200,6 +200,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_trapDeltaDirChoice->SetSelection( 0 );
|
m_trapDeltaDirChoice->SetSelection( 0 );
|
||||||
fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 );
|
fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_LeftBoxSizer->Add( fgSizer6, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
m_LeftBoxSizer->Add( fgSizer6, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bMiddleUpperSizer;
|
wxBoxSizer* bMiddleUpperSizer;
|
||||||
|
@ -207,13 +208,16 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
|
|
||||||
m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL );
|
m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
|
||||||
bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 );
|
bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 );
|
||||||
|
|
||||||
wxBoxSizer* m_MiddleRightBoxSizer;
|
wxBoxSizer* m_MiddleRightBoxSizer;
|
||||||
m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL );
|
m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
|
||||||
bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 );
|
bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 );
|
m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizeModuleInfo;
|
wxStaticBoxSizer* sbSizeModuleInfo;
|
||||||
|
@ -241,6 +245,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_staticModuleSideValue->Wrap( -1 );
|
m_staticModuleSideValue->Wrap( -1 );
|
||||||
fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 );
|
fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 );
|
sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
@ -249,8 +254,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
|
|
||||||
sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 );
|
m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||||
|
|
||||||
|
|
||||||
bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 );
|
bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizer10;
|
wxBoxSizer* bSizer10;
|
||||||
|
@ -300,8 +307,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_PadDrill_Y_Unit->Wrap( -1 );
|
m_PadDrill_Y_Unit->Wrap( -1 );
|
||||||
fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 );
|
sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer10->Add( sbSizer2, 0, wxALL, 5 );
|
bSizer10->Add( sbSizer2, 0, wxALL, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* m_LayersSizer;
|
wxStaticBoxSizer* m_LayersSizer;
|
||||||
|
@ -320,6 +329,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_rbCopperLayersSel->SetSelection( 0 );
|
m_rbCopperLayersSel->SetSelection( 0 );
|
||||||
bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 );
|
bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 );
|
m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizerTechlayers;
|
wxStaticBoxSizer* sbSizerTechlayers;
|
||||||
|
@ -358,10 +368,13 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 );
|
sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 );
|
m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 );
|
bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bGeneralSizer->Add( bSizer10, 0, wxALL|wxEXPAND, 5 );
|
bGeneralSizer->Add( bSizer10, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizer13x;
|
wxBoxSizer* bSizer13x;
|
||||||
|
@ -372,8 +385,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
|
|
||||||
bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 );
|
bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 );
|
||||||
|
|
||||||
|
|
||||||
bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 );
|
bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_panel2->SetSizer( bGeneralSizer );
|
m_panel2->SetSizer( bGeneralSizer );
|
||||||
m_panel2->Layout();
|
m_panel2->Layout();
|
||||||
bGeneralSizer->Fit( m_panel2 );
|
bGeneralSizer->Fit( m_panel2 );
|
||||||
|
@ -448,8 +463,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_SolderPasteRatioMarginUnits->Wrap( -1 );
|
m_SolderPasteRatioMarginUnits->Wrap( -1 );
|
||||||
fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 );
|
sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 );
|
bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizer7;
|
wxStaticBoxSizer* sbSizer7;
|
||||||
|
@ -496,8 +513,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_ThermalGapUnits->Wrap( -1 );
|
m_ThermalGapUnits->Wrap( -1 );
|
||||||
fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 );
|
sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 );
|
bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
@ -506,11 +525,13 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
|
|
||||||
bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer14->Add( 0, 0, 1, wxEXPAND, 5 );
|
bSizer14->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_localSettingsPanel->SetSizer( bSizer14 );
|
m_localSettingsPanel->SetSizer( bSizer14 );
|
||||||
m_localSettingsPanel->Layout();
|
m_localSettingsPanel->Layout();
|
||||||
bSizer14->Fit( m_localSettingsPanel );
|
bSizer14->Fit( m_localSettingsPanel );
|
||||||
|
@ -524,8 +545,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind
|
||||||
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
|
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
|
||||||
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
|
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
|
||||||
m_sdbSizer1->Realize();
|
m_sdbSizer1->Realize();
|
||||||
|
|
||||||
m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 );
|
m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
this->SetSizer( m_MainSizer );
|
this->SetSizer( m_MainSizer );
|
||||||
this->Layout();
|
this->Layout();
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Jun 30 2011)
|
// C++ code generated with wxFormBuilder (version Feb 9 2012)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -44,7 +44,7 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog
|
||||||
{
|
{
|
||||||
wxID_DIALOG_EDIT_PAD = 1000,
|
wxID_DIALOG_EDIT_PAD = 1000,
|
||||||
wxID_PADNUMCTRL,
|
wxID_PADNUMCTRL,
|
||||||
wxID_PADNETNAMECTRL,
|
wxID_PADNETNAMECTRL
|
||||||
};
|
};
|
||||||
|
|
||||||
wxNotebook* m_notebook1;
|
wxNotebook* m_notebook1;
|
||||||
|
@ -55,15 +55,14 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog
|
||||||
wxTextCtrl* m_PadNetNameCtrl;
|
wxTextCtrl* m_PadNetNameCtrl;
|
||||||
wxStaticText* m_staticText44;
|
wxStaticText* m_staticText44;
|
||||||
wxChoice* m_PadType;
|
wxChoice* m_PadType;
|
||||||
wxStaticText* m_staticText45;
|
|
||||||
wxChoice* m_PadShape;
|
|
||||||
wxStaticText* m_staticText46;
|
|
||||||
wxStaticText* m_staticText4;
|
wxStaticText* m_staticText4;
|
||||||
wxTextCtrl* m_PadPosition_X_Ctrl;
|
wxTextCtrl* m_PadPosition_X_Ctrl;
|
||||||
wxStaticText* m_PadPosX_Unit;
|
wxStaticText* m_PadPosX_Unit;
|
||||||
wxStaticText* m_staticText41;
|
wxStaticText* m_staticText41;
|
||||||
wxTextCtrl* m_PadPosition_Y_Ctrl;
|
wxTextCtrl* m_PadPosition_Y_Ctrl;
|
||||||
wxStaticText* m_PadPosY_Unit;
|
wxStaticText* m_PadPosY_Unit;
|
||||||
|
wxStaticText* m_staticText45;
|
||||||
|
wxChoice* m_PadShape;
|
||||||
wxStaticText* m_staticText12;
|
wxStaticText* m_staticText12;
|
||||||
wxTextCtrl* m_ShapeSize_X_Ctrl;
|
wxTextCtrl* m_ShapeSize_X_Ctrl;
|
||||||
wxStaticText* m_PadShapeSizeX_Unit;
|
wxStaticText* m_PadShapeSizeX_Unit;
|
||||||
|
|
Loading…
Reference in New Issue