![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: drawerColl.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtDrawerColl_H_ 00013 #define DtDrawerColl_H_ 00014 00015 #include "symbolDrawerInterface/symbolDrawerInterfaceDefines.h" 00016 00018 #include "symbolDrawerInterface/symbolDrawer.h" 00019 #include "symbolDrawerInterface/nullDrawer.h" 00020 00021 #include <vlutil/vlConfig.h> 00022 #include <map> 00023 #include <string> 00024 00025 class DtDrawerKey; 00026 00027 typedef std::map<std::string, DtSymbolDrawerCreatorFcn> DtDrawerMap; 00028 00030 00043 00044 class DT_DLL_symbolDrawerInterface DtDrawerColl 00045 { 00046 public: 00048 DtDrawerColl(); 00049 DtDrawerColl( DtDrawerColl * nextComponent ); 00050 virtual ~DtDrawerColl(); 00051 00053 virtual DtSymbolDrawer * lookupDrawer( const DtDrawerKey & key ) = 0; 00054 00055 virtual DtDrawerColl * component(); 00056 00058 virtual void setComponent(DtDrawerColl *c); 00059 00062 virtual void addComponent(DtDrawerColl *c); 00063 virtual bool init(); 00064 virtual void addDrawerCreator(const QString& str, DtSymbolDrawerCreatorFcn fcn); 00065 virtual DtSymbolDrawer* createDrawer(const QString& str); 00066 00067 protected: 00068 //Protected so not used. Prefer class to be singleton. 00069 DtDrawerColl(const DtDrawerColl& orig); 00070 DtDrawerColl& operator=(const DtDrawerColl& orig); 00071 00072 protected: 00073 DtDrawerColl * myComponent; 00074 DtNullDrawer myNullDrawer; 00075 00077 DtDrawerMap myMap; 00078 }; 00079 00080 #endif