SoftwareKeyboardAppear.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.Runtime.InteropServices;
  2. namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
  3. {
  4. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
  5. struct SoftwareKeyboardAppear
  6. {
  7. private const int OkTextLength = 8;
  8. // Some games send a Calc without intention of showing the keyboard, a
  9. // common trend observed is that this field will be != 0 in such cases.
  10. public uint ShouldBeHidden;
  11. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = OkTextLength + 1)]
  12. public string OkText;
  13. /// <summary>
  14. /// The character displayed in the left button of the numeric keyboard.
  15. /// This is ignored when Mode is not set to NumbersOnly.
  16. /// </summary>
  17. public char LeftOptionalSymbolKey;
  18. /// <summary>
  19. /// The character displayed in the right button of the numeric keyboard.
  20. /// This is ignored when Mode is not set to NumbersOnly.
  21. /// </summary>
  22. public char RightOptionalSymbolKey;
  23. /// <summary>
  24. /// When set, predictive typing is enabled making use of the system dictionary,
  25. /// and any custom user dictionary.
  26. /// </summary>
  27. [MarshalAs(UnmanagedType.I1)]
  28. public bool PredictionEnabled;
  29. public byte Empty;
  30. /// <summary>
  31. /// Specifies prohibited characters that cannot be input into the text entry area.
  32. /// </summary>
  33. public InvalidCharFlags InvalidCharFlag;
  34. public int Padding1;
  35. public int Padding2;
  36. public byte EnableReturnButton;
  37. public byte Padding3;
  38. public byte Padding4;
  39. public byte Padding5;
  40. public uint CalcArgFlags;
  41. public uint Padding6;
  42. public uint Padding7;
  43. public uint Padding8;
  44. public uint Padding9;
  45. public uint Padding10;
  46. public uint Padding11;
  47. }
  48. }