/
viewinterface.cpp
120 lines (95 loc) · 3.88 KB
/
viewinterface.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/*******************************************************************************
Copyright (C) The University of Auckland
OpenCOR is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenCOR is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
//==============================================================================
// View interface
//==============================================================================
#include "viewinterface.h"
//==============================================================================
namespace OpenCOR {
//==============================================================================
extern "C" Q_DECL_EXPORT int viewInterfaceVersion()
{
// Version of the view interface
return 1;
}
//==============================================================================
static const auto ViewModeUnknown = QStringLiteral("UnknownMode");
#ifdef ENABLE_SAMPLE_PLUGINS
static const auto ViewModeSample = QStringLiteral("SampleMode");
#endif
#ifdef ENABLE_TEST_PLUGINS
static const auto ViewModeTest = QStringLiteral("TestMode");
#endif
static const auto ViewModeEditing = QStringLiteral("EditingMode");
static const auto ViewModeSimulation = QStringLiteral("SimulationMode");
static const auto ViewModeAnalysis = QStringLiteral("AnalysisMode");
//==============================================================================
QString ViewInterface::modeAsString(const Mode &pMode)
{
// Return the mode corresponding to the given mode string
switch (pMode) {
case UnknownMode:
return ViewModeUnknown;
#ifdef ENABLE_SAMPLE_PLUGINS
case SampleMode:
return ViewModeSample;
#endif
#ifdef ENABLE_TEST_PLUGINS
case TestMode:
return ViewModeTest;
#endif
case EditingMode:
return ViewModeEditing;
case SimulationMode:
return ViewModeSimulation;
case AnalysisMode:
return ViewModeAnalysis;
}
return "???";
// Note: we can't reach this point, but without it we may be told that not
// all control paths return a value...
}
//==============================================================================
ViewInterface::Mode ViewInterface::modeFromString(const QString &pMode)
{
// Return the mode string corresponding to the given mode
#if defined(ENABLE_SAMPLE_PLUGINS) && defined(ENABLE_TEST_PLUGINS)
if (!pMode.compare(ViewModeSample))
return SampleMode;
else if (!pMode.compare(ViewModeTest))
return TestMode;
else if (!pMode.compare(ViewModeEditing))
#elif defined(ENABLE_SAMPLE_PLUGINS)
if (!pMode.compare(ViewModeSample))
return SampleMode;
else if (!pMode.compare(ViewModeEditing))
#elif defined(ENABLE_TEST_PLUGINS)
if (!pMode.compare(ViewModeTest))
return TestMode;
else if (!pMode.compare(ViewModeEditing))
#else
if (!pMode.compare(ViewModeEditing))
#endif
return EditingMode;
else if (!pMode.compare(ViewModeSimulation))
return SimulationMode;
else if (!pMode.compare(ViewModeAnalysis))
return AnalysisMode;
return UnknownMode;
}
//==============================================================================
} // namespace OpenCOR
//==============================================================================
// End of file
//==============================================================================