LanguageData.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. namespace I2.Loc
  3. {
  4. public enum eLanguageDataFlags
  5. {
  6. DISABLED = 1,
  7. KEEP_LOADED = 2,
  8. NOT_LOADED = 4
  9. }
  10. [Serializable]
  11. public class LanguageData
  12. {
  13. public string Name;
  14. public string Code;
  15. public byte Flags; // eLanguageDataFlags
  16. [NonSerialized]
  17. public bool Compressed = false; // This will be used in the next version for only loading used Languages
  18. public bool IsEnabled () { return (Flags & (int)eLanguageDataFlags.DISABLED) == 0; }
  19. public void SetEnabled( bool bEnabled )
  20. {
  21. if (bEnabled) Flags = (byte)(Flags & ~(int)eLanguageDataFlags.DISABLED);
  22. else Flags = (byte)(Flags | (int)eLanguageDataFlags.DISABLED);
  23. }
  24. public bool IsLoaded () { return (Flags & (int)eLanguageDataFlags.NOT_LOADED) == 0; }
  25. public bool CanBeUnloaded () { return (Flags & (int)eLanguageDataFlags.KEEP_LOADED) == 0; }
  26. public void SetLoaded ( bool loaded )
  27. {
  28. if (loaded) Flags = (byte)(Flags & ~(int)eLanguageDataFlags.NOT_LOADED);
  29. else Flags = (byte)(Flags | (int)eLanguageDataFlags.NOT_LOADED);
  30. }
  31. public void SetCanBeUnLoaded(bool allowUnloading)
  32. {
  33. if (allowUnloading) Flags = (byte)(Flags & ~(int)eLanguageDataFlags.KEEP_LOADED);
  34. else Flags = (byte)(Flags | (int)eLanguageDataFlags.KEEP_LOADED);
  35. }
  36. }
  37. }