RetroShare/retroshare-gui/src/gui/PluginsPage.h

87 lines
2.6 KiB
C
Raw Normal View History

/****************************************************************
* 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 <QGroupBox>
#include <QString>
#include <QDir>
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