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 <s.kocjan@o2.pl>
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 
36 class SIM_PANEL_BASE : public wxWindow
37 {
38  friend class SIM_WORKBOOK;
39 
40 public:
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 
52 protected:
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() == NETLIST_EXPORTER_PSPICE_SIM::CommandToSimType( aSimCommand ),
62  "Cannot change the type of simulation of the existing plot panel" );
63 
64  m_simCommand = aSimCommand;
65  }
66 
67 private:
68  wxString m_simCommand;
69 };
70 
71 
73 {
74 public:
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 
81 private:
82  wxSizer* m_sizer;
83  wxStaticText* m_textInfo;
84 };
85 
86 
87 #endif
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)
static bool IsPlottable(SIM_TYPE aSimType)
static SIM_TYPE CommandToSimType(const wxString &aCmd)
Return simulation type basing on a simulation command directive.
void setSimCommand(const wxString &aSimCommand)
wxString m_simCommand
SIM_TYPE
< Possible simulation types
Definition: sim_types.h:31
const wxString & getSimCommand() const
SIM_TYPE GetType() const
const char * name
Definition: DXF_plotter.cpp:56
virtual ~SIM_NOPLOT_PANEL()
wxStaticText * m_textInfo
virtual ~SIM_PANEL_BASE()