BsScriptStringTable.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptResource.h"
  4. #include "BsStringTable.h"
  5. namespace BansheeEngine
  6. {
  7. class BS_SCR_BE_EXPORT ScriptStringTable : public ScriptObject <ScriptStringTable, ScriptResourceBase>
  8. {
  9. public:
  10. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "StringTable")
  11. ScriptStringTable(MonoObject* instance, const HStringTable& table);
  12. HResource getNativeHandle() const override { return mTable; }
  13. void setNativeHandle(const HResource& resource) override;
  14. HStringTable getStringTableHandle() const { return mTable; }
  15. private:
  16. static void internal_CreateInstance(MonoObject* instance);
  17. static UINT32 internal_GetNumStrings(ScriptStringTable* thisPtr);
  18. static MonoArray* internal_GetIdentifiers(ScriptStringTable* thisPtr);
  19. static void internal_SetString(ScriptStringTable* thisPtr, MonoString* identifier, Language language, MonoString* value);
  20. static void internal_SetStringDefault(ScriptStringTable* thisPtr, MonoString* identifier, MonoString* value);
  21. static void internal_RemoveString(ScriptStringTable* thisPtr, MonoString* identifier);
  22. static void internal_GetString(ScriptStringTable* thisPtr, MonoString* identifier, Language language, MonoString** value);
  23. static void internal_GetStringDefault(ScriptStringTable* thisPtr, MonoString* identifier, MonoString** value);
  24. void _onManagedInstanceDeleted() override;
  25. HStringTable mTable;
  26. };
  27. }