/**************************************************************** * RetroShare is distributed under the following license: * * Copyright (C) 2006 - 2009 RetroShare Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. ****************************************************************/ #ifndef _PLUGINS_PAGE_H_ #define _PLUGINS_PAGE_H_ #include "mainpage.h" #include #include #include class QVBoxLayout; class QTabWidget; class QFrame; class QLabel; class QTextEdit; class QSpacerItem; class QScriptEngine; class PluginManager; //! A demo widget for showing plugin engine in action :) //! In current version this is just a container for PluginManagerWidget and //! loaded plugin widgets. All specific actions moved to //! PluginManagerWidget class. It contains a PluginManager instance, but it's //! supposed that in future a pluginManager will become a global variable class PluginsPage : public MainPage { Q_OBJECT public: /** Default Constructor */ PluginsPage(QWidget *parent = 0); /** Default Destructor */ virtual ~PluginsPage() ; public slots: //! A slot for processing new plugin registration events. //! Every page, which supports plugins, has to process //! the PluginManager::newPluginRegistered signal. Suppose, the page knows, //! that there is a possible plugin "PuzzleGame"; Then, the page should //! compare received pluginName with "PuzzleGame", and request the plugin //! widget with PluginManager::pluginWidget(..) method void pluginRegistered(QString pluginName); protected: QVBoxLayout* pluginPageLayout; QGroupBox* pluginPanel; QVBoxLayout* pluginPanelLayout; //! Plugin widgets will be loaded into this tabs QTabWidget* pluginTabs ; QVBoxLayout* pmLay; QFrame* pmFrame; QSpacerItem* pmSpacer; //! This should be global, every page should have access to it PluginManager* pluginManager; }; #endif