aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs
diff options
context:
space:
mode:
authorCaian Benedicto <caianbene@gmail.com>2021-01-11 15:27:55 -0300
committerGitHub <noreply@github.com>2021-01-11 19:27:55 +0100
commite57b14042910eac2f876549b4a1e6fd5ba027368 (patch)
treedcfeabf03776310bb7095076d1a1e9300b069bfc /Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs
parentb81f19613f306267ee0f448d2f23caef74afef79 (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/SoftwareKeyboardCalc.cs')
-rw-r--r--Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs84
1 files changed, 84 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs b/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs
new file mode 100644
index 00000000..6213c2e4
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardCalc.cs
@@ -0,0 +1,84 @@
+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;
+ }
+}