![]() |
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 <vrvCore/DtPageAssembler.h> 00016 #include <boost/unordered_map.hpp> 00017 00018 class QWidget; 00019 00020 namespace makVrv 00021 { 00022 class DtPageCreator; 00023 00029 class DT_DLL_VRVCOREQT DtQtPageAssembler : public DtPageAssembler 00030 { 00031 public: 00032 friend class DtQtPageAssemblerCreator; 00033 00035 static DtQtPageAssembler& instance(DtDe& de); 00036 00038 virtual ~DtQtPageAssembler(); 00039 00042 void registerPageCreator(DtPageCreator* creator); 00043 00045 void unregisterPageCreator(DtPageCreator* creator, bool deleteCreator = true); 00046 00048 DtPageCreator* findPageCreator(const std::string& pageClassName) const; 00049 00050 protected: 00051 00053 DtQtPageAssembler(DtDe& de); 00054 00056 virtual void assembleCollection(const DtPagePath& pagePath, const DtUnicode& pageTitle, 00057 const DtPageConfiguration::PageCollectionState& pageState); 00058 00060 virtual void assemblePage(const DtPagePath& pagePath); 00061 00063 virtual void updatePage( const DtPagePath& pagePath, const DtPageConfiguration::PageCollectionState& state); 00064 00066 virtual void tabify( const DtPagePath& pagePath1, const DtPagePath& pagePath2 ); 00067 00069 virtual void setSelectedPage(const DtPagePath& pPath); 00070 00071 QWidget* mainWindow(); 00072 00073 protected: 00074 00075 typedef boost::unordered_map<std::string,DtPageCreator*> PageCreatorMap; 00076 PageCreatorMap myPageCreatorMap; 00077 QWidget* myMainWindowCache; 00078 }; 00079 00083 class DT_DLL_VRVCOREQT DtQtPageAssemblerCreator : public DtPageAssemblerCreator 00084 { 00085 public: 00086 00089 DtQtPageAssemblerCreator(); 00090 00092 virtual ~DtQtPageAssemblerCreator(); 00093 00095 virtual DtPageAssembler* create(DtDe& de); 00096 00097 }; 00098 }