BsStringTableManager.cpp 1.1 KB

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