00001
00002
00003
00004
00005
00010 #ifndef PLUGIN_MENU_H
00011 #define PLUGIN_MENU_H
00012
00013 #ifdef HAVE_CONFIG_H
00014 #include <config.h>
00015 #endif
00016
00017 #include <vector>
00018
00019
00020 #include <qobject.h>
00021 #include <qvaluelist.h>
00022 #include <qstringlist.h>
00023 #include <qpopupmenu.h>
00024
00025 #include "plugin.h"
00026
00027 using namespace std;
00028
00029 class PluginMenu : public QObject
00030 {
00031 Q_OBJECT
00032 public:
00036 typedef struct
00037 {
00039 QString* name;
00041 QString* category;
00043 int menuId;
00044
00046 Plugin* plugin;
00048 int opId;
00049
00051 int inputCount;
00053 int numParams;
00055 QStringList* paramNames;
00057 pluginResultType resultType;
00059 size_t resultSize;
00060 } PluginOp;
00061
00063 PluginMenu(void);
00065 ~PluginMenu(void);
00066
00068 int addPlugin(Plugin *p);
00070 int getPluginCount(void);
00072 QPopupMenu* getMainMenu(void);
00074 void printInfo(void);
00076 PluginOp* getPluginOp(int index);
00078 int getUniqueId(int index);
00079
00080 protected:
00082 int pluginCount;
00084 QPopupMenu* mainMenu;
00086 QStringList categoryList;
00088 QValueList<PluginOp*> pluginList;
00090 QValueList<QPopupMenu*> categoryMenuList;
00091
00092 protected slots:
00094 void activated(int id);
00095
00096 };
00097
00098 #endif
00099