#ifndef __DEFAULTPLUGIN_H__ #define __DEFAULTPLUGIN_H__ // Includes Qt headers #include // Includes Projection Designer headers #include // Includes local headers #include "DefaultProjectorWidget.h" #include "DefaultEmptySceneWidget.h" #include "DefaultTeapotSceneWidget.h" #include "DefaultCubemapSceneWidget.h" #include "DefaultModelSceneWidget.h" /** * DefaultPlugin class implementation. * * This class is the main class of the plugin, the one which implements the * ...Interfaces. * */ class DefaultPlugin : public QObject, public ProjectorInterface, public SceneInterface { Q_OBJECT Q_INTERFACES(ProjectorInterface SceneInterface) public: /** * Default constructor of the DefaultPlugin class. * * This constructor should be called just one time, by Qt mechanisms * (not manually). * */ DefaultPlugin(); /** * DefaultPlugin destructor. * * This destructor, just like the constructor, is not called manually. * */ ~DefaultPlugin(); /** * Gets the name of the Interface (ie. the public name of the plugin). * * @return The name of the Interface (ie. the public name of the plugin). * */ QString name() const; /** * Gets the list of the projectors implemented by the DefaultPlugin. * * @return The list of the projectors implemented by the DefaultPlugin. * */ QStringList projectors() const; /** * Gets a new ProjectorWidget for a projector. * * @remark The responsability is transfered to the user, especially the * responsability to delete the widget at the end of use. * * @param projector The name of a projector, from the projectors()-list. * * @return A pointer on the ProjectorWidget. * */ ProjectorWidget* newProjectorWidget(const QString& projector); /** * Gets a new ProjectorData for a projector. * * @remark The responsability is transfered to the user, especially the * responsability to delete the data at the end of use. * * @param projector The name of a projector, from the projectors()-list. * * @return A pointer on the ProjectorData. * */ ProjectorData *newProjectorData(const QString& projector); /** * Gets the list of the scenes implemented by the DefaultPlugin. * * @return The list of the scenes implemented by the DefaultPlugin. * */ QStringList scenes() const; /** * Gets a new SceneWidget for a scene. * * @remark The responsability is transfered to the user, especially the * responsability to delete the widget at the end of use. * * @param scene_name The name of a scene, from the scenes()-list. * * @return A pointer on the SceneWidget. * */ SceneWidget* newSceneWidget(const QString& scene_name); /** * Gets a new SceneContent for a scene. * * @remark The responsability is transfered to the user, especially the * responsability to delete the content at the end of use. * * @param scene The name of a scene, from the scenes()-list. * * @return A pointer on the SceneContent. * */ SceneContent* newSceneContent(const QString& scene_name); }; #endif // __DEFAULTPLUGIN_H__