79 [
this]( wxCommandEvent& aEvent )
84 [
this]( wxCommandEvent& aEvent )
89 [
this]( wxCommandEvent& aEvent )
94 m_trackWidthsGrid->SetSelectionMode( wxGrid::wxGridSelectionModes::wxGridSelectRows );
95 m_viaSizesGrid->SetSelectionMode( wxGrid::wxGridSelectionModes::wxGridSelectRows );
96 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 );
140 std::vector<int> trackWidths;
153 std::sort( trackWidths.begin(), trackWidths.end() );
156 for(
int width : trackWidths )
163 std::vector<VIA_DIMENSION> vias;
182 vias.push_back( via_dim );
186 std::sort( vias.begin(), vias.end() );
197 std::vector<DIFF_PAIR_DIMENSION> diffPairs;
218 diffPairs.push_back( diffPair_dim );
222 std::sort( diffPairs.begin(), diffPairs.end() );
287 std::vector<int> trackWidths;
288 std::vector<VIA_DIMENSION> vias;
289 std::vector<DIFF_PAIR_DIMENSION> diffPairs;
309 vias.push_back( via_dim );
326 diffPairs.push_back( diffPair_dim );
331 sort( trackWidths.begin(), trackWidths.end() );
332 sort( vias.begin(), vias.end() );
333 sort( diffPairs.begin(), diffPairs.end() );
337 trackWidths.insert( trackWidths.begin(), 0 );
340 vias.insert( vias.begin(), { 0, 0 } );
343 diffPairs.insert( diffPairs.begin(), { 0, 0, 0 } );
367 if( !viaDia.IsEmpty() && viaDrill.IsEmpty() )
369 msg =
_(
"No via hole size defined." );
381 if( !dpWidth.IsEmpty() && dpGap.IsEmpty() )
383 msg =
_(
"No differential pair gap defined." );
434 wxArrayInt selectedRows = aGrid->GetSelectedRows();
435 int curRow = aGrid->GetGridCursorRow();
437 if( selectedRows.empty() && curRow >= 0 && curRow < aGrid->GetNumberRows() )
438 selectedRows.Add( curRow );
440 for(
int ii = selectedRows.Count() - 1; ii >= 0; --ii )
442 int row = selectedRows.Item( ii );
443 aGrid->DeleteRows( row, 1 );
444 curRow = std::min( curRow, row );
447 curRow = std::max( 0, curRow - 1 );
448 aGrid->MakeCellVisible( curRow, aGrid->GetGridCursorCol() );
449 aGrid->SetGridCursor( curRow, aGrid->GetGridCursorCol() );
wxBitmap KiBitmap(BITMAPS aBitmap, int aHeightTag)
Construct a wxBitmap from an image identifier Returns the image from the active theme if the image ha...
Container for design settings for a BOARD object.
std::vector< DIFF_PAIR_DIMENSION > m_DiffPairDimensionsList
std::vector< int > m_TrackWidthList
std::vector< VIA_DIMENSION > m_ViasDimensionsList
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)
Class PANEL_SETUP_TRACKS_AND_VIAS_BASE.
STD_BITMAP_BUTTON * m_trackWidthsAddButton
WX_GRID * m_trackWidthsGrid
WX_GRID * m_diffPairsGrid
STD_BITMAP_BUTTON * m_diffPairsAddButton
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
~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.
int ValueFromString(const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Converts aTextValue in aUnits to internal units used by the frame.
int GetVisibleWidth(int aCol, bool aHeader=true, bool aContents=true, bool aKeep=false)
Calculates the specified column based on the actual size of the text on screen.
void SetUnitValue(int aRow, int aCol, int aValue)
Set a unitized cell's value.
int GetUnitValue(int aRow, int aCol)
Apply standard KiCad unit and eval services to a numeric cell.
void SetAutoEvalCols(const std::vector< int > &aCols)
void SetUnitsProvider(UNITS_PROVIDER *aProvider, int aCol=0)
Set a UNITS_PROVIDER to enable use of unit- and eval-based Getters.
void ClearRows()
wxWidgets recently added an ASSERT which fires if the position is greater than or equal to the number...
bool CommitPendingChanges(bool aQuietMode=false)
Close any open cell edit controls.
void removeSelectedRows(WX_GRID *aGrid)
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...