VR-Vantage 1.4.1 API Class Documentation
DtPage.h
Go to the documentation of this file.
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 


Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)