Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/interface/plugin.h
Go to the documentation of this file.
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_*/