KiCad PCB EDA Suite
Loading...
Searching...
No Matches
panel_transline.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KICAD, a free EDA CAD application.
3 *
4 * Copyright (C) 2011 jean-pierre.charras
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 3
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21
22#include "transline_ident.h"
23#include <bitmaps.h>
27
28
29PANEL_TRANSLINE::PANEL_TRANSLINE( wxWindow* parent, wxWindowID id, const wxPoint& pos,
30 const wxSize& size, long style, const wxString& name ) :
31 PANEL_TRANSLINE_BASE( parent, id, pos, size, style, name ),
32 m_currTransLine( nullptr ),
33 m_currTransLineType( DEFAULT_TYPE )
34{
35 m_bpButtonAnalyze->SetBitmap( KiBitmapBundle( BITMAPS::small_down ) );
36 m_bpButtonSynthetize->SetBitmap( KiBitmapBundle( BITMAPS::small_up ) );
37
38
39 // Populate transline list ordered like in dialog menu list
40 const static TRANSLINE_TYPE_ID tltype_list[8] =
41 {
50 };
51
52 for( int ii = 0; ii < 8; ii++ )
53 m_transline_list.push_back( new TRANSLINE_IDENT( tltype_list[ii] ) );
54
55 m_EpsilonR_label->SetLabel( wxT( "εr" ) );
56 m_substrate_prm3_labelUnit->SetLabel( wxT( "Ω ∙ m" ) );
57}
58
59
61{
62 for( TRANSLINE_IDENT* transline : m_transline_list )
63 delete transline;
64}
65
66
68{
69 // Update the bitmaps
70 m_bpButtonAnalyze->SetBitmap( KiBitmapBundle( BITMAPS::small_down ) );
71 m_bpButtonSynthetize->SetBitmap( KiBitmapBundle( BITMAPS::small_up ) );
73}
74
75
77{
78 // Ensure parameters from current selection are up to date before saving
79 if( m_currTransLine )
81
83
84 for( TRANSLINE_IDENT* transline : m_transline_list )
85 transline->WriteConfig();
86}
87
88
90{
92
93 for( TRANSLINE_IDENT* transline : m_transline_list )
94 transline->ReadConfig();
95
98
99 // Needed on wxWidgets 3.0 to ensure sizers are correctly set
100 // It also remove a minor cosmetic issue on wxWidgets 3.5 on MSW
101 // Called here after the current selected transline bitmaps are enabled/disabled
102 GetSizer()->SetSizeHints( this );
103}
104
105
106
107void PANEL_TRANSLINE::OnTranslineAnalyse( wxCommandEvent& event )
108{
109 if( m_currTransLine )
110 {
113 }
114}
115
116
117void PANEL_TRANSLINE::OnTranslineSynthetize( wxCommandEvent& event )
118{
119 if( m_currTransLine )
120 {
123 }
124}
const char * name
Definition: DXF_plotter.cpp:59
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap)
Definition: bitmap.cpp:110
Class PANEL_TRANSLINE_BASE.
wxStaticText * m_EpsilonR_label
wxStaticText * m_substrate_prm3_labelUnit
wxStaticBitmap * m_translineBitmap
STD_BITMAP_BUTTON * m_bpButtonSynthetize
wxRadioBox * m_TranslineSelection
STD_BITMAP_BUTTON * m_bpButtonAnalyze
void OnTranslineSynthetize(wxCommandEvent &event) override
Run a new synthesis for the current transline with current parameters and displays the geometrical pa...
TRANSLINE * m_currTransLine
void TranslineTypeSelection(enum TRANSLINE_TYPE_ID aType)
Must be called after selection of a new transline.
void TransfDlgDataToTranslineParams()
Read values entered in dialog frame, and transfer these values in current transline parameters,...
std::vector< TRANSLINE_IDENT * > m_transline_list
void ThemeChanged() override
Update UI elements of the panel when the theme changes to ensure the images and fonts/colors are appr...
void SaveSettings(PCB_CALCULATOR_SETTINGS *aCfg) override
Save the settings from the panel.
PANEL_TRANSLINE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
enum TRANSLINE_TYPE_ID m_currTransLineType
void OnTranslineAnalyse(wxCommandEvent &event) override
Run a new analyze for the current transline with current parameters and displays the electrical param...
void LoadSettings(PCB_CALCULATOR_SETTINGS *aCfg) override
Load the settings into the panel.
void SetBitmap(const wxBitmapBundle &aBmp)
A class to handle a list of parameters of a given transline.
void analyze()
Definition: transline.cpp:208
virtual void synthesize()
Definition: transline.cpp:217
TRANSLINE_TYPE_ID
@ RECTWAVEGUIDE_TYPE
@ MICROSTRIP_TYPE
@ CPW_TYPE
@ GROUNDED_CPW_TYPE
@ C_MICROSTRIP_TYPE
@ COAX_TYPE
@ TWISTEDPAIR_TYPE
@ STRIPLINE_TYPE
@ DEFAULT_TYPE