SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
IAttributeProvider.hpp
Go to the documentation of this file.
1
29#ifndef OPENSWMM_RENDER_IATTRIBUTEPROVIDER_H
30#define OPENSWMM_RENDER_IATTRIBUTEPROVIDER_H
31
32#include "SwmmCategory.hpp"
33#include <QtPlugin>
34
35#include <QMetaType>
36#include <QString>
37#include <QVariant>
38#include <QVector>
39
40namespace OpenSWMM::Render
41{
42
55 QString name;
56 QString displayName;
57 QMetaType::Type type = QMetaType::Double;
58 bool isDynamic = false;
59 QString unit;
60};
61
74{
75public:
77 virtual ~IAttributeProvider() = default;
78
88 [[nodiscard]] virtual QVector<AttributeField>
90};
91
92} // namespace OpenSWMM::Render
93
94Q_DECLARE_INTERFACE(OpenSWMM::Render::IAttributeProvider,
95 "io.opensimulator.openswmm.IAttributeProvider/1.0")
96
97Q_DECLARE_METATYPE(OpenSWMM::Render::AttributeField)
98
99#endif // OPENSWMM_RENDER_IATTRIBUTEPROVIDER_H
100
102namespace OpenSWMM::Sdk
103{
104using IAttributeProvider = OpenSWMM::Render::IAttributeProvider;
105}
Standalone definition of the SWMM-element Category enum used by per-Category APIs across layers,...
Interface every themeable layer implements so renderer panels can populate attribute combos without h...
Definition IAttributeProvider.hpp:74
virtual QVector< AttributeField > availableAttributes(OpenSWMMVis::SwmmCategory cat) const =0
virtual ~IAttributeProvider()=default
Destroy a provider through its interface without owning its consumers.
Definition gisrasterlayer.h:42
Public header-only ABI for independently compiled native GUI extensions.
Definition ExtensionHost.hpp:24
Definition contourchain.h:28
SwmmCategory
Stable ordinal categorising every SWMM-element kind that has per-kind styling, per-kind tree rows,...
Definition SwmmCategory.hpp:31
One themeable attribute on a layer.
Definition IAttributeProvider.hpp:54
bool isDynamic
Definition IAttributeProvider.hpp:58
QString name
Definition IAttributeProvider.hpp:55
QString unit
Definition IAttributeProvider.hpp:59
QMetaType::Type type
Definition IAttributeProvider.hpp:57
QString displayName
Definition IAttributeProvider.hpp:56