IQGCCorePlugin.h 773 Bytes
Newer Older
Gus Grubba's avatar
Gus Grubba committed
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
#pragma once

#include <QObject>

/// @file
///     @brief Core Plugin Interface for QGroundControl
///     @author Gus Grubba <mavlink@grubba.com>

// Work In Progress

class QGCApplication;
class IQGCApplication;
class IQGCOptions;
class IQGCQMLSource;

class IQGCCorePlugin
{
public:
    IQGCCorePlugin(QObject*)  {}
    virtual ~IQGCCorePlugin() {}

#if defined (QGC_DYNAMIC_PLUGIN)
    virtual bool            init        (IQGCApplication* pApp) = 0;
#else
    virtual bool            init        (QGCApplication* pApp) = 0;
#endif
    virtual IQGCOptions*    uiOptions   () { return NULL; }
    virtual IQGCQMLSource*  settingsQML () { return NULL; }
};

#if defined (QGC_DYNAMIC_PLUGIN)
Q_DECLARE_INTERFACE(IQGCCorePlugin, "org.qgroundcontrol.qgccoreplugin")
#endif