defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010-2011 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 namespace Gui 00012 { 00013 class Module; 00014 } 00015 00016 #ifndef MODULE_HPP 00017 #define MODULE_HPP 00018 00019 #include "modulewidget.hpp" 00020 #include "parameterscategory.hpp" 00021 #include "parameterspage.hpp" 00022 #include <QtCore/QString> 00023 #include <QMap> 00024 00025 namespace Params 00026 { 00027 class Parameterizable; 00028 } 00029 00030 namespace Gui 00031 { 00032 class GuiCore; 00033 00040 class Module : public QObject 00041 { 00042 Q_OBJECT 00043 friend class ModuleFactory; 00044 friend class GridElement; 00045 friend class GuiCore; 00046 friend class Tab; 00047 00048 public: 00049 void submitForDisplay(ModuleWidget* widget); 00050 void submitForDisplay(); 00051 const QString& getUniqId() const; 00052 void addParametersPage(ParametersPage *parameterPage); 00053 bool hasParameters() const; 00054 void setSizePolicy(const QSizePolicy::Policy &sizePolicy, const QSizePolicy::Policy &colSizePolicy = QSizePolicy::Expanding); 00055 00056 private: 00057 Module(GuiCore* guiCore); 00058 void setTabIndex(int tabIndex); 00059 void setPosition(QPoint position); 00060 void setTitle(const QString &title); 00061 void setUniqId(const QString &uniqId); 00062 void setWidget(ModuleWidget *widget); 00063 int getTabIndex() const; 00064 const QPoint& getPosition() const; 00065 int getRow() const; 00066 int getColumn() const; 00067 ModuleWidget* getWidget() const; 00068 ModuleWidget *widget; 00069 GuiCore *guiCore; 00070 QString title; 00071 QString uniqId; 00072 QPoint position; 00073 QMap<QString, ParametersPage*> parametersPages; 00074 ParametersCategory* parametersCategory; 00075 QSizePolicy::Policy sizePolicy, colSizePolicy; 00076 int tabIndex; 00077 00078 signals: 00079 void displayPending(); 00080 }; 00081 } 00082 00083 #endif // MODULE_HPP