Crazy Eddie's GUI System
0.8.4
|
00001 /******************************************************************************* 00002 Created: 14.07.2011 00003 Author: Hans Mackowiak (Hanmac) hanmac@gmx.de 00004 *******************************************************************************/ 00005 /*************************************************************************** 00006 Copyright (C) 2004 - 2011 Paul D Turner & The CEGUI Development Team 00007 00008 Permission is hereby granted, free of charge, to any person obtaining 00009 a copy of this software and associated documentation files (the 00010 "Software"), to deal in the Software without restriction, including 00011 without limitation the rights to use, copy, modify, merge, publish, 00012 distribute, sublicense, and/or sell copies of the Software, and to 00013 permit persons to whom the Software is furnished to do so, subject to 00014 the following conditions: 00015 00016 The above copyright notice and this permission notice shall be 00017 included in all copies or substantial portions of the Software. 00018 00019 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00020 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00021 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00022 IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 00023 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 00024 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 00025 OTHER DEALINGS IN THE SOFTWARE. 00026 ***************************************************************************/ 00027 #ifndef _CEGUICompositeResourceProvider_h_ 00028 #define _CEGUICompositeResourceProvider_h_ 00029 #include "CEGUI/Base.h" 00030 #include "CEGUI/IteratorBase.h" 00031 #include "CEGUI/MemoryAllocation.h" 00032 #include "CEGUI/ResourceProvider.h" 00033 #include <map> 00034 00035 #if defined(_MSC_VER) 00036 # pragma warning(push) 00037 # pragma warning(disable : 4251) 00038 #endif 00039 00040 // Start of CEGUI namespace section 00041 namespace CEGUI 00042 { 00043 class CEGUIEXPORT CompositeResourceProvider : public ResourceProvider 00044 { 00045 public: 00046 /************************************************************************* 00047 Construction and Destruction 00048 *************************************************************************/ 00049 CompositeResourceProvider(); 00050 ~CompositeResourceProvider(void); 00064 void add(ResourceProvider *prov,const String& name); 00075 template<typename T>void add(const String& name) 00076 { 00077 add(CEGUI_NEW_AO T,name); 00078 } 00089 void remove(ResourceProvider *prov); 00100 void remove(const String& name); 00111 ResourceProvider* get(const String& name); 00112 00113 void loadRawDataContainer(const String& filename, 00114 RawDataContainer& output, 00115 const String& resourceGroup); 00116 size_t getResourceGroupFileNames(std::vector<String>& out_vec, 00117 const String& file_pattern, 00118 const String& resource_group); 00119 protected: 00120 typedef std::map<String, ResourceProvider*, StringFastLessCompare> Providermap; 00121 Providermap d_providerlist; 00122 public: 00123 typedef ConstMapIterator<Providermap> ProviderIterator; 00124 ProviderIterator getIterator() const; 00125 }; 00126 00127 } // End of CEGUI namespace section 00128 00129 #if defined(_MSC_VER) 00130 # pragma warning(pop) 00131 #endif 00132 00133 #endif // end of guard _CEGUICompositeResourceProvider_h_