From a74851bb5dde20d565df8a9876f5789f5e9e10fe Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 5 Oct 2021 17:32:31 +0200 Subject: [PATCH] pcb_calculator rework: move transline panel to its own files panel_transline_xx also a small code cleanup --- pcb_calculator/CMakeLists.txt | 4 +- pcb_calculator/datafile_read_write.cpp | 1 - .../dialogs/dialog_regulator_form.cpp | 17 + .../dialogs/dialog_regulator_form.h | 15 +- pcb_calculator/dialogs/panel_transline.h | 146 + .../dialogs/panel_transline_base.cpp | 498 ++ .../dialogs/panel_transline_base.fbp | 5212 +++++++++++++++++ pcb_calculator/dialogs/panel_transline_base.h | 143 + .../dialogs/pcb_calculator_frame_base.cpp | 480 +- .../dialogs/pcb_calculator_frame_base.fbp | 5162 +--------------- .../dialogs/pcb_calculator_frame_base.h | 105 +- pcb_calculator/panel_eserie.cpp | 1 - pcb_calculator/panel_regulator.cpp | 7 +- pcb_calculator/panel_track_width.cpp | 1 - pcb_calculator/panel_transline.cpp | 105 + pcb_calculator/panel_via_size.cpp | 3 - pcb_calculator/params_read_write.cpp | 39 +- pcb_calculator/pcb_calculator_frame.cpp | 70 +- pcb_calculator/pcb_calculator_frame.h | 110 +- pcb_calculator/transline_dlg_funct.cpp | 25 +- 20 files changed, 6183 insertions(+), 5961 deletions(-) create mode 100644 pcb_calculator/dialogs/panel_transline.h create mode 100644 pcb_calculator/dialogs/panel_transline_base.cpp create mode 100644 pcb_calculator/dialogs/panel_transline_base.fbp create mode 100644 pcb_calculator/dialogs/panel_transline_base.h create mode 100644 pcb_calculator/panel_transline.cpp diff --git a/pcb_calculator/CMakeLists.txt b/pcb_calculator/CMakeLists.txt index 824caa934e..6673a9aadc 100644 --- a/pcb_calculator/CMakeLists.txt +++ b/pcb_calculator/CMakeLists.txt @@ -21,6 +21,7 @@ set( PCB_CALCULATOR_SRCS panel_eserie.cpp panel_regulator.cpp panel_track_width.cpp + panel_transline.cpp panel_via_size.cpp transline_ident.cpp widgets/unit_selector.cpp @@ -41,10 +42,11 @@ set( PCB_CALCULATOR_SRCS dialogs/panel_board_class_base.cpp dialogs/panel_regulator_base.cpp dialogs/panel_color_code_base.cpp + dialogs/panel_electrical_spacing_base.cpp dialogs/panel_eserie_base.cpp dialogs/panel_via_size_base.cpp dialogs/panel_track_width_base.cpp - dialogs/panel_electrical_spacing_base.cpp + dialogs/panel_transline_base.cpp ../common/env_vars.cpp # needed on MSW to avoid a link issue (a symbol not found) ) diff --git a/pcb_calculator/datafile_read_write.cpp b/pcb_calculator/datafile_read_write.cpp index 27a2ed47c4..811e137093 100644 --- a/pcb_calculator/datafile_read_write.cpp +++ b/pcb_calculator/datafile_read_write.cpp @@ -27,7 +27,6 @@ #include #include -#include #include #include #include diff --git a/pcb_calculator/dialogs/dialog_regulator_form.cpp b/pcb_calculator/dialogs/dialog_regulator_form.cpp index d9e792b9b2..b2b80c3a99 100644 --- a/pcb_calculator/dialogs/dialog_regulator_form.cpp +++ b/pcb_calculator/dialogs/dialog_regulator_form.cpp @@ -27,6 +27,23 @@ extern double DoubleFromString( const wxString& TextValue ); +DIALOG_REGULATOR_FORM::DIALOG_REGULATOR_FORM( PANEL_REGULATOR* parent, const wxString& aRegName ) : + DIALOG_REGULATOR_FORM_BASE( parent ) +{ + m_textCtrlName->SetValue( aRegName ); + m_textCtrlName->Enable( aRegName.IsEmpty() ); + UpdateDialog(); + + m_sdbSizerOK->SetDefault(); + + // Now all widgets have the size fixed, call FinishDialogSettings + finishDialogSettings(); +} + +DIALOG_REGULATOR_FORM::~DIALOG_REGULATOR_FORM() +{ +} + bool DIALOG_REGULATOR_FORM::TransferDataFromWindow() { diff --git a/pcb_calculator/dialogs/dialog_regulator_form.h b/pcb_calculator/dialogs/dialog_regulator_form.h index 0c70d91367..3e1c7a296f 100644 --- a/pcb_calculator/dialogs/dialog_regulator_form.h +++ b/pcb_calculator/dialogs/dialog_regulator_form.h @@ -39,20 +39,9 @@ class REGULATOR_DATA; class DIALOG_REGULATOR_FORM : public DIALOG_REGULATOR_FORM_BASE { public: - DIALOG_REGULATOR_FORM( PANEL_REGULATOR* parent, const wxString& aRegName ) - : DIALOG_REGULATOR_FORM_BASE( parent ) - { - m_textCtrlName->SetValue( aRegName ); - m_textCtrlName->Enable( aRegName.IsEmpty() ); - UpdateDialog(); + DIALOG_REGULATOR_FORM( PANEL_REGULATOR* parent, const wxString& aRegName ); - m_sdbSizerOK->SetDefault(); - - // Now all widgets have the size fixed, call FinishDialogSettings - finishDialogSettings(); - } - - ~DIALOG_REGULATOR_FORM(){}; + ~DIALOG_REGULATOR_FORM(); /** * @return true if regulator parameters are acceptable. diff --git a/pcb_calculator/dialogs/panel_transline.h b/pcb_calculator/dialogs/panel_transline.h new file mode 100644 index 0000000000..1f7e43cea1 --- /dev/null +++ b/pcb_calculator/dialogs/panel_transline.h @@ -0,0 +1,146 @@ +/* + * 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_TRANSLINE_H +#define PANEL_TRANSLINE_H + +#include "panel_transline_base.h" +#include +#include "transline_ident.h" + +class PCB_CALCULATOR_SETTINGS; + + +class PANEL_TRANSLINE : public PANEL_TRANSLINE_BASE +{ +public: + PANEL_TRANSLINE( wxWindow* parent, wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + ~PANEL_TRANSLINE(); + + void LoadSettings( PCB_CALCULATOR_SETTINGS* aCfg ); + void SaveSettings( PCB_CALCULATOR_SETTINGS* aCfg ); + + // Accessors: + wxRadioBox* GetTranslineSelector() { return m_TranslineSelection; } + TRANSLINE_TYPE_ID GetCurrTransLineType() { return m_currTransLineType; } + + /** + * Read/write params values and results. + * + * @param aPrmId is the parameter id to write. + * @param aValue is the value to write. + */ + void SetPrmValue( enum PRMS_ID aPrmId, double aValue ); + + /** + * Put the text into the given result line. + * + * @param aLineNumber is the line (0 to 5) where to display the text. + * @param aText is the text to display. + */ + void SetResult( int aLineNumber, const wxString& aText ); + + /** + * Set the background color of a parameter. + * + * @param aPrmId is the parameter id to set. + * @param aCol is the new color. + */ + void SetPrmBgColor( enum PRMS_ID aPrmId, const KIGFX::COLOR4D* aCol ); + + /** + * Return a param value. + * + * @param aPrmId is the parameter id to write. + * @return the value always in normalized unit (meter, Hz, Ohm, radian). + */ + double GetPrmValue( enum PRMS_ID aPrmId ) const; + + /** + * @return true if the parameter aPrmId is selected. + */ + bool IsPrmSelected( enum PRMS_ID aPrmId ) const; + + /** + * Called on new transmission line selection. + */ + void OnTranslineSelection( wxCommandEvent& event ) override; + + /** + * Called when the user clicks the reset button; sets the parameters to their default values. + */ + void OnTransLineResetButtonClick( wxCommandEvent& event ) override; + + /** + * Run a new analyze for the current transline with current parameters and displays the + * electrical parameters. + */ + void OnTranslineAnalyse( wxCommandEvent& event ) override; + + /** + * Run a new synthesis for the current transline with current parameters and displays the + * geometrical parameters. + */ + void OnTranslineSynthetize( wxCommandEvent& event ) override; + + /** + * Shows a list of current relative dielectric constant(Er) and set the selected value in + * main dialog frame. + */ + void OnTranslineEpsilonR_Button( wxCommandEvent& event ) override; + + /** + * Show a list of current dielectric loss factor (tangent delta) and set the selected value + * in main dialog frame. + */ + void OnTranslineTanD_Button( wxCommandEvent& event ) override; + + /** + * Show a list of current Specific resistance list (rho) and set the selected value in main + * dialog frame. + */ + void OnTranslineRho_Button( wxCommandEvent& event ) override; + + /** + * Must be called after selection of a new transline. + * + * Update all values, labels and tool tips of parameters needed by the new transline; + * irrelevant parameters are blanked. + * + * @param aType is the #TRANSLINE_TYPE_ID of the new selected transmission line. + */ + void TranslineTypeSelection( enum TRANSLINE_TYPE_ID aType ); + + /** + * Read values entered in dialog frame, and transfer these values in current transline + * parameters, converted in normalized units. + */ + void TransfDlgDataToTranslineParams(); + +private: + TRANSLINE* m_currTransLine; + std::vector m_transline_list; + + enum TRANSLINE_TYPE_ID m_currTransLineType; +}; + +#endif \ No newline at end of file diff --git a/pcb_calculator/dialogs/panel_transline_base.cpp b/pcb_calculator/dialogs/panel_transline_base.cpp new file mode 100644 index 0000000000..b71122a36c --- /dev/null +++ b/pcb_calculator/dialogs/panel_transline_base.cpp @@ -0,0 +1,498 @@ +/////////////////////////////////////////////////////////////////////////// +// 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_transline_base.h" + +/////////////////////////////////////////////////////////////////////////// + +PANEL_TRANSLINE_BASE::PANEL_TRANSLINE_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) +{ + wxBoxSizer* bSizeTransline; + bSizeTransline = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bLeftSizer; + bLeftSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_TranslineSelectionChoices[] = { _("Microstrip Line"), _("Coplanar wave guide"), _("Coplanar wave guide w/ ground plane"), _("Rectangular Waveguide"), _("Coaxial Line"), _("Coupled Microstrip Line"), _("Stripline"), _("Twisted Pair") }; + int m_TranslineSelectionNChoices = sizeof( m_TranslineSelectionChoices ) / sizeof( wxString ); + m_TranslineSelection = new wxRadioBox( this, wxID_ANY, _("Transmission Line Type"), wxDefaultPosition, wxDefaultSize, m_TranslineSelectionNChoices, m_TranslineSelectionChoices, 1, wxRA_SPECIFY_COLS ); + m_TranslineSelection->SetSelection( 2 ); + bLeftSizer->Add( m_TranslineSelection, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + + bLeftSizer->Add( 0, 5, 0, wxEXPAND, 5 ); + + m_translineBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + bLeftSizer->Add( m_translineBitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 ); + + + bSizeTransline->Add( bLeftSizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* bMiddleSizer; + bMiddleSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSubstrateBoxSizer; + sbSubstrateBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Substrate Parameters") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerSubstPrms; + fgSizerSubstPrms = new wxFlexGridSizer( 9, 3, 3, 0 ); + fgSizerSubstPrms->AddGrowableCol( 1 ); + fgSizerSubstPrms->SetFlexibleDirection( wxBOTH ); + fgSizerSubstPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_EpsilonR_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Er:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_EpsilonR_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_EpsilonR_label, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + wxBoxSizer* bSizer441; + bSizer441 = new wxBoxSizer( wxHORIZONTAL ); + + m_Value_EpsilonR = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer441->Add( m_Value_EpsilonR, 1, wxEXPAND|wxLEFT, 5 ); + + m_button_EpsilonR = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + bSizer441->Add( m_button_EpsilonR, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + fgSizerSubstPrms->Add( bSizer441, 1, wxEXPAND, 5 ); + + + fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_TanD_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Tan delta:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TanD_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_TanD_label, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + wxBoxSizer* bSizer442; + bSizer442 = new wxBoxSizer( wxHORIZONTAL ); + + m_Value_TanD = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer442->Add( m_Value_TanD, 1, wxEXPAND|wxLEFT, 5 ); + + m_button_TanD = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + bSizer442->Add( m_button_TanD, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + fgSizerSubstPrms->Add( bSizer442, 1, wxEXPAND, 5 ); + + + fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_Rho_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rho:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Rho_label->Wrap( -1 ); + m_Rho_label->SetToolTip( _("Specific resistance in ohms * meters") ); + + fgSizerSubstPrms->Add( m_Rho_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizer443; + bSizer443 = new wxBoxSizer( wxHORIZONTAL ); + + m_Value_Rho = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer443->Add( m_Value_Rho, 1, wxEXPAND|wxLEFT, 5 ); + + m_button_Rho = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + bSizer443->Add( m_button_Rho, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + fgSizerSubstPrms->Add( bSizer443, 1, wxEXPAND, 5 ); + + + fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_substrate_prm4_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_substrate_prm4_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_substrate_prm4_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Substrate_prm4_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerSubstPrms->Add( m_Substrate_prm4_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_SubsPrm4_choiceUnitChoices; + m_SubsPrm4_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm4_choiceUnitChoices, 0 ); + m_SubsPrm4_choiceUnit->SetSelection( 0 ); + fgSizerSubstPrms->Add( m_SubsPrm4_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_substrate_prm5_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H_t:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_substrate_prm5_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_substrate_prm5_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Substrate_prm5_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerSubstPrms->Add( m_Substrate_prm5_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_SubsPrm5_choiceUnitChoices; + m_SubsPrm5_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm5_choiceUnitChoices, 0 ); + m_SubsPrm5_choiceUnit->SetSelection( 0 ); + fgSizerSubstPrms->Add( m_SubsPrm5_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_substrate_prm6_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("T:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_substrate_prm6_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_substrate_prm6_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Substrate_prm6_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerSubstPrms->Add( m_Substrate_prm6_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_SubsPrm6_choiceUnitChoices; + m_SubsPrm6_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm6_choiceUnitChoices, 0 ); + m_SubsPrm6_choiceUnit->SetSelection( 0 ); + fgSizerSubstPrms->Add( m_SubsPrm6_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_substrate_prm7_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rough:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_substrate_prm7_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_substrate_prm7_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Substrate_prm7_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerSubstPrms->Add( m_Substrate_prm7_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_SubsPrm7_choiceUnitChoices; + m_SubsPrm7_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm7_choiceUnitChoices, 0 ); + m_SubsPrm7_choiceUnit->SetSelection( 0 ); + fgSizerSubstPrms->Add( m_SubsPrm7_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_substrate_prm8_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Insulator mu:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_substrate_prm8_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_substrate_prm8_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Substrate_prm8_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerSubstPrms->Add( m_Substrate_prm8_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_SubsPrm8_choiceUnitChoices; + m_SubsPrm8_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm8_choiceUnitChoices, 0 ); + m_SubsPrm8_choiceUnit->SetSelection( 0 ); + fgSizerSubstPrms->Add( m_SubsPrm8_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_substrate_prm9_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Conductor mu:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_substrate_prm9_label->Wrap( -1 ); + fgSizerSubstPrms->Add( m_substrate_prm9_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Substrate_prm9_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerSubstPrms->Add( m_Substrate_prm9_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_SubsPrm9_choiceUnitChoices; + m_SubsPrm9_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm9_choiceUnitChoices, 0 ); + m_SubsPrm9_choiceUnit->SetSelection( 0 ); + fgSizerSubstPrms->Add( m_SubsPrm9_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + sbSubstrateBoxSizer->Add( fgSizerSubstPrms, 1, wxEXPAND|wxBOTTOM, 5 ); + + + bMiddleSizer->Add( sbSubstrateBoxSizer, 0, wxEXPAND|wxBOTTOM, 5 ); + + wxStaticBoxSizer* sbCmpPrmsSizer; + sbCmpPrmsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Component Parameters") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizeCmpPrms; + fgSizeCmpPrms = new wxFlexGridSizer( 1, 3, 0, 0 ); + fgSizeCmpPrms->AddGrowableCol( 1 ); + fgSizeCmpPrms->SetFlexibleDirection( wxBOTH ); + fgSizeCmpPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_Frequency_label = new wxStaticText( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, _("Frequency:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Frequency_label->Wrap( -1 ); + fgSizeCmpPrms->Add( m_Frequency_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Value_Frequency_Ctrl = new wxTextCtrl( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizeCmpPrms->Add( m_Value_Frequency_Ctrl, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + wxArrayString m_choiceUnit_FrequencyChoices; + m_choiceUnit_Frequency = new UNIT_SELECTOR_FREQUENCY( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_FrequencyChoices, 0 ); + m_choiceUnit_Frequency->SetSelection( 0 ); + fgSizeCmpPrms->Add( m_choiceUnit_Frequency, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + + sbCmpPrmsSizer->Add( fgSizeCmpPrms, 0, wxEXPAND|wxBOTTOM, 5 ); + + + bMiddleSizer->Add( sbCmpPrmsSizer, 0, wxEXPAND|wxTOP, 5 ); + + wxBoxSizer* bSizerHelpBitmaps; + bSizerHelpBitmaps = new wxBoxSizer( wxVERTICAL ); + + m_bmCMicrostripZoddZeven = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerHelpBitmaps->Add( m_bmCMicrostripZoddZeven, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 ); + + m_fgSizerZcomment = new wxFlexGridSizer( 0, 2, 0, 15 ); + m_fgSizerZcomment->AddGrowableCol( 0 ); + m_fgSizerZcomment->AddGrowableCol( 1 ); + m_fgSizerZcomment->SetFlexibleDirection( wxBOTH ); + m_fgSizerZcomment->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticTextZdiff = new wxStaticText( this, wxID_ANY, _("Zdiff =\n2*Z0( (1 - 0.48exp( -0.96*S/H ) )"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextZdiff->Wrap( -1 ); + m_staticTextZdiff->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); + + m_fgSizerZcomment->Add( m_staticTextZdiff, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_staticTextZcommon = new wxStaticText( this, wxID_ANY, _("Zcommon = Zeven / 2"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL ); + m_staticTextZcommon->Wrap( -1 ); + m_staticTextZcommon->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); + + m_fgSizerZcomment->Add( m_staticTextZcommon, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + + + bSizerHelpBitmaps->Add( m_fgSizerZcomment, 0, wxEXPAND, 5 ); + + + bMiddleSizer->Add( bSizerHelpBitmaps, 1, wxALIGN_CENTER_HORIZONTAL, 5 ); + + + bSizeTransline->Add( bMiddleSizer, 1, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bRightSizer; + bRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* btranslineRightSizer; + btranslineRightSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Physical Parameters") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerPhysPrms; + fgSizerPhysPrms = new wxFlexGridSizer( 4, 4, 3, 0 ); + fgSizerPhysPrms->AddGrowableCol( 1 ); + fgSizerPhysPrms->SetFlexibleDirection( wxBOTH ); + fgSizerPhysPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_phys_prm1_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_phys_prm1_label->Wrap( -1 ); + fgSizerPhysPrms->Add( m_phys_prm1_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Phys_prm1_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPhysPrms->Add( m_Phys_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_choiceUnit_Param1Choices; + m_choiceUnit_Param1 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param1Choices, 0 ); + m_choiceUnit_Param1->SetSelection( 0 ); + fgSizerPhysPrms->Add( m_choiceUnit_Param1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_radioBtnPrm1 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); + fgSizerPhysPrms->Add( m_radioBtnPrm1, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_phys_prm2_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_phys_prm2_label->Wrap( -1 ); + fgSizerPhysPrms->Add( m_phys_prm2_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Phys_prm2_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPhysPrms->Add( m_Phys_prm2_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_choiceUnit_Param2Choices; + m_choiceUnit_Param2 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param2Choices, 0 ); + m_choiceUnit_Param2->SetSelection( 0 ); + fgSizerPhysPrms->Add( m_choiceUnit_Param2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_radioBtnPrm2 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPhysPrms->Add( m_radioBtnPrm2, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_phys_prm3_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_phys_prm3_label->Wrap( -1 ); + fgSizerPhysPrms->Add( m_phys_prm3_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Phys_prm3_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPhysPrms->Add( m_Phys_prm3_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_choiceUnit_Param3Choices; + m_choiceUnit_Param3 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param3Choices, 0 ); + m_choiceUnit_Param3->SetSelection( 0 ); + fgSizerPhysPrms->Add( m_choiceUnit_Param3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + fgSizerPhysPrms->Add( 0, 0, 0, 0, 5 ); + + + btranslineRightSizer->Add( fgSizerPhysPrms, 0, wxEXPAND|wxBOTTOM, 5 ); + + + bRightSizer->Add( btranslineRightSizer, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* btranslineButtonsSizer; + btranslineButtonsSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerButtons; + bSizerButtons = new wxBoxSizer( wxHORIZONTAL ); + + m_bpButtonAnalyze = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); + bSizerButtons->Add( m_bpButtonAnalyze, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_AnalyseButton = new wxButton( this, wxID_ANY, _("Analyze"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_AnalyseButton, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SynthetizeButton = new wxButton( this, wxID_ANY, _("Synthesize"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_SynthetizeButton, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_bpButtonSynthetize = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); + bSizerButtons->Add( m_bpButtonSynthetize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + + btranslineButtonsSizer->Add( bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + + bRightSizer->Add( btranslineButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + wxStaticBoxSizer* sbElectricalResultsSizer; + sbElectricalResultsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Electrical Parameters") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerResults; + fgSizerResults = new wxFlexGridSizer( 3, 3, 3, 0 ); + fgSizerResults->AddGrowableCol( 1 ); + fgSizerResults->SetFlexibleDirection( wxBOTH ); + fgSizerResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_elec_prm1_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_elec_prm1_label->Wrap( -1 ); + fgSizerResults->Add( m_elec_prm1_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Elec_prm1_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerResults->Add( m_Elec_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_choiceUnit_ElecPrm1Choices; + m_choiceUnit_ElecPrm1 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm1Choices, 0 ); + m_choiceUnit_ElecPrm1->SetSelection( 0 ); + fgSizerResults->Add( m_choiceUnit_ElecPrm1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_elec_prm2_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_elec_prm2_label->Wrap( -1 ); + fgSizerResults->Add( m_elec_prm2_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + + m_Elec_prm2_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerResults->Add( m_Elec_prm2_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_choiceUnit_ElecPrm2Choices; + m_choiceUnit_ElecPrm2 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm2Choices, 0 ); + m_choiceUnit_ElecPrm2->SetSelection( 0 ); + fgSizerResults->Add( m_choiceUnit_ElecPrm2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + m_elec_prm3_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Angle:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_elec_prm3_label->Wrap( -1 ); + fgSizerResults->Add( m_elec_prm3_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Elec_prm3_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerResults->Add( m_Elec_prm3_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + wxArrayString m_choiceUnit_ElecPrm3Choices; + m_choiceUnit_ElecPrm3 = new UNIT_SELECTOR_ANGLE( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm3Choices, 0 ); + m_choiceUnit_ElecPrm3->SetSelection( 0 ); + fgSizerResults->Add( m_choiceUnit_ElecPrm3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + sbElectricalResultsSizer->Add( fgSizerResults, 0, wxEXPAND|wxBOTTOM, 5 ); + + + bRightSizer->Add( sbElectricalResultsSizer, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbMessagesSizer; + sbMessagesSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Results") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerTranslResults; + fgSizerTranslResults = new wxFlexGridSizer( 8, 2, 0, 0 ); + fgSizerTranslResults->AddGrowableCol( 1 ); + fgSizerTranslResults->SetFlexibleDirection( wxBOTH ); + fgSizerTranslResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_left_message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message1->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message1->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_left_message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message2->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message2->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_left_message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message3->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message3->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_left_message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message4->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message4, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message4->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message4, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_left_message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message5->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT, 5 ); + + m_Message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message5->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message5, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_left_message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message6->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message6, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message6->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message6, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_left_message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message7->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message7, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + + m_Message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message7->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message7, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_left_message8 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_left_message8->Wrap( -1 ); + fgSizerTranslResults->Add( m_left_message8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 ); + + m_Message8 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Message8->Wrap( -1 ); + fgSizerTranslResults->Add( m_Message8, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + + sbMessagesSizer->Add( fgSizerTranslResults, 1, wxEXPAND, 5 ); + + + bRightSizer->Add( sbMessagesSizer, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_buttonTransLineReset = new wxButton( this, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 ); + bRightSizer->Add( m_buttonTransLineReset, 0, wxALIGN_RIGHT|wxALL, 5 ); + + + bSizeTransline->Add( bRightSizer, 1, wxEXPAND, 5 ); + + + this->SetSizer( bSizeTransline ); + this->Layout(); + + // Connect Events + m_TranslineSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineSelection ), NULL, this ); + m_button_EpsilonR->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineEpsilonR_Button ), NULL, this ); + m_button_TanD->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineTanD_Button ), NULL, this ); + m_button_Rho->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineRho_Button ), NULL, this ); + m_bpButtonAnalyze->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineAnalyse ), NULL, this ); + m_AnalyseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineAnalyse ), NULL, this ); + m_SynthetizeButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineSynthetize ), NULL, this ); + m_bpButtonSynthetize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineSynthetize ), NULL, this ); + m_buttonTransLineReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTransLineResetButtonClick ), NULL, this ); +} + +PANEL_TRANSLINE_BASE::~PANEL_TRANSLINE_BASE() +{ + // Disconnect Events + m_TranslineSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineSelection ), NULL, this ); + m_button_EpsilonR->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineEpsilonR_Button ), NULL, this ); + m_button_TanD->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineTanD_Button ), NULL, this ); + m_button_Rho->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineRho_Button ), NULL, this ); + m_bpButtonAnalyze->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineAnalyse ), NULL, this ); + m_AnalyseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineAnalyse ), NULL, this ); + m_SynthetizeButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineSynthetize ), NULL, this ); + m_bpButtonSynthetize->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTranslineSynthetize ), NULL, this ); + m_buttonTransLineReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_TRANSLINE_BASE::OnTransLineResetButtonClick ), NULL, this ); + +} diff --git a/pcb_calculator/dialogs/panel_transline_base.fbp b/pcb_calculator/dialogs/panel_transline_base.fbp new file mode 100644 index 0000000000..78e577d098 --- /dev/null +++ b/pcb_calculator/dialogs/panel_transline_base.fbp @@ -0,0 +1,5212 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + panel_transline_base + 1000 + none + + 1 + panel_transline_base + + . + + 1 + 1 + 1 + 1 + UI + 0 + 0 + + 0 + wxAUI_MGR_DEFAULT + + + 1 + 1 + impl_virtual + + + 0 + wxID_ANY + + + PANEL_TRANSLINE_BASE + + 724,460 + ; ; forward_declare + + + + wxTAB_TRAVERSAL + + + bSizeTransline + wxHORIZONTAL + none + + 5 + wxEXPAND + 0 + + + bLeftSizer + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Microstrip Line" "Coplanar wave guide" "Coplanar wave guide w/ ground plane" "Rectangular Waveguide" "Coaxial Line" "Coupled Microstrip Line" "Stripline" "Twisted Pair" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Transmission Line Type + 1 + + 0 + + + 0 + + 1 + m_TranslineSelection + 1 + + + protected + 1 + + Resizable + 2 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineSelection + + + + 5 + wxEXPAND + 0 + + 5 + protected + 0 + + + + 10 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_translineBitmap + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + + bMiddleSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxBOTTOM + 0 + + wxID_ANY + Substrate Parameters + + sbSubstrateBoxSizer + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM + 1 + + 3 + wxBOTH + 1 + + 0 + + fgSizerSubstPrms + wxFLEX_GROWMODE_SPECIFIED + none + 9 + 3 + + 5 + wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Er: + 0 + + 0 + + + 0 + + 1 + m_EpsilonR_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxEXPAND + 1 + + + bSizer441 + wxHORIZONTAL + none + + 5 + wxEXPAND|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Value_EpsilonR + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + ... + + 0 + + 0 + + + 0 + + 1 + m_button_EpsilonR + 1 + + + protected + 1 + + + + Resizable + 1 + + wxBU_EXACTFIT + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineEpsilonR_Button + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Tan delta: + 0 + + 0 + + + 0 + + 1 + m_TanD_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxEXPAND + 1 + + + bSizer442 + wxHORIZONTAL + none + + 5 + wxEXPAND|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Value_TanD + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + ... + + 0 + + 0 + + + 0 + + 1 + m_button_TanD + 1 + + + protected + 1 + + + + Resizable + 1 + + wxBU_EXACTFIT + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineTanD_Button + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rho: + 0 + + 0 + + + 0 + + 1 + m_Rho_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Specific resistance in ohms * meters + + + + -1 + + + + 5 + wxEXPAND + 1 + + + bSizer443 + wxHORIZONTAL + none + + 5 + wxEXPAND|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Value_Rho + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + ... + + 0 + + 0 + + + 0 + + 1 + m_button_Rho + 1 + + + protected + 1 + + + + Resizable + 1 + + wxBU_EXACTFIT + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineRho_Button + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + H: + 0 + + 0 + + + 0 + + 1 + m_substrate_prm4_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Substrate_prm4_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_SubsPrm4_choiceUnit + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + H_t: + 0 + + 0 + + + 0 + + 1 + m_substrate_prm5_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Substrate_prm5_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_SubsPrm5_choiceUnit + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + T: + 0 + + 0 + + + 0 + + 1 + m_substrate_prm6_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Substrate_prm6_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_SubsPrm6_choiceUnit + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rough: + 0 + + 0 + + + 0 + + 1 + m_substrate_prm7_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Substrate_prm7_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_SubsPrm7_choiceUnit + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Insulator mu: + 0 + + 0 + + + 0 + + 1 + m_substrate_prm8_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Substrate_prm8_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_SubsPrm8_choiceUnit + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Conductor mu: + 0 + + 0 + + + 0 + + 1 + m_substrate_prm9_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Substrate_prm9_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_SubsPrm9_choiceUnit + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + 5 + wxEXPAND|wxTOP + 0 + + wxID_ANY + Component Parameters + + sbCmpPrmsSizer + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM + 0 + + 3 + wxBOTH + 1 + + 0 + + fgSizeCmpPrms + wxFLEX_GROWMODE_SPECIFIED + none + 1 + 0 + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Frequency: + 0 + + 0 + + + 0 + + 1 + m_Frequency_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|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_Value_Frequency_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_Frequency + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_FREQUENCY; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 1 + + + bSizerHelpBitmaps + wxVERTICAL + none + + 10 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bmCMicrostripZoddZeven + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + + + + + + 5 + wxEXPAND + 0 + + 2 + wxBOTH + 0,1 + + 15 + + m_fgSizerZcomment + wxFLEX_GROWMODE_SPECIFIED + protected + 0 + 0 + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,93,92,-1,70,0 + 0 + 0 + wxID_ANY + Zdiff = 2*Z0( (1 - 0.48exp( -0.96*S/H ) ) + 0 + + 0 + + + 0 + + 1 + m_staticTextZdiff + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,93,92,-1,70,0 + 0 + 0 + wxID_ANY + Zcommon = Zeven / 2 + 0 + + 0 + + + 0 + + 1 + m_staticTextZcommon + 1 + + + protected + 1 + + Resizable + 1 + + wxALIGN_CENTER_HORIZONTAL + + 0 + + + + + -1 + + + + + + + + + + 5 + wxEXPAND + 1 + + + bRightSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + wxID_ANY + Physical Parameters + + btranslineRightSizer + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM + 0 + + 4 + wxBOTH + 1 + + 0 + + fgSizerPhysPrms + wxFLEX_GROWMODE_SPECIFIED + none + 4 + 3 + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_phys_prm1_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Phys_prm1_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_Param1 + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_radioBtnPrm1 + 1 + + + protected + 1 + + Resizable + 1 + + wxRB_GROUP + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_phys_prm2_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Phys_prm2_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_Param2 + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_radioBtnPrm2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_phys_prm3_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Phys_prm3_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_Param3 + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_LEN; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + + 0 + + 0 + protected + 0 + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + + btranslineButtonsSizer + wxVERTICAL + none + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + + bSizerButtons + wxHORIZONTAL + none + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + Analyze + + 0 + + 0 + + + 0 + + 1 + m_bpButtonAnalyze + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineAnalyse + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + Analyze + + 0 + + 0 + + + 0 + + 1 + m_AnalyseButton + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineAnalyse + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + Synthesize + + 0 + + 0 + + + 0 + + 1 + m_SynthetizeButton + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineSynthetize + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + Synthetize + + 0 + + 0 + + + 0 + + 1 + m_bpButtonSynthetize + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTranslineSynthetize + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Electrical Parameters + + sbElectricalResultsSizer + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM + 0 + + 3 + wxBOTH + 1 + + 0 + + fgSizerResults + wxFLEX_GROWMODE_SPECIFIED + none + 3 + 3 + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Z: + 0 + + 0 + + + 0 + + 1 + m_elec_prm1_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Elec_prm1_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_ElecPrm1 + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_RESISTOR; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Z: + 0 + + 0 + + + 0 + + 1 + m_elec_prm2_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Elec_prm2_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_ElecPrm2 + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_RESISTOR; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Angle: + 0 + + 0 + + + 0 + + 1 + m_elec_prm3_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_Elec_prm3_Value + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceUnit_ElecPrm3 + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + UNIT_SELECTOR_ANGLE; widgets/unit_selector.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 1 + + wxID_ANY + Results + + sbMessagesSizer + wxVERTICAL + 1 + none + + 5 + wxEXPAND + 1 + + 2 + wxBOTH + 1 + + 0 + + fgSizerTranslResults + wxFLEX_GROWMODE_SPECIFIED + none + 8 + 0 + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_left_message1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 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_Message1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_left_message2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 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_Message2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_left_message3 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 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_Message3 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_left_message4 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 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_Message4 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT + 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_left_message5 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 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_Message5 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_left_message6 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 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_Message6 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT + 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_left_message7 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 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_Message7 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT + 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_left_message8 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; Not forward_declare + 0 + + + + + -1 + + + + 5 + wxEXPAND|wxLEFT|wxRIGHT + 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_Message8 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; Not forward_declare + 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_buttonTransLineReset + 1 + + + protected + 1 + + + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTransLineResetButtonClick + + + + + + + + diff --git a/pcb_calculator/dialogs/panel_transline_base.h b/pcb_calculator/dialogs/panel_transline_base.h new file mode 100644 index 0000000000..2bec6df19b --- /dev/null +++ b/pcb_calculator/dialogs/panel_transline_base.h @@ -0,0 +1,143 @@ +/////////////////////////////////////////////////////////////////////////// +// 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_ANGLE; +class UNIT_SELECTOR_FREQUENCY; +class UNIT_SELECTOR_LEN; +class UNIT_SELECTOR_RESISTOR; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class PANEL_TRANSLINE_BASE +/////////////////////////////////////////////////////////////////////////////// +class PANEL_TRANSLINE_BASE : public wxPanel +{ + private: + + protected: + wxRadioBox* m_TranslineSelection; + wxStaticBitmap* m_translineBitmap; + wxStaticText* m_EpsilonR_label; + wxTextCtrl* m_Value_EpsilonR; + wxButton* m_button_EpsilonR; + wxStaticText* m_TanD_label; + wxTextCtrl* m_Value_TanD; + wxButton* m_button_TanD; + wxStaticText* m_Rho_label; + wxTextCtrl* m_Value_Rho; + wxButton* m_button_Rho; + wxStaticText* m_substrate_prm4_label; + wxTextCtrl* m_Substrate_prm4_Value; + UNIT_SELECTOR_LEN* m_SubsPrm4_choiceUnit; + wxStaticText* m_substrate_prm5_label; + wxTextCtrl* m_Substrate_prm5_Value; + UNIT_SELECTOR_LEN* m_SubsPrm5_choiceUnit; + wxStaticText* m_substrate_prm6_label; + wxTextCtrl* m_Substrate_prm6_Value; + UNIT_SELECTOR_LEN* m_SubsPrm6_choiceUnit; + wxStaticText* m_substrate_prm7_label; + wxTextCtrl* m_Substrate_prm7_Value; + UNIT_SELECTOR_LEN* m_SubsPrm7_choiceUnit; + wxStaticText* m_substrate_prm8_label; + wxTextCtrl* m_Substrate_prm8_Value; + UNIT_SELECTOR_LEN* m_SubsPrm8_choiceUnit; + wxStaticText* m_substrate_prm9_label; + wxTextCtrl* m_Substrate_prm9_Value; + UNIT_SELECTOR_LEN* m_SubsPrm9_choiceUnit; + wxStaticText* m_Frequency_label; + wxTextCtrl* m_Value_Frequency_Ctrl; + UNIT_SELECTOR_FREQUENCY* m_choiceUnit_Frequency; + wxStaticBitmap* m_bmCMicrostripZoddZeven; + wxFlexGridSizer* m_fgSizerZcomment; + wxStaticText* m_staticTextZdiff; + wxStaticText* m_staticTextZcommon; + wxStaticText* m_phys_prm1_label; + wxTextCtrl* m_Phys_prm1_Value; + UNIT_SELECTOR_LEN* m_choiceUnit_Param1; + wxRadioButton* m_radioBtnPrm1; + wxStaticText* m_phys_prm2_label; + wxTextCtrl* m_Phys_prm2_Value; + UNIT_SELECTOR_LEN* m_choiceUnit_Param2; + wxRadioButton* m_radioBtnPrm2; + wxStaticText* m_phys_prm3_label; + wxTextCtrl* m_Phys_prm3_Value; + UNIT_SELECTOR_LEN* m_choiceUnit_Param3; + wxBitmapButton* m_bpButtonAnalyze; + wxButton* m_AnalyseButton; + wxButton* m_SynthetizeButton; + wxBitmapButton* m_bpButtonSynthetize; + wxStaticText* m_elec_prm1_label; + wxTextCtrl* m_Elec_prm1_Value; + UNIT_SELECTOR_RESISTOR* m_choiceUnit_ElecPrm1; + wxStaticText* m_elec_prm2_label; + wxTextCtrl* m_Elec_prm2_Value; + UNIT_SELECTOR_RESISTOR* m_choiceUnit_ElecPrm2; + wxStaticText* m_elec_prm3_label; + wxTextCtrl* m_Elec_prm3_Value; + UNIT_SELECTOR_ANGLE* m_choiceUnit_ElecPrm3; + wxStaticText* m_left_message1; + wxStaticText* m_Message1; + wxStaticText* m_left_message2; + wxStaticText* m_Message2; + wxStaticText* m_left_message3; + wxStaticText* m_Message3; + wxStaticText* m_left_message4; + wxStaticText* m_Message4; + wxStaticText* m_left_message5; + wxStaticText* m_Message5; + wxStaticText* m_left_message6; + wxStaticText* m_Message6; + wxStaticText* m_left_message7; + wxStaticText* m_Message7; + wxStaticText* m_left_message8; + wxStaticText* m_Message8; + wxButton* m_buttonTransLineReset; + + // Virtual event handlers, overide them in your derived class + virtual void OnTranslineSelection( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTranslineEpsilonR_Button( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTranslineTanD_Button( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTranslineRho_Button( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTranslineAnalyse( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTranslineSynthetize( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTransLineResetButtonClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + PANEL_TRANSLINE_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 724,460 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + ~PANEL_TRANSLINE_BASE(); + +}; + diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp index f2f0591537..9addc94987 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp @@ -5,8 +5,6 @@ // PLEASE DO *NOT* EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#include "widgets/unit_selector.h" - #include "pcb_calculator_frame_base.h" /////////////////////////////////////////////////////////////////////////// @@ -30,464 +28,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_Notebook->AddPage( m_panelESeries, _("E-Series"), false ); m_panelColorCode = new PANEL_COLOR_CODE( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_Notebook->AddPage( m_panelColorCode, _("Color Code"), false ); - m_panelTransline = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizeTransline; - bSizeTransline = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bLeftSizer; - bLeftSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_TranslineSelectionChoices[] = { _("Microstrip Line"), _("Coplanar wave guide"), _("Coplanar wave guide w/ ground plane"), _("Rectangular Waveguide"), _("Coaxial Line"), _("Coupled Microstrip Line"), _("Stripline"), _("Twisted Pair") }; - int m_TranslineSelectionNChoices = sizeof( m_TranslineSelectionChoices ) / sizeof( wxString ); - m_TranslineSelection = new wxRadioBox( m_panelTransline, wxID_ANY, _("Transmission Line Type"), wxDefaultPosition, wxDefaultSize, m_TranslineSelectionNChoices, m_TranslineSelectionChoices, 1, wxRA_SPECIFY_COLS ); - m_TranslineSelection->SetSelection( 2 ); - bLeftSizer->Add( m_TranslineSelection, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - - bLeftSizer->Add( 0, 5, 0, wxEXPAND, 5 ); - - m_translineBitmap = new wxStaticBitmap( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); - bLeftSizer->Add( m_translineBitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 ); - - - bSizeTransline->Add( bLeftSizer, 0, wxEXPAND, 5 ); - - wxBoxSizer* bMiddleSizer; - bMiddleSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSubstrateBoxSizer; - sbSubstrateBoxSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Substrate Parameters") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizerSubstPrms; - fgSizerSubstPrms = new wxFlexGridSizer( 9, 3, 3, 0 ); - fgSizerSubstPrms->AddGrowableCol( 1 ); - fgSizerSubstPrms->SetFlexibleDirection( wxBOTH ); - fgSizerSubstPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_EpsilonR_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Er:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_EpsilonR_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_EpsilonR_label, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - wxBoxSizer* bSizer441; - bSizer441 = new wxBoxSizer( wxHORIZONTAL ); - - m_Value_EpsilonR = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer441->Add( m_Value_EpsilonR, 1, wxEXPAND|wxLEFT, 5 ); - - m_button_EpsilonR = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); - bSizer441->Add( m_button_EpsilonR, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - fgSizerSubstPrms->Add( bSizer441, 1, wxEXPAND, 5 ); - - - fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_TanD_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Tan delta:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_TanD_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_TanD_label, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - wxBoxSizer* bSizer442; - bSizer442 = new wxBoxSizer( wxHORIZONTAL ); - - m_Value_TanD = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer442->Add( m_Value_TanD, 1, wxEXPAND|wxLEFT, 5 ); - - m_button_TanD = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); - bSizer442->Add( m_button_TanD, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - fgSizerSubstPrms->Add( bSizer442, 1, wxEXPAND, 5 ); - - - fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_Rho_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rho:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Rho_label->Wrap( -1 ); - m_Rho_label->SetToolTip( _("Specific resistance in ohms * meters") ); - - fgSizerSubstPrms->Add( m_Rho_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - wxBoxSizer* bSizer443; - bSizer443 = new wxBoxSizer( wxHORIZONTAL ); - - m_Value_Rho = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer443->Add( m_Value_Rho, 1, wxEXPAND|wxLEFT, 5 ); - - m_button_Rho = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); - bSizer443->Add( m_button_Rho, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - fgSizerSubstPrms->Add( bSizer443, 1, wxEXPAND, 5 ); - - - fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_substrate_prm4_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_substrate_prm4_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_substrate_prm4_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Substrate_prm4_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerSubstPrms->Add( m_Substrate_prm4_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_SubsPrm4_choiceUnitChoices; - m_SubsPrm4_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm4_choiceUnitChoices, 0 ); - m_SubsPrm4_choiceUnit->SetSelection( 0 ); - fgSizerSubstPrms->Add( m_SubsPrm4_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_substrate_prm5_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H_t:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_substrate_prm5_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_substrate_prm5_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Substrate_prm5_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerSubstPrms->Add( m_Substrate_prm5_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_SubsPrm5_choiceUnitChoices; - m_SubsPrm5_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm5_choiceUnitChoices, 0 ); - m_SubsPrm5_choiceUnit->SetSelection( 0 ); - fgSizerSubstPrms->Add( m_SubsPrm5_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_substrate_prm6_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("T:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_substrate_prm6_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_substrate_prm6_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Substrate_prm6_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerSubstPrms->Add( m_Substrate_prm6_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_SubsPrm6_choiceUnitChoices; - m_SubsPrm6_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm6_choiceUnitChoices, 0 ); - m_SubsPrm6_choiceUnit->SetSelection( 0 ); - fgSizerSubstPrms->Add( m_SubsPrm6_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_substrate_prm7_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rough:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_substrate_prm7_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_substrate_prm7_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Substrate_prm7_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerSubstPrms->Add( m_Substrate_prm7_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_SubsPrm7_choiceUnitChoices; - m_SubsPrm7_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm7_choiceUnitChoices, 0 ); - m_SubsPrm7_choiceUnit->SetSelection( 0 ); - fgSizerSubstPrms->Add( m_SubsPrm7_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_substrate_prm8_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Insulator mu:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_substrate_prm8_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_substrate_prm8_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Substrate_prm8_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerSubstPrms->Add( m_Substrate_prm8_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_SubsPrm8_choiceUnitChoices; - m_SubsPrm8_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm8_choiceUnitChoices, 0 ); - m_SubsPrm8_choiceUnit->SetSelection( 0 ); - fgSizerSubstPrms->Add( m_SubsPrm8_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_substrate_prm9_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Conductor mu:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_substrate_prm9_label->Wrap( -1 ); - fgSizerSubstPrms->Add( m_substrate_prm9_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Substrate_prm9_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerSubstPrms->Add( m_Substrate_prm9_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_SubsPrm9_choiceUnitChoices; - m_SubsPrm9_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm9_choiceUnitChoices, 0 ); - m_SubsPrm9_choiceUnit->SetSelection( 0 ); - fgSizerSubstPrms->Add( m_SubsPrm9_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - sbSubstrateBoxSizer->Add( fgSizerSubstPrms, 1, wxEXPAND|wxBOTTOM, 5 ); - - - bMiddleSizer->Add( sbSubstrateBoxSizer, 0, wxEXPAND|wxBOTTOM, 5 ); - - wxStaticBoxSizer* sbCmpPrmsSizer; - sbCmpPrmsSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Component Parameters") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizeCmpPrms; - fgSizeCmpPrms = new wxFlexGridSizer( 1, 3, 0, 0 ); - fgSizeCmpPrms->AddGrowableCol( 1 ); - fgSizeCmpPrms->SetFlexibleDirection( wxBOTH ); - fgSizeCmpPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_Frequency_label = new wxStaticText( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, _("Frequency:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Frequency_label->Wrap( -1 ); - fgSizeCmpPrms->Add( m_Frequency_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Value_Frequency_Ctrl = new wxTextCtrl( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizeCmpPrms->Add( m_Value_Frequency_Ctrl, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - wxArrayString m_choiceUnit_FrequencyChoices; - m_choiceUnit_Frequency = new UNIT_SELECTOR_FREQUENCY( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_FrequencyChoices, 0 ); - m_choiceUnit_Frequency->SetSelection( 0 ); - fgSizeCmpPrms->Add( m_choiceUnit_Frequency, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - - sbCmpPrmsSizer->Add( fgSizeCmpPrms, 0, wxEXPAND|wxBOTTOM, 5 ); - - - bMiddleSizer->Add( sbCmpPrmsSizer, 0, wxEXPAND|wxTOP, 5 ); - - wxBoxSizer* bSizerHelpBitmaps; - bSizerHelpBitmaps = new wxBoxSizer( wxVERTICAL ); - - m_bmCMicrostripZoddZeven = new wxStaticBitmap( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerHelpBitmaps->Add( m_bmCMicrostripZoddZeven, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 ); - - m_fgSizerZcomment = new wxFlexGridSizer( 0, 2, 0, 15 ); - m_fgSizerZcomment->AddGrowableCol( 0 ); - m_fgSizerZcomment->AddGrowableCol( 1 ); - m_fgSizerZcomment->SetFlexibleDirection( wxBOTH ); - m_fgSizerZcomment->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticTextZdiff = new wxStaticText( m_panelTransline, wxID_ANY, _("Zdiff =\n2*Z0( (1 - 0.48exp( -0.96*S/H ) )"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextZdiff->Wrap( -1 ); - m_staticTextZdiff->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); - - m_fgSizerZcomment->Add( m_staticTextZdiff, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); - - m_staticTextZcommon = new wxStaticText( m_panelTransline, wxID_ANY, _("Zcommon = Zeven / 2"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL ); - m_staticTextZcommon->Wrap( -1 ); - m_staticTextZcommon->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); - - m_fgSizerZcomment->Add( m_staticTextZcommon, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); - - - bSizerHelpBitmaps->Add( m_fgSizerZcomment, 0, wxEXPAND, 5 ); - - - bMiddleSizer->Add( bSizerHelpBitmaps, 1, wxALIGN_CENTER_HORIZONTAL, 5 ); - - - bSizeTransline->Add( bMiddleSizer, 1, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* bRightSizer; - bRightSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* btranslineRightSizer; - btranslineRightSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Physical Parameters") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizerPhysPrms; - fgSizerPhysPrms = new wxFlexGridSizer( 4, 4, 3, 0 ); - fgSizerPhysPrms->AddGrowableCol( 1 ); - fgSizerPhysPrms->SetFlexibleDirection( wxBOTH ); - fgSizerPhysPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_phys_prm1_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_phys_prm1_label->Wrap( -1 ); - fgSizerPhysPrms->Add( m_phys_prm1_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Phys_prm1_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPhysPrms->Add( m_Phys_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceUnit_Param1Choices; - m_choiceUnit_Param1 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param1Choices, 0 ); - m_choiceUnit_Param1->SetSelection( 0 ); - fgSizerPhysPrms->Add( m_choiceUnit_Param1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_radioBtnPrm1 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); - fgSizerPhysPrms->Add( m_radioBtnPrm1, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_phys_prm2_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_phys_prm2_label->Wrap( -1 ); - fgSizerPhysPrms->Add( m_phys_prm2_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Phys_prm2_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPhysPrms->Add( m_Phys_prm2_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceUnit_Param2Choices; - m_choiceUnit_Param2 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param2Choices, 0 ); - m_choiceUnit_Param2->SetSelection( 0 ); - fgSizerPhysPrms->Add( m_choiceUnit_Param2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_radioBtnPrm2 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPhysPrms->Add( m_radioBtnPrm2, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_phys_prm3_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_phys_prm3_label->Wrap( -1 ); - fgSizerPhysPrms->Add( m_phys_prm3_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Phys_prm3_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPhysPrms->Add( m_Phys_prm3_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceUnit_Param3Choices; - m_choiceUnit_Param3 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param3Choices, 0 ); - m_choiceUnit_Param3->SetSelection( 0 ); - fgSizerPhysPrms->Add( m_choiceUnit_Param3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - fgSizerPhysPrms->Add( 0, 0, 0, 0, 5 ); - - - btranslineRightSizer->Add( fgSizerPhysPrms, 0, wxEXPAND|wxBOTTOM, 5 ); - - - bRightSizer->Add( btranslineRightSizer, 0, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* btranslineButtonsSizer; - btranslineButtonsSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizerButtons; - bSizerButtons = new wxBoxSizer( wxHORIZONTAL ); - - m_bpButtonAnalyze = new wxBitmapButton( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); - bSizerButtons->Add( m_bpButtonAnalyze, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_AnalyseButton = new wxButton( m_panelTransline, wxID_ANY, _("Analyze"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerButtons->Add( m_AnalyseButton, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SynthetizeButton = new wxButton( m_panelTransline, wxID_ANY, _("Synthesize"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerButtons->Add( m_SynthetizeButton, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_bpButtonSynthetize = new wxBitmapButton( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 ); - bSizerButtons->Add( m_bpButtonSynthetize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - - btranslineButtonsSizer->Add( bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - - - bRightSizer->Add( btranslineButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); - - wxStaticBoxSizer* sbElectricalResultsSizer; - sbElectricalResultsSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Electrical Parameters") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizerResults; - fgSizerResults = new wxFlexGridSizer( 3, 3, 3, 0 ); - fgSizerResults->AddGrowableCol( 1 ); - fgSizerResults->SetFlexibleDirection( wxBOTH ); - fgSizerResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_elec_prm1_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_elec_prm1_label->Wrap( -1 ); - fgSizerResults->Add( m_elec_prm1_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Elec_prm1_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerResults->Add( m_Elec_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceUnit_ElecPrm1Choices; - m_choiceUnit_ElecPrm1 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm1Choices, 0 ); - m_choiceUnit_ElecPrm1->SetSelection( 0 ); - fgSizerResults->Add( m_choiceUnit_ElecPrm1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_elec_prm2_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_elec_prm2_label->Wrap( -1 ); - fgSizerResults->Add( m_elec_prm2_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_Elec_prm2_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerResults->Add( m_Elec_prm2_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceUnit_ElecPrm2Choices; - m_choiceUnit_ElecPrm2 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm2Choices, 0 ); - m_choiceUnit_ElecPrm2->SetSelection( 0 ); - fgSizerResults->Add( m_choiceUnit_ElecPrm2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_elec_prm3_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Angle:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_elec_prm3_label->Wrap( -1 ); - fgSizerResults->Add( m_elec_prm3_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Elec_prm3_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerResults->Add( m_Elec_prm3_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - wxArrayString m_choiceUnit_ElecPrm3Choices; - m_choiceUnit_ElecPrm3 = new UNIT_SELECTOR_ANGLE( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm3Choices, 0 ); - m_choiceUnit_ElecPrm3->SetSelection( 0 ); - fgSizerResults->Add( m_choiceUnit_ElecPrm3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - sbElectricalResultsSizer->Add( fgSizerResults, 0, wxEXPAND|wxBOTTOM, 5 ); - - - bRightSizer->Add( sbElectricalResultsSizer, 0, wxEXPAND|wxALL, 5 ); - - wxStaticBoxSizer* sbMessagesSizer; - sbMessagesSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Results") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizerTranslResults; - fgSizerTranslResults = new wxFlexGridSizer( 8, 2, 0, 0 ); - fgSizerTranslResults->AddGrowableCol( 1 ); - fgSizerTranslResults->SetFlexibleDirection( wxBOTH ); - fgSizerTranslResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_left_message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message1->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message1->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_left_message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message2->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message2->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_left_message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message3->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message3->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_left_message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message4->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message4, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message4->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message4, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_left_message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message5->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT, 5 ); - - m_Message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message5->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message5, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_left_message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message6->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message6, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message6->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message6, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_left_message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message7->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message7, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - m_Message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message7->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message7, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_left_message8 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_left_message8->Wrap( -1 ); - fgSizerTranslResults->Add( m_left_message8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 ); - - m_Message8 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Message8->Wrap( -1 ); - fgSizerTranslResults->Add( m_Message8, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - - sbMessagesSizer->Add( fgSizerTranslResults, 1, wxEXPAND, 5 ); - - - bRightSizer->Add( sbMessagesSizer, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_buttonTransLineReset = new wxButton( m_panelTransline, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 ); - bRightSizer->Add( m_buttonTransLineReset, 0, wxALIGN_RIGHT|wxALL, 5 ); - - - bSizeTransline->Add( bRightSizer, 1, wxEXPAND, 5 ); - - - m_panelTransline->SetSizer( bSizeTransline ); - m_panelTransline->Layout(); - bSizeTransline->Fit( m_panelTransline ); + m_panelTransline = new PANEL_TRANSLINE( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); 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 ); @@ -503,22 +44,12 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow this->SetSizer( bmainFrameSizer ); this->Layout(); - bmainFrameSizer->Fit( this ); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PCB_CALCULATOR_FRAME_BASE::OnClosePcbCalc ) ); this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PCB_CALCULATOR_FRAME_BASE::OnUpdateUI ) ); - m_TranslineSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this ); - m_button_EpsilonR->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineEpsilonR_Button ), NULL, this ); - m_button_TanD->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineTanD_Button ), NULL, this ); - m_button_Rho->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineRho_Button ), NULL, this ); - m_bpButtonAnalyze->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this ); - m_AnalyseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this ); - 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 ); } PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE() @@ -526,14 +57,5 @@ PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE() // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PCB_CALCULATOR_FRAME_BASE::OnClosePcbCalc ) ); this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PCB_CALCULATOR_FRAME_BASE::OnUpdateUI ) ); - m_TranslineSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this ); - m_button_EpsilonR->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineEpsilonR_Button ), NULL, this ); - m_button_TanD->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineTanD_Button ), NULL, this ); - m_button_Rho->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineRho_Button ), NULL, this ); - m_bpButtonAnalyze->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this ); - m_AnalyseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this ); - 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 ); } diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp index c489bc2d67..905fe7470f 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp @@ -45,7 +45,7 @@ PCB_CALCULATOR_FRAME_BASE - -1,-1 + 646,361 wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER KIWAY_PLAYER; kiway_player.h PCB Calculator @@ -418,5170 +418,12 @@ Resizable 1 - + PANEL_TRANSLINE; panel_transline.h; Not forward_declare 0 wxTAB_TRAVERSAL - - - bSizeTransline - wxHORIZONTAL - none - - 5 - wxEXPAND - 0 - - - bLeftSizer - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Microstrip Line" "Coplanar wave guide" "Coplanar wave guide w/ ground plane" "Rectangular Waveguide" "Coaxial Line" "Coupled Microstrip Line" "Stripline" "Twisted Pair" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Transmission Line Type - 1 - - 0 - - - 0 - - 1 - m_TranslineSelection - 1 - - - protected - 1 - - Resizable - 2 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineSelection - - - - 5 - wxEXPAND - 0 - - 5 - protected - 0 - - - - 10 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_translineBitmap - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - - bMiddleSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxBOTTOM - 0 - - wxID_ANY - Substrate Parameters - - sbSubstrateBoxSizer - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxBOTTOM - 1 - - 3 - wxBOTH - 1 - - 0 - - fgSizerSubstPrms - wxFLEX_GROWMODE_SPECIFIED - none - 9 - 3 - - 5 - wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Er: - 0 - - 0 - - - 0 - - 1 - m_EpsilonR_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxEXPAND - 1 - - - bSizer441 - wxHORIZONTAL - none - - 5 - wxEXPAND|wxLEFT - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Value_EpsilonR - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - ... - - 0 - - 0 - - - 0 - - 1 - m_button_EpsilonR - 1 - - - protected - 1 - - - - Resizable - 1 - - wxBU_EXACTFIT - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineEpsilonR_Button - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Tan delta: - 0 - - 0 - - - 0 - - 1 - m_TanD_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxEXPAND - 1 - - - bSizer442 - wxHORIZONTAL - none - - 5 - wxEXPAND|wxLEFT - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Value_TanD - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - ... - - 0 - - 0 - - - 0 - - 1 - m_button_TanD - 1 - - - protected - 1 - - - - Resizable - 1 - - wxBU_EXACTFIT - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineTanD_Button - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rho: - 0 - - 0 - - - 0 - - 1 - m_Rho_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Specific resistance in ohms * meters - - - - -1 - - - - 5 - wxEXPAND - 1 - - - bSizer443 - wxHORIZONTAL - none - - 5 - wxEXPAND|wxLEFT - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Value_Rho - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - ... - - 0 - - 0 - - - 0 - - 1 - m_button_Rho - 1 - - - protected - 1 - - - - Resizable - 1 - - wxBU_EXACTFIT - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineRho_Button - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - H: - 0 - - 0 - - - 0 - - 1 - m_substrate_prm4_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Substrate_prm4_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_SubsPrm4_choiceUnit - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - H_t: - 0 - - 0 - - - 0 - - 1 - m_substrate_prm5_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Substrate_prm5_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_SubsPrm5_choiceUnit - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - T: - 0 - - 0 - - - 0 - - 1 - m_substrate_prm6_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Substrate_prm6_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_SubsPrm6_choiceUnit - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rough: - 0 - - 0 - - - 0 - - 1 - m_substrate_prm7_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Substrate_prm7_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_SubsPrm7_choiceUnit - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Insulator mu: - 0 - - 0 - - - 0 - - 1 - m_substrate_prm8_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Substrate_prm8_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_SubsPrm8_choiceUnit - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Conductor mu: - 0 - - 0 - - - 0 - - 1 - m_substrate_prm9_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Substrate_prm9_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_SubsPrm9_choiceUnit - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 5 - wxEXPAND|wxTOP - 0 - - wxID_ANY - Component Parameters - - sbCmpPrmsSizer - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxBOTTOM - 0 - - 3 - wxBOTH - 1 - - 0 - - fgSizeCmpPrms - wxFLEX_GROWMODE_SPECIFIED - none - 1 - 0 - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Frequency: - 0 - - 0 - - - 0 - - 1 - m_Frequency_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|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_Value_Frequency_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_Frequency - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_FREQUENCY; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 1 - - - bSizerHelpBitmaps - wxVERTICAL - none - - 10 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_bmCMicrostripZoddZeven - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - - - - - - 5 - wxEXPAND - 0 - - 2 - wxBOTH - 0,1 - - 15 - - m_fgSizerZcomment - wxFLEX_GROWMODE_SPECIFIED - protected - 0 - 0 - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,93,92,-1,70,0 - 0 - 0 - wxID_ANY - Zdiff = 2*Z0( (1 - 0.48exp( -0.96*S/H ) ) - 0 - - 0 - - - 0 - - 1 - m_staticTextZdiff - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,93,92,-1,70,0 - 0 - 0 - wxID_ANY - Zcommon = Zeven / 2 - 0 - - 0 - - - 0 - - 1 - m_staticTextZcommon - 1 - - - protected - 1 - - Resizable - 1 - - wxALIGN_CENTER_HORIZONTAL - - 0 - - - - - -1 - - - - - - - - - - 5 - wxEXPAND - 1 - - - bRightSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Physical Parameters - - btranslineRightSizer - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxBOTTOM - 0 - - 4 - wxBOTH - 1 - - 0 - - fgSizerPhysPrms - wxFLEX_GROWMODE_SPECIFIED - none - 4 - 3 - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_phys_prm1_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Phys_prm1_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_Param1 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_radioBtnPrm1 - 1 - - - protected - 1 - - Resizable - 1 - - wxRB_GROUP - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 0 - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_phys_prm2_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Phys_prm2_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_Param2 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_radioBtnPrm2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 0 - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_phys_prm3_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Phys_prm3_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_Param3 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_LEN; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - - 0 - - 0 - protected - 0 - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - btranslineButtonsSizer - wxVERTICAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - bSizerButtons - wxHORIZONTAL - none - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - Analyze - - 0 - - 0 - - - 0 - - 1 - m_bpButtonAnalyze - 1 - - - protected - 1 - - - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineAnalyse - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - Analyze - - 0 - - 0 - - - 0 - - 1 - m_AnalyseButton - 1 - - - protected - 1 - - - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineAnalyse - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - Synthesize - - 0 - - 0 - - - 0 - - 1 - m_SynthetizeButton - 1 - - - protected - 1 - - - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineSynthetize - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - Synthetize - - 0 - - 0 - - - 0 - - 1 - m_bpButtonSynthetize - 1 - - - protected - 1 - - - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTranslineSynthetize - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Electrical Parameters - - sbElectricalResultsSizer - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxBOTTOM - 0 - - 3 - wxBOTH - 1 - - 0 - - fgSizerResults - wxFLEX_GROWMODE_SPECIFIED - none - 3 - 3 - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Z: - 0 - - 0 - - - 0 - - 1 - m_elec_prm1_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Elec_prm1_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_ElecPrm1 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_RESISTOR; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Z: - 0 - - 0 - - - 0 - - 1 - m_elec_prm2_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Elec_prm2_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_ElecPrm2 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_RESISTOR; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Angle: - 0 - - 0 - - - 0 - - 1 - m_elec_prm3_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_Elec_prm3_Value - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceUnit_ElecPrm3 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - UNIT_SELECTOR_ANGLE; widgets/unit_selector.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 1 - - wxID_ANY - Results - - sbMessagesSizer - wxVERTICAL - 1 - none - - 5 - wxEXPAND - 1 - - 2 - wxBOTH - 1 - - 0 - - fgSizerTranslResults - wxFLEX_GROWMODE_SPECIFIED - none - 8 - 0 - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_left_message1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 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_Message1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_left_message2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 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_Message2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_left_message3 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 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_Message3 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_left_message4 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 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_Message4 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT - 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_left_message5 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 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_Message5 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_left_message6 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 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_Message6 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 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_left_message7 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxRIGHT|wxLEFT|wxEXPAND - 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_Message7 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT - 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_left_message8 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; Not forward_declare - 0 - - - - - -1 - - - - 5 - wxEXPAND|wxLEFT|wxRIGHT - 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_Message8 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; Not forward_declare - 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_buttonTransLineReset - 1 - - - protected - 1 - - - - Resizable - 1 - - - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTransLineResetButtonClick - - - - - diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.h b/pcb_calculator/dialogs/pcb_calculator_frame_base.h index 1edbdeaa47..dbc9e000c5 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.h +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.h @@ -10,15 +10,11 @@ #include #include #include -class UNIT_SELECTOR_ANGLE; -class UNIT_SELECTOR_FREQUENCY; -class UNIT_SELECTOR_LEN; -class UNIT_SELECTOR_RESISTOR; - #include "panel_regulator.h" #include "panel_attenuators.h" #include "panel_eserie.h" #include "panel_color_code.h" +#include "panel_transline.h" #include "panel_via_size.h" #include "panel_track_width.h" #include "panel_electrical_spacing.h" @@ -34,17 +30,8 @@ class UNIT_SELECTOR_RESISTOR; #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include #include /////////////////////////////////////////////////////////////////////////// @@ -64,84 +51,7 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER PANEL_ATTENUATORS* m_panelAttenuators; PANEL_E_SERIE* m_panelESeries; PANEL_COLOR_CODE* m_panelColorCode; - wxPanel* m_panelTransline; - wxRadioBox* m_TranslineSelection; - wxStaticBitmap* m_translineBitmap; - wxStaticText* m_EpsilonR_label; - wxTextCtrl* m_Value_EpsilonR; - wxButton* m_button_EpsilonR; - wxStaticText* m_TanD_label; - wxTextCtrl* m_Value_TanD; - wxButton* m_button_TanD; - wxStaticText* m_Rho_label; - wxTextCtrl* m_Value_Rho; - wxButton* m_button_Rho; - wxStaticText* m_substrate_prm4_label; - wxTextCtrl* m_Substrate_prm4_Value; - UNIT_SELECTOR_LEN* m_SubsPrm4_choiceUnit; - wxStaticText* m_substrate_prm5_label; - wxTextCtrl* m_Substrate_prm5_Value; - UNIT_SELECTOR_LEN* m_SubsPrm5_choiceUnit; - wxStaticText* m_substrate_prm6_label; - wxTextCtrl* m_Substrate_prm6_Value; - UNIT_SELECTOR_LEN* m_SubsPrm6_choiceUnit; - wxStaticText* m_substrate_prm7_label; - wxTextCtrl* m_Substrate_prm7_Value; - UNIT_SELECTOR_LEN* m_SubsPrm7_choiceUnit; - wxStaticText* m_substrate_prm8_label; - wxTextCtrl* m_Substrate_prm8_Value; - UNIT_SELECTOR_LEN* m_SubsPrm8_choiceUnit; - wxStaticText* m_substrate_prm9_label; - wxTextCtrl* m_Substrate_prm9_Value; - UNIT_SELECTOR_LEN* m_SubsPrm9_choiceUnit; - wxStaticText* m_Frequency_label; - wxTextCtrl* m_Value_Frequency_Ctrl; - UNIT_SELECTOR_FREQUENCY* m_choiceUnit_Frequency; - wxStaticBitmap* m_bmCMicrostripZoddZeven; - wxFlexGridSizer* m_fgSizerZcomment; - wxStaticText* m_staticTextZdiff; - wxStaticText* m_staticTextZcommon; - wxStaticText* m_phys_prm1_label; - wxTextCtrl* m_Phys_prm1_Value; - UNIT_SELECTOR_LEN* m_choiceUnit_Param1; - wxRadioButton* m_radioBtnPrm1; - wxStaticText* m_phys_prm2_label; - wxTextCtrl* m_Phys_prm2_Value; - UNIT_SELECTOR_LEN* m_choiceUnit_Param2; - wxRadioButton* m_radioBtnPrm2; - wxStaticText* m_phys_prm3_label; - wxTextCtrl* m_Phys_prm3_Value; - UNIT_SELECTOR_LEN* m_choiceUnit_Param3; - wxBitmapButton* m_bpButtonAnalyze; - wxButton* m_AnalyseButton; - wxButton* m_SynthetizeButton; - wxBitmapButton* m_bpButtonSynthetize; - wxStaticText* m_elec_prm1_label; - wxTextCtrl* m_Elec_prm1_Value; - UNIT_SELECTOR_RESISTOR* m_choiceUnit_ElecPrm1; - wxStaticText* m_elec_prm2_label; - wxTextCtrl* m_Elec_prm2_Value; - UNIT_SELECTOR_RESISTOR* m_choiceUnit_ElecPrm2; - wxStaticText* m_elec_prm3_label; - wxTextCtrl* m_Elec_prm3_Value; - UNIT_SELECTOR_ANGLE* m_choiceUnit_ElecPrm3; - wxStaticText* m_left_message1; - wxStaticText* m_Message1; - wxStaticText* m_left_message2; - wxStaticText* m_Message2; - wxStaticText* m_left_message3; - wxStaticText* m_Message3; - wxStaticText* m_left_message4; - wxStaticText* m_Message4; - wxStaticText* m_left_message5; - wxStaticText* m_Message5; - wxStaticText* m_left_message6; - wxStaticText* m_Message6; - wxStaticText* m_left_message7; - wxStaticText* m_Message7; - wxStaticText* m_left_message8; - wxStaticText* m_Message8; - wxButton* m_buttonTransLineReset; + PANEL_TRANSLINE* m_panelTransline; PANEL_VIA_SIZE* m_panelViaSize; PANEL_TRACK_WIDTH* m_panelTrackWidth; PANEL_ELECTRICAL_SPACING* m_panelElectricalSpacing; @@ -150,18 +60,11 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER // Virtual event handlers, overide them in your derived class virtual void OnClosePcbCalc( wxCloseEvent& event ) { event.Skip(); } virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); } - virtual void OnTranslineSelection( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTranslineEpsilonR_Button( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTranslineTanD_Button( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTranslineRho_Button( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTranslineAnalyse( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTranslineSynthetize( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTransLineResetButtonClick( wxCommandEvent& event ) { event.Skip(); } public: - PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("PCB Calculator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL, const wxString& name = wxT("pcb_calculator") ); + PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("PCB Calculator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 646,361 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL, const wxString& name = wxT("pcb_calculator") ); ~PCB_CALCULATOR_FRAME_BASE(); diff --git a/pcb_calculator/panel_eserie.cpp b/pcb_calculator/panel_eserie.cpp index ad48177525..2a8d8bf504 100644 --- a/pcb_calculator/panel_eserie.cpp +++ b/pcb_calculator/panel_eserie.cpp @@ -27,7 +27,6 @@ #include #include "pcb_calculator_settings.h" #include -//#include #include // For _HKI definition wxString eseries_help = diff --git a/pcb_calculator/panel_regulator.cpp b/pcb_calculator/panel_regulator.cpp index 017ed320e9..c604c17afa 100644 --- a/pcb_calculator/panel_regulator.cpp +++ b/pcb_calculator/panel_regulator.cpp @@ -26,16 +26,19 @@ #include #include "class_regulator_data.h" -#include "pcb_calculator_frame.h" #include "pcb_calculator_settings.h" #include "dialogs/dialog_regulator_form.h" -#include "../dialogs/panel_regulator.h" +#include "dialogs/panel_regulator.h" #include extern double DoubleFromString( const wxString& TextValue ); +// extension of pcb_calculator data filename: +static const wxString DataFileNameExt( wxT( "pcbcalc" ) ); + + PANEL_REGULATOR::PANEL_REGULATOR( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : diff --git a/pcb_calculator/panel_track_width.cpp b/pcb_calculator/panel_track_width.cpp index c96e633b2f..ca0e7a354a 100644 --- a/pcb_calculator/panel_track_width.cpp +++ b/pcb_calculator/panel_track_width.cpp @@ -29,7 +29,6 @@ #include #include -//#include "pcb_calculator_frame.h" #include "pcb_calculator_settings.h" #include "units_scales.h" #include diff --git a/pcb_calculator/panel_transline.cpp b/pcb_calculator/panel_transline.cpp new file mode 100644 index 0000000000..098327ab82 --- /dev/null +++ b/pcb_calculator/panel_transline.cpp @@ -0,0 +1,105 @@ +/* + * This program source code file is part of KICAD, a free EDA CAD application. + * + * Copyright (C) 2011 jean-pierre.charras + * 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 . + */ + + +#include +#include "pcb_calculator_settings.h" +#include + + +PANEL_TRANSLINE::PANEL_TRANSLINE( wxWindow* parent, wxWindowID id, + const wxPoint& pos, const wxSize& size, + long style, const wxString& name ) : + PANEL_TRANSLINE_BASE( parent, id, pos, size, style, name ) +{ + m_currTransLine = nullptr; + m_currTransLineType = DEFAULT_TYPE; + + m_bpButtonAnalyze->SetBitmap( KiBitmap( BITMAPS::small_down ) ); + m_bpButtonSynthetize->SetBitmap( KiBitmap( BITMAPS::small_up ) ); + + + // Populate transline list ordered like in dialog menu list + const static TRANSLINE_TYPE_ID tltype_list[8] = + { + MICROSTRIP_TYPE, + CPW_TYPE, + GROUNDED_CPW_TYPE, + RECTWAVEGUIDE_TYPE, + COAX_TYPE, + C_MICROSTRIP_TYPE, + STRIPLINE_TYPE, + TWISTEDPAIR_TYPE + }; + + for( int ii = 0; ii < 8; ii++ ) + m_transline_list.push_back( new TRANSLINE_IDENT( tltype_list[ii] ) ); + + m_EpsilonR_label->SetLabel( wxT( "εr" ) ); +} + + +PANEL_TRANSLINE::~PANEL_TRANSLINE() +{ + for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) + delete m_transline_list[ii]; +} + + +void PANEL_TRANSLINE::SaveSettings( PCB_CALCULATOR_SETTINGS* aCfg ) +{ + aCfg->m_TransLine.type = m_currTransLineType; + + for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) + m_transline_list[ii]->WriteConfig(); +} + + +void PANEL_TRANSLINE::LoadSettings( PCB_CALCULATOR_SETTINGS* aCfg ) +{ + m_currTransLineType = static_cast( aCfg->m_TransLine.type ); + + for( TRANSLINE_IDENT* transline : m_transline_list ) + transline->ReadConfig(); + + TranslineTypeSelection( m_currTransLineType ); + m_TranslineSelection->SetSelection( m_currTransLineType ); +} + + + +void PANEL_TRANSLINE::OnTranslineAnalyse( wxCommandEvent& event ) +{ + if( m_currTransLine ) + { + TransfDlgDataToTranslineParams(); + m_currTransLine->analyze(); + } +} + + +void PANEL_TRANSLINE::OnTranslineSynthetize( wxCommandEvent& event ) +{ + if( m_currTransLine ) + { + TransfDlgDataToTranslineParams(); + m_currTransLine->synthesize(); + } +} diff --git a/pcb_calculator/panel_via_size.cpp b/pcb_calculator/panel_via_size.cpp index 55ca3c36ae..6e19574ab9 100644 --- a/pcb_calculator/panel_via_size.cpp +++ b/pcb_calculator/panel_via_size.cpp @@ -45,12 +45,9 @@ #include #include -//#include #include -#include "attenuators/attenuator_classes.h" #include "common_data.h" -//#include "pcb_calculator_frame.h" #include "pcb_calculator_settings.h" #include "units_scales.h" #include "panel_via_size.h" diff --git a/pcb_calculator/params_read_write.cpp b/pcb_calculator/params_read_write.cpp index e1441de0de..7d1c2511a2 100644 --- a/pcb_calculator/params_read_write.cpp +++ b/pcb_calculator/params_read_write.cpp @@ -23,6 +23,7 @@ #include #include "pcb_calculator_frame.h" +#include "panel_transline.h" #include "transline/transline.h" /* @@ -78,55 +79,57 @@ double DoubleFromString( const wxString& TextValue ) } +// A helper function to get a reference to the PANEL_TRANSLINE +PANEL_TRANSLINE* getTranslinePanel() +{ + PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); + return frame->GetPanelTransline(); +} + + // Functions to Read/Write parameters in pcb_calculator main frame: // They are only wrapper to actual functions, so all transline functions do not // depend on Graphic User Interface void SetPropertyInDialog( enum PRMS_ID aPrmId, double value ) { - PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); - frame->SetPrmValue( aPrmId, value ); + getTranslinePanel()->SetPrmValue( aPrmId, value ); } void SetPropertyBgColorInDialog( enum PRMS_ID aPrmId, const KIGFX::COLOR4D* aCol ) { - PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); - frame->SetPrmBgColor( aPrmId, aCol ); + getTranslinePanel()->SetPrmBgColor( aPrmId, aCol ); } /* Puts the text into the given result line. */ void SetResultInDialog( int line, const char* aText ) { - PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); - wxString msg = wxString::FromUTF8( aText ); - frame->SetResult( line, msg ); + wxString msg = wxString::FromUTF8( aText ); + getTranslinePanel()->SetResult( line, msg ); } /* print aValue into the given result line. */ void SetResultInDialog( int aLineNumber, double aValue, const char* aText ) { - PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); wxString msg = wxString::FromUTF8( aText ); wxString fullmsg; fullmsg.Printf( wxT( "%g " ), aValue ); fullmsg += msg; - frame->SetResult( aLineNumber, fullmsg ); + getTranslinePanel()->SetResult( aLineNumber, fullmsg ); } /* Returns a named property value. */ double GetPropertyInDialog( enum PRMS_ID aPrmId ) { - PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); - return frame->GetPrmValue( aPrmId ); + return getTranslinePanel()->GetPrmValue( aPrmId ); } // Returns true if the param aPrmId is selected // Has meaning only for params that have a radio button bool IsSelectedInDialog( enum PRMS_ID aPrmId ) { - PCB_CALCULATOR_FRAME* frame = (PCB_CALCULATOR_FRAME*) wxTheApp->GetTopWindow(); - return frame->IsPrmSelected( aPrmId ); + return getTranslinePanel()->IsPrmSelected( aPrmId ); } @@ -136,7 +139,7 @@ bool IsSelectedInDialog( enum PRMS_ID aPrmId ) * @param aPrmId = param id to write * @return the value always in normalized unit (meter, Hz, Ohm, radian) */ -double PCB_CALCULATOR_FRAME::GetPrmValue( enum PRMS_ID aPrmId ) const +double PANEL_TRANSLINE::GetPrmValue( enum PRMS_ID aPrmId ) const { TRANSLINE_IDENT* tr_ident = m_transline_list[m_currTransLineType]; for( unsigned ii = 0; ii < tr_ident->GetPrmsCount(); ii++ ) @@ -154,7 +157,7 @@ double PCB_CALCULATOR_FRAME::GetPrmValue( enum PRMS_ID aPrmId ) const * @param aPrmId = param id to write * @param aValue = value to write */ -void PCB_CALCULATOR_FRAME::SetPrmValue( enum PRMS_ID aPrmId, double aValue ) +void PANEL_TRANSLINE::SetPrmValue( enum PRMS_ID aPrmId, double aValue ) { TRANSLINE_IDENT* tr_ident = m_transline_list[m_currTransLineType]; for( unsigned ii = 0; ii < tr_ident->GetPrmsCount(); ii++ ) @@ -180,7 +183,7 @@ void PCB_CALCULATOR_FRAME::SetPrmValue( enum PRMS_ID aPrmId, double aValue ) * @param aPrmId = @ref PRMS_ID of the parameter * @param aCol = color ( @ref KIGFX::COLOR4D * ) */ -void PCB_CALCULATOR_FRAME::SetPrmBgColor( enum PRMS_ID aPrmId, const KIGFX::COLOR4D* aCol ) +void PANEL_TRANSLINE::SetPrmBgColor( enum PRMS_ID aPrmId, const KIGFX::COLOR4D* aCol ) { wxColour wxcol = wxColour( static_cast( aCol->r * 255 ), static_cast( aCol->g * 255 ), @@ -214,7 +217,7 @@ void PCB_CALCULATOR_FRAME::SetPrmBgColor( enum PRMS_ID aPrmId, const KIGFX::COLO * @param aLineNumber = the line (0 to MSG_CNT_MAX-1) wher to display the text * @param aText = the text to display */ -void PCB_CALCULATOR_FRAME::SetResult( int aLineNumber, const wxString& aText ) +void PANEL_TRANSLINE::SetResult( int aLineNumber, const wxString& aText ) { #define MSG_CNT_MAX 8 wxStaticText* messages[MSG_CNT_MAX] = @@ -238,7 +241,7 @@ void PCB_CALCULATOR_FRAME::SetResult( int aLineNumber, const wxString& aText ) * @return true if the param aPrmId is selected * Has meaning only for params that have a radio button */ -bool PCB_CALCULATOR_FRAME::IsPrmSelected( enum PRMS_ID aPrmId ) const +bool PANEL_TRANSLINE::IsPrmSelected( enum PRMS_ID aPrmId ) const { switch( aPrmId ) { diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index 9dd8fd646f..dc2d751b3d 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -26,50 +26,20 @@ #include "pcb_calculator_settings.h" -// extension of pcb_calculator data filename: -const wxString DataFileNameExt( wxT( "pcbcalc" ) ); - - PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) : PCB_CALCULATOR_FRAME_BASE( aParent ), m_lastNotebookPage( -1 ), m_macHack( true ) { - m_bpButtonAnalyze->SetBitmap( KiBitmap( BITMAPS::small_down ) ); - m_bpButtonSynthetize->SetBitmap( KiBitmap( BITMAPS::small_up ) ); - SetKiway( this, aKiway ); - m_currTransLine = nullptr; - m_currTransLineType = DEFAULT_TYPE; SHAPE_POLY_SET dummy; // A ugly trick to force the linker to include // some methods in code and avoid link errors - // Populate transline list ordered like in dialog menu list - const static TRANSLINE_TYPE_ID tltype_list[8] = - { - MICROSTRIP_TYPE, - CPW_TYPE, - GROUNDED_CPW_TYPE, - RECTWAVEGUIDE_TYPE, - COAX_TYPE, - C_MICROSTRIP_TYPE, - STRIPLINE_TYPE, - TWISTEDPAIR_TYPE - }; - - for( int ii = 0; ii < 8; ii++ ) - m_transline_list.push_back( new TRANSLINE_IDENT( tltype_list[ii] ) ); - - m_EpsilonR_label->SetLabel( wxT( "εr" ) ); - LoadSettings( config() ); m_panelRegulators->ReadDataFile(); - TranslineTypeSelection( m_currTransLineType ); - m_TranslineSelection->SetSelection( m_currTransLineType ); - // Give an icon wxIcon icon; wxIconBundle icon_bundle; @@ -95,9 +65,6 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) : PCB_CALCULATOR_FRAME::~PCB_CALCULATOR_FRAME() { - for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) - delete m_transline_list[ii]; - // This needed for OSX: avoids further OnDraw processing after this destructor and before // the native window is destroyed this->Freeze(); @@ -112,9 +79,9 @@ void PCB_CALCULATOR_FRAME::OnUpdateUI( wxUpdateUIEvent& event ) // This is getting seriously ridiculous.... wxCommandEvent event2( wxEVT_RADIOBUTTON ); - event2.SetEventObject( m_TranslineSelection ); - event2.SetInt( m_currTransLineType ); - m_TranslineSelection->Command( event2 ); + event2.SetEventObject( m_panelTransline->GetTranslineSelector() ); + event2.SetInt( m_panelTransline->GetCurrTransLineType() ); + m_panelTransline->GetTranslineSelector()->Command( event2 ); for( int i = 0; i < m_panelAttenuators->m_AttenuatorList.size(); ++i ) { @@ -204,9 +171,10 @@ void PCB_CALCULATOR_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) PCB_CALCULATOR_SETTINGS* cfg = static_cast( aCfg ); - m_currTransLineType = static_cast( cfg->m_TransLine.type ); m_Notebook->ChangeSelection( cfg->m_LastPage ); + m_panelTransline->LoadSettings( cfg ); + // Attenuators panel config: m_panelAttenuators->LoadSettings( cfg ); @@ -216,9 +184,6 @@ void PCB_CALCULATOR_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) // color panel config: m_panelColorCode->LoadSettings( cfg ); - for( TRANSLINE_IDENT* transline : m_transline_list ) - transline->ReadConfig(); - m_panelViaSize->LoadSettings( cfg ); m_panelTrackWidth->LoadSettings( cfg ); m_panelElectricalSpacing->LoadSettings( cfg ); @@ -240,8 +205,8 @@ void PCB_CALCULATOR_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg ) if( cfg ) { cfg->m_LastPage = m_Notebook->GetSelection(); - cfg->m_TransLine.type = m_currTransLineType; + m_panelTransline->SaveSettings( cfg ); m_panelRegulators->Regulators_WriteConfig( cfg ); m_panelAttenuators->SaveSettings( cfg ); m_panelColorCode->SaveSettings( cfg ); @@ -251,27 +216,4 @@ void PCB_CALCULATOR_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg ) m_panelBoardClass->SaveSettings( cfg ); } - - for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) - m_transline_list[ii]->WriteConfig(); -} - - -void PCB_CALCULATOR_FRAME::OnTranslineAnalyse( wxCommandEvent& event ) -{ - if( m_currTransLine ) - { - TransfDlgDataToTranslineParams(); - m_currTransLine->analyze(); - } -} - - -void PCB_CALCULATOR_FRAME::OnTranslineSynthetize( wxCommandEvent& event ) -{ - if( m_currTransLine ) - { - TransfDlgDataToTranslineParams(); - m_currTransLine->synthesize(); - } } diff --git a/pcb_calculator/pcb_calculator_frame.h b/pcb_calculator/pcb_calculator_frame.h index 48a8815769..51084ce03f 100644 --- a/pcb_calculator/pcb_calculator_frame.h +++ b/pcb_calculator/pcb_calculator_frame.h @@ -20,17 +20,11 @@ #ifndef PCB_CALCULATOR_H #define PCB_CALCULATOR_H -#include "transline/transline.h" // Included for SUBST_PRMS_ID definition. -#include "transline_ident.h" #include "pcb_calculator_frame_base.h" -#include "attenuators/attenuator_classes.h" - -extern const wxString PcbCalcDataFileExt; - class APP_SETTINGS_BASE; class KIWAY; -class PCB_CALCULATOR_SETTINGS; +class PANEL_TRANSLINE; /** @@ -42,49 +36,15 @@ public: PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ); ~PCB_CALCULATOR_FRAME(); - /** - * Read/write params values and results. - * - * @param aPrmId is the parameter id to write. - * @param aValue is the value to write. - */ - void SetPrmValue( enum PRMS_ID aPrmId, double aValue ); - - /** - * Put the text into the given result line. - * - * @param aLineNumber is the line (0 to 5) where to display the text. - * @param aText is the text to display. - */ - void SetResult( int aLineNumber, const wxString& aText ); - - /** - * Set the background color of a parameter. - * - * @param aPrmId is the parameter id to set. - * @param aCol is the new color. - */ - void SetPrmBgColor( enum PRMS_ID aPrmId, const KIGFX::COLOR4D* aCol ); - - /** - * Return a param value. - * - * @param aPrmId is the parameter id to write. - * @return the value always in normalized unit (meter, Hz, Ohm, radian). - */ - double GetPrmValue( enum PRMS_ID aPrmId ) const; - - /** - * @return true if the parameter aPrmId is selected. - */ - bool IsPrmSelected( enum PRMS_ID aPrmId ) const; - - // Calculator doesn't host a tool framework + // Pcb calculator doesn't host a tool framework wxWindow* GetToolCanvas() const override { return nullptr; } + // Accessor: + PANEL_TRANSLINE* GetPanelTransline() { return m_panelTransline; } + private: // Event handlers void OnClosePcbCalc( wxCloseEvent& event ) override; @@ -95,67 +55,7 @@ private: void LoadSettings( APP_SETTINGS_BASE* aCfg ) override; void SaveSettings( APP_SETTINGS_BASE* aCfg ) override; - /** - * Called on new transmission line selection. - */ - void OnTranslineSelection( wxCommandEvent& event ) override; - - /** - * Called when the user clicks the reset button; sets the parameters to their default values. - */ - void OnTransLineResetButtonClick( wxCommandEvent& event ) override; - - /** - * Run a new analyze for the current transline with current parameters and displays the - * electrical parameters. - */ - void OnTranslineAnalyse( wxCommandEvent& event ) override; - - /** - * Run a new synthesis for the current transline with current parameters and displays the - * geometrical parameters. - */ - void OnTranslineSynthetize( wxCommandEvent& event ) override; - - /** - * Shows a list of current relative dielectric constant(Er) and set the selected value in - * main dialog frame. - */ - void OnTranslineEpsilonR_Button( wxCommandEvent& event ) override; - - /** - * Show a list of current dielectric loss factor (tangent delta) and set the selected value - * in main dialog frame. - */ - void OnTranslineTanD_Button( wxCommandEvent& event ) override; - - /** - * Show a list of current Specific resistance list (rho) and set the selected value in main - * dialog frame. - */ - void OnTranslineRho_Button( wxCommandEvent& event ) override; - - /** - * Must be called after selection of a new transline. - * - * Update all values, labels and tool tips of parameters needed by the new transline; - * irrelevant parameters are blanked. - * - * @param aType is the #TRANSLINE_TYPE_ID of the new selected transmission line. - */ - void TranslineTypeSelection( enum TRANSLINE_TYPE_ID aType ); - - /** - * Read values entered in dialog frame, and transfer these values in current transline - * parameters, converted in normalized units. - */ - void TransfDlgDataToTranslineParams(); - private: - enum TRANSLINE_TYPE_ID m_currTransLineType; - TRANSLINE* m_currTransLine; - std::vector m_transline_list; - int m_lastNotebookPage; bool m_macHack; }; diff --git a/pcb_calculator/transline_dlg_funct.cpp b/pcb_calculator/transline_dlg_funct.cpp index 8501ac56e9..1bc07a7ea8 100644 --- a/pcb_calculator/transline_dlg_funct.cpp +++ b/pcb_calculator/transline_dlg_funct.cpp @@ -23,7 +23,8 @@ #include #include "common_data.h" -#include "pcb_calculator_frame.h" +#include "panel_transline.h" +#include extern double DoubleFromString( const wxString& TextValue ); @@ -108,7 +109,7 @@ static bool findMatch( wxArrayString& aList, const wxString& aValue, int& aIdx ) } -void PCB_CALCULATOR_FRAME::OnTranslineEpsilonR_Button( wxCommandEvent& event ) +void PANEL_TRANSLINE::OnTranslineEpsilonR_Button( wxCommandEvent& event ) { wxArrayString list = StandardRelativeDielectricConstantList(); list.Add( "" ); // Add an empty line for no selection @@ -126,7 +127,7 @@ void PCB_CALCULATOR_FRAME::OnTranslineEpsilonR_Button( wxCommandEvent& event ) } -void PCB_CALCULATOR_FRAME::OnTranslineTanD_Button( wxCommandEvent& event ) +void PANEL_TRANSLINE::OnTranslineTanD_Button( wxCommandEvent& event ) { wxArrayString list = StandardLossTangentList(); list.Add( "" ); // Add an empty line for no selection @@ -144,7 +145,7 @@ void PCB_CALCULATOR_FRAME::OnTranslineTanD_Button( wxCommandEvent& event ) } -void PCB_CALCULATOR_FRAME::OnTranslineRho_Button( wxCommandEvent& event ) +void PANEL_TRANSLINE::OnTranslineRho_Button( wxCommandEvent& event ) { wxArrayString list = StandardResistivityList(); list.Add( "" ); // Add an empty line for no selection @@ -171,7 +172,7 @@ struct DLG_PRM_DATA }; -void PCB_CALCULATOR_FRAME::TranslineTypeSelection( enum TRANSLINE_TYPE_ID aType ) +void PANEL_TRANSLINE::TranslineTypeSelection( enum TRANSLINE_TYPE_ID aType ) { m_currTransLineType = aType; @@ -393,7 +394,7 @@ void PCB_CALCULATOR_FRAME::TranslineTypeSelection( enum TRANSLINE_TYPE_ID aType } -void PCB_CALCULATOR_FRAME::TransfDlgDataToTranslineParams() +void PANEL_TRANSLINE::TransfDlgDataToTranslineParams() { TRANSLINE_IDENT* tr_ident = m_transline_list[m_currTransLineType]; @@ -417,7 +418,7 @@ void PCB_CALCULATOR_FRAME::TransfDlgDataToTranslineParams() } -void PCB_CALCULATOR_FRAME::OnTranslineSelection( wxCommandEvent& event ) +void PANEL_TRANSLINE::OnTranslineSelection( wxCommandEvent& event ) { enum TRANSLINE_TYPE_ID id = (enum TRANSLINE_TYPE_ID) event.GetSelection(); @@ -425,16 +426,16 @@ void PCB_CALCULATOR_FRAME::OnTranslineSelection( wxCommandEvent& event ) // Texts and units choice widgets can have their size modified: // The new size must be taken in account - m_panelTransline->GetSizer()->Layout(); - m_panelTransline->Refresh(); + GetSizer()->Layout(); + Refresh(); } -void PCB_CALCULATOR_FRAME::OnTransLineResetButtonClick( wxCommandEvent& event ) +void PANEL_TRANSLINE::OnTransLineResetButtonClick( wxCommandEvent& event ) { TranslineTypeSelection( DEFAULT_TYPE ); m_TranslineSelection->SetSelection( DEFAULT_TYPE ); - m_panelTransline->GetSizer()->Layout(); - m_panelTransline->Refresh(); + GetSizer()->Layout(); + Refresh(); }