StringTable.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.CompilerServices;
  5. using System.Text;
  6. namespace BansheeEngine
  7. {
  8. public sealed class StringTable : Resource
  9. {
  10. public StringTable()
  11. {
  12. Internal_CreateInstance(this);
  13. }
  14. public int GetNumStrings()
  15. {
  16. return Internal_GetNumStrings(mCachedPtr);
  17. }
  18. public string[] GetIdentifiers()
  19. {
  20. return Internal_GetIdentifiers(mCachedPtr);
  21. }
  22. public void SetString(string identifier, Language language, string value)
  23. {
  24. Internal_SetString(mCachedPtr, identifier, language, value);
  25. }
  26. public void SetString(string identifier, string value)
  27. {
  28. Internal_SetStringDefault(mCachedPtr, identifier, value);
  29. }
  30. public void RemoveString(string identifier)
  31. {
  32. Internal_RemoveString(mCachedPtr, identifier);
  33. }
  34. public string GetString(string identifier, Language language)
  35. {
  36. string value;
  37. Internal_GetString(mCachedPtr, identifier, language, out value);
  38. return value;
  39. }
  40. public string GetString(string identifier)
  41. {
  42. string value;
  43. Internal_GetStringDefault(mCachedPtr, identifier, out value);
  44. return value;
  45. }
  46. [MethodImpl(MethodImplOptions.InternalCall)]
  47. private static extern void Internal_CreateInstance(StringTable instance);
  48. [MethodImpl(MethodImplOptions.InternalCall)]
  49. private static extern int Internal_GetNumStrings(IntPtr thisPtr);
  50. [MethodImpl(MethodImplOptions.InternalCall)]
  51. private static extern string[] Internal_GetIdentifiers(IntPtr thisPtr);
  52. [MethodImpl(MethodImplOptions.InternalCall)]
  53. private static extern void Internal_SetString(IntPtr thisPtr, string identifier, Language language, string value);
  54. [MethodImpl(MethodImplOptions.InternalCall)]
  55. private static extern void Internal_SetStringDefault(IntPtr thisPtr, string identifier, string value);
  56. [MethodImpl(MethodImplOptions.InternalCall)]
  57. private static extern void Internal_RemoveString(IntPtr thisPtr, string identifier);
  58. [MethodImpl(MethodImplOptions.InternalCall)]
  59. private static extern void Internal_GetString(IntPtr thisPtr, string identifier, Language language, out string value);
  60. [MethodImpl(MethodImplOptions.InternalCall)]
  61. private static extern void Internal_GetStringDefault(IntPtr thisPtr, string identifier, out string value);
  62. }
  63. }