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"
30#include "ngspice_helpers.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 );
43 SIM_PANEL_BASE( const wxString& aCommand, wxWindow* parent, wxWindowID id,
44 const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
45 long style = 0, const wxString& name = wxPanelNameStr );
46 virtual ~SIM_PANEL_BASE();
47
48 static bool IsPlottable( SIM_TYPE aSimType );
49
50 SIM_TYPE GetType() const;
51
52protected:
53 // We use `protected` here because members should be accessible from outside only through a
54 // workbook object, to prevent anyone from modifying the state without its knowledge. Otherwise
55 // we risk some things not getting saved.
56
57 const wxString& getSimCommand() const { return m_simCommand; }
58
59 void setSimCommand( const wxString& aSimCommand )
60 {
61 wxCHECK_RET( GetType() == NGSPICE_CIRCUIT_MODEL::CommandToSimType( aSimCommand ),
62 "Cannot change the type of simulation of the existing plot panel" );
63
64 m_simCommand = aSimCommand;
65 }
66
67private:
68 wxString m_simCommand;
69};
70
71
73{
74public:
75 SIM_NOPLOT_PANEL( const wxString& aCommand, wxWindow* parent, wxWindowID id,
76 const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
77 long style = 0, const wxString& name = wxPanelNameStr );
78
79 virtual ~SIM_NOPLOT_PANEL();
80
81private:
82 wxSizer* m_sizer;
83 wxStaticText* m_textInfo;
84};
85
86
87#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
virtual ~SIM_NOPLOT_PANEL()
SIM_NOPLOT_PANEL(const wxString &aCommand, wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr)
const wxString & getSimCommand() const
static bool IsPlottable(SIM_TYPE aSimType)
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