From 05fb582304199b33b5366e3619a5cce14a81d75f Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Sat, 14 Aug 2021 01:44:23 +0100 Subject: [PATCH] Expose missing annular ring properties in Track & Via Properties. --- .../dialogs/dialog_track_via_properties.cpp | 53 +- .../dialog_track_via_properties_base.cpp | 96 ++- .../dialog_track_via_properties_base.fbp | 737 ++++++++++-------- .../dialog_track_via_properties_base.h | 3 +- 4 files changed, 520 insertions(+), 369 deletions(-) diff --git a/pcbnew/dialogs/dialog_track_via_properties.cpp b/pcbnew/dialogs/dialog_track_via_properties.cpp index 3e9773c068..2bff4fd3cc 100644 --- a/pcbnew/dialogs/dialog_track_via_properties.cpp +++ b/pcbnew/dialogs/dialog_track_via_properties.cpp @@ -90,6 +90,17 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen bool hasLocked = false; bool hasUnlocked = false; + auto getAnnularRingSelection = + []( const PCB_VIA* via ) -> int + { + if( !via->GetRemoveUnconnected() ) + return 0; + else if( via->GetKeepTopBottom() ) + return 1; + else + return 2; + }; + // Look for values that are common for every item that is selected for( EDA_ITEM* item : m_items ) { @@ -168,6 +179,7 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen m_ViaStartLayer->SetLayerSelection( v->TopLayer() ); m_ViaEndLayer->SetLayerSelection( v->BottomLayer() ); m_viaNotFree->SetValue( !v->GetIsFree() ); + m_annularRingsCtrl->SetSelection( getAnnularRingSelection( v ) ); } else // check if values are the same for every selected via { @@ -202,6 +214,14 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen m_ViaEndLayer->Resync(); m_ViaEndLayer->SetLayerSelection( UNDEFINED_LAYER ); } + + if( m_annularRingsCtrl->GetSelection() != getAnnularRingSelection( v ) ) + { + if( m_annularRingsCtrl->GetStrings().size() < 4 ) + m_annularRingsCtrl->AppendString( INDETERMINATE_STATE ); + + m_annularRingsCtrl->SetSelection( 3 ); + } } if( v->IsLocked() ) @@ -271,18 +291,10 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen switch( viaType ) { - case VIATYPE::THROUGH: - m_ViaTypeChoice->SetSelection( 0 ); - break; - case VIATYPE::MICROVIA: - m_ViaTypeChoice->SetSelection( 1 ); - break; - case VIATYPE::BLIND_BURIED: - m_ViaTypeChoice->SetSelection( 2 ); - break; - case VIATYPE::NOT_DEFINED: - m_ViaTypeChoice->SetSelection( wxNOT_FOUND ); - break; + case VIATYPE::THROUGH: m_ViaTypeChoice->SetSelection( 0 ); break; + case VIATYPE::MICROVIA: m_ViaTypeChoice->SetSelection( 1 ); break; + case VIATYPE::BLIND_BURIED: m_ViaTypeChoice->SetSelection( 2 ); break; + case VIATYPE::NOT_DEFINED: m_ViaTypeChoice->SetSelection( wxNOT_FOUND ); break; } m_ViaStartLayer->Enable( viaType != VIATYPE::THROUGH ); @@ -495,6 +507,23 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() if (endLayer != UNDEFINED_LAYER ) v->SetBottomLayer( endLayer ); + switch( m_annularRingsCtrl->GetSelection() ) + { + case 0: + v->SetRemoveUnconnected( false ); + break; + case 1: + v->SetRemoveUnconnected( true ); + v->SetKeepTopBottom( true ); + break; + case 2: + v->SetRemoveUnconnected( true ); + v->SetKeepTopBottom( false ); + break; + default: + break; + } + v->SanitizeLayers(); if( m_viaNetclass->IsChecked() ) diff --git a/pcbnew/dialogs/dialog_track_via_properties_base.cpp b/pcbnew/dialogs/dialog_track_via_properties_base.cpp index 85ad0b71e1..3e1e85cd68 100644 --- a/pcbnew/dialogs/dialog_track_via_properties_base.cpp +++ b/pcbnew/dialogs/dialog_track_via_properties_base.cpp @@ -41,7 +41,7 @@ DIALOG_TRACK_VIA_PROPERTIES_BASE::DIALOG_TRACK_VIA_PROPERTIES_BASE( wxWindow* pa m_sbCommonSizer->Add( bSizerNetWidgets, 5, wxEXPAND|wxRIGHT, 10 ); m_staticline1 = new wxStaticLine( m_sbCommonSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - m_sbCommonSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT, 5 ); + m_sbCommonSizer->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_lockedCbox = new wxCheckBox( m_sbCommonSizer->GetStaticBox(), wxID_ANY, _("Locked"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE ); m_sbCommonSizer->Add( m_lockedCbox, 0, wxALL, 5 ); @@ -154,99 +154,103 @@ DIALOG_TRACK_VIA_PROPERTIES_BASE::DIALOG_TRACK_VIA_PROPERTIES_BASE( wxWindow* pa fgTrackRightSizer->Add( m_TrackLayerCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); - m_sbTrackSizer->Add( fgTrackRightSizer, 4, wxLEFT|wxEXPAND, 10 ); + m_sbTrackSizer->Add( fgTrackRightSizer, 4, wxEXPAND|wxRIGHT, 10 ); m_MainSizer->Add( m_sbTrackSizer, 0, wxEXPAND|wxRIGHT|wxLEFT, 10 ); m_sbViaSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Vias") ), wxHORIZONTAL ); - wxFlexGridSizer* fgViaLeftSizer; - fgViaLeftSizer = new wxFlexGridSizer( 6, 3, 4, 5 ); - fgViaLeftSizer->AddGrowableCol( 1 ); - fgViaLeftSizer->SetFlexibleDirection( wxBOTH ); - fgViaLeftSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxFlexGridSizer* viaLeftColumn; + viaLeftColumn = new wxFlexGridSizer( 6, 3, 4, 5 ); + viaLeftColumn->AddGrowableCol( 1 ); + viaLeftColumn->SetFlexibleDirection( wxBOTH ); + viaLeftColumn->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_ViaXLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaXLabel->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaXLabel, 0, wxALIGN_CENTER_VERTICAL, 3 ); + viaLeftColumn->Add( m_ViaXLabel, 0, wxALIGN_CENTER_VERTICAL, 3 ); m_ViaXCtrl = new wxTextCtrl( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgViaLeftSizer->Add( m_ViaXCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 3 ); + viaLeftColumn->Add( m_ViaXCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 3 ); m_ViaXUnit = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaXUnit->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaXUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 ); + viaLeftColumn->Add( m_ViaXUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 ); m_ViaYLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaYLabel->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaYLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 ); + viaLeftColumn->Add( m_ViaYLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 ); m_ViaYCtrl = new wxTextCtrl( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgViaLeftSizer->Add( m_ViaYCtrl, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND, 5 ); + viaLeftColumn->Add( m_ViaYCtrl, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND, 5 ); m_ViaYUnit = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaYUnit->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaYUnit, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); + viaLeftColumn->Add( m_ViaYUnit, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); m_DesignRuleVias = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Pre-defined sizes:"), wxDefaultPosition, wxDefaultSize, 0 ); m_DesignRuleVias->Wrap( -1 ); - fgViaLeftSizer->Add( m_DesignRuleVias, 0, wxALIGN_CENTER_VERTICAL|wxTOP, 5 ); + viaLeftColumn->Add( m_DesignRuleVias, 0, wxALIGN_CENTER_VERTICAL|wxTOP, 5 ); wxArrayString m_DesignRuleViasCtrlChoices; m_DesignRuleViasCtrl = new wxChoice( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DesignRuleViasCtrlChoices, 0 ); m_DesignRuleViasCtrl->SetSelection( 0 ); - fgViaLeftSizer->Add( m_DesignRuleViasCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 ); + viaLeftColumn->Add( m_DesignRuleViasCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 ); m_DesignRuleViasUnit = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 ); m_DesignRuleViasUnit->Wrap( -1 ); - fgViaLeftSizer->Add( m_DesignRuleViasUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP, 5 ); + viaLeftColumn->Add( m_DesignRuleViasUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP, 5 ); m_ViaDiameterLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Via diameter:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaDiameterLabel->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaDiameterLabel, 0, wxALIGN_CENTER_VERTICAL, 5 ); + viaLeftColumn->Add( m_ViaDiameterLabel, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_ViaDiameterCtrl = new wxTextCtrl( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgViaLeftSizer->Add( m_ViaDiameterCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + viaLeftColumn->Add( m_ViaDiameterCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_ViaDiameterUnit = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaDiameterUnit->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaDiameterUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + viaLeftColumn->Add( m_ViaDiameterUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_ViaDrillLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Via hole:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaDrillLabel->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaDrillLabel, 0, wxALIGN_CENTER_VERTICAL, 5 ); + viaLeftColumn->Add( m_ViaDrillLabel, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_ViaDrillCtrl = new wxTextCtrl( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgViaLeftSizer->Add( m_ViaDrillCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + viaLeftColumn->Add( m_ViaDrillCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_ViaDrillUnit = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Unit"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaDrillUnit->Wrap( -1 ); - fgViaLeftSizer->Add( m_ViaDrillUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + viaLeftColumn->Add( m_ViaDrillUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - fgViaLeftSizer->Add( 0, 0, 1, wxEXPAND, 5 ); + viaLeftColumn->Add( 0, 0, 1, wxEXPAND, 5 ); m_viaNetclass = new wxCheckBox( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Use net class sizes"), wxDefaultPosition, wxDefaultSize, 0 ); - fgViaLeftSizer->Add( m_viaNetclass, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 ); + viaLeftColumn->Add( m_viaNetclass, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 ); - fgViaLeftSizer->Add( 0, 0, 1, wxEXPAND, 5 ); + viaLeftColumn->Add( 0, 0, 1, wxEXPAND, 5 ); - m_sbViaSizer->Add( fgViaLeftSizer, 5, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + m_sbViaSizer->Add( viaLeftColumn, 5, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - m_sbViaSizer->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 10 ); + m_sbViaSizer->Add( 0, 0, 0, wxEXPAND|wxRIGHT|wxLEFT, 15 ); - wxGridBagSizer* gbViaRightSizer; - gbViaRightSizer = new wxGridBagSizer( 0, 0 ); - gbViaRightSizer->SetFlexibleDirection( wxBOTH ); - gbViaRightSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxBoxSizer* viaRightColumn; + viaRightColumn = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizer4; + fgSizer4 = new wxFlexGridSizer( 0, 2, 0, 0 ); + fgSizer4->AddGrowableCol( 1 ); + fgSizer4->SetFlexibleDirection( wxBOTH ); + fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_ViaTypeLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Via type:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaTypeLabel->Wrap( -1 ); - gbViaRightSizer->Add( m_ViaTypeLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + fgSizer4->Add( m_ViaTypeLabel, 0, wxBOTTOM|wxALIGN_CENTER_VERTICAL, 5 ); wxString m_ViaTypeChoiceChoices[] = { _("Through"), _("Micro"), _("Blind/buried") }; int m_ViaTypeChoiceNChoices = sizeof( m_ViaTypeChoiceChoices ) / sizeof( wxString ); @@ -254,33 +258,41 @@ DIALOG_TRACK_VIA_PROPERTIES_BASE::DIALOG_TRACK_VIA_PROPERTIES_BASE( wxWindow* pa m_ViaTypeChoice->SetSelection( 0 ); m_ViaTypeChoice->Enable( false ); - gbViaRightSizer->Add( m_ViaTypeChoice, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 3 ); + fgSizer4->Add( m_ViaTypeChoice, 0, wxBOTTOM|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_ViaStartLayerLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Start layer:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaStartLayerLabel->Wrap( -1 ); - gbViaRightSizer->Add( m_ViaStartLayerLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + fgSizer4->Add( m_ViaStartLayerLabel, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_ViaStartLayer = new PCB_LAYER_BOX_SELECTOR( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - gbViaRightSizer->Add( m_ViaStartLayer, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + fgSizer4->Add( m_ViaStartLayer, 0, wxEXPAND, 5 ); m_ViaEndLayerLabel1 = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("End layer:"), wxDefaultPosition, wxDefaultSize, 0 ); m_ViaEndLayerLabel1->Wrap( -1 ); - gbViaRightSizer->Add( m_ViaEndLayerLabel1, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + fgSizer4->Add( m_ViaEndLayerLabel1, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_ViaEndLayer = new PCB_LAYER_BOX_SELECTOR( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - gbViaRightSizer->Add( m_ViaEndLayer, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + fgSizer4->Add( m_ViaEndLayer, 0, wxEXPAND, 5 ); - gbViaRightSizer->AddGrowableCol( 1 ); + viaRightColumn->Add( fgSizer4, 0, wxEXPAND|wxBOTTOM|wxRIGHT, 5 ); - m_sbViaSizer->Add( gbViaRightSizer, 4, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + m_annularRingsLabel = new wxStaticText( m_sbViaSizer->GetStaticBox(), wxID_ANY, _("Annular rings:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_annularRingsLabel->Wrap( -1 ); + viaRightColumn->Add( m_annularRingsLabel, 0, wxTOP, 10 ); + + wxString m_annularRingsCtrlChoices[] = { _("All copper layers"), _("Start, end, and connected layers"), _("Connected layers only") }; + int m_annularRingsCtrlNChoices = sizeof( m_annularRingsCtrlChoices ) / sizeof( wxString ); + m_annularRingsCtrl = new wxChoice( m_sbViaSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_annularRingsCtrlNChoices, m_annularRingsCtrlChoices, 0 ); + m_annularRingsCtrl->SetSelection( 0 ); + viaRightColumn->Add( m_annularRingsCtrl, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 ); + + + m_sbViaSizer->Add( viaRightColumn, 4, wxEXPAND|wxRIGHT, 5 ); m_MainSizer->Add( m_sbViaSizer, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 ); - - m_MainSizer->Add( 0, 0, 1, wxEXPAND, 5 ); - m_StdButtons = new wxStdDialogButtonSizer(); m_StdButtonsOK = new wxButton( this, wxID_OK ); m_StdButtons->AddButton( m_StdButtonsOK ); diff --git a/pcbnew/dialogs/dialog_track_via_properties_base.fbp b/pcbnew/dialogs/dialog_track_via_properties_base.fbp index b706b940c5..709894f490 100644 --- a/pcbnew/dialogs/dialog_track_via_properties_base.fbp +++ b/pcbnew/dialogs/dialog_track_via_properties_base.fbp @@ -281,7 +281,7 @@ 5 - wxEXPAND|wxBOTTOM|wxRIGHT + wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT 0 1 @@ -1648,7 +1648,7 @@ 10 - wxLEFT|wxEXPAND + wxEXPAND|wxRIGHT 4 3 @@ -1804,18 +1804,18 @@ wxHORIZONTAL 1 protected - + 5 wxEXPAND|wxRIGHT|wxLEFT 5 - + 3 wxBOTH 1 5 - fgViaLeftSizer + viaLeftColumn wxFLEX_GROWMODE_SPECIFIED none 6 @@ -2841,7 +2841,7 @@ - 10 + 15 wxEXPAND|wxRIGHT|wxLEFT 0 @@ -2850,29 +2850,416 @@ 0 - + 5 - wxEXPAND|wxRIGHT|wxLEFT + wxEXPAND|wxRIGHT 4 - - - wxBOTH - 1 - - 0 + - gbViaRightSizer - wxFLEX_GROWMODE_SPECIFIED + viaRightColumn + wxVERTICAL none - 0 - + 5 - 1 - 0 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT - 0 - 1 - + wxEXPAND|wxBOTTOM|wxRIGHT + 0 + + 2 + wxBOTH + 1 + + 0 + + fgSizer4 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxBOTTOM|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Via type: + 0 + + 0 + + + 0 + + 1 + m_ViaTypeLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxBOTTOM|wxALIGN_CENTER_VERTICAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Through" "Micro" "Blind/buried" + 1 + + 1 + 0 + Dock + 0 + Left + 0 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_ViaTypeChoice + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + onViaEdit + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Start layer: + 0 + + 0 + + + 0 + + 1 + m_ViaStartLayerLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 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_ViaStartLayer + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + PCB_LAYER_BOX_SELECTOR; pcb_layer_box_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + End layer: + 0 + + 0 + + + 0 + + 1 + m_ViaEndLayerLabel1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 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_ViaEndLayer + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + PCB_LAYER_BOX_SELECTOR; pcb_layer_box_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + 10 + wxTOP + 0 + 1 1 1 @@ -2900,7 +3287,7 @@ 0 0 wxID_ANY - Via type: + Annular rings: 0 0 @@ -2909,7 +3296,7 @@ 0 1 - m_ViaTypeLabel + m_annularRingsLabel 1 @@ -2920,7 +3307,7 @@ 1 - + ; ; forward_declare 0 @@ -2929,14 +3316,11 @@ -1 - - 3 - 1 - 1 - wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - 1 - + + 5 + wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT + 0 + 1 1 1 @@ -2950,7 +3334,7 @@ 1 0 - "Through" "Micro" "Blind/buried" + "All copper layers" "Start, end, and connected layers" "Connected layers only" 1 1 @@ -2958,7 +3342,7 @@ Dock 0 Left - 0 + 1 1 @@ -2972,7 +3356,7 @@ 0 1 - m_ViaTypeChoice + m_annularRingsCtrl 1 @@ -2984,7 +3368,7 @@ 1 - + ; ; forward_declare 0 @@ -2994,287 +3378,12 @@ - onViaEdit - - - - 5 - 1 - 0 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 1 - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Start layer: - 0 - - 0 - - - 0 - - 1 - m_ViaStartLayerLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - 1 - 1 - wxALIGN_CENTER_VERTICAL|wxEXPAND - 1 - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ViaStartLayer - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - PCB_LAYER_BOX_SELECTOR; pcb_layer_box_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - 1 - 0 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 2 - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - End layer: - 0 - - 0 - - - 0 - - 1 - m_ViaEndLayerLabel1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - 1 - 1 - wxALIGN_CENTER_VERTICAL|wxEXPAND - 2 - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ViaEndLayer - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - PCB_LAYER_BOX_SELECTOR; pcb_layer_box_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - 5 wxEXPAND|wxALL diff --git a/pcbnew/dialogs/dialog_track_via_properties_base.h b/pcbnew/dialogs/dialog_track_via_properties_base.h index 14515063e5..c8f466d0a1 100644 --- a/pcbnew/dialogs/dialog_track_via_properties_base.h +++ b/pcbnew/dialogs/dialog_track_via_properties_base.h @@ -27,7 +27,6 @@ class PCB_LAYER_BOX_SELECTOR; #include #include #include -#include #include #include @@ -94,6 +93,8 @@ class DIALOG_TRACK_VIA_PROPERTIES_BASE : public DIALOG_SHIM PCB_LAYER_BOX_SELECTOR* m_ViaStartLayer; wxStaticText* m_ViaEndLayerLabel1; PCB_LAYER_BOX_SELECTOR* m_ViaEndLayer; + wxStaticText* m_annularRingsLabel; + wxChoice* m_annularRingsCtrl; wxStdDialogButtonSizer* m_StdButtons; wxButton* m_StdButtonsOK; wxButton* m_StdButtonsCancel;