| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using System.Runtime.InteropServices;
- namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
- {
- /// <summary>
- /// A structure that defines the configuration options of the software keyboard.
- /// </summary>
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- struct SoftwareKeyboardConfig
- {
- private const int SubmitTextLength = 8;
- private const int HeaderTextLength = 64;
- private const int SubtitleTextLength = 128;
- private const int GuideTextLength = 256;
- /// <summary>
- /// Type of keyboard.
- /// </summary>
- public KeyboardMode Mode;
- /// <summary>
- /// The string displayed in the Submit button.
- /// </summary>
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = SubmitTextLength + 1)]
- public string SubmitText;
- /// <summary>
- /// The character displayed in the left button of the numeric keyboard.
- /// This is ignored when Mode is not set to NumbersOnly.
- /// </summary>
- public char LeftOptionalSymbolKey;
- /// <summary>
- /// The character displayed in the right button of the numeric keyboard.
- /// This is ignored when Mode is not set to NumbersOnly.
- /// </summary>
- public char RightOptionalSymbolKey;
- /// <summary>
- /// When set, predictive typing is enabled making use of the system dictionary,
- /// and any custom user dictionary.
- /// </summary>
- [MarshalAs(UnmanagedType.I1)]
- public bool PredictionEnabled;
- /// <summary>
- /// Specifies prohibited characters that cannot be input into the text entry area.
- /// </summary>
- public InvalidCharFlags InvalidCharFlag;
- /// <summary>
- /// The initial position of the text cursor displayed in the text entry area.
- /// </summary>
- public InitialCursorPosition InitialCursorPosition;
- /// <summary>
- /// The string displayed in the header area of the keyboard.
- /// </summary>
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = HeaderTextLength + 1)]
- public string HeaderText;
- /// <summary>
- /// The string displayed in the subtitle area of the keyboard.
- /// </summary>
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = SubtitleTextLength + 1)]
- public string SubtitleText;
- /// <summary>
- /// The placeholder string displayed in the text entry area when no text is entered.
- /// </summary>
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = GuideTextLength + 1)]
- public string GuideText;
- /// <summary>
- /// When non-zero, specifies the maximum allowed length of the string entered into the text entry area.
- /// </summary>
- public int StringLengthMax;
- /// <summary>
- /// When non-zero, specifies the minimum allowed length of the string entered into the text entry area.
- /// </summary>
- public int StringLengthMin;
- /// <summary>
- /// When enabled, hides input characters as dots in the text entry area.
- /// </summary>
- public PasswordMode PasswordMode;
- /// <summary>
- /// Specifies whether the text entry area is displayed as a single-line entry, or a multi-line entry field.
- /// </summary>
- public InputFormMode InputFormMode;
- /// <summary>
- /// When set, enables or disables the return key. This value is ignored when single-line entry is specified as the InputFormMode.
- /// </summary>
- [MarshalAs(UnmanagedType.I1)]
- public bool UseNewLine;
- /// <summary>
- /// When set, the software keyboard will return a UTF-8 encoded string, rather than UTF-16.
- /// </summary>
- [MarshalAs(UnmanagedType.I1)]
- public bool UseUtf8;
- /// <summary>
- /// When set, the software keyboard will blur the game application rendered behind the keyboard.
- /// </summary>
- [MarshalAs(UnmanagedType.I1)]
- public bool UseBlurBackground;
- /// <summary>
- /// Offset into the work buffer of the initial text when the keyboard is first displayed.
- /// </summary>
- public int InitialStringOffset;
- /// <summary>
- /// Length of the initial text.
- /// </summary>
- public int InitialStringLength;
- /// <summary>
- /// Offset into the work buffer of the custom user dictionary.
- /// </summary>
- public int CustomDictionaryOffset;
- /// <summary>
- /// Number of entries in the custom user dictionary.
- /// </summary>
- public int CustomDictionaryCount;
- /// <summary>
- /// When set, the text entered will be validated on the application side after the keyboard has been submitted.
- /// </summary>
- [MarshalAs(UnmanagedType.I1)]
- public bool CheckText;
- }
- }
|