| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #include "BsScriptStringTable.h"
- #include "BsScriptMeta.h"
- #include "BsMonoField.h"
- #include "BsMonoClass.h"
- #include "BsMonoManager.h"
- #include "BsMonoUtil.h"
- namespace BansheeEngine
- {
- ScriptStringTable::ScriptStringTable(MonoObject* instance)
- :ScriptObject(instance)
- { }
- void ScriptStringTable::initRuntimeData()
- {
- metaData.scriptClass->addInternalCall("Internal_GetActiveLanguage", &ScriptStringTable::internal_GetActiveLanguage);
- metaData.scriptClass->addInternalCall("Internal_SetActiveLanguage", &ScriptStringTable::internal_SetActiveLanguage);
- metaData.scriptClass->addInternalCall("Internal_SetString", &ScriptStringTable::internal_SetString);
- metaData.scriptClass->addInternalCall("Internal_RemoveString", &ScriptStringTable::internal_RemoveString);
- metaData.scriptClass->addInternalCall("Internal_GetLocalizedString", &ScriptStringTable::internal_GetLocalizedString);
- }
- void ScriptStringTable::internal_GetActiveLanguage(Language* value)
- {
- *value = StringTable::instance().getActiveLanguage();
- }
- void ScriptStringTable::internal_SetActiveLanguage(Language value)
- {
- StringTable::instance().setActiveLanguage(value);
- }
- void ScriptStringTable::internal_SetString(MonoString* identifier, Language language, MonoString* value)
- {
- StringTable::instance().setString(MonoUtil::monoToWString(identifier), language, MonoUtil::monoToWString(value));
- }
- void ScriptStringTable::internal_RemoveString(MonoString* identifier)
- {
- StringTable::instance().removeString(MonoUtil::monoToWString(identifier));
- }
- void ScriptStringTable::internal_GetLocalizedString(MonoString* identifier, MonoString** value)
- {
- HString stringHandle(MonoUtil::monoToWString(identifier));
- WString outString = stringHandle;
- *value = MonoUtil::wstringToMono(MonoManager::instance().getDomain(), outString);
- }
- }
|