00001 #ifndef BALL_PLUGIN_BALLPLUGIN_H
00002 #define BALL_PLUGIN_BALLPLUGIN_H
00003
00004 #include <QtCore/QString>
00005 #include <QtCore/QtPlugin>
00006 #include <QtCore/QVariant>
00007
00008 class QPixmap;
00009 class QDialog;
00010
00011 namespace BALL
00012 {
00013
00014 class PluginHandler;
00015
00016 class BALLPlugin
00017 {
00018 public:
00019 virtual ~BALLPlugin() {}
00020
00026 virtual QString getName() const = 0;
00027
00033 virtual QString getDescription() const = 0;
00034
00040 virtual bool isActive() = 0;
00041
00047 virtual bool activate() = 0;
00048
00054 virtual bool deactivate() = 0;
00055 };
00056 }
00057
00058 template<typename T>
00059 T qobject_cast(BALL::BALLPlugin* plugin)
00060 {
00061 return qobject_cast<T>(dynamic_cast<QObject*>(plugin));
00062 }
00063
00064 Q_DECLARE_METATYPE(BALL::BALLPlugin*)
00065 Q_DECLARE_INTERFACE(BALL::BALLPlugin, "org.ball-project.Plugin.BALLPlugin/1.0")
00066
00067 #endif //BALL_PLUGIN_BALLPLUGIN_H
00068