BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
BALLPlugin.h
Go to the documentation of this file.
1 #ifndef BALL_PLUGIN_BALLPLUGIN_H
2 #define BALL_PLUGIN_BALLPLUGIN_H
3 
4 #ifndef BALL_COMMON_GLOBAL_H
5 # include <BALL/COMMON/global.h>
6 #endif
7 
8 #include <QtCore/QString>
9 #include <QtCore/QtPlugin>
10 #include <QtCore/QVariant>
11 
12 class QPixmap;
13 class QDialog;
14 
15 namespace BALL
16 {
17 
18  class PluginHandler;
19 
21  {
22  public:
23  virtual ~BALLPlugin() {}
24 
30  virtual QString getName() const = 0;
31 
37  virtual QString getDescription() const = 0;
38 
44  virtual bool isActive() = 0;
45 
51  virtual bool activate() = 0;
52 
58  virtual bool deactivate() = 0;
59  };
60 }
61 
62 template<typename T>
64 {
65  return qobject_cast<T>(dynamic_cast<QObject*>(plugin));
66 }
67 
68 Q_DECLARE_METATYPE(BALL::BALLPlugin*)
69 Q_DECLARE_INTERFACE(BALL::BALLPlugin, "org.ball-project.Plugin.BALLPlugin/1.0")
70 
71 #endif //BALL_PLUGIN_BALLPLUGIN_H
72