|
Canorus
0.7
|
00001 00009 #ifndef PLUGIN_H_ 00010 #define PLUGIN_H_ 00011 00012 #include <QString> 00013 #include <QHash> 00014 #include <QList> 00015 #include <QLocale> 00016 00017 class QPoint; 00018 class QEvent; 00019 class QMenu; 00020 00021 class CAMainWin; 00022 class CADocument; 00023 00024 class CAPluginAction; 00025 00026 class CAPlugin { 00027 public: 00028 CAPlugin(); 00029 CAPlugin(QString name, QString author, QString version, QString date, QString dirName, QString homeUrl, QString updateUrl); 00030 ~CAPlugin(); 00031 00043 bool action(QString onAction, CAMainWin *mainWin=0, CADocument *document=0, QEvent *evt=0, QPoint *coords=0); 00044 00054 bool callAction(CAPluginAction *action, CAMainWin *mainWin=0, CADocument *document=0, QEvent *evt=0, QPoint *coords=0, QString filename=""); 00055 00065 void addAction(CAPluginAction *action); 00066 void addMenu(QString name, QMenu* menu) { _menuMap[name] = menu; } 00067 00068 void setEnabled(bool enabled) { _enabled = enabled; } 00069 bool isEnabled() { return _enabled; } 00070 00071 QString name() { return _name; } 00072 QString author() { return _author; } 00073 QString version() { return _version; } 00074 QString date() { return _date; } 00075 QString dirName() { return _dirName; } 00076 QString homeUrl() { return _homeUrl; } 00077 QString updateUrl() { return _updateUrl; } 00078 QString description(QString lang) { return _descMap[lang]; } 00079 QString localDescription() { if (_descMap.contains(QLocale::system().name())) return description(QLocale::system().name()); else return description(""); } 00080 QMenu *menu(QString menuName) { return _menuMap[menuName]; } 00081 00082 void setName(QString name) { _name = name; } 00083 void setDescription(QString desc, QString lang=QString("")) { _descMap[lang]=desc; } 00084 void setAuthor(QString author) { _author = author; } 00085 void setVersion(QString version) { _version = version; } 00086 void setDate(QString date) { _date = date; } 00087 void setDirName(QString dirName) { _dirName = dirName; } 00088 void setHomeUrl(QString homeUrl) { _homeUrl = homeUrl; } 00089 void setUpdateUrl(QString updateUrl) { _updateUrl = updateUrl; } 00090 00096 QList<QString> actionList() { return _actionMap.keys(); } 00097 00098 private: 00099 QString _name; 00100 QHash<QString, QString> _descMap; 00101 QString _author; 00102 QString _version; 00103 QString _date; 00104 QString _dirName; 00105 QString _homeUrl; 00106 QString _updateUrl; 00107 bool _enabled; 00108 00109 QMultiHash< QString, CAPluginAction* > _actionMap; 00110 QHash< QString, QMenu* > _menuMap; 00111 }; 00112 #endif /*PLUGIN_H_*/
1.8.0