Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Related Pages  

PluginMenu.h

00001 /* PluginMenu.h
00002  * Last modified: 
00003  * Authors: Daniel Venkitachalam <venki-d@ee.uwa.edu.au>
00004  *          Leon Koch <leon@redfishsoftware.com.au>
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 // QT includes
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 

Generated on Tue Apr 1 11:01:16 2003 for ImprovQT by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002