PluginInfo.hh

00001 /*===========================================================================*\
00002  *                                                                           *
00003  *                              OpenFlipper                                  *
00004  *      Copyright (C) 2001-2009 by Computer Graphics Group, RWTH Aachen      *
00005  *                           www.openflipper.org                             *
00006  *                                                                           *
00007  *---------------------------------------------------------------------------*
00008  *  This file is part of OpenFlipper.                                        *
00009  *                                                                           *
00010  *  OpenFlipper is free software: you can redistribute it and/or modify      *
00011  *  it under the terms of the GNU Lesser General Public License as           *
00012  *  published by the Free Software Foundation, either version 3 of           *
00013  *  the License, or (at your option) any later version with the              *
00014  *  following exceptions:                                                    *
00015  *                                                                           *
00016  *  If other files instantiate templates or use macros                       *
00017  *  or inline functions from this file, or you compile this file and         *
00018  *  link it with other files to produce an executable, this file does        *
00019  *  not by itself cause the resulting executable to be covered by the        *
00020  *  GNU Lesser General Public License. This exception does not however       *
00021  *  invalidate any other reasons why the executable file might be            *
00022  *  covered by the GNU Lesser General Public License.                        *
00023  *                                                                           *
00024  *  OpenFlipper is distributed in the hope that it will be useful,           *
00025  *  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
00026  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            *
00027  *  GNU Lesser General Public License for more details.                      *
00028  *                                                                           *
00029  *  You should have received a copy of the GNU LesserGeneral Public          *
00030  *  License along with OpenFlipper. If not,                                  *
00031  *  see <http://www.gnu.org/licenses/>.                                      *
00032  *                                                                           *
00033 \*===========================================================================*/
00034 
00035 /*===========================================================================*\
00036  *                                                                           *
00037  *   $Revision: 7237 $                                                         *
00038  *   $Author: moebius $                                                      *
00039  *   $Date: 2009-09-30 15:54:25 +0200 (Mi, 30. Sep 2009) $                   *
00040  *                                                                           *
00041 \*===========================================================================*/
00042 
00043 
00044 #ifndef PLUGININFO_HH
00045 #define PLUGININFO_HH
00046 
00047 #include <Qt>
00048 #include <QString>
00049 #include <QObject>
00050 #include <QStringList>
00051 #include <QList>
00052 #include <QDockWidget>
00053 
00054 struct KeyBinding{
00055   int                   key;
00056   Qt::KeyboardModifiers modifiers;
00057   QString               description;
00058   bool                  multiUse;
00059   bool                  slot;
00060 };
00061 
00062 struct SlotInfo{
00063   QString slotName;
00064   QString slotDescription;
00065   QStringList parameters;
00066   QStringList descriptions;
00067 };
00068 
00070 class PluginInfo{
00071 
00072   public :
00073 
00074   PluginInfo() {
00075      plugin = 0;
00076      name = "";
00077      description = "";
00078      version = "";
00079      path = "";
00080      rpcName = "";
00081      rpcFunctions.clear();
00082      slotInfos.clear();
00083      keys.clear();
00084      toolboxWidgets.clear();
00085      toolbars.clear();
00086      optionsWidget = 0;
00087   }
00088 
00089 
00090 
00091   PluginInfo( const PluginInfo& _i) {
00092      plugin = _i.plugin;
00093      name = _i.name;
00094      description = _i.description;
00095      version = _i.version;
00096      path = _i.path;
00097      rpcName = _i.rpcName;
00098      rpcFunctions = _i.rpcFunctions;
00099      slotInfos = _i.slotInfos;
00100      keys = _i.keys;
00101      toolboxWidgets = _i.toolboxWidgets;
00102      toolbars = _i.toolbars;
00103      optionsWidget = _i.optionsWidget;
00104   }
00105 
00107   QObject*    plugin;
00108 
00110   QString     name;
00111 
00113   QString     description;
00114 
00116   QString     version;
00117 
00119   QString     path;
00120 
00122   QString     rpcName;
00123 
00125   QStringList rpcFunctions;
00126 
00128   QList< SlotInfo > slotInfos;
00129 
00131   QList< KeyBinding > keys;
00132 
00134   std::vector< std::pair< QString , QWidget* > > toolboxWidgets;
00135   
00137   std::vector< std::pair< QString , QToolBar* > > toolbars;
00138 
00140   QWidget* optionsWidget;
00141 };
00142 
00143 #endif //PLUGININFO_HH

acg pic Project OpenFlipper, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .