![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtFileExtensionManager.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrvCore/vrvCore.h> 00016 00017 #include <vrvUtil/DtUnicode.h> 00018 #include <vrvUtil/DtVirtualBaseClass.h> 00019 00020 #include <boost/unordered_map.hpp> 00021 00022 #include <string> 00023 #include <list> 00024 00025 namespace makVrv 00026 { 00027 class DtDe; 00028 00032 class DT_DLL_VRVCORE DtFileExtensionManager : public DtVirtualBaseClass 00033 { 00034 00035 public: 00037 typedef std::list<std::string> ExtensionList; 00038 00040 struct FileExtensionData 00041 { 00042 DtUnicode description; 00043 ExtensionList extensions; 00044 }; 00045 00048 typedef std::list<FileExtensionData> FileExtensionGroup; 00049 00051 typedef boost::unordered_map<std::string, FileExtensionGroup> DialogTypeMap; 00052 00054 static DtFileExtensionManager& instance(DtDe& de); 00055 00057 virtual ~DtFileExtensionManager(); 00058 00061 virtual void addFileExtensions( const std::string& dialogType, 00062 const DtUnicode& description, const ExtensionList& extensions ); 00063 00066 virtual void addFileExtension( const std::string& dialogType, 00067 const DtUnicode& description, const std::string& extension ); 00068 00072 virtual void removeFileExtensions( const std::string& dialogType, 00073 const ExtensionList& extensions ); 00074 00078 virtual void removeFileExtension( const std::string& dialogType, 00079 const std::string& extension ); 00080 00083 virtual const FileExtensionGroup& getFileExtensions( 00084 const std::string& dialogType ) const; 00085 00086 protected: 00087 00089 DtFileExtensionManager(DtDe& de); 00090 00091 virtual bool extensionListsMatch(const ExtensionList& extensions1, 00092 const ExtensionList& extensions2 ); 00093 00094 protected: 00095 00096 DtDe& myDe; 00097 DialogTypeMap myFileExtensions; 00098 }; 00099 }