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-2024 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;
31class SCH_EDIT_FRAME;
33class SPICE_SIMULATOR;
34class SIM_TAB;
35
36
40class SIMULATOR_CONTROL : public wxEvtHandler, public TOOL_INTERACTIVE
41{
42public:
44 TOOL_INTERACTIVE( "eeschema.SimulatorControl" ),
45 m_simulatorFrame( nullptr ),
46 m_schematicFrame( nullptr )
47 { }
48
49 virtual ~SIMULATOR_CONTROL() { }
50
52 bool Init() override;
53
55 void Reset( RESET_REASON aReason ) override;
56
57 int NewAnalysisTab( const TOOL_EVENT& aEvent );
58 int OpenWorkbook( const TOOL_EVENT& aEvent );
59 int SaveWorkbook( const TOOL_EVENT& aEvent );
60 int ExportPlotAsPNG( const TOOL_EVENT& aEvent );
61 int ExportPlotAsCSV( const TOOL_EVENT& aEvent );
62 int ExportPlotToClipboard( const TOOL_EVENT& aEvent );
63 int ExportPlotToSchematic( const TOOL_EVENT& aEvent );
64 int Close( const TOOL_EVENT& aEvent );
65
66 int Zoom( const TOOL_EVENT& aEvent );
67 int UndoZoom( const TOOL_EVENT& aEvent );
68 int RedoZoom( const TOOL_EVENT& aEvent );
69 int ToggleGrid( const TOOL_EVENT& aEvent );
70 int ToggleLegend( const TOOL_EVENT& aEvent );
71 int ToggleDottedSecondary( const TOOL_EVENT& aEvent );
72 int ToggleDarkModePlots( const TOOL_EVENT& aEvent );
73
74 int EditAnalysisTab( const TOOL_EVENT& aEvent );
75 int RunSimulation( const TOOL_EVENT& aEvent );
76 int Probe( const TOOL_EVENT& aEvent );
77 int Tune( const TOOL_EVENT& aEvent );
78
79 int EditUserDefinedSignals( const TOOL_EVENT& aEvent );
80 int ShowNetlist( const TOOL_EVENT& aEvent );
81
82private:
86 wxString getDefaultFilename();
87
91 wxString getDefaultPath();
92
94
96 void setTransitions() override;
97
98private:
101 std::shared_ptr<SPICE_CIRCUIT_MODEL> m_circuitModel;
102 std::shared_ptr<SPICE_SIMULATOR> m_simulator;
103};
104
105
106#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)
int ExportPlotToClipboard(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 ExportPlotToSchematic(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