#ifndef __UIRESOURCEMANAGER_H__ #define __UIRESOURCEMANAGER_H__ #pragma once namespace DuiLib { // 控件文字查询接口 class UILIB_API IQueryControlText { public: virtual LPCTSTR QueryControlText(LPCTSTR lpstrId, LPCTSTR lpstrType) = 0; }; class UILIB_API CResourceManager { private: CResourceManager(void); ~CResourceManager(void); public: static CResourceManager* GetInstance() { static CResourceManager * p = new CResourceManager; return p; }; void Release(void) { delete this; } public: BOOL LoadResource(STRINGorID xml, LPCTSTR type = NULL); BOOL LoadResource(CMarkupNode Root); void ResetResourceMap(); LPCTSTR GetImagePath(LPCTSTR lpstrId); LPCTSTR GetXmlPath(LPCTSTR lpstrId); public: void SetLanguage(LPCTSTR pstrLanguage) { m_sLauguage = pstrLanguage; } LPCTSTR GetLanguage() { return m_sLauguage; } BOOL LoadLanguage(LPCTSTR pstrXml); public: void SetTextQueryInterface(IQueryControlText* pInterface) { m_pQuerypInterface = pInterface; } CDuiString GetText(LPCTSTR lpstrId, LPCTSTR lpstrType = NULL); void ReloadText(); void ResetTextMap(); private: CStdStringPtrMap m_mTextResourceHashMap; IQueryControlText* m_pQuerypInterface; CStdStringPtrMap m_mImageHashMap; CStdStringPtrMap m_mXmlHashMap; CMarkup m_xml; CDuiString m_sLauguage; CStdStringPtrMap m_mTextHashMap; }; } // namespace DuiLib #endif // __UIRESOURCEMANAGER_H__