diff --git a/pcb_calculator/CMakeLists.txt b/pcb_calculator/CMakeLists.txt
index de31b167af..28eee1bac7 100644
--- a/pcb_calculator/CMakeLists.txt
+++ b/pcb_calculator/CMakeLists.txt
@@ -19,7 +19,7 @@ set( PCB_CALCULATOR_SRCS
panel_attenuators.cpp
panel_regulator.cpp
panel_color_code.cpp
- tracks_width_versus_current.cpp
+ panel_track_width.cpp
panel_via_size.cpp
transline_ident.cpp
widgets/unit_selector.cpp
@@ -40,6 +40,7 @@ set( PCB_CALCULATOR_SRCS
dialogs/panel_regulator_base.cpp
dialogs/panel_color_code_base.cpp
dialogs/panel_via_size_base.cpp
+ dialogs/panel_track_width_base.cpp
../common/env_vars.cpp # needed on MSW to avoid a link issue (a symbol not found)
)
diff --git a/pcb_calculator/dialogs/panel_track_width.h b/pcb_calculator/dialogs/panel_track_width.h
new file mode 100644
index 0000000000..fe7c331ec8
--- /dev/null
+++ b/pcb_calculator/dialogs/panel_track_width.h
@@ -0,0 +1,101 @@
+/*
+ * This program source code file is part of KICAD, a free EDA CAD application.
+ *
+ * Copyright (C) 1992-2021 Kicad Developers, see AUTHORS.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 3
+ * 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, see .
+ */
+
+#ifndef PANEL_TRACK_WIDTH_H
+#define PANEL_TRACK_WIDTH_H
+
+#include "panel_track_width_base.h"
+
+class PCB_CALCULATOR_SETTINGS;
+
+
+class PANEL_TRACK_WIDTH : public PANEL_TRACK_WIDTH_BASE
+{
+public:
+ PANEL_TRACK_WIDTH( wxWindow* parent, wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
+ ~PANEL_TRACK_WIDTH();
+
+ void LoadSettings( PCB_CALCULATOR_SETTINGS* aCfg );
+ void SaveSettings( PCB_CALCULATOR_SETTINGS* aCfg );
+
+ /**
+ * Update the calculations the user changes the general parameters.
+ */
+ void OnTWParametersChanged( wxCommandEvent& event ) override;
+
+ /**
+ * Update the calculations when the user changes the desired maximum current.
+ */
+ void OnTWCalculateFromCurrent( wxCommandEvent& event ) override;
+
+ /**
+ * Update the calculations when the user changes the desired external trace width.
+ */
+ void OnTWCalculateFromExtWidth( wxCommandEvent& event ) override;
+
+ /**
+ * Update the calculations when the user changes the desired internal trace width.
+ */
+ void OnTWCalculateFromIntWidth( wxCommandEvent& event ) override;
+
+ /**
+ * Update the calculations when the user clicks the reset button.
+ */
+ void OnTWResetButtonClick( wxCommandEvent& event ) override;
+
+ /**
+ * Calculate track width required based on given current and temperature rise.
+ */
+ double TWCalculateWidth( double aCurrent, double aThickness, double aDeltaT_C,
+ bool aUseInternalLayer );
+
+ /**
+ * Calculate maximum current based on given width and temperature rise.
+ */
+ double TWCalculateCurrent( double aWidth, double aThickness, double aDeltaT_C,
+ bool aUseInternalLayer );
+
+ /**
+ * Display the results of a calculation (including resulting values such
+ * as the resistance and power loss).
+ */
+ void TWDisplayValues( double aCurrent, double aExtWidth, double aIntWidth,
+ double aExtThickness, double aIntThickness );
+
+ /**
+ * Update the fields to show whether the maximum current, external trace
+ * width, or internal trace width is currently the controlling parameter.
+ */
+ void TWUpdateModeDisplay();
+
+private:
+ enum // Which dimension is controlling the track width / current
+ { // calculations:
+ TW_MASTER_CURRENT, // the maximum current,
+ TW_MASTER_EXT_WIDTH, // the external trace width,
+ TW_MASTER_INT_WIDTH // or the internal trace width?
+ } m_TWMode;
+
+ bool m_TWNested; // Used to stop events caused by setting the answers.
+};
+
+#endif
\ No newline at end of file
diff --git a/pcb_calculator/dialogs/panel_track_width_base.cpp b/pcb_calculator/dialogs/panel_track_width_base.cpp
new file mode 100644
index 0000000000..54f5f678a0
--- /dev/null
+++ b/pcb_calculator/dialogs/panel_track_width_base.cpp
@@ -0,0 +1,332 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Oct 26 2018)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO *NOT* EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "widgets/unit_selector.h"
+
+#include "panel_track_width_base.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+PANEL_TRACK_WIDTH_BASE::PANEL_TRACK_WIDTH_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
+{
+ wxBoxSizer* bSizerTrackWidth;
+ bSizerTrackWidth = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizeLeft;
+ bSizeLeft = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizerTW_Prms;
+ sbSizerTW_Prms = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Parameters") ), wxVERTICAL );
+
+ wxFlexGridSizer* fgSizerTWprms;
+ fgSizerTWprms = new wxFlexGridSizer( 4, 3, 0, 0 );
+ fgSizerTWprms->AddGrowableCol( 1 );
+ fgSizerTWprms->SetFlexibleDirection( wxBOTH );
+ fgSizerTWprms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextCurrent = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Current:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCurrent->Wrap( -1 );
+ fgSizerTWprms->Add( m_staticTextCurrent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
+
+ m_TrackCurrentValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTWprms->Add( m_TrackCurrentValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText62 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText62->Wrap( -1 );
+ fgSizerTWprms->Add( m_staticText62, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText63 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Temperature rise:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText63->Wrap( -1 );
+ fgSizerTWprms->Add( m_staticText63, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
+
+ m_TrackDeltaTValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTWprms->Add( m_TrackDeltaTValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_trackTempUnits = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("deg C"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_trackTempUnits->Wrap( -1 );
+ fgSizerTWprms->Add( m_trackTempUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText66 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Conductor length:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText66->Wrap( -1 );
+ fgSizerTWprms->Add( m_staticText66, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
+
+ m_TrackLengthValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTWprms->Add( m_TrackLengthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxArrayString m_TW_CuLength_choiceUnitChoices;
+ m_TW_CuLength_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_CuLength_choiceUnitChoices, 0 );
+ m_TW_CuLength_choiceUnit->SetSelection( 0 );
+ fgSizerTWprms->Add( m_TW_CuLength_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText103 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Copper resistivity:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText103->Wrap( -1 );
+ fgSizerTWprms->Add( m_staticText103, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
+
+ m_TWResistivity = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
+ fgSizerTWprms->Add( m_TWResistivity, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_resistivityUnits = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("ohm-meter"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_resistivityUnits->Wrap( -1 );
+ fgSizerTWprms->Add( m_resistivityUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+
+ sbSizerTW_Prms->Add( fgSizerTWprms, 0, wxEXPAND, 5 );
+
+
+ bSizeLeft->Add( sbSizerTW_Prms, 0, wxALL|wxEXPAND, 5 );
+
+ m_htmlWinFormulas = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO );
+ bSizeLeft->Add( m_htmlWinFormulas, 1, wxEXPAND|wxALL, 8 );
+
+
+ bSizerTrackWidth->Add( bSizeLeft, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizeRight;
+ bSizeRight = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbSizerTW_Result;
+ sbSizerTW_Result = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("External Layer Traces") ), wxVERTICAL );
+
+ wxFlexGridSizer* fgSizerTW_Results;
+ fgSizerTW_Results = new wxFlexGridSizer( 0, 3, 0, 0 );
+ fgSizerTW_Results->AddGrowableCol( 1 );
+ fgSizerTW_Results->SetFlexibleDirection( wxBOTH );
+ fgSizerTW_Results->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextExtWidth = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace width:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextExtWidth->Wrap( -1 );
+ m_staticTextExtWidth->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+
+ fgSizerTW_Results->Add( m_staticTextExtWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 );
+
+ m_ExtTrackWidthValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTW_Results->Add( m_ExtTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxArrayString m_TW_ExtTrackWidth_choiceUnitChoices;
+ m_TW_ExtTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_ExtTrackWidth_choiceUnitChoices, 0 );
+ m_TW_ExtTrackWidth_choiceUnit->SetSelection( 0 );
+ fgSizerTW_Results->Add( m_TW_ExtTrackWidth_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText65 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText65->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticText65, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_ExtTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTW_Results->Add( m_ExtTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
+
+ wxArrayString m_ExtTrackThicknessUnitChoices;
+ m_ExtTrackThicknessUnit = new UNIT_SELECTOR_THICKNESS( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ExtTrackThicknessUnitChoices, 0 );
+ m_ExtTrackThicknessUnit->SetSelection( 0 );
+ fgSizerTW_Results->Add( m_ExtTrackThicknessUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
+
+ m_staticline3 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ fgSizerTW_Results->Add( m_staticline3, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_staticline4 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ fgSizerTW_Results->Add( m_staticline4, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_staticline5 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ fgSizerTW_Results->Add( m_staticline5, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_staticTextArea = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Cross-section area:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextArea->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticTextArea, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_ExtTrackAreaValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_ExtTrackAreaValue->Wrap( -1 );
+ fgSizerTW_Results->Add( m_ExtTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_extTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_extTrackAreaUnitLabel->Wrap( -1 );
+ fgSizerTW_Results->Add( m_extTrackAreaUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText651 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText651->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticText651, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_ExtTrackResistValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_ExtTrackResistValue->Wrap( -1 );
+ fgSizerTW_Results->Add( m_ExtTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_extTrackResUnits = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_extTrackResUnits->Wrap( -1 );
+ fgSizerTW_Results->Add( m_extTrackResUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText661 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText661->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticText661, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_ExtTrackVDropValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_ExtTrackVDropValue->Wrap( -1 );
+ fgSizerTW_Results->Add( m_ExtTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText83 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText83->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticText83, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText79 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText79->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticText79, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_ExtTrackLossValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_ExtTrackLossValue->Wrap( -1 );
+ fgSizerTW_Results->Add( m_ExtTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText791 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText791->Wrap( -1 );
+ fgSizerTW_Results->Add( m_staticText791, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+
+ sbSizerTW_Result->Add( fgSizerTW_Results, 0, wxEXPAND, 5 );
+
+
+ bSizeRight->Add( sbSizerTW_Result, 1, wxEXPAND|wxALL, 5 );
+
+ wxStaticBoxSizer* sbSizerTW_Result1;
+ sbSizerTW_Result1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Internal Layer Traces") ), wxVERTICAL );
+
+ wxFlexGridSizer* fgSizerTW_Results1;
+ fgSizerTW_Results1 = new wxFlexGridSizer( 7, 3, 0, 0 );
+ fgSizerTW_Results1->AddGrowableCol( 1 );
+ fgSizerTW_Results1->SetFlexibleDirection( wxBOTH );
+ fgSizerTW_Results1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextIntWidth = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace width:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextIntWidth->Wrap( -1 );
+ m_staticTextIntWidth->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+
+ fgSizerTW_Results1->Add( m_staticTextIntWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
+
+ m_IntTrackWidthValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTW_Results1->Add( m_IntTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxArrayString m_TW_IntTrackWidth_choiceUnitChoices;
+ m_TW_IntTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_IntTrackWidth_choiceUnitChoices, 0 );
+ m_TW_IntTrackWidth_choiceUnit->SetSelection( 0 );
+ fgSizerTW_Results1->Add( m_TW_IntTrackWidth_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText652 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText652->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticText652, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
+
+ m_IntTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizerTW_Results1->Add( m_IntTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+ wxArrayString m_IntTrackThicknessUnitChoices;
+ m_IntTrackThicknessUnit = new UNIT_SELECTOR_THICKNESS( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_IntTrackThicknessUnitChoices, 0 );
+ m_IntTrackThicknessUnit->SetSelection( 0 );
+ fgSizerTW_Results1->Add( m_IntTrackThicknessUnit, 0, wxALL, 5 );
+
+ m_staticline8 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ fgSizerTW_Results1->Add( m_staticline8, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_staticline9 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ fgSizerTW_Results1->Add( m_staticline9, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_staticline10 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ fgSizerTW_Results1->Add( m_staticline10, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
+
+ m_staticTextArea1 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Cross-section area:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextArea1->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticTextArea1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
+
+ m_IntTrackAreaValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_IntTrackAreaValue->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_IntTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
+
+ m_intTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_intTrackAreaUnitLabel->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_intTrackAreaUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText6511 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText6511->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticText6511, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_IntTrackResistValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_IntTrackResistValue->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_IntTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_intTrackResUnits = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_intTrackResUnits->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_intTrackResUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText6611 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText6611->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticText6611, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_IntTrackVDropValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_IntTrackVDropValue->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_IntTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText831 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText831->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticText831, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText792 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText792->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticText792, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_IntTrackLossValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_IntTrackLossValue->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_IntTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText7911 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText7911->Wrap( -1 );
+ fgSizerTW_Results1->Add( m_staticText7911, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+
+ sbSizerTW_Result1->Add( fgSizerTW_Results1, 0, wxEXPAND, 5 );
+
+
+ bSizeRight->Add( sbSizerTW_Result1, 1, wxEXPAND|wxALL, 5 );
+
+ m_buttonTrackWidthReset = new wxButton( this, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizeRight->Add( m_buttonTrackWidthReset, 0, wxALIGN_RIGHT|wxALL, 5 );
+
+
+ bSizerTrackWidth->Add( bSizeRight, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizerTrackWidth );
+ this->Layout();
+
+ // Connect Events
+ m_TrackCurrentValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWCalculateFromCurrent ), NULL, this );
+ m_TrackDeltaTValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_TrackLengthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_TW_CuLength_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_TWResistivity->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_ExtTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWCalculateFromExtWidth ), NULL, this );
+ m_TW_ExtTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_ExtTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_ExtTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_IntTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWCalculateFromIntWidth ), NULL, this );
+ m_TW_IntTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_IntTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_IntTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_buttonTrackWidthReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWResetButtonClick ), NULL, this );
+}
+
+PANEL_TRACK_WIDTH_BASE::~PANEL_TRACK_WIDTH_BASE()
+{
+ // Disconnect Events
+ m_TrackCurrentValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWCalculateFromCurrent ), NULL, this );
+ m_TrackDeltaTValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_TrackLengthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_TW_CuLength_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_TWResistivity->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_ExtTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWCalculateFromExtWidth ), NULL, this );
+ m_TW_ExtTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_ExtTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_ExtTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_IntTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWCalculateFromIntWidth ), NULL, this );
+ m_TW_IntTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_IntTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_IntTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWParametersChanged ), NULL, this );
+ m_buttonTrackWidthReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRACK_WIDTH_BASE::OnTWResetButtonClick ), NULL, this );
+
+}
diff --git a/pcb_calculator/dialogs/panel_track_width_base.fbp b/pcb_calculator/dialogs/panel_track_width_base.fbp
new file mode 100644
index 0000000000..fc95b21ea6
--- /dev/null
+++ b/pcb_calculator/dialogs/panel_track_width_base.fbp
@@ -0,0 +1,3637 @@
+
+
+
+
+
diff --git a/pcb_calculator/dialogs/panel_track_width_base.h b/pcb_calculator/dialogs/panel_track_width_base.h
new file mode 100644
index 0000000000..e266c6b157
--- /dev/null
+++ b/pcb_calculator/dialogs/panel_track_width_base.h
@@ -0,0 +1,116 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Oct 26 2018)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO *NOT* EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include
+#include
+#include
+class UNIT_SELECTOR_LEN;
+class UNIT_SELECTOR_THICKNESS;
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+///////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class PANEL_TRACK_WIDTH_BASE
+///////////////////////////////////////////////////////////////////////////////
+class PANEL_TRACK_WIDTH_BASE : public wxPanel
+{
+ private:
+
+ protected:
+ wxStaticText* m_staticTextCurrent;
+ wxTextCtrl* m_TrackCurrentValue;
+ wxStaticText* m_staticText62;
+ wxStaticText* m_staticText63;
+ wxTextCtrl* m_TrackDeltaTValue;
+ wxStaticText* m_trackTempUnits;
+ wxStaticText* m_staticText66;
+ wxTextCtrl* m_TrackLengthValue;
+ UNIT_SELECTOR_LEN* m_TW_CuLength_choiceUnit;
+ wxStaticText* m_staticText103;
+ wxTextCtrl* m_TWResistivity;
+ wxStaticText* m_resistivityUnits;
+ wxHtmlWindow* m_htmlWinFormulas;
+ wxStaticText* m_staticTextExtWidth;
+ wxTextCtrl* m_ExtTrackWidthValue;
+ UNIT_SELECTOR_LEN* m_TW_ExtTrackWidth_choiceUnit;
+ wxStaticText* m_staticText65;
+ wxTextCtrl* m_ExtTrackThicknessValue;
+ UNIT_SELECTOR_THICKNESS* m_ExtTrackThicknessUnit;
+ wxStaticLine* m_staticline3;
+ wxStaticLine* m_staticline4;
+ wxStaticLine* m_staticline5;
+ wxStaticText* m_staticTextArea;
+ wxStaticText* m_ExtTrackAreaValue;
+ wxStaticText* m_extTrackAreaUnitLabel;
+ wxStaticText* m_staticText651;
+ wxStaticText* m_ExtTrackResistValue;
+ wxStaticText* m_extTrackResUnits;
+ wxStaticText* m_staticText661;
+ wxStaticText* m_ExtTrackVDropValue;
+ wxStaticText* m_staticText83;
+ wxStaticText* m_staticText79;
+ wxStaticText* m_ExtTrackLossValue;
+ wxStaticText* m_staticText791;
+ wxStaticText* m_staticTextIntWidth;
+ wxTextCtrl* m_IntTrackWidthValue;
+ UNIT_SELECTOR_LEN* m_TW_IntTrackWidth_choiceUnit;
+ wxStaticText* m_staticText652;
+ wxTextCtrl* m_IntTrackThicknessValue;
+ UNIT_SELECTOR_THICKNESS* m_IntTrackThicknessUnit;
+ wxStaticLine* m_staticline8;
+ wxStaticLine* m_staticline9;
+ wxStaticLine* m_staticline10;
+ wxStaticText* m_staticTextArea1;
+ wxStaticText* m_IntTrackAreaValue;
+ wxStaticText* m_intTrackAreaUnitLabel;
+ wxStaticText* m_staticText6511;
+ wxStaticText* m_IntTrackResistValue;
+ wxStaticText* m_intTrackResUnits;
+ wxStaticText* m_staticText6611;
+ wxStaticText* m_IntTrackVDropValue;
+ wxStaticText* m_staticText831;
+ wxStaticText* m_staticText792;
+ wxStaticText* m_IntTrackLossValue;
+ wxStaticText* m_staticText7911;
+ wxButton* m_buttonTrackWidthReset;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnTWCalculateFromCurrent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTWParametersChanged( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTWCalculateFromExtWidth( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTWCalculateFromIntWidth( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTWResetButtonClick( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ PANEL_TRACK_WIDTH_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 623,457 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
+ ~PANEL_TRACK_WIDTH_BASE();
+
+};
+
diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp
index 3bca2e7817..9e75406a6d 100644
--- a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp
+++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp
@@ -676,288 +676,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
m_Notebook->AddPage( m_panelTransline, _("TransLine"), false );
m_panelViaSize = new PANEL_VIA_SIZE( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_Notebook->AddPage( m_panelViaSize, _("Via Size"), false );
- m_panelTrackWidth = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizerTrackWidth;
- bSizerTrackWidth = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizeLeft;
- bSizeLeft = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizerTW_Prms;
- sbSizerTW_Prms = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Parameters") ), wxVERTICAL );
-
- wxFlexGridSizer* fgSizerTWprms;
- fgSizerTWprms = new wxFlexGridSizer( 4, 3, 0, 0 );
- fgSizerTWprms->AddGrowableCol( 1 );
- fgSizerTWprms->SetFlexibleDirection( wxBOTH );
- fgSizerTWprms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextCurrent = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Current:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCurrent->Wrap( -1 );
- fgSizerTWprms->Add( m_staticTextCurrent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
-
- m_TrackCurrentValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTWprms->Add( m_TrackCurrentValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText62 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText62->Wrap( -1 );
- fgSizerTWprms->Add( m_staticText62, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText63 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Temperature rise:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText63->Wrap( -1 );
- fgSizerTWprms->Add( m_staticText63, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
-
- m_TrackDeltaTValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTWprms->Add( m_TrackDeltaTValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_trackTempUnits = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("deg C"), wxDefaultPosition, wxDefaultSize, 0 );
- m_trackTempUnits->Wrap( -1 );
- fgSizerTWprms->Add( m_trackTempUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText66 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Conductor length:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText66->Wrap( -1 );
- fgSizerTWprms->Add( m_staticText66, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
-
- m_TrackLengthValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTWprms->Add( m_TrackLengthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxArrayString m_TW_CuLength_choiceUnitChoices;
- m_TW_CuLength_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_CuLength_choiceUnitChoices, 0 );
- m_TW_CuLength_choiceUnit->SetSelection( 0 );
- fgSizerTWprms->Add( m_TW_CuLength_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText103 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Copper resistivity:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText103->Wrap( -1 );
- fgSizerTWprms->Add( m_staticText103, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
-
- m_TWResistivity = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
- fgSizerTWprms->Add( m_TWResistivity, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_resistivityUnits = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("ohm-meter"), wxDefaultPosition, wxDefaultSize, 0 );
- m_resistivityUnits->Wrap( -1 );
- fgSizerTWprms->Add( m_resistivityUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
-
- sbSizerTW_Prms->Add( fgSizerTWprms, 0, wxEXPAND, 5 );
-
-
- bSizeLeft->Add( sbSizerTW_Prms, 0, wxALL|wxEXPAND, 5 );
-
- m_htmlWinFormulas = new wxHtmlWindow( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO );
- bSizeLeft->Add( m_htmlWinFormulas, 1, wxEXPAND|wxALL, 8 );
-
-
- bSizerTrackWidth->Add( bSizeLeft, 1, wxEXPAND, 5 );
-
- wxBoxSizer* bSizeRight;
- bSizeRight = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbSizerTW_Result;
- sbSizerTW_Result = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("External Layer Traces") ), wxVERTICAL );
-
- wxFlexGridSizer* fgSizerTW_Results;
- fgSizerTW_Results = new wxFlexGridSizer( 0, 3, 0, 0 );
- fgSizerTW_Results->AddGrowableCol( 1 );
- fgSizerTW_Results->SetFlexibleDirection( wxBOTH );
- fgSizerTW_Results->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextExtWidth = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace width:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextExtWidth->Wrap( -1 );
- m_staticTextExtWidth->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
-
- fgSizerTW_Results->Add( m_staticTextExtWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 );
-
- m_ExtTrackWidthValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTW_Results->Add( m_ExtTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxArrayString m_TW_ExtTrackWidth_choiceUnitChoices;
- m_TW_ExtTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_ExtTrackWidth_choiceUnitChoices, 0 );
- m_TW_ExtTrackWidth_choiceUnit->SetSelection( 0 );
- fgSizerTW_Results->Add( m_TW_ExtTrackWidth_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_staticText65 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText65->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticText65, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_ExtTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTW_Results->Add( m_ExtTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
-
- wxArrayString m_ExtTrackThicknessUnitChoices;
- m_ExtTrackThicknessUnit = new UNIT_SELECTOR_THICKNESS( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ExtTrackThicknessUnitChoices, 0 );
- m_ExtTrackThicknessUnit->SetSelection( 0 );
- fgSizerTW_Results->Add( m_ExtTrackThicknessUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
-
- m_staticline3 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerTW_Results->Add( m_staticline3, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_staticline4 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerTW_Results->Add( m_staticline4, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_staticline5 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerTW_Results->Add( m_staticline5, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_staticTextArea = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Cross-section area:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextArea->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticTextArea, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_ExtTrackAreaValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_ExtTrackAreaValue->Wrap( -1 );
- fgSizerTW_Results->Add( m_ExtTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_extTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
- m_extTrackAreaUnitLabel->Wrap( -1 );
- fgSizerTW_Results->Add( m_extTrackAreaUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText651 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText651->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticText651, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_ExtTrackResistValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_ExtTrackResistValue->Wrap( -1 );
- fgSizerTW_Results->Add( m_ExtTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_extTrackResUnits = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
- m_extTrackResUnits->Wrap( -1 );
- fgSizerTW_Results->Add( m_extTrackResUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText661 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText661->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticText661, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_ExtTrackVDropValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_ExtTrackVDropValue->Wrap( -1 );
- fgSizerTW_Results->Add( m_ExtTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText83 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText83->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticText83, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText79 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText79->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticText79, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_ExtTrackLossValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_ExtTrackLossValue->Wrap( -1 );
- fgSizerTW_Results->Add( m_ExtTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText791 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText791->Wrap( -1 );
- fgSizerTW_Results->Add( m_staticText791, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
-
- sbSizerTW_Result->Add( fgSizerTW_Results, 0, wxEXPAND, 5 );
-
-
- bSizeRight->Add( sbSizerTW_Result, 1, wxEXPAND|wxALL, 5 );
-
- wxStaticBoxSizer* sbSizerTW_Result1;
- sbSizerTW_Result1 = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Internal Layer Traces") ), wxVERTICAL );
-
- wxFlexGridSizer* fgSizerTW_Results1;
- fgSizerTW_Results1 = new wxFlexGridSizer( 7, 3, 0, 0 );
- fgSizerTW_Results1->AddGrowableCol( 1 );
- fgSizerTW_Results1->SetFlexibleDirection( wxBOTH );
- fgSizerTW_Results1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextIntWidth = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace width:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextIntWidth->Wrap( -1 );
- m_staticTextIntWidth->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
-
- fgSizerTW_Results1->Add( m_staticTextIntWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
-
- m_IntTrackWidthValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTW_Results1->Add( m_IntTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxArrayString m_TW_IntTrackWidth_choiceUnitChoices;
- m_TW_IntTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_IntTrackWidth_choiceUnitChoices, 0 );
- m_TW_IntTrackWidth_choiceUnit->SetSelection( 0 );
- fgSizerTW_Results1->Add( m_TW_IntTrackWidth_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_staticText652 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText652->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticText652, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
-
- m_IntTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizerTW_Results1->Add( m_IntTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
- wxArrayString m_IntTrackThicknessUnitChoices;
- m_IntTrackThicknessUnit = new UNIT_SELECTOR_THICKNESS( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_IntTrackThicknessUnitChoices, 0 );
- m_IntTrackThicknessUnit->SetSelection( 0 );
- fgSizerTW_Results1->Add( m_IntTrackThicknessUnit, 0, wxALL, 5 );
-
- m_staticline8 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerTW_Results1->Add( m_staticline8, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_staticline9 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerTW_Results1->Add( m_staticline9, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_staticline10 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- fgSizerTW_Results1->Add( m_staticline10, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
-
- m_staticTextArea1 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Cross-section area:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextArea1->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticTextArea1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
-
- m_IntTrackAreaValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_IntTrackAreaValue->Wrap( -1 );
- fgSizerTW_Results1->Add( m_IntTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
-
- m_intTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
- m_intTrackAreaUnitLabel->Wrap( -1 );
- fgSizerTW_Results1->Add( m_intTrackAreaUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText6511 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText6511->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticText6511, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_IntTrackResistValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_IntTrackResistValue->Wrap( -1 );
- fgSizerTW_Results1->Add( m_IntTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_intTrackResUnits = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
- m_intTrackResUnits->Wrap( -1 );
- fgSizerTW_Results1->Add( m_intTrackResUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText6611 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText6611->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticText6611, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_IntTrackVDropValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_IntTrackVDropValue->Wrap( -1 );
- fgSizerTW_Results1->Add( m_IntTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText831 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText831->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticText831, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText792 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText792->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticText792, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_IntTrackLossValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_IntTrackLossValue->Wrap( -1 );
- fgSizerTW_Results1->Add( m_IntTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText7911 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText7911->Wrap( -1 );
- fgSizerTW_Results1->Add( m_staticText7911, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
-
- sbSizerTW_Result1->Add( fgSizerTW_Results1, 0, wxEXPAND, 5 );
-
-
- bSizeRight->Add( sbSizerTW_Result1, 1, wxEXPAND|wxALL, 5 );
-
- m_buttonTrackWidthReset = new wxButton( m_panelTrackWidth, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizeRight->Add( m_buttonTrackWidthReset, 0, wxALIGN_RIGHT|wxALL, 5 );
-
-
- bSizerTrackWidth->Add( bSizeRight, 0, wxEXPAND, 5 );
-
-
- m_panelTrackWidth->SetSizer( bSizerTrackWidth );
- m_panelTrackWidth->Layout();
- bSizerTrackWidth->Fit( m_panelTrackWidth );
+ m_panelTrackWidth = new PANEL_TRACK_WIDTH( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_Notebook->AddPage( m_panelTrackWidth, _("Track Width"), false );
m_panelElectricalSpacing = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerElectricalClearance;
@@ -1179,20 +898,6 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
m_SynthetizeButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
m_bpButtonSynthetize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
m_buttonTransLineReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTransLineResetButtonClick ), NULL, this );
- m_TrackCurrentValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromCurrent ), NULL, this );
- m_TrackDeltaTValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_TrackLengthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_TW_CuLength_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_TWResistivity->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_ExtTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromExtWidth ), NULL, this );
- m_TW_ExtTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_ExtTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_ExtTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_IntTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromIntWidth ), NULL, this );
- m_TW_IntTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_IntTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_IntTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_buttonTrackWidthReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWResetButtonClick ), NULL, this );
m_ElectricalSpacingUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
m_buttonElectSpacingRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
m_BoardClassesUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnBoardClassesUnitsSelection ), NULL, this );
@@ -1217,20 +922,6 @@ PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE()
m_SynthetizeButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
m_bpButtonSynthetize->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
m_buttonTransLineReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTransLineResetButtonClick ), NULL, this );
- m_TrackCurrentValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromCurrent ), NULL, this );
- m_TrackDeltaTValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_TrackLengthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_TW_CuLength_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_TWResistivity->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_ExtTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromExtWidth ), NULL, this );
- m_TW_ExtTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_ExtTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_ExtTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_IntTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromIntWidth ), NULL, this );
- m_TW_IntTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_IntTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_IntTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
- m_buttonTrackWidthReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWResetButtonClick ), NULL, this );
m_ElectricalSpacingUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
m_buttonElectSpacingRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
m_BoardClassesUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnBoardClassesUnitsSelection ), NULL, this );
diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp
index 28f9021c19..2d38d264b0 100644
--- a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp
+++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp
@@ -7767,11 +7767,11 @@
wxTAB_TRAVERSAL
-
+
Track Width
0
-
+
1
1
1
@@ -7816,3595 +7816,12 @@
Resizable
1
-
+ PANEL_TRACK_WIDTH; panel_track_width.h; Not forward_declare
0
wxTAB_TRAVERSAL
-
-
- bSizerTrackWidth
- wxHORIZONTAL
- none
-
- 5
- wxEXPAND
- 1
-
-
- bSizeLeft
- wxVERTICAL
- none
-
- 5
- wxALL|wxEXPAND
- 0
-
- wxID_ANY
- Parameters
-
- sbSizerTW_Prms
- wxVERTICAL
- 1
- none
-
- 5
- wxEXPAND
- 0
-
- 3
- wxBOTH
- 1
-
- 0
-
- fgSizerTWprms
- wxFLEX_GROWMODE_SPECIFIED
- none
- 4
- 0
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Current:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticTextCurrent
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_TrackCurrentValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWCalculateFromCurrent
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- A
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText62
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Temperature rise:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText63
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_TrackDeltaTValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- deg C
- 0
-
- 0
-
-
- 0
-
- 1
- m_trackTempUnits
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Conductor length:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText66
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_TrackLengthValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
-
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_TW_CuLength_choiceUnit
- 1
-
-
- protected
- 1
-
- Resizable
- 0
- 1
-
-
- UNIT_SELECTOR_LEN; widgets/unit_selector.h
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Copper resistivity:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText103
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_TWResistivity
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxTE_READONLY
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- ohm-meter
- 0
-
- 0
-
-
- 0
-
- 1
- m_resistivityUnits
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
- 8
- wxEXPAND|wxALL
- 1
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_htmlWinFormulas
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO
-
- 0
-
-
-
-
-
-
-
-
-
- 5
- wxEXPAND
- 0
-
-
- bSizeRight
- wxVERTICAL
- none
-
- 5
- wxEXPAND|wxALL
- 1
-
- wxID_ANY
- External Layer Traces
-
- sbSizerTW_Result
- wxVERTICAL
- 1
- none
-
- 5
- wxEXPAND
- 0
-
- 3
- wxBOTH
- 1
-
- 0
-
- fgSizerTW_Results
- wxFLEX_GROWMODE_SPECIFIED
- none
- 0
- 0
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,90,-1,70,0
- 0
- 0
- wxID_ANY
- Trace width:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticTextExtWidth
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_ExtTrackWidthValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWCalculateFromExtWidth
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
-
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_TW_ExtTrackWidth_choiceUnit
- 1
-
-
- protected
- 1
-
- Resizable
- 0
- 1
-
-
- UNIT_SELECTOR_LEN; widgets/unit_selector.h
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Trace thickness:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText65
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_ExtTrackThicknessValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
-
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_ExtTrackThicknessUnit
- 1
-
-
- protected
- 1
-
- Resizable
- 0
- 1
-
-
- UNIT_SELECTOR_THICKNESS; widgets/unit_selector.h
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxEXPAND|wxTOP|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline3
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
- 5
- wxEXPAND|wxTOP|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline4
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
- 5
- wxEXPAND|wxTOP|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline5
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
-
- 0
-
-
-
-
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Cross-section area:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticTextArea
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_ExtTrackAreaValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- mm ^ 2
- 0
-
- 0
-
-
- 0
-
- 1
- m_extTrackAreaUnitLabel
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Resistance:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText651
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_ExtTrackResistValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- ohm
- 0
-
- 0
-
-
- 0
-
- 1
- m_extTrackResUnits
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Voltage drop:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText661
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_ExtTrackVDropValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- V
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText83
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Power loss:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText79
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_ExtTrackLossValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- W
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText791
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
- 5
- wxEXPAND|wxALL
- 1
-
- wxID_ANY
- Internal Layer Traces
-
- sbSizerTW_Result1
- wxVERTICAL
- 1
- none
-
- 5
- wxEXPAND
- 0
-
- 3
- wxBOTH
- 1
-
- 0
-
- fgSizerTW_Results1
- wxFLEX_GROWMODE_SPECIFIED
- none
- 7
- 0
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
- ,90,90,-1,70,0
- 0
- 0
- wxID_ANY
- Trace width:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticTextIntWidth
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_IntTrackWidthValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWCalculateFromIntWidth
-
-
-
- 5
- wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
-
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_TW_IntTrackWidth_choiceUnit
- 1
-
-
- protected
- 1
-
- Resizable
- 0
- 1
-
-
- UNIT_SELECTOR_LEN; widgets/unit_selector.h
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Trace thickness:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText652
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
- 0
-
- 0
-
- 1
- m_IntTrackThicknessValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
-
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_IntTrackThicknessUnit
- 1
-
-
- protected
- 1
-
- Resizable
- 0
- 1
-
-
- UNIT_SELECTOR_THICKNESS; widgets/unit_selector.h
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
- OnTWParametersChanged
-
-
-
- 5
- wxEXPAND|wxTOP|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline8
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
- ; ; forward_declare
- 0
-
-
-
-
-
-
-
- 5
- wxEXPAND|wxTOP|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline9
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
- ; ; forward_declare
- 0
-
-
-
-
-
-
-
- 5
- wxEXPAND|wxTOP|wxBOTTOM
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
-
- 0
-
-
- 0
-
- 1
- m_staticline10
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
- wxLI_HORIZONTAL
- ; ; forward_declare
- 0
-
-
-
-
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Cross-section area:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticTextArea1
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_IntTrackAreaValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- mm ^ 2
- 0
-
- 0
-
-
- 0
-
- 1
- m_intTrackAreaUnitLabel
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Resistance:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText6511
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_IntTrackResistValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- ohm
- 0
-
- 0
-
-
- 0
-
- 1
- m_intTrackResUnits
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Voltage drop:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText6611
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_IntTrackVDropValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- V
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText831
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- Power loss:
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText792
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- dummy
- 0
-
- 0
-
-
- 0
-
- 1
- m_IntTrackLossValue
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
- 5
- wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
- 0
- Dock
- 0
- Left
- 1
-
- 1
-
- 0
- 0
- wxID_ANY
- W
- 0
-
- 0
-
-
- 0
-
- 1
- m_staticText7911
- 1
-
-
- protected
- 1
-
- Resizable
- 1
-
-
-
- 0
-
-
-
-
- -1
-
-
-
-
-
-
-
- 5
- wxALIGN_RIGHT|wxALL
- 0
-
- 1
- 1
- 1
- 1
-
-
-
-
-
-
-
-
- 1
- 0
- 1
-
- 1
-
- 0
- 0
-
- Dock
- 0
- Left
- 1
-
- 1
-
-
- 0
- 0
- wxID_ANY
- Reset to Defaults
-
- 0
-
- 0
-
-
- 0
-
- 1
- m_buttonTrackWidthReset
- 1
-
-
- protected
- 1
-
-
-
- Resizable
- 1
-
-
- ; ; forward_declare
- 0
-
-
- wxFILTER_NONE
- wxDefaultValidator
-
-
-
-
- OnTWResetButtonClick
-
-
-
-
-
diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.h b/pcb_calculator/dialogs/pcb_calculator_frame_base.h
index 3820e82f5e..4ab60ec3b0 100644
--- a/pcb_calculator/dialogs/pcb_calculator_frame_base.h
+++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.h
@@ -14,12 +14,12 @@ class UNIT_SELECTOR_ANGLE;
class UNIT_SELECTOR_FREQUENCY;
class UNIT_SELECTOR_LEN;
class UNIT_SELECTOR_RESISTOR;
-class UNIT_SELECTOR_THICKNESS;
#include "panel_regulator.h"
#include "panel_attenuators.h"
#include "panel_color_code.h"
#include "panel_via_size.h"
+#include "panel_track_width.h"
#include "kiway_player.h"
#include
#include
@@ -175,63 +175,7 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER
wxStaticText* m_Message8;
wxButton* m_buttonTransLineReset;
PANEL_VIA_SIZE* m_panelViaSize;
- wxPanel* m_panelTrackWidth;
- wxStaticText* m_staticTextCurrent;
- wxTextCtrl* m_TrackCurrentValue;
- wxStaticText* m_staticText62;
- wxStaticText* m_staticText63;
- wxTextCtrl* m_TrackDeltaTValue;
- wxStaticText* m_trackTempUnits;
- wxStaticText* m_staticText66;
- wxTextCtrl* m_TrackLengthValue;
- UNIT_SELECTOR_LEN* m_TW_CuLength_choiceUnit;
- wxStaticText* m_staticText103;
- wxTextCtrl* m_TWResistivity;
- wxStaticText* m_resistivityUnits;
- wxHtmlWindow* m_htmlWinFormulas;
- wxStaticText* m_staticTextExtWidth;
- wxTextCtrl* m_ExtTrackWidthValue;
- UNIT_SELECTOR_LEN* m_TW_ExtTrackWidth_choiceUnit;
- wxStaticText* m_staticText65;
- wxTextCtrl* m_ExtTrackThicknessValue;
- UNIT_SELECTOR_THICKNESS* m_ExtTrackThicknessUnit;
- wxStaticLine* m_staticline3;
- wxStaticLine* m_staticline4;
- wxStaticLine* m_staticline5;
- wxStaticText* m_staticTextArea;
- wxStaticText* m_ExtTrackAreaValue;
- wxStaticText* m_extTrackAreaUnitLabel;
- wxStaticText* m_staticText651;
- wxStaticText* m_ExtTrackResistValue;
- wxStaticText* m_extTrackResUnits;
- wxStaticText* m_staticText661;
- wxStaticText* m_ExtTrackVDropValue;
- wxStaticText* m_staticText83;
- wxStaticText* m_staticText79;
- wxStaticText* m_ExtTrackLossValue;
- wxStaticText* m_staticText791;
- wxStaticText* m_staticTextIntWidth;
- wxTextCtrl* m_IntTrackWidthValue;
- UNIT_SELECTOR_LEN* m_TW_IntTrackWidth_choiceUnit;
- wxStaticText* m_staticText652;
- wxTextCtrl* m_IntTrackThicknessValue;
- UNIT_SELECTOR_THICKNESS* m_IntTrackThicknessUnit;
- wxStaticLine* m_staticline8;
- wxStaticLine* m_staticline9;
- wxStaticLine* m_staticline10;
- wxStaticText* m_staticTextArea1;
- wxStaticText* m_IntTrackAreaValue;
- wxStaticText* m_intTrackAreaUnitLabel;
- wxStaticText* m_staticText6511;
- wxStaticText* m_IntTrackResistValue;
- wxStaticText* m_intTrackResUnits;
- wxStaticText* m_staticText6611;
- wxStaticText* m_IntTrackVDropValue;
- wxStaticText* m_staticText831;
- wxStaticText* m_staticText792;
- wxStaticText* m_IntTrackLossValue;
- wxStaticText* m_staticText7911;
- wxButton* m_buttonTrackWidthReset;
+ PANEL_TRACK_WIDTH* m_panelTrackWidth;
wxPanel* m_panelElectricalSpacing;
UNIT_SELECTOR_LEN* m_ElectricalSpacingUnitsSelector;
wxStaticLine* m_staticline2;
@@ -260,11 +204,6 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER
virtual void OnTranslineAnalyse( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTranslineSynthetize( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTransLineResetButtonClick( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTWCalculateFromCurrent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTWParametersChanged( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTWCalculateFromExtWidth( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTWCalculateFromIntWidth( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTWResetButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnElectricalSpacingUnitsSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void OnElectricalSpacingRefresh( wxCommandEvent& event ) { event.Skip(); }
virtual void OnBoardClassesUnitsSelection( wxCommandEvent& event ) { event.Skip(); }
diff --git a/pcb_calculator/tracks_width_versus_current.cpp b/pcb_calculator/panel_track_width.cpp
similarity index 76%
rename from pcb_calculator/tracks_width_versus_current.cpp
rename to pcb_calculator/panel_track_width.cpp
index 4ca961d266..c96e633b2f 100644
--- a/pcb_calculator/tracks_width_versus_current.cpp
+++ b/pcb_calculator/panel_track_width.cpp
@@ -29,11 +29,13 @@
#include
#include
-#include "class_regulator_data.h"
-#include "pcb_calculator_frame.h"
+//#include "pcb_calculator_frame.h"
#include "pcb_calculator_settings.h"
#include "units_scales.h"
+#include
+#include
+#include // For _HKI definition
wxString tracks_width_versus_current_formula =
#include "tracks_width_versus_current_formula.h"
@@ -42,28 +44,47 @@ extern double DoubleFromString( const wxString& TextValue );
// The IPC2221 formula used to calculate track width is valid only for copper material
const double copper_resistivity = 1.72e-8;
-void PCB_CALCULATOR_FRAME::writeTrackWidthConfig()
-{
- // Save current parameters values in config.
- auto cfg = static_cast( Kiface().KifaceSettings() );
- cfg->m_TrackWidth.current = m_TrackCurrentValue->GetValue();
- cfg->m_TrackWidth.delta_tc = m_TrackDeltaTValue->GetValue();
- cfg->m_TrackWidth.track_len = m_TrackLengthValue->GetValue();
- cfg->m_TrackWidth.track_len_units = m_TW_CuLength_choiceUnit->GetSelection();
- cfg->m_TrackWidth.resistivity = m_TWResistivity->GetValue();
- cfg->m_TrackWidth.ext_track_width = m_ExtTrackWidthValue->GetValue();
- cfg->m_TrackWidth.ext_track_width_units = m_TW_ExtTrackWidth_choiceUnit->GetSelection();
- cfg->m_TrackWidth.ext_track_thickness = m_ExtTrackThicknessValue->GetValue();
- cfg->m_TrackWidth.ext_track_thickness_units = m_ExtTrackThicknessUnit->GetSelection();
- cfg->m_TrackWidth.int_track_width = m_IntTrackWidthValue->GetValue();
- cfg->m_TrackWidth.int_track_width_units = m_TW_IntTrackWidth_choiceUnit->GetSelection();
- cfg->m_TrackWidth.int_track_thickness = m_IntTrackThicknessValue->GetValue();
- cfg->m_TrackWidth.int_track_thickness_units = m_IntTrackThicknessUnit->GetSelection();
+PANEL_TRACK_WIDTH::PANEL_TRACK_WIDTH( wxWindow* parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ long style, const wxString& name ) :
+ PANEL_TRACK_WIDTH_BASE( parent, id, pos, size, style, name )
+{
+ m_trackTempUnits->SetLabel( wxT( "°C" ) );
+ m_resistivityUnits->SetLabel( wxT( "Ω•m" ) );
+
+ m_extTrackResUnits->SetLabel( wxT( "Ω" ) );
+ m_intTrackResUnits->SetLabel( wxT( "Ω" ) );
+
+ m_TWMode = TW_MASTER_CURRENT;
+ m_TWNested = false;
}
-void PCB_CALCULATOR_FRAME::OnTWParametersChanged( wxCommandEvent& event )
+PANEL_TRACK_WIDTH::~PANEL_TRACK_WIDTH()
+{
+}
+
+
+void PANEL_TRACK_WIDTH::SaveSettings( PCB_CALCULATOR_SETTINGS* aCfg )
+{
+ aCfg->m_TrackWidth.current = m_TrackCurrentValue->GetValue();
+ aCfg->m_TrackWidth.delta_tc = m_TrackDeltaTValue->GetValue();
+ aCfg->m_TrackWidth.track_len = m_TrackLengthValue->GetValue();
+ aCfg->m_TrackWidth.track_len_units = m_TW_CuLength_choiceUnit->GetSelection();
+ aCfg->m_TrackWidth.resistivity = m_TWResistivity->GetValue();
+ aCfg->m_TrackWidth.ext_track_width = m_ExtTrackWidthValue->GetValue();
+ aCfg->m_TrackWidth.ext_track_width_units = m_TW_ExtTrackWidth_choiceUnit->GetSelection();
+ aCfg->m_TrackWidth.ext_track_thickness = m_ExtTrackThicknessValue->GetValue();
+ aCfg->m_TrackWidth.ext_track_thickness_units = m_ExtTrackThicknessUnit->GetSelection();
+ aCfg->m_TrackWidth.int_track_width = m_IntTrackWidthValue->GetValue();
+ aCfg->m_TrackWidth.int_track_width_units = m_TW_IntTrackWidth_choiceUnit->GetSelection();
+ aCfg->m_TrackWidth.int_track_thickness = m_IntTrackThicknessValue->GetValue();
+ aCfg->m_TrackWidth.int_track_thickness_units = m_IntTrackThicknessUnit->GetSelection();
+}
+
+
+void PANEL_TRACK_WIDTH::OnTWParametersChanged( wxCommandEvent& event )
{
switch(m_TWMode)
{
@@ -80,7 +101,7 @@ void PCB_CALCULATOR_FRAME::OnTWParametersChanged( wxCommandEvent& event )
}
-void PCB_CALCULATOR_FRAME::OnTWCalculateFromCurrent( wxCommandEvent& event )
+void PANEL_TRACK_WIDTH::OnTWCalculateFromCurrent( wxCommandEvent& event )
{
// Setting the calculated values generates further events. Stop them.
if( m_TWNested )
@@ -120,7 +141,7 @@ void PCB_CALCULATOR_FRAME::OnTWCalculateFromCurrent( wxCommandEvent& event )
}
-void PCB_CALCULATOR_FRAME::OnTWCalculateFromExtWidth( wxCommandEvent& event )
+void PANEL_TRACK_WIDTH::OnTWCalculateFromExtWidth( wxCommandEvent& event )
{
// Setting the calculated values generates further events. Stop them.
if( m_TWNested )
@@ -164,7 +185,7 @@ void PCB_CALCULATOR_FRAME::OnTWCalculateFromExtWidth( wxCommandEvent& event )
}
-void PCB_CALCULATOR_FRAME::OnTWCalculateFromIntWidth( wxCommandEvent& event )
+void PANEL_TRACK_WIDTH::OnTWCalculateFromIntWidth( wxCommandEvent& event )
{
// Setting the calculated values generates further events. Stop them.
if( m_TWNested )
@@ -209,26 +230,30 @@ void PCB_CALCULATOR_FRAME::OnTWCalculateFromIntWidth( wxCommandEvent& event )
}
-void PCB_CALCULATOR_FRAME::OnTWResetButtonClick( wxCommandEvent& event )
+void PANEL_TRACK_WIDTH::OnTWResetButtonClick( wxCommandEvent& event )
{
- // a wxString:Format( "%g", xx) is used to use local separator in floats
+ // Note: a wxString:Format( "%g", xx) is used to use local separator in floats
+
+ // Init main parameters:
m_TrackCurrentValue->SetValue( wxString::Format( "%g", 1.0 ) );
m_TrackDeltaTValue->SetValue( wxString::Format( "%g", 10.0 ) );
m_TrackLengthValue->SetValue( wxString::Format( "%g", 20.0 ) );
m_TW_CuLength_choiceUnit->SetSelection( 0 );
m_TWResistivity->SetValue( wxString::Format( "%g", copper_resistivity ) );
- m_ExtTrackWidthValue->SetValue( wxString::Format( "%g", 0.2 ) );
+
+ // m_ExtTrackWidthValue is not reinitialized: it will be calculated from previous parameters
m_TW_ExtTrackWidth_choiceUnit->SetSelection( 0 );
m_ExtTrackThicknessValue->SetValue( wxString::Format( "%g", 0.035 ) );
m_ExtTrackThicknessUnit->SetSelection( 0 );
- m_IntTrackWidthValue->SetValue( wxString::Format( "%g", 0.2 ) );
+
+ // m_IntTrackWidthValue is not reinitialized: it will be calculated from previous parameters
m_TW_IntTrackWidth_choiceUnit->SetSelection( 0 );
m_IntTrackThicknessValue->SetValue( wxString::Format( "%g", 0.035 ) );
m_IntTrackThicknessUnit->SetSelection( 0 );
}
-void PCB_CALCULATOR_FRAME::TWDisplayValues( double aCurrent, double aExtWidth,
+void PANEL_TRACK_WIDTH::TWDisplayValues( double aCurrent, double aExtWidth,
double aIntWidth, double aExtThickness, double aIntThickness )
{
wxString msg;
@@ -302,7 +327,7 @@ void PCB_CALCULATOR_FRAME::TWDisplayValues( double aCurrent, double aExtWidth,
}
-void PCB_CALCULATOR_FRAME::TWUpdateModeDisplay()
+void PANEL_TRACK_WIDTH::TWUpdateModeDisplay()
{
wxFont labelfont;
wxFont controlfont;
@@ -363,8 +388,7 @@ void PCB_CALCULATOR_FRAME::TWUpdateModeDisplay()
// Text sizes have changed when the font weight was changes
// So, run the page layout to reflect the changes
- wxWindow* page = m_Notebook->GetPage ( 1 );
- page->GetSizer()->Layout();
+ GetSizer()->Layout();
}
/* calculate track width for external or internal layers
@@ -375,7 +399,7 @@ void PCB_CALCULATOR_FRAME::TWUpdateModeDisplay()
* and dT = temperature rise in degree C
* Of course we want to know trackWidth
*/
-double PCB_CALCULATOR_FRAME::TWCalculateWidth( double aCurrent, double aThickness, double aDeltaT_C,
+double PANEL_TRACK_WIDTH::TWCalculateWidth( double aCurrent, double aThickness, double aDeltaT_C,
bool aUseInternalLayer )
{
// Appropriate scale for requested layer.
@@ -386,8 +410,7 @@ double PCB_CALCULATOR_FRAME::TWCalculateWidth( double aCurrent, double aThicknes
/* formula is Imax = scale * dT^0.44 * A^0.725
* or
- * log(Imax) = log(scale) + 0.44*log(dT)
- * +(0.725*(log(aThickness) + log(trackWidth))
+ * log(Imax) = log(scale) + 0.44*log(dT) +(0.725*(log(aThickness) + log(trackWidth))
* log(trackWidth) * 0.725 = log(Imax) - log(scale) - 0.44*log(dT) - 0.725*log(aThickness)
*/
double dtmp = log( aCurrent ) - log( scale ) - 0.44 * log( aDeltaT_C ) - 0.725 * log( aThickness );
@@ -399,7 +422,7 @@ double PCB_CALCULATOR_FRAME::TWCalculateWidth( double aCurrent, double aThicknes
}
-double PCB_CALCULATOR_FRAME::TWCalculateCurrent( double aWidth, double aThickness, double aDeltaT_C,
+double PANEL_TRACK_WIDTH::TWCalculateCurrent( double aWidth, double aThickness, double aDeltaT_C,
bool aUseInternalLayer )
{
// Appropriate scale for requested layer.
@@ -411,11 +434,12 @@ double PCB_CALCULATOR_FRAME::TWCalculateCurrent( double aWidth, double aThicknes
double area = aThickness * aWidth;
double current = scale * pow( aDeltaT_C, 0.44 ) * pow( area, 0.725 );
+
return current;
}
-void PCB_CALCULATOR_FRAME::initTrackWidthPanel()
+void PANEL_TRACK_WIDTH::LoadSettings( PCB_CALCULATOR_SETTINGS* aCfg )
{
wxString msg;
@@ -423,25 +447,23 @@ void PCB_CALCULATOR_FRAME::initTrackWidthPanel()
m_TWNested = true;
// Read parameter values.
- auto cfg = static_cast( Kiface().KifaceSettings() );
-
- m_TrackCurrentValue->SetValue( cfg->m_TrackWidth.current );
- m_TrackDeltaTValue->SetValue( cfg->m_TrackWidth.delta_tc );
- m_TrackLengthValue->SetValue( cfg->m_TrackWidth.track_len );
- m_TW_CuLength_choiceUnit->SetSelection( cfg->m_TrackWidth.track_len_units );
+ m_TrackCurrentValue->SetValue( aCfg->m_TrackWidth.current );
+ m_TrackDeltaTValue->SetValue( aCfg->m_TrackWidth.delta_tc );
+ m_TrackLengthValue->SetValue( aCfg->m_TrackWidth.track_len );
+ m_TW_CuLength_choiceUnit->SetSelection( aCfg->m_TrackWidth.track_len_units );
#if 0 // the IPC formula is valid for copper traces, so we do not currently adjust the resistivity
- m_TWResistivity->SetValue( cfg->m_TrackWidth.resistivity );
+ m_TWResistivity->SetValue( aCfg->m_TrackWidth.resistivity );
#else
m_TWResistivity->SetValue( wxString::Format( "%g", copper_resistivity ) );
#endif
- m_ExtTrackWidthValue->SetValue( cfg->m_TrackWidth.ext_track_width );
- m_TW_ExtTrackWidth_choiceUnit->SetSelection( cfg->m_TrackWidth.ext_track_width_units );
- m_ExtTrackThicknessValue->SetValue( cfg->m_TrackWidth.ext_track_thickness );
- m_ExtTrackThicknessUnit->SetSelection( cfg->m_TrackWidth.ext_track_thickness_units );
- m_IntTrackWidthValue->SetValue( cfg->m_TrackWidth.int_track_width );
- m_TW_IntTrackWidth_choiceUnit->SetSelection( cfg->m_TrackWidth.int_track_width_units );
- m_IntTrackThicknessValue->SetValue( cfg->m_TrackWidth.int_track_thickness );
- m_IntTrackThicknessUnit->SetSelection( cfg->m_TrackWidth.int_track_thickness_units );
+ m_ExtTrackWidthValue->SetValue( aCfg->m_TrackWidth.ext_track_width );
+ m_TW_ExtTrackWidth_choiceUnit->SetSelection( aCfg->m_TrackWidth.ext_track_width_units );
+ m_ExtTrackThicknessValue->SetValue( aCfg->m_TrackWidth.ext_track_thickness );
+ m_ExtTrackThicknessUnit->SetSelection( aCfg->m_TrackWidth.ext_track_thickness_units );
+ m_IntTrackWidthValue->SetValue( aCfg->m_TrackWidth.int_track_width );
+ m_TW_IntTrackWidth_choiceUnit->SetSelection( aCfg->m_TrackWidth.int_track_width_units );
+ m_IntTrackThicknessValue->SetValue( aCfg->m_TrackWidth.int_track_thickness );
+ m_IntTrackThicknessUnit->SetSelection( aCfg->m_TrackWidth.int_track_thickness_units );
if( tracks_width_versus_current_formula.StartsWith( "SetPage( tracks_width_versus_current_formula );
diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp
index 3441344476..9fd5094d29 100644
--- a/pcb_calculator/pcb_calculator_frame.cpp
+++ b/pcb_calculator/pcb_calculator_frame.cpp
@@ -41,8 +41,6 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
SetKiway( this, aKiway );
m_currTransLine = nullptr;
m_currTransLineType = DEFAULT_TYPE;
- m_TWMode = TW_MASTER_CURRENT;
- m_TWNested = false;
SHAPE_POLY_SET dummy; // A ugly trick to force the linker to include
// some methods in code and avoid link errors
@@ -69,12 +67,6 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
m_EpsilonR_label->SetLabel( wxT( "εr" ) );
- m_trackTempUnits->SetLabel( wxT( "°C" ) );
- m_resistivityUnits->SetLabel( wxT( "Ω•m" ) );
-
- m_extTrackResUnits->SetLabel( wxT( "Ω" ) );
- m_intTrackResUnits->SetLabel( wxT( "Ω" ) );
-
LoadSettings( config() );
m_panelRegulators->ReadDataFile();
@@ -82,7 +74,6 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
TranslineTypeSelection( m_currTransLineType );
m_TranslineSelection->SetSelection( m_currTransLineType );
- initTrackWidthPanel();
initESeriesPanel();
BoardClassesUpdateData( m_BoardClassesUnitsSelector->GetUnitScale() );
@@ -157,7 +148,7 @@ void PCB_CALCULATOR_FRAME::OnUpdateUI( wxUpdateUIEvent& event )
m_panelRegulators->Layout();
m_panelESeriesHelp->Refresh();
- m_htmlWinFormulas->Refresh();
+ //m_htmlWinFormulas->Refresh();
// Until it's shown on screen the above won't work; but doing it anyway at least keeps
// putting new OnUpdateUI events into the queue until it *is* shown on screen.
@@ -251,6 +242,8 @@ void PCB_CALCULATOR_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
transline->ReadConfig();
m_panelViaSize->LoadSettings( cfg );
+
+ m_panelTrackWidth->LoadSettings( cfg );
}
@@ -277,10 +270,9 @@ void PCB_CALCULATOR_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
m_panelAttenuators->SaveSettings( cfg );
m_panelColorCode->SaveSettings( cfg );
m_panelViaSize->SaveSettings( cfg );
+ m_panelTrackWidth->SaveSettings( cfg );
}
- writeTrackWidthConfig();
-
for( unsigned ii = 0; ii < m_transline_list.size(); ii++ )
m_transline_list[ii]->WriteConfig();
diff --git a/pcb_calculator/pcb_calculator_frame.h b/pcb_calculator/pcb_calculator_frame.h
index 7ea7c23fd2..b84ab5862e 100644
--- a/pcb_calculator/pcb_calculator_frame.h
+++ b/pcb_calculator/pcb_calculator_frame.h
@@ -102,7 +102,6 @@ private:
/**
* Panel-specific initializers
*/
- void initTrackWidthPanel();
void initESeriesPanel();
/**
@@ -117,61 +116,6 @@ private:
*/
void OnESeriesSelection( wxCommandEvent& event ) override;
- /**
- * Write track width parameters in configuration.
- */
- void writeTrackWidthConfig();
-
- /**
- * Update the calculations the user changes the general parameters.
- */
- void OnTWParametersChanged( wxCommandEvent& event ) override;
-
- /**
- * Update the calculations when the user changes the desired maximum current.
- */
- void OnTWCalculateFromCurrent( wxCommandEvent& event ) override;
-
- /**
- * Update the calculations when the user changes the desired external trace width.
- */
- void OnTWCalculateFromExtWidth( wxCommandEvent& event ) override;
-
- /**
- * Update the calculations when the user changes the desired internal trace width.
- */
- void OnTWCalculateFromIntWidth( wxCommandEvent& event ) override;
-
- /**
- * Update the calculations when the user clicks the reset button.
- */
- void OnTWResetButtonClick( wxCommandEvent& event ) override;
-
- /**
- * Calculate track width required based on given current and temperature rise.
- */
- double TWCalculateWidth( double aCurrent, double aThickness, double aDeltaT_C,
- bool aUseInternalLayer );
-
- /**
- * Calculate maximum current based on given width and temperature rise.
- */
- double TWCalculateCurrent( double aWidth, double aThickness, double aDeltaT_C,
- bool aUseInternalLayer );
-
- /**
- * Display the results of a calculation (including resulting values such
- * as the resistance and power loss).
- */
- void TWDisplayValues( double aCurrent, double aExtWidth, double aIntWidth,
- double aExtThickness, double aIntThickness );
-
- /**
- * Update the fields to show whether the maximum current, external trace
- * width, or internal trace width is currently the controlling parameter.
- */
- void TWUpdateModeDisplay();
-
// Electrical spacing panel:
void OnElectricalSpacingUnitsSelection( wxCommandEvent& event ) override;
@@ -235,15 +179,6 @@ private:
void TransfDlgDataToTranslineParams();
private:
- enum // Which dimension is controlling the track width / current
- { // calculations:
- TW_MASTER_CURRENT, // the maximum current,
- TW_MASTER_EXT_WIDTH, // the external trace width,
- TW_MASTER_INT_WIDTH // or the internal trace width?
- } m_TWMode;
-
- bool m_TWNested; // Used to stop events caused by setting the answers.
-
enum TRANSLINE_TYPE_ID m_currTransLineType;
TRANSLINE* m_currTransLine;
std::vector m_transline_list;