Ryujinx-uplift/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs
Caian Benedicto e57b140429
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
2021-01-11 19:27:55 +01:00

85 lines
2.0 KiB
C#

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, Pack=1, CharSet = CharSet.Unicode)]
struct SoftwareKeyboardCalc
{
private const int InputTextLength = 505;
public uint Unknown;
public ushort Size;
public byte Unknown1;
public byte Unknown2;
public ulong Flags;
public SoftwareKeyboardInitialize Initialize;
public float Volume;
public int CursorPos;
public SoftwareKeyboardAppear Appear;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = InputTextLength + 1)]
public string InputText;
public byte Utf8Mode;
public byte Unknown3;
[MarshalAs(UnmanagedType.I1)]
public bool BackspaceEnabled;
public short Unknown4;
public byte Unknown5;
[MarshalAs(UnmanagedType.I1)]
public byte KeytopAsFloating;
[MarshalAs(UnmanagedType.I1)]
public byte FooterScalable;
[MarshalAs(UnmanagedType.I1)]
public byte AlphaEnabledInInputMode;
[MarshalAs(UnmanagedType.I1)]
public byte InputModeFadeType;
[MarshalAs(UnmanagedType.I1)]
public byte TouchDisabled;
[MarshalAs(UnmanagedType.I1)]
public byte HardwareKeyboardDisabled;
public uint Unknown6;
public uint Unknown7;
public float KeytopScale0;
public float KeytopScale1;
public float KeytopTranslate0;
public float KeytopTranslate1;
public float KeytopBgAlpha;
public float FooterBgAlpha;
public float BalloonScale;
public float Unknown8;
public uint Unknown9;
public uint Unknown10;
public uint Unknown11;
public byte SeGroup;
public byte TriggerFlag;
public byte Trigger;
public byte Padding;
}
}