KiCad PCB EDA Suite
sim_panel_base.h
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) 2016 CERN
5 * Copyright (C) 2016-2017 KiCad Developers, see AUTHORS.txt for contributors.
6 * @author Sylwester Kocjan <[email protected]>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 3
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, you may find one here:
20 * https://www.gnu.org/licenses/gpl-3.0.html
21 * or you may search the http://www.gnu.org website for the version 3 license,
22 * or you may write to the Free Software Foundation, Inc.,
23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24 */
25
26#ifndef __SIM_PLOT_PANEL_BASE_H
27#define __SIM_PLOT_PANEL_BASE_H
28
29#include "sim_types.h"
31#include <wx/panel.h>
32#include <wx/sizer.h>
33#include <wx/stattext.h>
34
35
36class SIM_PANEL_BASE : public wxWindow
37{
38 friend class SIM_WORKBOOK;
39
40public:
42 SIM_PANEL_BASE( const wxString& aCommand, int aOptions, wxWindow* parent, wxWindowID id,
43 const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
44 long style = 0, const wxString& name = wxPanelNameStr );
45 virtual ~SIM_PANEL_BASE();
46
47 static bool IsPlottable( SIM_TYPE aSimType );
48
49 SIM_TYPE GetType() const;
50
51protected:
52 // We use `protected` here because members should be accessible from outside only through a
53 // workbook object, to prevent anyone from modifying the state without its knowledge. Otherwise
54 // we risk some things not getting saved.
55
56 const wxString& getSimCommand() const { return m_simCommand; }
57
58 void setSimCommand( const wxString& aSimCommand )
59 {
60 wxCHECK_RET( GetType() == NGSPICE_CIRCUIT_MODEL::CommandToSimType( aSimCommand ),
61 "Cannot change the type of simulation of the existing plot panel" );
62
63 m_simCommand = aSimCommand;
64 }
65
66 const int getSimOptions() const { return m_simOptions; }
67 void setSimOptions( int aOptions ) { m_simOptions = aOptions; }
68
69private:
70 wxString m_simCommand;
72};
73
74
76{
77public:
78 SIM_NOPLOT_PANEL( const wxString& aCommand, int aOptions, wxWindow* parent, wxWindowID id,
79 const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
80 long style = 0, const wxString& name = wxPanelNameStr );
81
82 virtual ~SIM_NOPLOT_PANEL();
83
84private:
85 wxSizer* m_sizer;
86 wxStaticText* m_textInfo;
87};
88
89
90#endif
const char * name
Definition: DXF_plotter.cpp:56
static SIM_TYPE CommandToSimType(const wxString &aCmd)
Return simulation type basing on a simulation command directive.
wxStaticText * m_textInfo
SIM_NOPLOT_PANEL(const wxString &aCommand, int aOptions, wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
virtual ~SIM_NOPLOT_PANEL()
void setSimOptions(int aOptions)
const wxString & getSimCommand() const
static bool IsPlottable(SIM_TYPE aSimType)
const int getSimOptions() const
virtual ~SIM_PANEL_BASE()
SIM_TYPE GetType() const
void setSimCommand(const wxString &aSimCommand)
wxString m_simCommand
SIM_TYPE
< Possible simulation types
Definition: sim_types.h:32