KiCad PCB EDA Suite
Loading...
Searching...
No Matches
simulator_control.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) 2023 KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24
25#ifndef SIMULATOR_CONTROL_H
26#define SIMULATOR_CONTROL_H
27
29
30class SIMULATOR_FRAME;
32class SPICE_SIMULATOR;
33class SIM_TAB;
34
35
39class SIMULATOR_CONTROL : public wxEvtHandler, public TOOL_INTERACTIVE
40{
41public:
43 TOOL_INTERACTIVE( "eeschema.SimulatorControl" ),
44 m_simulatorFrame( nullptr ),
45 m_schematicFrame( nullptr )
46 { }
47
48 virtual ~SIMULATOR_CONTROL() { }
49
51 bool Init() override;
52
54 void Reset( RESET_REASON aReason ) override;
55
56 int NewAnalysisTab( const TOOL_EVENT& aEvent );
57 int OpenWorkbook( const TOOL_EVENT& aEvent );
58 int SaveWorkbook( const TOOL_EVENT& aEvent );
59 int ExportPlotAsPNG( const TOOL_EVENT& aEvent );
60 int ExportPlotAsCSV( const TOOL_EVENT& aEvent );
61 int Close( const TOOL_EVENT& aEvent );
62
63 int Zoom( const TOOL_EVENT& aEvent );
64 int UndoZoom( const TOOL_EVENT& aEvent );
65 int RedoZoom( const TOOL_EVENT& aEvent );
66 int ToggleGrid( const TOOL_EVENT& aEvent );
67 int ToggleLegend( const TOOL_EVENT& aEvent );
68 int ToggleDottedSecondary( const TOOL_EVENT& aEvent );
69 int ToggleDarkModePlots( const TOOL_EVENT& aEvent );
70
71 int EditAnalysisTab( const TOOL_EVENT& aEvent );
72 int RunSimulation( const TOOL_EVENT& aEvent );
73 int Probe( const TOOL_EVENT& aEvent );
74 int Tune( const TOOL_EVENT& aEvent );
75
76 int EditUserDefinedSignals( const TOOL_EVENT& aEvent );
77 int ShowNetlist( const TOOL_EVENT& aEvent );
78
79private:
83 wxString getDefaultFilename();
84
88 wxString getDefaultPath();
89
91
93 void setTransitions() override;
94
95private:
98 std::shared_ptr<SPICE_CIRCUIT_MODEL> m_circuitModel;
99 std::shared_ptr<SPICE_SIMULATOR> m_simulator;
100};
101
102
103#endif // SIMULATOR_CONTROL_H
Schematic editor (Eeschema) main window.
Handle actions for the various symbol editor and viewers.
int ExportPlotAsPNG(const TOOL_EVENT &aEvent)
wxString getDefaultPath()
Return the default path to be used in file browser dialog.
SCH_EDIT_FRAME * m_schematicFrame
int ToggleLegend(const TOOL_EVENT &aEvent)
int RedoZoom(const TOOL_EVENT &aEvent)
int ShowNetlist(const TOOL_EVENT &aEvent)
void setTransitions() override
This method is meant to be overridden in order to specify handlers for events.
int ToggleDarkModePlots(const TOOL_EVENT &aEvent)
int Tune(const TOOL_EVENT &aEvent)
virtual ~SIMULATOR_CONTROL()
wxString getDefaultFilename()
Return the default filename (with extension) to be used in file browser dialog.
SIMULATOR_FRAME * m_simulatorFrame
bool Init() override
Init() is called once upon a registration of the tool.
int SaveWorkbook(const TOOL_EVENT &aEvent)
int RunSimulation(const TOOL_EVENT &aEvent)
SIM_TAB * getCurrentSimTab()
Set up handlers for various events.
int OpenWorkbook(const TOOL_EVENT &aEvent)
int EditUserDefinedSignals(const TOOL_EVENT &aEvent)
std::shared_ptr< SPICE_CIRCUIT_MODEL > m_circuitModel
int ToggleGrid(const TOOL_EVENT &aEvent)
int Zoom(const TOOL_EVENT &aEvent)
int EditAnalysisTab(const TOOL_EVENT &aEvent)
int ToggleDottedSecondary(const TOOL_EVENT &aEvent)
std::shared_ptr< SPICE_SIMULATOR > m_simulator
int ExportPlotAsCSV(const TOOL_EVENT &aEvent)
int UndoZoom(const TOOL_EVENT &aEvent)
int Probe(const TOOL_EVENT &aEvent)
int NewAnalysisTab(const TOOL_EVENT &aEvent)
int Close(const TOOL_EVENT &aEvent)
The SIMULATOR_FRAME holds the main user-interface for running simulations.
Special netlist exporter flavor that allows one to override simulation commands.
RESET_REASON
Determine the reason of reset for a tool.
Definition: tool_base.h:78
Generic, UI-independent tool event.
Definition: tool_event.h:167
void Reset() override