From cee712105850ac3385cd0091a923438167433f9f Mon Sep 17 00:00:00 2001
From: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
Date: Sat, 8 Apr 2023 01:22:00 +0200
Subject: Move solution and projects to src

---
 .../SoftwareKeyboard/SoftwareKeyboardConfig.cs     | 138 +++++++++++++++++++++
 1 file changed, 138 insertions(+)
 create mode 100644 src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardConfig.cs

(limited to 'src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardConfig.cs')

diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardConfig.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardConfig.cs
new file mode 100644
index 00000000..fd462382
--- /dev/null
+++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardConfig.cs
@@ -0,0 +1,138 @@
+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;
+    }
+}
-- 
cgit v1.2.3-70-g09d2