Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
plugin.h
Go to the documentation of this file.
1 
9 #ifndef PLUGIN_H_
10 #define PLUGIN_H_
11 
12 #include <QString>
13 #include <QHash>
14 #include <QList>
15 #include <QLocale>
16 
17 class QPoint;
18 class QEvent;
19 class QMenu;
20 
21 class CAMainWin;
22 class CADocument;
23 
24 class CAPluginAction;
25 
26 class CAPlugin {
27  public:
28  CAPlugin();
29  CAPlugin(QString name, QString author, QString version, QString date, QString dirName, QString homeUrl, QString updateUrl);
30  ~CAPlugin();
31 
43  bool action(QString onAction, CAMainWin *mainWin=0, CADocument *document=0, QEvent *evt=0, QPoint *coords=0);
44 
54  bool callAction(CAPluginAction *action, CAMainWin *mainWin=0, CADocument *document=0, QEvent *evt=0, QPoint *coords=0, QString filename="");
55 
65  void addAction(CAPluginAction *action);
66  void addMenu(QString name, QMenu* menu) { _menuMap[name] = menu; }
67 
68  void setEnabled(bool enabled) { _enabled = enabled; }
69  bool isEnabled() { return _enabled; }
70 
71  QString name() { return _name; }
72  QString author() { return _author; }
73  QString version() { return _version; }
74  QString date() { return _date; }
75  QString dirName() { return _dirName; }
76  QString homeUrl() { return _homeUrl; }
77  QString updateUrl() { return _updateUrl; }
78  QString description(QString lang) { return _descMap[lang]; }
79  QString localDescription() { if (_descMap.contains(QLocale::system().name())) return description(QLocale::system().name()); else return description(""); }
80  QMenu *menu(QString menuName) { return _menuMap[menuName]; }
81 
82  void setName(QString name) { _name = name; }
83  void setDescription(QString desc, QString lang=QString("")) { _descMap[lang]=desc; }
84  void setAuthor(QString author) { _author = author; }
85  void setVersion(QString version) { _version = version; }
86  void setDate(QString date) { _date = date; }
87  void setDirName(QString dirName) { _dirName = dirName; }
88  void setHomeUrl(QString homeUrl) { _homeUrl = homeUrl; }
89  void setUpdateUrl(QString updateUrl) { _updateUrl = updateUrl; }
90 
96  QList<QString> actionList() { return _actionMap.keys(); }
97 
98  private:
99  QString _name;
100  QHash<QString, QString> _descMap;
101  QString _author;
102  QString _version;
103  QString _date;
104  QString _dirName;
105  QString _homeUrl;
106  QString _updateUrl;
107  bool _enabled;
108 
109  QMultiHash< QString, CAPluginAction* > _actionMap;
110  QHash< QString, QMenu* > _menuMap;
111 };
112 #endif /*PLUGIN_H_*/