![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCoreQt/vrvCoreQt.h> 00015 #include <QtGui/QWidget> 00016 #include <QtGui/QIcon> 00017 00018 namespace makVrv 00019 { 00020 class DtDe; 00021 00030 class DT_DLL_VRVCOREQT DtPage : public QWidget 00031 { 00032 public: 00036 DtPage(DtDe& de,QWidget* parent = 0, Qt::WindowFlags f = 0); 00037 00039 virtual ~DtPage(); 00040 00042 virtual QIcon icon() = 0; 00043 00045 virtual QString title() = 0; 00046 00048 virtual const std::string& pageClassName() const = 0; 00049 00050 protected: 00051 00052 friend class DtQtPageCollection; 00053 00055 virtual void activate() = 0; 00056 00058 virtual void deactivate() = 0; 00059 00060 protected: 00061 DtDe& myDe; 00062 }; 00063 00069 class DT_DLL_VRVCOREQT DtPageCreator 00070 { 00071 public: 00073 DtPageCreator(DtDe& de); 00074 00076 virtual ~DtPageCreator(); 00077 00081 virtual std::string pageClassName() const = 0; 00082 00084 virtual DtPage* create(QWidget* parent = 0, Qt::WindowFlags f = 0) = 0; 00085 00086 protected: 00087 DtDe& myDe; 00088 }; 00089 00090 00097 template <typename PageClass> 00098 class DtPageCreatorTemplate : public DtPageCreator 00099 { 00100 public: 00101 00103 DtPageCreatorTemplate(DtDe& de) 00104 : DtPageCreator(de) 00105 { 00106 } 00107 00109 virtual ~DtPageCreatorTemplate() 00110 { 00111 } 00112 00115 virtual std::string pageClassName() const 00116 { 00117 return PageClass::thePageClassName(); 00118 } 00119 00121 virtual DtPage* create(QWidget* parent = 0, Qt::WindowFlags f = 0) 00122 { 00123 return new PageClass(myDe, parent, f); 00124 } 00125 }; 00126 } 00127