2
0

BsStringTableManager.cpp 890 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "BsStringTableManager.h"
  2. namespace BansheeEngine
  3. {
  4. StringTableManager::StringTableManager()
  5. :mActiveLanguage(StringTable::DEFAULT_LANGUAGE)
  6. {
  7. }
  8. void StringTableManager::setActiveLanguage(Language language)
  9. {
  10. if (language != mActiveLanguage)
  11. {
  12. mActiveLanguage = language;
  13. for (auto& tablePair : mTables)
  14. tablePair.second->setActiveLanguage(language);
  15. }
  16. }
  17. HStringTable StringTableManager::getTable(UINT32 id)
  18. {
  19. auto iterFind = mTables.find(id);
  20. if (iterFind != mTables.end())
  21. return iterFind->second;
  22. HStringTable newTable = StringTable::create();
  23. setTable(id, newTable);
  24. return newTable;
  25. }
  26. void StringTableManager::removeTable(UINT32 id)
  27. {
  28. mTables.erase(id);
  29. }
  30. void StringTableManager::setTable(UINT32 id, HStringTable table)
  31. {
  32. mTables[id] = table;
  33. if (table != nullptr)
  34. table->setActiveLanguage(mActiveLanguage);
  35. }
  36. }