Index: src/libictranslate/ResourceManager.h =================================================================== diff -u -N -rf1ce2f1e90a5a90b713a998cda2d4cdaf2090fbd -r50fea83cc4ee863edac0fd3960e2249f99c33b03 --- src/libictranslate/ResourceManager.h (.../ResourceManager.h) (revision f1ce2f1e90a5a90b713a998cda2d4cdaf2090fbd) +++ src/libictranslate/ResourceManager.h (.../ResourceManager.h) (revision 50fea83cc4ee863edac0fd3960e2249f99c33b03) @@ -41,9 +41,34 @@ /////////////////////////////////////////////////////////// // language description structure -typedef std::map strings_map; -typedef std::map checksum_map; +class CTranslationItem +{ +public: + CTranslationItem(); + CTranslationItem(const tchar_t* pszText, uint_t uiChecksum); + ~CTranslationItem(); + CTranslationItem& operator=(const CTranslationItem& rSrc); + + void Clear(); + void CalculateChecksum(); + + const tchar_t* GetText() const { return m_pszText; } + void SetText(const tchar_t* pszText); + uint_t GetChecksum() const { return m_uiChecksum; } + void SetChecksum(uint_t uiChecksum) { m_uiChecksum = uiChecksum; } + + void UnescapeString(); + +protected: + tchar_t* m_pszText; + size_t m_stTextLength; + uint_t m_uiChecksum; +}; + +typedef void(*PFNENUMCALLBACK)(uint_t, const CTranslationItem*, ptr_t); +typedef std::map translation_map; + class LIBICTRANSLATE_API CLangData { public: @@ -61,6 +86,8 @@ PCTSTR GetString(WORD wHiID, WORD wLoID); + void EnumStrings(PFNENUMCALLBACK pfnCallback, ptr_t pData); + // attributes void SetFilename(PCTSTR psz); PCTSTR GetFilename(bool bFullPath) const; @@ -114,8 +141,7 @@ bool m_bRTL; // does the language require right-to-left reading order ? // strings (for controls in dialog boxes the ID contains hi:dlg ID, lo:ctrl ID, for strings hi part is 0) - strings_map m_mStrings; // maps string ID to the offset in pszStrings - checksum_map m_mChecksums; // checksums of strings + translation_map m_mapTranslation; // maps string ID to the offset in pszStrings private: uint_t m_uiSectionID; ///< ID of the currently processed section