Browse Source
New net membership controls for more efficient operation.
New net membership controls for more efficient operation.
(cherry picked from commit f7c5a54)pull/17/head
15 changed files with 2561 additions and 1372 deletions
-
2pcbnew/CMakeLists.txt
-
7pcbnew/dialogs/dialog_board_setup.cpp
-
3pcbnew/dialogs/dialog_board_setup.h
-
24pcbnew/dialogs/panel_setup_feature_constraints_base.cpp
-
24pcbnew/dialogs/panel_setup_feature_constraints_base.fbp
-
249pcbnew/dialogs/panel_setup_netclasses.cpp
-
13pcbnew/dialogs/panel_setup_netclasses.h
-
267pcbnew/dialogs/panel_setup_netclasses_base.cpp
-
2122pcbnew/dialogs/panel_setup_netclasses_base.fbp
-
25pcbnew/dialogs/panel_setup_netclasses_base.h
-
258pcbnew/dialogs/panel_setup_tracks_and_vias.cpp
-
657pcbnew/dialogs/panel_setup_tracks_and_vias.fbp
-
63pcbnew/dialogs/panel_setup_tracks_and_vias.h
-
170pcbnew/dialogs/panel_setup_tracks_and_vias_base.cpp
-
49pcbnew/dialogs/panel_setup_tracks_and_vias_base.h
2122
pcbnew/dialogs/panel_setup_netclasses_base.fbp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,258 @@ |
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2018 KiCad Developers, see change_log.txt for contributors. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|||
* or you may search the http://www.gnu.org website for the version 2 license,
|
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
|
|||
|
|||
#include <fctsys.h>
|
|||
#include <class_drawpanel.h>
|
|||
#include <base_units.h>
|
|||
#include <pcb_edit_frame.h>
|
|||
#include <board_design_settings.h>
|
|||
#include <widgets/wx_grid.h>
|
|||
|
|||
#include <panel_setup_tracks_and_vias.h>
|
|||
|
|||
|
|||
PANEL_SETUP_TRACKS_AND_VIAS::PANEL_SETUP_TRACKS_AND_VIAS( |
|||
PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFrame, |
|||
PANEL_SETUP_FEATURE_CONSTRAINTS* aConstraintsPanel ) : |
|||
PANEL_SETUP_TRACKS_AND_VIAS_BASE( aParent->GetTreebook() ) |
|||
{ |
|||
m_Parent = aParent; |
|||
m_Frame = aFrame; |
|||
m_Pcb = m_Frame->GetBoard(); |
|||
m_BrdSettings = &m_Pcb->GetDesignSettings(); |
|||
m_ConstraintsPanel = aConstraintsPanel; |
|||
|
|||
// Membership combobox editors require a bit more room, so increase the row size of
|
|||
// all our grids for consistency
|
|||
m_trackWidthsGrid->SetDefaultRowSize( m_trackWidthsGrid->GetDefaultRowSize() + 4 ); |
|||
m_viaSizesGrid->SetDefaultRowSize( m_viaSizesGrid->GetDefaultRowSize() + 4 ); |
|||
m_diffPairsGrid->SetDefaultRowSize( m_diffPairsGrid->GetDefaultRowSize() + 4 ); |
|||
} |
|||
|
|||
|
|||
bool PANEL_SETUP_TRACKS_AND_VIAS::TransferDataToWindow() |
|||
{ |
|||
#define SETCELL( grid, row, col, val ) \
|
|||
grid->SetCellValue( row, col, StringFromValue( m_Frame->GetUserUnits(), val, true, true ) ) |
|||
|
|||
m_trackWidthsGrid->ClearGrid(); |
|||
m_viaSizesGrid->ClearGrid(); |
|||
m_diffPairsGrid->ClearGrid(); |
|||
|
|||
// Skip the first item, which is the current netclass value
|
|||
for( unsigned ii = 1; ii < m_BrdSettings->m_TrackWidthList.size(); ii++ ) |
|||
{ |
|||
SETCELL( m_trackWidthsGrid, ii-1, 0, m_BrdSettings->m_TrackWidthList[ii] ); |
|||
} |
|||
|
|||
// Skip the first item, which is the current netclass value
|
|||
for( unsigned ii = 1; ii < m_BrdSettings->m_ViasDimensionsList.size(); ii++ ) |
|||
{ |
|||
SETCELL( m_viaSizesGrid, ii-1, 0, m_BrdSettings->m_ViasDimensionsList[ii].m_Diameter ); |
|||
|
|||
if( m_BrdSettings->m_ViasDimensionsList[ii].m_Drill > 0 ) |
|||
SETCELL( m_viaSizesGrid, ii-1, 1, m_BrdSettings->m_ViasDimensionsList[ii].m_Drill ); |
|||
} |
|||
|
|||
// Skip the first item, which is the current netclass value
|
|||
for( unsigned ii = 1; ii < m_BrdSettings->m_DiffPairDimensionsList.size(); ii++ ) |
|||
{ |
|||
SETCELL( m_diffPairsGrid, ii-1, 0, m_BrdSettings->m_DiffPairDimensionsList[ii].m_Width ); |
|||
|
|||
if( m_BrdSettings->m_DiffPairDimensionsList[ii].m_Gap > 0 ) |
|||
SETCELL( m_diffPairsGrid, ii-1, 1, m_BrdSettings->m_DiffPairDimensionsList[ii].m_Gap ); |
|||
|
|||
if( m_BrdSettings->m_DiffPairDimensionsList[ii].m_ViaGap > 0 ) |
|||
SETCELL( m_diffPairsGrid, ii-1, 2, m_BrdSettings->m_DiffPairDimensionsList[ii].m_ViaGap ); |
|||
} |
|||
|
|||
return true; |
|||
} |
|||
|
|||
|
|||
bool PANEL_SETUP_TRACKS_AND_VIAS::TransferDataFromWindow() |
|||
{ |
|||
if( !validateData() ) |
|||
return false; |
|||
|
|||
wxString msg; |
|||
std::vector<int> trackWidths; |
|||
std::vector<VIA_DIMENSION> vias; |
|||
std::vector<DIFF_PAIR_DIMENSION> diffPairs; |
|||
|
|||
for( int row = 0; row < m_trackWidthsGrid->GetNumberRows(); ++row ) |
|||
{ |
|||
msg = m_trackWidthsGrid->GetCellValue( row, 0 ); |
|||
|
|||
if( !msg.IsEmpty() ) |
|||
trackWidths.push_back( ValueFromString( m_Frame->GetUserUnits(), msg, true ) ); |
|||
} |
|||
|
|||
for( int row = 0; row < m_viaSizesGrid->GetNumberRows(); ++row ) |
|||
{ |
|||
msg = m_viaSizesGrid->GetCellValue( row, 0 ); |
|||
|
|||
if( !msg.IsEmpty() ) |
|||
{ |
|||
VIA_DIMENSION via_dim; |
|||
via_dim.m_Diameter = ValueFromString( m_Frame->GetUserUnits(), msg, true ); |
|||
|
|||
msg = m_viaSizesGrid->GetCellValue( row, 1 ); |
|||
|
|||
if( !msg.IsEmpty() ) |
|||
via_dim.m_Drill = ValueFromString( m_Frame->GetUserUnits(), msg, true ); |
|||
|
|||
vias.push_back( via_dim ); |
|||
} |
|||
} |
|||
|
|||
for( int row = 0; row < m_viaSizesGrid->GetNumberRows(); ++row ) |
|||
{ |
|||
msg = m_diffPairsGrid->GetCellValue( row, 0 ); |
|||
|
|||
if( !msg.IsEmpty() ) |
|||
{ |
|||
DIFF_PAIR_DIMENSION diffPair_dim; |
|||
diffPair_dim.m_Width = ValueFromString( m_Frame->GetUserUnits(), msg, true ); |
|||
|
|||
msg = m_diffPairsGrid->GetCellValue( row, 1 ); |
|||
diffPair_dim.m_Gap = ValueFromString( m_Frame->GetUserUnits(), msg, true ); |
|||
|
|||
msg = m_diffPairsGrid->GetCellValue( row, 2 ); |
|||
|
|||
if( !msg.IsEmpty() ) |
|||
diffPair_dim.m_ViaGap = ValueFromString( m_Frame->GetUserUnits(), msg, true ); |
|||
|
|||
diffPairs.push_back( diffPair_dim ); |
|||
} |
|||
} |
|||
|
|||
// Sort lists by increasing value
|
|||
sort( trackWidths.begin(), trackWidths.end() ); |
|||
sort( vias.begin(), vias.end() ); |
|||
sort( diffPairs.begin(), diffPairs.end() ); |
|||
|
|||
trackWidths.insert( trackWidths.begin(), m_BrdSettings->m_TrackWidthList[ 0 ] ); |
|||
m_BrdSettings->m_TrackWidthList = trackWidths; |
|||
|
|||
vias.insert( vias.begin(), m_BrdSettings->m_ViasDimensionsList[ 0 ] ); |
|||
m_BrdSettings->m_ViasDimensionsList = vias; |
|||
|
|||
diffPairs.insert( diffPairs.begin(), m_BrdSettings->m_DiffPairDimensionsList[ 0 ] ); |
|||
m_BrdSettings->m_DiffPairDimensionsList = diffPairs; |
|||
|
|||
return true; |
|||
} |
|||
|
|||
|
|||
bool PANEL_SETUP_TRACKS_AND_VIAS::validateData() |
|||
{ |
|||
// Commit any pending in-place edits and close editors from grid controls
|
|||
m_trackWidthsGrid->DisableCellEditControl(); |
|||
m_viaSizesGrid->DisableCellEditControl(); |
|||
m_diffPairsGrid->DisableCellEditControl(); |
|||
|
|||
wxString msg; |
|||
int minViaDia = m_ConstraintsPanel->m_viaMinSize.GetValue(); |
|||
int minViaDrill = m_ConstraintsPanel->m_viaMinDrill.GetValue(); |
|||
int minTrackWidth = m_ConstraintsPanel->m_trackMinWidth.GetValue(); |
|||
|
|||
// Test tracks
|
|||
for( int row = 0; row < m_trackWidthsGrid->GetNumberRows(); ++row ) |
|||
{ |
|||
wxString tvalue = m_trackWidthsGrid->GetCellValue( row, 0 ); |
|||
|
|||
if( tvalue.IsEmpty() ) |
|||
continue; |
|||
|
|||
if( ValueFromString( m_Frame->GetUserUnits(), tvalue ) < minTrackWidth ) |
|||
{ |
|||
msg.Printf( _( "Track width less than minimum track width (%s)." ), |
|||
StringFromValue( m_Frame->GetUserUnits(), minTrackWidth, true, true ) ); |
|||
m_Parent->SetError( msg, this, m_trackWidthsGrid, row, 0 ); |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
// Test vias
|
|||
for( int row = 0; row < m_viaSizesGrid->GetNumberRows(); ++row ) |
|||
{ |
|||
wxString viaDia = m_viaSizesGrid->GetCellValue( row, 0 ); |
|||
|
|||
if( viaDia.IsEmpty() ) |
|||
continue; |
|||
|
|||
if( ValueFromString( m_Frame->GetUserUnits(), viaDia ) < minViaDia ) |
|||
{ |
|||
msg.Printf( _( "Via diameter less than minimum via diameter (%s)." ), |
|||
StringFromValue( m_Frame->GetUserUnits(), minViaDia, true, true ) ); |
|||
m_Parent->SetError( msg, this, m_viaSizesGrid, row, 0 ); |
|||
return false; |
|||
} |
|||
|
|||
wxString viaDrill = m_viaSizesGrid->GetCellValue( row, 1 ); |
|||
|
|||
if( viaDrill.IsEmpty() ) |
|||
{ |
|||
msg = _( "No via drill defined." ); |
|||
m_Parent->SetError( msg, this, m_viaSizesGrid, row, 1 ); |
|||
return false; |
|||
} |
|||
|
|||
if( ValueFromString( m_Frame->GetUserUnits(), viaDrill ) < minViaDrill ) |
|||
{ |
|||
msg.Printf( _( "Via drill less than minimum via drill (%s)." ), |
|||
StringFromValue( m_Frame->GetUserUnits(), minViaDrill, true, true ) ); |
|||
m_Parent->SetError( msg, this, m_viaSizesGrid, row, 1 ); |
|||
return false; |
|||
} |
|||
|
|||
if( ValueFromString( m_Frame->GetUserUnits(), viaDrill ) |
|||
>= ValueFromString( m_Frame->GetUserUnits(), viaDia ) ) |
|||
{ |
|||
msg = _( "Via drill larger than via diameter." ); |
|||
m_Parent->SetError( msg, this, m_viaSizesGrid, row, 1 ); |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
return true; |
|||
} |
|||
|
|||
|
|||
void PANEL_SETUP_TRACKS_AND_VIAS::ImportSettingsFrom( BOARD* aBoard ) |
|||
{ |
|||
// Note: do not change the board, as we need to get the current nets from it for
|
|||
// netclass memberships. All the netclass definitions and dimension lists are in
|
|||
// the BOARD_DESIGN_SETTINGS.
|
|||
|
|||
BOARD_DESIGN_SETTINGS* savedSettings = m_BrdSettings; |
|||
|
|||
m_BrdSettings = &aBoard->GetDesignSettings(); |
|||
TransferDataToWindow(); |
|||
|
|||
m_BrdSettings = savedSettings; |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,657 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> |
|||
<wxFormBuilder_Project> |
|||
<FileVersion major="1" minor="13" /> |
|||
<object class="Project" expanded="1"> |
|||
<property name="class_decoration"></property> |
|||
<property name="code_generation">C++</property> |
|||
<property name="disconnect_events">1</property> |
|||
<property name="disconnect_mode">source_name</property> |
|||
<property name="disconnect_php_events">0</property> |
|||
<property name="disconnect_python_events">0</property> |
|||
<property name="embedded_files_path">res</property> |
|||
<property name="encoding">UTF-8</property> |
|||
<property name="event_generation">connect</property> |
|||
<property name="file">panel_setup_tracks_and_vias_base</property> |
|||
<property name="first_id">1000</property> |
|||
<property name="help_provider">none</property> |
|||
<property name="internationalize">1</property> |
|||
<property name="name">panel_setup_tracks_and_vias_base</property> |
|||
<property name="namespace"></property> |
|||
<property name="path">.</property> |
|||
<property name="precompiled_header"></property> |
|||
<property name="relative_path">1</property> |
|||
<property name="skip_lua_events">1</property> |
|||
<property name="skip_php_events">1</property> |
|||
<property name="skip_python_events">1</property> |
|||
<property name="ui_table">UI</property> |
|||
<property name="use_enum">1</property> |
|||
<property name="use_microsoft_bom">0</property> |
|||
<object class="Panel" expanded="1"> |
|||
<property name="aui_managed">0</property> |
|||
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="context_menu">1</property> |
|||
<property name="enabled">1</property> |
|||
<property name="event_handler">impl_virtual</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">PANEL_SETUP_TRACKS_AND_VIAS_BASE</property> |
|||
<property name="pos"></property> |
|||
<property name="size">-1,-1</property> |
|||
<property name="subclass">; forward_declare</property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style">wxTAB_TRAVERSAL</property> |
|||
<event name="OnAuiFindManager"></event> |
|||
<event name="OnAuiPaneButton"></event> |
|||
<event name="OnAuiPaneClose"></event> |
|||
<event name="OnAuiPaneMaximize"></event> |
|||
<event name="OnAuiPaneRestore"></event> |
|||
<event name="OnAuiRender"></event> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnInitDialog"></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 class="wxBoxSizer" expanded="1"> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">bMainSizer</property> |
|||
<property name="orient">wxVERTICAL</property> |
|||
<property name="permission">none</property> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticText" expanded="1"> |
|||
<property name="BottomDockable">1</property> |
|||
<property name="LeftDockable">1</property> |
|||
<property name="RightDockable">1</property> |
|||
<property name="TopDockable">1</property> |
|||
<property name="aui_layer"></property> |
|||
<property name="aui_name"></property> |
|||
<property name="aui_position"></property> |
|||
<property name="aui_row"></property> |
|||
<property name="best_size"></property> |
|||
<property name="bg"></property> |
|||
<property name="caption"></property> |
|||
<property name="caption_visible">1</property> |
|||
<property name="center_pane">0</property> |
|||
<property name="close_button">1</property> |
|||
<property name="context_help"></property> |
|||
<property name="context_menu">1</property> |
|||
<property name="default_pane">0</property> |
|||
<property name="dock">Dock</property> |
|||
<property name="dock_fixed">0</property> |
|||
<property name="docking">Left</property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="floatable">1</property> |
|||
<property name="font"></property> |
|||
<property name="gripper">0</property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Pre-defined track and via dimensions:</property> |
|||
<property name="max_size"></property> |
|||
<property name="maximize_button">0</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="min_size"></property> |
|||
<property name="minimize_button">0</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="moveable">1</property> |
|||
<property name="name">m_label</property> |
|||
<property name="pane_border">1</property> |
|||
<property name="pane_position"></property> |
|||
<property name="pane_size"></property> |
|||
<property name="permission">protected</property> |
|||
<property name="pin_button">1</property> |
|||
<property name="pos"></property> |
|||
<property name="resize">Resizable</property> |
|||
<property name="show">1</property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass">; forward_declare</property> |
|||
<property name="toolbar_pane">0</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 class="sizeritem" expanded="1"> |
|||
<property name="border">20</property> |
|||
<property name="flag">wxEXPAND|wxLEFT</property> |
|||
<property name="proportion">5</property> |
|||
<object class="wxBoxSizer" expanded="1"> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">bSizerLower</property> |
|||
<property name="orient">wxHORIZONTAL</property> |
|||
<property name="permission">none</property> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxRIGHT|wxLEFT|wxEXPAND</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticBoxSizer" expanded="1"> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Tracks</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">sbSizer4</property> |
|||
<property name="orient">wxVERTICAL</property> |
|||
<property name="parent">1</property> |
|||
<property name="permission">none</property> |
|||
<event name="OnUpdateUI"></event> |
|||
<object class="sizeritem" expanded="0"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">1</property> |
|||
<object class="wxGrid" expanded="0"> |
|||
<property name="BottomDockable">1</property> |
|||
<property name="LeftDockable">1</property> |
|||
<property name="RightDockable">1</property> |
|||
<property name="TopDockable">1</property> |
|||
<property name="aui_layer"></property> |
|||
<property name="aui_name"></property> |
|||
<property name="aui_position"></property> |
|||
<property name="aui_row"></property> |
|||
<property name="autosize_cols">0</property> |
|||
<property name="autosize_rows">0</property> |
|||
<property name="best_size"></property> |
|||
<property name="bg"></property> |
|||
<property name="caption"></property> |
|||
<property name="caption_visible">1</property> |
|||
<property name="cell_bg"></property> |
|||
<property name="cell_font"></property> |
|||
<property name="cell_horiz_alignment">wxALIGN_LEFT</property> |
|||
<property name="cell_text"></property> |
|||
<property name="cell_vert_alignment">wxALIGN_TOP</property> |
|||
<property name="center_pane">0</property> |
|||
<property name="close_button">1</property> |
|||
<property name="col_label_horiz_alignment">wxALIGN_CENTRE</property> |
|||
<property name="col_label_size">22</property> |
|||
<property name="col_label_values">"Width"</property> |
|||
<property name="col_label_vert_alignment">wxALIGN_CENTRE</property> |
|||
<property name="cols">1</property> |
|||
<property name="column_sizes">100</property> |
|||
<property name="context_help"></property> |
|||
<property name="context_menu">1</property> |
|||
<property name="default_pane">0</property> |
|||
<property name="dock">Dock</property> |
|||
<property name="dock_fixed">0</property> |
|||
<property name="docking">Left</property> |
|||
<property name="drag_col_move">0</property> |
|||
<property name="drag_col_size">0</property> |
|||
<property name="drag_grid_size">0</property> |
|||
<property name="drag_row_size">0</property> |
|||
<property name="editing">1</property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="floatable">1</property> |
|||
<property name="font"></property> |
|||
<property name="grid_line_color"></property> |
|||
<property name="grid_lines">1</property> |
|||
<property name="gripper">0</property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label_bg"></property> |
|||
<property name="label_font"></property> |
|||
<property name="label_text"></property> |
|||
<property name="margin_height">0</property> |
|||
<property name="margin_width">0</property> |
|||
<property name="max_size"></property> |
|||
<property name="maximize_button">0</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="min_size"></property> |
|||
<property name="minimize_button">0</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="moveable">1</property> |
|||
<property name="name">m_trackWidthsGrid</property> |
|||
<property name="pane_border">1</property> |
|||
<property name="pane_position"></property> |
|||
<property name="pane_size"></property> |
|||
<property name="permission">protected</property> |
|||
<property name="pin_button">1</property> |
|||
<property name="pos"></property> |
|||
<property name="resize">Resizable</property> |
|||
<property name="row_label_horiz_alignment">wxALIGN_CENTRE</property> |
|||
<property name="row_label_size">30</property> |
|||
<property name="row_label_values">"1" "2" "3" "4" "5" "6" "7" "8"</property> |
|||
<property name="row_label_vert_alignment">wxALIGN_CENTRE</property> |
|||
<property name="row_sizes"></property> |
|||
<property name="rows">8</property> |
|||
<property name="show">1</property> |
|||
<property name="size"></property> |
|||
<property name="subclass">WX_GRID; widgets/wx_grid.h; forward_declare</property> |
|||
<property name="toolbar_pane">0</property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnGridCellChange"></event> |
|||
<event name="OnGridCellLeftClick"></event> |
|||
<event name="OnGridCellLeftDClick"></event> |
|||
<event name="OnGridCellRightClick"></event> |
|||
<event name="OnGridCellRightDClick"></event> |
|||
<event name="OnGridCmdCellChange"></event> |
|||
<event name="OnGridCmdCellLeftClick"></event> |
|||
<event name="OnGridCmdCellLeftDClick"></event> |
|||
<event name="OnGridCmdCellRightClick"></event> |
|||
<event name="OnGridCmdCellRightDClick"></event> |
|||
<event name="OnGridCmdColSize"></event> |
|||
<event name="OnGridCmdEditorCreated"></event> |
|||
<event name="OnGridCmdEditorHidden"></event> |
|||
<event name="OnGridCmdEditorShown"></event> |
|||
<event name="OnGridCmdLabelLeftClick"></event> |
|||
<event name="OnGridCmdLabelLeftDClick"></event> |
|||
<event name="OnGridCmdLabelRightClick"></event> |
|||
<event name="OnGridCmdLabelRightDClick"></event> |
|||
<event name="OnGridCmdRangeSelect"></event> |
|||
<event name="OnGridCmdRowSize"></event> |
|||
<event name="OnGridCmdSelectCell"></event> |
|||
<event name="OnGridColSize"></event> |
|||
<event name="OnGridEditorCreated"></event> |
|||
<event name="OnGridEditorHidden"></event> |
|||
<event name="OnGridEditorShown"></event> |
|||
<event name="OnGridLabelLeftClick"></event> |
|||
<event name="OnGridLabelLeftDClick"></event> |
|||
<event name="OnGridLabelRightClick"></event> |
|||
<event name="OnGridLabelRightDClick"></event> |
|||
<event name="OnGridRangeSelect"></event> |
|||
<event name="OnGridRowSize"></event> |
|||
<event name="OnGridSelectCell"></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"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticBoxSizer" expanded="1"> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Vias</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">sbSizer5</property> |
|||
<property name="orient">wxVERTICAL</property> |
|||
<property name="parent">1</property> |
|||
<property name="permission">none</property> |
|||
<event name="OnUpdateUI"></event> |
|||
<object class="sizeritem" expanded="0"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">1</property> |
|||
<object class="wxGrid" expanded="0"> |
|||
<property name="BottomDockable">1</property> |
|||
<property name="LeftDockable">1</property> |
|||
<property name="RightDockable">1</property> |
|||
<property name="TopDockable">1</property> |
|||
<property name="aui_layer"></property> |
|||
<property name="aui_name"></property> |
|||
<property name="aui_position"></property> |
|||
<property name="aui_row"></property> |
|||
<property name="autosize_cols">0</property> |
|||
<property name="autosize_rows">0</property> |
|||
<property name="best_size"></property> |
|||
<property name="bg"></property> |
|||
<property name="caption"></property> |
|||
<property name="caption_visible">1</property> |
|||
<property name="cell_bg"></property> |
|||
<property name="cell_font"></property> |
|||
<property name="cell_horiz_alignment">wxALIGN_LEFT</property> |
|||
<property name="cell_text"></property> |
|||
<property name="cell_vert_alignment">wxALIGN_TOP</property> |
|||
<property name="center_pane">0</property> |
|||
<property name="close_button">1</property> |
|||
<property name="col_label_horiz_alignment">wxALIGN_CENTRE</property> |
|||
<property name="col_label_size">22</property> |
|||
<property name="col_label_values">"Size" "Drill"</property> |
|||
<property name="col_label_vert_alignment">wxALIGN_CENTRE</property> |
|||
<property name="cols">2</property> |
|||
<property name="column_sizes">100,100</property> |
|||
<property name="context_help"></property> |
|||
<property name="context_menu">1</property> |
|||
<property name="default_pane">0</property> |
|||
<property name="dock">Dock</property> |
|||
<property name="dock_fixed">0</property> |
|||
<property name="docking">Left</property> |
|||
<property name="drag_col_move">0</property> |
|||
<property name="drag_col_size">0</property> |
|||
<property name="drag_grid_size">0</property> |
|||
<property name="drag_row_size">0</property> |
|||
<property name="editing">1</property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="floatable">1</property> |
|||
<property name="font"></property> |
|||
<property name="grid_line_color"></property> |
|||
<property name="grid_lines">1</property> |
|||
<property name="gripper">0</property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label_bg"></property> |
|||
<property name="label_font"></property> |
|||
<property name="label_text"></property> |
|||
<property name="margin_height">0</property> |
|||
<property name="margin_width">0</property> |
|||
<property name="max_size"></property> |
|||
<property name="maximize_button">0</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="min_size"></property> |
|||
<property name="minimize_button">0</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="moveable">1</property> |
|||
<property name="name">m_viaSizesGrid</property> |
|||
<property name="pane_border">1</property> |
|||
<property name="pane_position"></property> |
|||
<property name="pane_size"></property> |
|||
<property name="permission">protected</property> |
|||
<property name="pin_button">1</property> |
|||
<property name="pos"></property> |
|||
<property name="resize">Resizable</property> |
|||
<property name="row_label_horiz_alignment">wxALIGN_CENTRE</property> |
|||
<property name="row_label_size">30</property> |
|||
<property name="row_label_values">"1" "2" "3" "4" "5" "6" "7" "8"</property> |
|||
<property name="row_label_vert_alignment">wxALIGN_CENTRE</property> |
|||
<property name="row_sizes"></property> |
|||
<property name="rows">8</property> |
|||
<property name="show">1</property> |
|||
<property name="size"></property> |
|||
<property name="subclass">WX_GRID; widgets/wx_grid.h; forward_declare</property> |
|||
<property name="toolbar_pane">0</property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnGridCellChange"></event> |
|||
<event name="OnGridCellLeftClick"></event> |
|||
<event name="OnGridCellLeftDClick"></event> |
|||
<event name="OnGridCellRightClick"></event> |
|||
<event name="OnGridCellRightDClick"></event> |
|||
<event name="OnGridCmdCellChange"></event> |
|||
<event name="OnGridCmdCellLeftClick"></event> |
|||
<event name="OnGridCmdCellLeftDClick"></event> |
|||
<event name="OnGridCmdCellRightClick"></event> |
|||
<event name="OnGridCmdCellRightDClick"></event> |
|||
<event name="OnGridCmdColSize"></event> |
|||
<event name="OnGridCmdEditorCreated"></event> |
|||
<event name="OnGridCmdEditorHidden"></event> |
|||
<event name="OnGridCmdEditorShown"></event> |
|||
<event name="OnGridCmdLabelLeftClick"></event> |
|||
<event name="OnGridCmdLabelLeftDClick"></event> |
|||
<event name="OnGridCmdLabelRightClick"></event> |
|||
<event name="OnGridCmdLabelRightDClick"></event> |
|||
<event name="OnGridCmdRangeSelect"></event> |
|||
<event name="OnGridCmdRowSize"></event> |
|||
<event name="OnGridCmdSelectCell"></event> |
|||
<event name="OnGridColSize"></event> |
|||
<event name="OnGridEditorCreated"></event> |
|||
<event name="OnGridEditorHidden"></event> |
|||
<event name="OnGridEditorShown"></event> |
|||
<event name="OnGridLabelLeftClick"></event> |
|||
<event name="OnGridLabelLeftDClick"></event> |
|||
<event name="OnGridLabelRightClick"></event> |
|||
<event name="OnGridLabelRightDClick"></event> |
|||
<event name="OnGridRangeSelect"></event> |
|||
<event name="OnGridRowSize"></event> |
|||
<event name="OnGridSelectCell"></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"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxRIGHT|wxLEFT|wxEXPAND</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticBoxSizer" expanded="1"> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Differential Pairs</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">sbSizer6</property> |
|||
<property name="orient">wxVERTICAL</property> |
|||
<property name="parent">1</property> |
|||
<property name="permission">none</property> |
|||
<event name="OnUpdateUI"></event> |
|||
<object class="sizeritem" expanded="0"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">1</property> |
|||
<object class="wxGrid" expanded="0"> |
|||
<property name="BottomDockable">1</property> |
|||
<property name="LeftDockable">1</property> |
|||
<property name="RightDockable">1</property> |
|||
<property name="TopDockable">1</property> |
|||
<property name="aui_layer"></property> |
|||
<property name="aui_name"></property> |
|||
<property name="aui_position"></property> |
|||
<property name="aui_row"></property> |
|||
<property name="autosize_cols">0</property> |
|||
<property name="autosize_rows">0</property> |
|||
<property name="best_size"></property> |
|||
<property name="bg"></property> |
|||
<property name="caption"></property> |
|||
<property name="caption_visible">1</property> |
|||
<property name="cell_bg">wxSYS_COLOUR_WINDOW</property> |
|||
<property name="cell_font"></property> |
|||
<property name="cell_horiz_alignment">wxALIGN_LEFT</property> |
|||
<property name="cell_text"></property> |
|||
<property name="cell_vert_alignment">wxALIGN_TOP</property> |
|||
<property name="center_pane">0</property> |
|||
<property name="close_button">1</property> |
|||
<property name="col_label_horiz_alignment">wxALIGN_CENTRE</property> |
|||
<property name="col_label_size">22</property> |
|||
<property name="col_label_values">"Width" "Gap" "Via Gap"</property> |
|||
<property name="col_label_vert_alignment">wxALIGN_CENTRE</property> |
|||
<property name="cols">3</property> |
|||
<property name="column_sizes">100,100,100</property> |
|||
<property name="context_help"></property> |
|||
<property name="context_menu">1</property> |
|||
<property name="default_pane">0</property> |
|||
<property name="dock">Dock</property> |
|||
<property name="dock_fixed">0</property> |
|||
<property name="docking">Left</property> |
|||
<property name="drag_col_move">0</property> |
|||
<property name="drag_col_size">1</property> |
|||
<property name="drag_grid_size">0</property> |
|||
<property name="drag_row_size">1</property> |
|||
<property name="editing">1</property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="floatable">1</property> |
|||
<property name="font"></property> |
|||
<property name="grid_line_color"></property> |
|||
<property name="grid_lines">1</property> |
|||
<property name="gripper">0</property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label_bg"></property> |
|||
<property name="label_font"></property> |
|||
<property name="label_text"></property> |
|||
<property name="margin_height">0</property> |
|||
<property name="margin_width">0</property> |
|||
<property name="max_size"></property> |
|||
<property name="maximize_button">0</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="min_size"></property> |
|||
<property name="minimize_button">0</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="moveable">1</property> |
|||
<property name="name">m_diffPairsGrid</property> |
|||
<property name="pane_border">1</property> |
|||
<property name="pane_position"></property> |
|||
<property name="pane_size"></property> |
|||
<property name="permission">protected</property> |
|||
<property name="pin_button">1</property> |
|||
<property name="pos"></property> |
|||
<property name="resize">Resizable</property> |
|||
<property name="row_label_horiz_alignment">wxALIGN_CENTRE</property> |
|||
<property name="row_label_size">30</property> |
|||
<property name="row_label_values">"1" "2" "3" "4" "5" "6" "7" "8"</property> |
|||
<property name="row_label_vert_alignment">wxALIGN_CENTRE</property> |
|||
<property name="row_sizes"></property> |
|||
<property name="rows">8</property> |
|||
<property name="show">1</property> |
|||
<property name="size"></property> |
|||
<property name="subclass">WX_GRID; widgets/wx_grid.h; forward_declare</property> |
|||
<property name="toolbar_pane">0</property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnGridCellChange"></event> |
|||
<event name="OnGridCellLeftClick"></event> |
|||
<event name="OnGridCellLeftDClick"></event> |
|||
<event name="OnGridCellRightClick"></event> |
|||
<event name="OnGridCellRightDClick"></event> |
|||
<event name="OnGridCmdCellChange"></event> |
|||
<event name="OnGridCmdCellLeftClick"></event> |
|||
<event name="OnGridCmdCellLeftDClick"></event> |
|||
<event name="OnGridCmdCellRightClick"></event> |
|||
<event name="OnGridCmdCellRightDClick"></event> |
|||
<event name="OnGridCmdColSize"></event> |
|||
<event name="OnGridCmdEditorCreated"></event> |
|||
<event name="OnGridCmdEditorHidden"></event> |
|||
<event name="OnGridCmdEditorShown"></event> |
|||
<event name="OnGridCmdLabelLeftClick"></event> |
|||
<event name="OnGridCmdLabelLeftDClick"></event> |
|||
<event name="OnGridCmdLabelRightClick"></event> |
|||
<event name="OnGridCmdLabelRightDClick"></event> |
|||
<event name="OnGridCmdRangeSelect"></event> |
|||
<event name="OnGridCmdRowSize"></event> |
|||
<event name="OnGridCmdSelectCell"></event> |
|||
<event name="OnGridColSize"></event> |
|||
<event name="OnGridEditorCreated"></event> |
|||
<event name="OnGridEditorHidden"></event> |
|||
<event name="OnGridEditorShown"></event> |
|||
<event name="OnGridLabelLeftClick"></event> |
|||
<event name="OnGridLabelLeftDClick"></event> |
|||
<event name="OnGridLabelRightClick"></event> |
|||
<event name="OnGridLabelRightDClick"></event> |
|||
<event name="OnGridRangeSelect"></event> |
|||
<event name="OnGridRowSize"></event> |
|||
<event name="OnGridSelectCell"></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> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</wxFormBuilder_Project> |
|||
@ -0,0 +1,63 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2018 KiCad Developers, see change_log.txt for contributors. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html |
|||
* or you may search the http://www.gnu.org website for the version 2 license, |
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
|
|||
|
|||
#ifndef PANEL_SETUP_TRACKS_AND_VIAS_H |
|||
#define PANEL_SETUP_TRACKS_AND_VIAS_H |
|||
|
|||
#include <class_board.h> |
|||
#include <widgets/unit_binder.h> |
|||
#include <widgets/paged_dialog.h> |
|||
|
|||
#include <panel_setup_tracks_and_vias_base.h> |
|||
#include "panel_setup_feature_constraints.h" |
|||
|
|||
class PCB_EDIT_FRAME; |
|||
class BOARD_DESIGN_SETTINGS; |
|||
|
|||
|
|||
class PANEL_SETUP_TRACKS_AND_VIAS : public PANEL_SETUP_TRACKS_AND_VIAS_BASE |
|||
{ |
|||
private: |
|||
PAGED_DIALOG* m_Parent; |
|||
PCB_EDIT_FRAME* m_Frame; |
|||
BOARD* m_Pcb; |
|||
BOARD_DESIGN_SETTINGS* m_BrdSettings; |
|||
|
|||
// We must validate against the current m_BrdSettings as they may have been |
|||
// changed but not yet committed. Fetch them from the constraints panel. |
|||
PANEL_SETUP_FEATURE_CONSTRAINTS* m_ConstraintsPanel; |
|||
|
|||
bool validateData(); |
|||
|
|||
public: |
|||
PANEL_SETUP_TRACKS_AND_VIAS( PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFrame, |
|||
PANEL_SETUP_FEATURE_CONSTRAINTS* aConstraintsPanel ); |
|||
|
|||
bool TransferDataToWindow() override; |
|||
bool TransferDataFromWindow() override; |
|||
|
|||
void ImportSettingsFrom( BOARD* aBoard ); |
|||
}; |
|||
|
|||
#endif //PANEL_SETUP_TRACKS_AND_VIAS_H |
|||
@ -0,0 +1,170 @@ |
|||
///////////////////////////////////////////////////////////////////////////
|
|||
// C++ code generated with wxFormBuilder (version Dec 30 2017)
|
|||
// http://www.wxformbuilder.org/
|
|||
//
|
|||
// PLEASE DO *NOT* EDIT THIS FILE!
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#include "widgets/wx_grid.h"
|
|||
|
|||
#include "panel_setup_tracks_and_vias_base.h"
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
PANEL_SETUP_TRACKS_AND_VIAS_BASE::PANEL_SETUP_TRACKS_AND_VIAS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) |
|||
{ |
|||
wxBoxSizer* bMainSizer; |
|||
bMainSizer = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_label = new wxStaticText( this, wxID_ANY, _("Pre-defined track and via dimensions:"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_label->Wrap( -1 ); |
|||
bMainSizer->Add( m_label, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
wxBoxSizer* bSizerLower; |
|||
bSizerLower = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
wxStaticBoxSizer* sbSizer4; |
|||
sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Tracks") ), wxVERTICAL ); |
|||
|
|||
m_trackWidthsGrid = new WX_GRID( sbSizer4->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
|
|||
// Grid
|
|||
m_trackWidthsGrid->CreateGrid( 8, 1 ); |
|||
m_trackWidthsGrid->EnableEditing( true ); |
|||
m_trackWidthsGrid->EnableGridLines( true ); |
|||
m_trackWidthsGrid->EnableDragGridSize( false ); |
|||
m_trackWidthsGrid->SetMargins( 0, 0 ); |
|||
|
|||
// Columns
|
|||
m_trackWidthsGrid->SetColSize( 0, 100 ); |
|||
m_trackWidthsGrid->EnableDragColMove( false ); |
|||
m_trackWidthsGrid->EnableDragColSize( false ); |
|||
m_trackWidthsGrid->SetColLabelSize( 22 ); |
|||
m_trackWidthsGrid->SetColLabelValue( 0, _("Width") ); |
|||
m_trackWidthsGrid->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); |
|||
|
|||
// Rows
|
|||
m_trackWidthsGrid->EnableDragRowSize( false ); |
|||
m_trackWidthsGrid->SetRowLabelSize( 30 ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 0, _("1") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 1, _("2") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 2, _("3") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 3, _("4") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 4, _("5") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 5, _("6") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 6, _("7") ); |
|||
m_trackWidthsGrid->SetRowLabelValue( 7, _("8") ); |
|||
m_trackWidthsGrid->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); |
|||
|
|||
// Label Appearance
|
|||
|
|||
// Cell Defaults
|
|||
m_trackWidthsGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP ); |
|||
sbSizer4->Add( m_trackWidthsGrid, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
|
|||
bSizerLower->Add( sbSizer4, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizer5; |
|||
sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Vias") ), wxVERTICAL ); |
|||
|
|||
m_viaSizesGrid = new WX_GRID( sbSizer5->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
|
|||
// Grid
|
|||
m_viaSizesGrid->CreateGrid( 8, 2 ); |
|||
m_viaSizesGrid->EnableEditing( true ); |
|||
m_viaSizesGrid->EnableGridLines( true ); |
|||
m_viaSizesGrid->EnableDragGridSize( false ); |
|||
m_viaSizesGrid->SetMargins( 0, 0 ); |
|||
|
|||
// Columns
|
|||
m_viaSizesGrid->SetColSize( 0, 100 ); |
|||
m_viaSizesGrid->SetColSize( 1, 100 ); |
|||
m_viaSizesGrid->EnableDragColMove( false ); |
|||
m_viaSizesGrid->EnableDragColSize( false ); |
|||
m_viaSizesGrid->SetColLabelSize( 22 ); |
|||
m_viaSizesGrid->SetColLabelValue( 0, _("Size") ); |
|||
m_viaSizesGrid->SetColLabelValue( 1, _("Drill") ); |
|||
m_viaSizesGrid->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); |
|||
|
|||
// Rows
|
|||
m_viaSizesGrid->EnableDragRowSize( false ); |
|||
m_viaSizesGrid->SetRowLabelSize( 30 ); |
|||
m_viaSizesGrid->SetRowLabelValue( 0, _("1") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 1, _("2") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 2, _("3") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 3, _("4") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 4, _("5") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 5, _("6") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 6, _("7") ); |
|||
m_viaSizesGrid->SetRowLabelValue( 7, _("8") ); |
|||
m_viaSizesGrid->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); |
|||
|
|||
// Label Appearance
|
|||
|
|||
// Cell Defaults
|
|||
m_viaSizesGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP ); |
|||
sbSizer5->Add( m_viaSizesGrid, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
|
|||
bSizerLower->Add( sbSizer5, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizer6; |
|||
sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Differential Pairs") ), wxVERTICAL ); |
|||
|
|||
m_diffPairsGrid = new WX_GRID( sbSizer6->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
|
|||
// Grid
|
|||
m_diffPairsGrid->CreateGrid( 8, 3 ); |
|||
m_diffPairsGrid->EnableEditing( true ); |
|||
m_diffPairsGrid->EnableGridLines( true ); |
|||
m_diffPairsGrid->EnableDragGridSize( false ); |
|||
m_diffPairsGrid->SetMargins( 0, 0 ); |
|||
|
|||
// Columns
|
|||
m_diffPairsGrid->SetColSize( 0, 100 ); |
|||
m_diffPairsGrid->SetColSize( 1, 100 ); |
|||
m_diffPairsGrid->SetColSize( 2, 100 ); |
|||
m_diffPairsGrid->EnableDragColMove( false ); |
|||
m_diffPairsGrid->EnableDragColSize( true ); |
|||
m_diffPairsGrid->SetColLabelSize( 22 ); |
|||
m_diffPairsGrid->SetColLabelValue( 0, _("Width") ); |
|||
m_diffPairsGrid->SetColLabelValue( 1, _("Gap") ); |
|||
m_diffPairsGrid->SetColLabelValue( 2, _("Via Gap") ); |
|||
m_diffPairsGrid->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); |
|||
|
|||
// Rows
|
|||
m_diffPairsGrid->EnableDragRowSize( true ); |
|||
m_diffPairsGrid->SetRowLabelSize( 30 ); |
|||
m_diffPairsGrid->SetRowLabelValue( 0, _("1") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 1, _("2") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 2, _("3") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 3, _("4") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 4, _("5") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 5, _("6") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 6, _("7") ); |
|||
m_diffPairsGrid->SetRowLabelValue( 7, _("8") ); |
|||
m_diffPairsGrid->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); |
|||
|
|||
// Label Appearance
|
|||
|
|||
// Cell Defaults
|
|||
m_diffPairsGrid->SetDefaultCellBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); |
|||
m_diffPairsGrid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP ); |
|||
sbSizer6->Add( m_diffPairsGrid, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
|
|||
bSizerLower->Add( sbSizer6, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); |
|||
|
|||
|
|||
bMainSizer->Add( bSizerLower, 5, wxEXPAND|wxLEFT, 20 ); |
|||
|
|||
|
|||
this->SetSizer( bMainSizer ); |
|||
this->Layout(); |
|||
bMainSizer->Fit( this ); |
|||
} |
|||
|
|||
PANEL_SETUP_TRACKS_AND_VIAS_BASE::~PANEL_SETUP_TRACKS_AND_VIAS_BASE() |
|||
{ |
|||
} |
|||
@ -0,0 +1,49 @@ |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
// C++ code generated with wxFormBuilder (version Dec 30 2017) |
|||
// http://www.wxformbuilder.org/ |
|||
// |
|||
// PLEASE DO *NOT* EDIT THIS FILE! |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef __PANEL_SETUP_TRACKS_AND_VIAS_BASE_H__ |
|||
#define __PANEL_SETUP_TRACKS_AND_VIAS_BASE_H__ |
|||
|
|||
#include <wx/artprov.h> |
|||
#include <wx/xrc/xmlres.h> |
|||
#include <wx/intl.h> |
|||
class WX_GRID; |
|||
|
|||
#include <wx/string.h> |
|||
#include <wx/stattext.h> |
|||
#include <wx/gdicmn.h> |
|||
#include <wx/font.h> |
|||
#include <wx/colour.h> |
|||
#include <wx/settings.h> |
|||
#include <wx/grid.h> |
|||
#include <wx/sizer.h> |
|||
#include <wx/statbox.h> |
|||
#include <wx/panel.h> |
|||
|
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
/// Class PANEL_SETUP_TRACKS_AND_VIAS_BASE |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
class PANEL_SETUP_TRACKS_AND_VIAS_BASE : public wxPanel |
|||
{ |
|||
private: |
|||
|
|||
protected: |
|||
wxStaticText* m_label; |
|||
WX_GRID* m_trackWidthsGrid; |
|||
WX_GRID* m_viaSizesGrid; |
|||
WX_GRID* m_diffPairsGrid; |
|||
|
|||
public: |
|||
|
|||
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 ); |
|||
~PANEL_SETUP_TRACKS_AND_VIAS_BASE(); |
|||
|
|||
}; |
|||
|
|||
#endif //__PANEL_SETUP_TRACKS_AND_VIAS_BASE_H__ |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue