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 (C) 1992-2023 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}
57
58
60{
61 for( TRANSLINE_IDENT* transline : m_transline_list )
62 delete transline;
63}
64
65
67{
68 // Update the bitmaps
69 m_bpButtonAnalyze->SetBitmap( KiBitmapBundle( BITMAPS::small_down ) );
70 m_bpButtonSynthetize->SetBitmap( KiBitmapBundle( BITMAPS::small_up ) );
72}
73
74
76{
77 // Ensure parameters from current selection are up to date before saving
78 if( m_currTransLine )
80
82
83 for( TRANSLINE_IDENT* transline : m_transline_list )
84 transline->WriteConfig();
85}
86
87
89{
91
92 for( TRANSLINE_IDENT* transline : m_transline_list )
93 transline->ReadConfig();
94
97
98 // Needed on wxWidgets 3.0 to ensure sizers are correctly set
99 // It also remove a minor cosmetic issue on wxWidgets 3.5 on MSW
100 // Called here after the current selected transline bitmaps are enabled/disabled
101 GetSizer()->SetSizeHints( this );
102}
103
104
105
106void PANEL_TRANSLINE::OnTranslineAnalyse( wxCommandEvent& event )
107{
108 if( m_currTransLine )
109 {
112 }
113}
114
115
116void PANEL_TRANSLINE::OnTranslineSynthetize( wxCommandEvent& event )
117{
118 if( m_currTransLine )
119 {
122 }
123}
const char * name
Definition: DXF_plotter.cpp:57
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap)
Definition: bitmap.cpp:110
Class PANEL_TRANSLINE_BASE.
wxStaticText * m_EpsilonR_label
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