MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #ifndef __MYGUI_I_RESOURCE_H__ 00008 #define __MYGUI_I_RESOURCE_H__ 00009 00010 #include "MyGUI_Prerequest.h" 00011 #include "MyGUI_XmlDocument.h" 00012 #include "MyGUI_Version.h" 00013 #include "MyGUI_ISerializable.h" 00014 00015 namespace MyGUI 00016 { 00017 00018 class IResource; 00019 typedef IResource* IResourcePtr; 00020 00021 class ResourceManager; 00022 00023 class MYGUI_EXPORT IResource : 00024 public ISerializable 00025 { 00026 // для серелизации и удаления 00027 friend class ResourceManager; 00028 00029 MYGUI_RTTI_DERIVED( IResource ) 00030 00031 public: 00032 const std::string& getResourceName() const 00033 { 00034 return mResourceName; 00035 } 00036 00037 void setResourceName(const std::string& _value) 00038 { 00039 mResourceName = _value; 00040 } 00041 00042 private: 00043 // constructors and operator =, without implementation, just for private 00044 IResource(IResource const&); 00045 IResource& operator = (IResource const&); 00046 00047 protected: 00048 IResource() { } 00049 virtual ~IResource() { } 00050 00051 virtual void deserialization(xml::ElementPtr _node, Version _version) 00052 { 00053 _node->findAttribute("name", mResourceName); 00054 } 00055 00056 protected: 00057 std::string mResourceName; 00058 }; 00059 00060 } // namespace MyGUI 00061 00062 #endif // __MYGUI_I_RESOURCE_H__