diff options
author | Caian Benedicto <caianbene@gmail.com> | 2021-01-11 15:27:55 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 19:27:55 +0100 |
commit | e57b14042910eac2f876549b4a1e6fd5ba027368 (patch) | |
tree | dcfeabf03776310bb7095076d1a1e9300b069bfc /Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardAppear.cs | |
parent | b81f19613f306267ee0f448d2f23caef74afef79 (diff) |
Add support for inline software keyboard (#1868)
* Add background mode configuration to SoftwareKeyboardApplet
* Add placeholder text generator for Software Keyboard in background mode
* Add stub for GetIndirectLayerImageMap
* Fix default state of DecidedCancel response
* Add GUI text input to Software Keyboard in background mode
* Fix graphical glitch when Inline Software Keyboard appears
* Improve readability of InlineResponses class
* Improve code styling and fix compiler warnings
* Replace ServiceDisplay log class by ServiceVi
* Replace static readonly by const
* Add proper finalization to the keyboard applet in inline mode
* Rename constants to start with uppercase
* Fix inline keyboard not working with some games
* Improve code readability
* Fix code styling
Diffstat (limited to 'Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardAppear.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardAppear.cs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardAppear.cs b/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardAppear.cs new file mode 100644 index 00000000..23e8bd1f --- /dev/null +++ b/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardAppear.cs @@ -0,0 +1,61 @@ +using System.Runtime.InteropServices; + +namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard +{ + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + struct SoftwareKeyboardAppear + { + private const int OkTextLength = 8; + + // Some games send a Calc without intention of showing the keyboard, a + // common trend observed is that this field will be != 0 in such cases. + public uint ShouldBeHidden; + + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = OkTextLength + 1)] + public string OkText; + + /// <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; + + public byte Empty; + + /// <summary> + /// Specifies prohibited characters that cannot be input into the text entry area. + /// </summary> + public InvalidCharFlags InvalidCharFlag; + + public int Padding1; + public int Padding2; + + public byte EnableReturnButton; + + public byte Padding3; + public byte Padding4; + public byte Padding5; + + public uint CalcArgFlags; + + public uint Padding6; + public uint Padding7; + public uint Padding8; + public uint Padding9; + public uint Padding10; + public uint Padding11; + } +} |