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
IGuiExtension.hpp
Go to the documentation of this file.
1
10#pragma once
11
12#include "Version.hpp"
13#include <QtPlugin>
14#include <QStringList>
15
17#define OPENSWMM_GUI_EXTENSION_IID "io.opensimulator.openswmm.IGuiExtension/1.0"
18
19namespace OpenSWMM::Sdk
20{
21class ExtensionHost;
24 QString id;
25 QString caption;
26 QString description;
27 QString version;
28 QString vendor;
29 QString url;
30 QString licenseType;
31 QStringList tags;
32};
33
36{
37public:
39 virtual ~IGuiExtension() = default;
42 virtual ExtensionInfo info() const = 0;
48 virtual bool initialize(ExtensionHost *host, QString *error) = 0;
52 virtual void shutdown() = 0;
55 virtual QStringList contributions() const { return {}; }
58 virtual QList<ExtensionInfo> children() const { return {}; }
59};
60}
#define OPENSWMM_GUI_EXTENSION_IID
Literal IID for Qt's Q_PLUGIN_METADATA macro.
Definition IGuiExtension.hpp:17
Public SDK version and binary compatibility metadata.
Definition ExtensionHost.hpp:96
Definition IGuiExtension.hpp:36
virtual ExtensionInfo info() const =0
Describe this extension and verify its identity against embedded metadata.
virtual QList< ExtensionInfo > children() const
Enumerate extensions hosted by this plugin, such as Python-authored packages.
Definition IGuiExtension.hpp:58
virtual bool initialize(ExtensionHost *host, QString *error)=0
Register contributions after the main window exists and before projects restore.
virtual QStringList contributions() const
Advertise supported contribution families for diagnostics.
Definition IGuiExtension.hpp:55
virtual void shutdown()=0
Release plugin-owned resources after the host has cancelled and joined jobs.
virtual ~IGuiExtension()=default
Destroy the interface; the Qt loader owns the implementing QObject.
Public header-only ABI for independently compiled native GUI extensions.
Definition ExtensionHost.hpp:24
Owning metadata describing a native plugin or one of its hosted child extensions.
Definition IGuiExtension.hpp:23
QString description
Short capability description.
Definition IGuiExtension.hpp:26
QStringList tags
Searchable capability/category labels.
Definition IGuiExtension.hpp:31
QString vendor
Author or distributor name.
Definition IGuiExtension.hpp:28
QString url
Informational home/documentation URL; never opened automatically.
Definition IGuiExtension.hpp:29
QString licenseType
Display-only license description supplied by the author.
Definition IGuiExtension.hpp:30
QString id
Stable validated extension identity.
Definition IGuiExtension.hpp:24
QString caption
User-facing display name.
Definition IGuiExtension.hpp:25
QString version
Extension product version.
Definition IGuiExtension.hpp:27
double error
Definition terrainerrorfield.cpp:42