File indexing completed on 2024-04-14 03:47:42

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
0004 //
0005 #ifndef MARBLE_DIALOGCONFIGURATIONINTERFACE_H
0006 #define MARBLE_DIALOGCONFIGURATIONINTERFACE_H
0007 
0008 #include <QObject> // for Q_DECLARE_INTERFACE macro
0009 #include "marble_export.h"
0010 
0011 class QDialog;
0012 
0013 namespace Marble
0014 {
0015 
0016 /**
0017  * @brief This interface allows a plugin to provide a QWidget-based configuration
0018  * dialog which is accessible within Marble's own configuration dialog.
0019  *
0020  * @note In order for your plugin to provide a configuration dialog, derive your
0021  * plugin from this interface in addition to any other interfaces and classes.
0022  *
0023  * @note Make sure to deploy the @code Q_INTERFACES @endcode macro, which tells
0024  * Marble that you actually implemented the interface.
0025  */
0026 class MARBLE_EXPORT DialogConfigurationInterface
0027 {
0028  public:
0029     virtual ~DialogConfigurationInterface();
0030 
0031     /**
0032      * @brief Returns a pointer to the configuration dialog of the plugin.
0033      *
0034      * @return: Pointer to the configuration dialog, which must be non-zero.
0035      */
0036     virtual QDialog *configDialog() = 0;
0037 };
0038 
0039 }
0040 
0041 Q_DECLARE_INTERFACE( Marble::DialogConfigurationInterface, "org.kde.Marble.DialogConfigurationInterface/1.0" )
0042 
0043 #endif