Loading pcbnew/class_pad_draw_functions.cpp +78 −54 Original line number Diff line number Diff line Loading @@ -449,7 +449,8 @@ void D_PAD::DrawShape( EDA_Rect* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) if( aDrawInfo.m_PadClearance ) { BuildPadPolygon( coord, wxSize(aDrawInfo.m_PadClearance,aDrawInfo.m_PadClearance), angle ); BuildPadPolygon( coord, wxSize( aDrawInfo.m_PadClearance, aDrawInfo.m_PadClearance ), angle ); for( int ii = 0; ii < 4; ii++ ) coord[ii] += shape_pos; Loading Loading @@ -491,6 +492,8 @@ void D_PAD::DrawShape( EDA_Rect* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) if( aDrawInfo.m_Scale * hole > 1 ) /* draw hole if its size is enough */ #endif GRFilledCircle( aClipBox, aDC, holepos.x, holepos.y, hole, 0, aDrawInfo.m_Color, aDrawInfo.m_HoleColor ); break; Loading Loading @@ -639,6 +642,7 @@ void D_PAD::DrawShape( EDA_Rect* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) } } /** function BuildPadPolygon * Has meaning only for polygonal pads (trapeziod and rectangular) * Build the Corner list of the polygonal shape, Loading @@ -659,14 +663,11 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat halfsize.y = m_Size.y >> 1; /* For rectangular shapes, inflate is easy * Also if inflate values for X and Y directions are different * the simplified inflate calculation is used for PAD_TRAPEZOID * due to the complexity of offsetting a polygon with different values in X and Y * (I even no be sure this has meaning) */ if( GetShape() == PAD_RECT ) { halfsize += aInflateValue; // Verify if do not deflate more than than size // Only possible for inflate negative values. if( halfsize.x < 0 ) Loading @@ -676,8 +677,10 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat } else { // Trapezoidal pad: verify delta values delta.x = ( m_DeltaSize.x >> 1 ); delta.y = ( m_DeltaSize.y >> 1 ); // be sure delta values are not to large if( (delta.x < 0) && (delta.x <= -halfsize.y) ) delta.x = -halfsize.y + 1; Loading @@ -690,6 +693,7 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat } // Build the basic rectangular or trapezoid shape // delta is null for rectangular shapes aCoord[0].x = -halfsize.x - delta.y; // lower left aCoord[0].y = +halfsize.y + delta.x; Loading @@ -711,33 +715,38 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat if( delta.y ) // lower and upper segment is horizontal { // Calculate angle of left (or right) segment with vertical axis angle = atan2( delta.y, halfsize.y ); angle = atan2( m_DeltaSize.y, m_Size.y ); // left and right sides are moved by aInflateValue.x in their perpendicular direction // We must calculate the corresponding displacement on the horizontal axis // that is delta.x +- corr.x depending on the corner corr.x = wxRound( tan( angle ) * aInflateValue.x ); delta.x = wxRound( aInflateValue.x / cos( angle ) ); // Horizontal sides are moved up and down by aInflateValue.y delta.y = aInflateValue.y; // corr.y = 0 by the constructor } else if( delta.x ) // left and right segment is vertical { // Calculate angle of lower (or upper) segment with horizontal axis angle = atan2( delta.x, halfsize.x); angle = atan2( m_DeltaSize.x, m_Size.x ); // lower and upper sides are moved by aInflateValue.x in their perpendicular direction // We must calculate the corresponding displacement on the vertical axis // that is delta.y +- corr.y depending on the corner corr.y = wxRound( tan( angle ) * aInflateValue.y ); delta.y = wxRound( aInflateValue.y / cos( angle ) ); // Vertical sides are moved left and right by aInflateValue.x delta.x = aInflateValue.x; // corr.x = 0 by the constructor } else // the trapezoid is a rectangle { delta = aInflateValue; // Do nothing. delta = aInflateValue; // this pad is rectangular (delta null). } aCoord[0].x += -delta.x - corr.x; // lower left aCoord[0].y += delta.y + corr.y; Loading @@ -750,6 +759,21 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat aCoord[3].x += delta.x + corr.x; // lower right aCoord[3].y += delta.y - corr.y; /* test coordinates and clamp them if the offset correction is too large: * Note: if a coordinate is bad, the other "symmetric" coordinate is bad * So when a bad coordinate is found, the 2 symmetric coordinates * are set to the minimun value (0) */ if( aCoord[0].x > 0 ) // lower left x coordinate must be <= 0 aCoord[0].x = aCoord[3].x = 0; if( aCoord[1].x > 0 ) // upper left x coordinate must be <= 0 aCoord[1].x = aCoord[2].x = 0; if( aCoord[0].y < 0 ) // lower left y coordinate must be >= 0 aCoord[0].y = aCoord[1].y = 0; if( aCoord[3].y < 0 ) // lower right y coordinate must be >= 0 aCoord[3].y = aCoord[2].y = 0; } if( aRotation ) Loading pcbnew/dialog_pad_properties.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -119,8 +119,14 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event ) dc.SetDeviceOrigin( dc_size.x / 2, dc_size.y / 2 ); // Calculate a suitable scale to fit the available draw area double scale = (double) dc_size.x / (m_dummyPad->m_Size.x + m_dummyPad->m_LocalClearance); double altscale = (double) dc_size.y / (m_dummyPad->m_Size.y + m_dummyPad->m_LocalClearance); int dim = m_dummyPad->m_Size.x + ABS( m_dummyPad->m_DeltaSize.y); if( m_dummyPad->m_LocalClearance > 0 ) dim += m_dummyPad->m_LocalClearance * 2; double scale = (double) dc_size.x / dim; dim = m_dummyPad->m_Size.y + ABS( m_dummyPad->m_DeltaSize.x); if( m_dummyPad->m_LocalClearance > 0 ) dim += m_dummyPad->m_LocalClearance * 2; double altscale = (double) dc_size.y / dim; scale = MIN( scale, altscale ); // Give a margin Loading Loading @@ -212,6 +218,7 @@ void DIALOG_PAD_PROPERTIES::initValues() /* flip pads layers*/ m_dummyPad->m_Masque_Layer = ChangeSideMaskLayer( m_dummyPad->m_Masque_Layer ); } m_staticTextWarningPadFlipped->Show(m_isFlipped); m_PadNumCtrl->SetValue( m_dummyPad->ReturnStringPadName() ); m_PadNetNameCtrl->SetValue( m_dummyPad->GetNetname() ); Loading pcbnew/dialog_pad_properties_base.cpp +11 −5 Original line number Diff line number Diff line Loading @@ -221,12 +221,12 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_panelShowPad = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER|wxTAB_TRAVERSAL ); m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); bMiddleUpperSizer->Add( m_panelShowPad, 1, wxEXPAND | wxALL, 5 ); bMiddleUpperSizer->Add( m_panelShowPad, 1, wxEXPAND, 5 ); bMiddleSizer->Add( bMiddleUpperSizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizeModuleInfo; sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Footprint orientation") ), wxVERTICAL ); sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Footprint orientation") ), wxHORIZONTAL ); wxFlexGridSizer* fgSizer4; fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); Loading @@ -240,7 +240,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_staticModuleRotValue = new wxStaticText( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticModuleRotValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); m_staticTitleModuleSide = new wxStaticText( this, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTitleModuleSide->Wrap( -1 ); Loading @@ -248,9 +248,15 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_staticModuleSideValue = new wxStaticText( this, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticModuleSideValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleSideValue, 0, wxALL, 5 ); fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); sbSizeModuleInfo->Add( fgSizer4, 0, wxEXPAND, 5 ); sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); m_staticTextWarningPadFlipped = new wxStaticText( this, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextWarningPadFlipped->Wrap( -1 ); m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); bMiddleSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); Loading pcbnew/dialog_pad_properties_base.fbp +56 −5 Original line number Diff line number Diff line Loading @@ -2513,7 +2513,7 @@ </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND | wxALL</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxPanel" expanded="1"> <property name="bg">0,0,0</property> Loading Loading @@ -2570,13 +2570,13 @@ <property name="label">Footprint orientation</property> <property name="minimum_size"></property> <property name="name">sbSizeModuleInfo</property> <property name="orient">wxVERTICAL</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <event name="OnUpdateUI"></event> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">0</property> <property name="proportion">1</property> <object class="wxFlexGridSizer" expanded="1"> <property name="cols">2</property> <property name="flexible_direction">wxBOTH</property> Loading Loading @@ -2642,7 +2642,7 @@ </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT|wxEXPAND</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="1"> <property name="bg"></property> Loading Loading @@ -2744,7 +2744,7 @@ </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="1"> <property name="bg"></property> Loading Loading @@ -2795,6 +2795,57 @@ </object> </object> </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALIGN_CENTER_VERTICAL</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font">,90,92,-1,70,0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="label">Warning:
This pad is flipped on board.
Back and front layers will be swapped.</property> <property name="maximum_size"></property> <property name="minimum_size"></property> <property name="name">m_staticTextWarningPadFlipped</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="style"></property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <property name="wrap">-1</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> <object class="sizeritem" expanded="1"> Loading pcbnew/dialog_pad_properties_base.h +1 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog wxStaticText* m_staticModuleRotValue; wxStaticText* m_staticTitleModuleSide; wxStaticText* m_staticModuleSideValue; wxStaticText* m_staticTextWarningPadFlipped; wxStaticText* m_staticTextWarning; wxStaticText* m_staticTextNetClearance; wxTextCtrl* m_NetClearanceValueCtrl; Loading Loading
pcbnew/class_pad_draw_functions.cpp +78 −54 Original line number Diff line number Diff line Loading @@ -449,7 +449,8 @@ void D_PAD::DrawShape( EDA_Rect* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) if( aDrawInfo.m_PadClearance ) { BuildPadPolygon( coord, wxSize(aDrawInfo.m_PadClearance,aDrawInfo.m_PadClearance), angle ); BuildPadPolygon( coord, wxSize( aDrawInfo.m_PadClearance, aDrawInfo.m_PadClearance ), angle ); for( int ii = 0; ii < 4; ii++ ) coord[ii] += shape_pos; Loading Loading @@ -491,6 +492,8 @@ void D_PAD::DrawShape( EDA_Rect* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) if( aDrawInfo.m_Scale * hole > 1 ) /* draw hole if its size is enough */ #endif GRFilledCircle( aClipBox, aDC, holepos.x, holepos.y, hole, 0, aDrawInfo.m_Color, aDrawInfo.m_HoleColor ); break; Loading Loading @@ -639,6 +642,7 @@ void D_PAD::DrawShape( EDA_Rect* aClipBox, wxDC* aDC, PAD_DRAWINFO& aDrawInfo ) } } /** function BuildPadPolygon * Has meaning only for polygonal pads (trapeziod and rectangular) * Build the Corner list of the polygonal shape, Loading @@ -659,14 +663,11 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat halfsize.y = m_Size.y >> 1; /* For rectangular shapes, inflate is easy * Also if inflate values for X and Y directions are different * the simplified inflate calculation is used for PAD_TRAPEZOID * due to the complexity of offsetting a polygon with different values in X and Y * (I even no be sure this has meaning) */ if( GetShape() == PAD_RECT ) { halfsize += aInflateValue; // Verify if do not deflate more than than size // Only possible for inflate negative values. if( halfsize.x < 0 ) Loading @@ -676,8 +677,10 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat } else { // Trapezoidal pad: verify delta values delta.x = ( m_DeltaSize.x >> 1 ); delta.y = ( m_DeltaSize.y >> 1 ); // be sure delta values are not to large if( (delta.x < 0) && (delta.x <= -halfsize.y) ) delta.x = -halfsize.y + 1; Loading @@ -690,6 +693,7 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat } // Build the basic rectangular or trapezoid shape // delta is null for rectangular shapes aCoord[0].x = -halfsize.x - delta.y; // lower left aCoord[0].y = +halfsize.y + delta.x; Loading @@ -711,33 +715,38 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat if( delta.y ) // lower and upper segment is horizontal { // Calculate angle of left (or right) segment with vertical axis angle = atan2( delta.y, halfsize.y ); angle = atan2( m_DeltaSize.y, m_Size.y ); // left and right sides are moved by aInflateValue.x in their perpendicular direction // We must calculate the corresponding displacement on the horizontal axis // that is delta.x +- corr.x depending on the corner corr.x = wxRound( tan( angle ) * aInflateValue.x ); delta.x = wxRound( aInflateValue.x / cos( angle ) ); // Horizontal sides are moved up and down by aInflateValue.y delta.y = aInflateValue.y; // corr.y = 0 by the constructor } else if( delta.x ) // left and right segment is vertical { // Calculate angle of lower (or upper) segment with horizontal axis angle = atan2( delta.x, halfsize.x); angle = atan2( m_DeltaSize.x, m_Size.x ); // lower and upper sides are moved by aInflateValue.x in their perpendicular direction // We must calculate the corresponding displacement on the vertical axis // that is delta.y +- corr.y depending on the corner corr.y = wxRound( tan( angle ) * aInflateValue.y ); delta.y = wxRound( aInflateValue.y / cos( angle ) ); // Vertical sides are moved left and right by aInflateValue.x delta.x = aInflateValue.x; // corr.x = 0 by the constructor } else // the trapezoid is a rectangle { delta = aInflateValue; // Do nothing. delta = aInflateValue; // this pad is rectangular (delta null). } aCoord[0].x += -delta.x - corr.x; // lower left aCoord[0].y += delta.y + corr.y; Loading @@ -750,6 +759,21 @@ void D_PAD::BuildPadPolygon( wxPoint aCoord[4], wxSize aInflateValue, int aRotat aCoord[3].x += delta.x + corr.x; // lower right aCoord[3].y += delta.y - corr.y; /* test coordinates and clamp them if the offset correction is too large: * Note: if a coordinate is bad, the other "symmetric" coordinate is bad * So when a bad coordinate is found, the 2 symmetric coordinates * are set to the minimun value (0) */ if( aCoord[0].x > 0 ) // lower left x coordinate must be <= 0 aCoord[0].x = aCoord[3].x = 0; if( aCoord[1].x > 0 ) // upper left x coordinate must be <= 0 aCoord[1].x = aCoord[2].x = 0; if( aCoord[0].y < 0 ) // lower left y coordinate must be >= 0 aCoord[0].y = aCoord[1].y = 0; if( aCoord[3].y < 0 ) // lower right y coordinate must be >= 0 aCoord[3].y = aCoord[2].y = 0; } if( aRotation ) Loading
pcbnew/dialog_pad_properties.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -119,8 +119,14 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event ) dc.SetDeviceOrigin( dc_size.x / 2, dc_size.y / 2 ); // Calculate a suitable scale to fit the available draw area double scale = (double) dc_size.x / (m_dummyPad->m_Size.x + m_dummyPad->m_LocalClearance); double altscale = (double) dc_size.y / (m_dummyPad->m_Size.y + m_dummyPad->m_LocalClearance); int dim = m_dummyPad->m_Size.x + ABS( m_dummyPad->m_DeltaSize.y); if( m_dummyPad->m_LocalClearance > 0 ) dim += m_dummyPad->m_LocalClearance * 2; double scale = (double) dc_size.x / dim; dim = m_dummyPad->m_Size.y + ABS( m_dummyPad->m_DeltaSize.x); if( m_dummyPad->m_LocalClearance > 0 ) dim += m_dummyPad->m_LocalClearance * 2; double altscale = (double) dc_size.y / dim; scale = MIN( scale, altscale ); // Give a margin Loading Loading @@ -212,6 +218,7 @@ void DIALOG_PAD_PROPERTIES::initValues() /* flip pads layers*/ m_dummyPad->m_Masque_Layer = ChangeSideMaskLayer( m_dummyPad->m_Masque_Layer ); } m_staticTextWarningPadFlipped->Show(m_isFlipped); m_PadNumCtrl->SetValue( m_dummyPad->ReturnStringPadName() ); m_PadNetNameCtrl->SetValue( m_dummyPad->GetNetname() ); Loading
pcbnew/dialog_pad_properties_base.cpp +11 −5 Original line number Diff line number Diff line Loading @@ -221,12 +221,12 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_panelShowPad = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER|wxTAB_TRAVERSAL ); m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); bMiddleUpperSizer->Add( m_panelShowPad, 1, wxEXPAND | wxALL, 5 ); bMiddleUpperSizer->Add( m_panelShowPad, 1, wxEXPAND, 5 ); bMiddleSizer->Add( bMiddleUpperSizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizeModuleInfo; sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Footprint orientation") ), wxVERTICAL ); sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Footprint orientation") ), wxHORIZONTAL ); wxFlexGridSizer* fgSizer4; fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); Loading @@ -240,7 +240,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_staticModuleRotValue = new wxStaticText( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticModuleRotValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); m_staticTitleModuleSide = new wxStaticText( this, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTitleModuleSide->Wrap( -1 ); Loading @@ -248,9 +248,15 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_staticModuleSideValue = new wxStaticText( this, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticModuleSideValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleSideValue, 0, wxALL, 5 ); fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); sbSizeModuleInfo->Add( fgSizer4, 0, wxEXPAND, 5 ); sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); m_staticTextWarningPadFlipped = new wxStaticText( this, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextWarningPadFlipped->Wrap( -1 ); m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); bMiddleSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); Loading
pcbnew/dialog_pad_properties_base.fbp +56 −5 Original line number Diff line number Diff line Loading @@ -2513,7 +2513,7 @@ </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND | wxALL</property> <property name="flag">wxEXPAND</property> <property name="proportion">1</property> <object class="wxPanel" expanded="1"> <property name="bg">0,0,0</property> Loading Loading @@ -2570,13 +2570,13 @@ <property name="label">Footprint orientation</property> <property name="minimum_size"></property> <property name="name">sbSizeModuleInfo</property> <property name="orient">wxVERTICAL</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <event name="OnUpdateUI"></event> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxEXPAND</property> <property name="proportion">0</property> <property name="proportion">1</property> <object class="wxFlexGridSizer" expanded="1"> <property name="cols">2</property> <property name="flexible_direction">wxBOTH</property> Loading Loading @@ -2642,7 +2642,7 @@ </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT|wxEXPAND</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="1"> <property name="bg"></property> Loading Loading @@ -2744,7 +2744,7 @@ </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="1"> <property name="bg"></property> Loading Loading @@ -2795,6 +2795,57 @@ </object> </object> </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALIGN_CENTER_VERTICAL</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font">,90,92,-1,70,0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="label">Warning:
This pad is flipped on board.
Back and front layers will be swapped.</property> <property name="maximum_size"></property> <property name="minimum_size"></property> <property name="name">m_staticTextWarningPadFlipped</property> <property name="permission">protected</property> <property name="pos"></property> <property name="size"></property> <property name="style"></property> <property name="subclass"></property> <property name="tooltip"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <property name="wrap">-1</property> <event name="OnChar"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> <object class="sizeritem" expanded="1"> Loading
pcbnew/dialog_pad_properties_base.h +1 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog wxStaticText* m_staticModuleRotValue; wxStaticText* m_staticTitleModuleSide; wxStaticText* m_staticModuleSideValue; wxStaticText* m_staticTextWarningPadFlipped; wxStaticText* m_staticTextWarning; wxStaticText* m_staticTextNetClearance; wxTextCtrl* m_NetClearanceValueCtrl; Loading