75                                                          [
this]( wxCommandEvent& aEvent )
 
   80                                                       [
this]( wxCommandEvent& aEvent )
 
   85                                                        [
this]( wxCommandEvent& aEvent )
 
   90    m_trackWidthsGrid->SetSelectionMode( wxGrid::wxGridSelectionModes::wxGridSelectRows );
 
   91    m_viaSizesGrid->SetSelectionMode( wxGrid::wxGridSelectionModes::wxGridSelectRows );
 
   92    m_diffPairsGrid->SetSelectionMode( wxGrid::wxGridSelectionModes::wxGridSelectRows );
 
  108    int min_linesize = 
m_trackWidthsGrid->GetTextExtent( wxT( 
"000.000000 mm " ) ).x;
 
  110    for( 
int ii = 0; grid_list[ii]; ii++ )
 
  112        WX_GRID* curr_grid = grid_list[ii];
 
  114        for( 
int col = 0; col < curr_grid->GetNumberCols(); col++ )
 
  117            int best_w = std::max( min_linesize, min_w );
 
  118            curr_grid->SetColMinimalWidth( col, best_w );
 
  119            curr_grid->SetColSize( col,best_w );
 
 
  143    std::vector<int> trackWidths;
 
  156            trackWidths.push_back( 
m_Frame->ValueFromString( msg ) );
 
  159    std::sort( trackWidths.begin(), trackWidths.end() );
 
  162    for( 
int width : trackWidths )
 
 
  172    std::vector<VIA_DIMENSION> vias;
 
  194            vias.push_back( via_dim );
 
  198    std::sort( vias.begin(), vias.end() );
 
 
  212    std::vector<DIFF_PAIR_DIMENSION> diffPairs;
 
  236            diffPairs.push_back( diffPair_dim );
 
  240    std::sort( diffPairs.begin(), diffPairs.end() );
 
 
  271    for( 
unsigned ii = 1; ii < 
m_BrdSettings->m_TrackWidthList.size(); ii++ )
 
  277    for( 
unsigned ii = 1; ii < 
m_BrdSettings->m_ViasDimensionsList.size(); ii++ )
 
  284    for( 
unsigned ii = 1; ii < 
m_BrdSettings->m_DiffPairDimensionsList.size(); ii++ )
 
 
  300    std::vector<int>                 trackWidths;
 
  301    std::vector<VIA_DIMENSION>       vias;
 
  302    std::vector<DIFF_PAIR_DIMENSION> diffPairs;
 
  322            vias.push_back( via_dim );
 
  339            diffPairs.push_back( diffPair_dim );
 
  344    sort( trackWidths.begin(), trackWidths.end() );
 
  345    sort( vias.begin(), vias.end() );
 
  346    sort( diffPairs.begin(), diffPairs.end() );
 
  350    trackWidths.insert( trackWidths.begin(), 0 );         
 
  353    vias.insert( vias.begin(), { 0, 0 } );                
 
  356    diffPairs.insert( diffPairs.begin(), { 0, 0, 0 } );   
 
 
  384        std::optional<int> viaDiameter;
 
  386        if( !viaDia.IsEmpty() )
 
  389        std::optional<int> viaDrillSize;
 
  391        if( !viaDrill.IsEmpty() )
 
  394        if( std::optional<PCB_VIA::VIA_PARAMETER_ERROR> error =
 
  397            msg = error->m_Message;
 
  415        if( !dpWidth.IsEmpty() && dpGap.IsEmpty() )
 
  417            msg = 
_( 
"No differential pair gap defined." );
 
 
  469            [&]() -> std::pair<int, int>
 
 
  490            [&]() -> std::pair<int, int>
 
 
  511            [&]() -> std::pair<int, int>
 
 
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
 
Container for design settings for a BOARD object.
 
Information pertinent to a Pcbnew printed circuit board.
 
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
 
Add mouse and command handling (such as cut, copy, and paste) to a WX_GRID instance.
 
static PAGED_DIALOG * GetDialog(wxWindow *aWindow)
 
void SetError(const wxString &aMessage, const wxString &aPageName, int aCtrlId, int aRow=-1, int aCol=-1)
 
STD_BITMAP_BUTTON * m_trackWidthsAddButton
 
WX_GRID * m_trackWidthsGrid
 
WX_GRID * m_diffPairsGrid
 
STD_BITMAP_BUTTON * m_diffPairsAddButton
 
PANEL_SETUP_TRACKS_AND_VIAS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
STD_BITMAP_BUTTON * m_trackWidthsSortButton
 
STD_BITMAP_BUTTON * m_trackWidthsRemoveButton
 
STD_BITMAP_BUTTON * m_viaSizesRemoveButton
 
STD_BITMAP_BUTTON * m_diffPairsSortButton
 
STD_BITMAP_BUTTON * m_viaSizesAddButton
 
STD_BITMAP_BUTTON * m_viaSizesSortButton
 
STD_BITMAP_BUTTON * m_diffPairsRemoveButton
 
void OnRemoveViaSizesClick(wxCommandEvent &event) override
 
bool TransferDataToWindow() override
 
PANEL_SETUP_TRACKS_AND_VIAS(wxWindow *aParentWindow, PCB_EDIT_FRAME *aFrame)
 
void OnRemoveDiffPairsClick(wxCommandEvent &event) override
 
void OnSortTrackWidthsClick(wxCommandEvent &event) override
 
bool commitPendingChanges(bool aQuietMode=false)
 
~PANEL_SETUP_TRACKS_AND_VIAS() override
 
void onUnitsChanged(wxCommandEvent &aEvent)
 
void OnSortViaSizesClick(wxCommandEvent &event) override
 
void AppendTrackWidth(int aWidth)
 
void OnAddViaSizesClick(wxCommandEvent &event) override
 
void ImportSettingsFrom(BOARD *aBoard)
 
void OnSortDiffPairsClick(wxCommandEvent &event) override
 
void OnRemoveTrackWidthsClick(wxCommandEvent &event) override
 
bool TransferDataFromWindow() override
 
void OnAddDiffPairsClick(wxCommandEvent &event) override
 
BOARD_DESIGN_SETTINGS * m_BrdSettings
 
void AppendDiffPairs(int aWidth, int aGap, int aViaGap)
 
void OnAddTrackWidthsClick(wxCommandEvent &event) override
 
void AppendViaSize(int aSize, int aDrill)
 
The main frame for Pcbnew.
 
static std::optional< VIA_PARAMETER_ERROR > ValidateViaParameters(std::optional< int > aDiameter, std::optional< int > aDrill, std::optional< PCB_LAYER_ID > aStartLayer=std::nullopt, std::optional< PCB_LAYER_ID > aEndLayer=std::nullopt)
 
int GetVisibleWidth(int aCol, bool aHeader=true, bool aContents=true, bool aKeep=false)
Calculate the specified column based on the actual size of the text on screen.
 
Container to handle a stock of specific differential pairs each with unique track width,...
 
Container to handle a stock of specific vias each with unique diameter and drill sizes in the BOARD c...