Files
LuaCsForBarotraumaEP/Libraries/MonoGame.Framework/Src/MonoGame.Framework/Input/KeyboardInput.cs
2019-06-25 16:00:44 +03:00

59 lines
2.4 KiB
C#

using System;
using System.Threading.Tasks;
namespace Microsoft.Xna.Framework.Input
{
public static partial class KeyboardInput
{
public static bool IsVisible { get; private set; }
/// <summary>
/// Displays the keyboard input interface asynchronously.
/// </summary>
/// <param name="title">Title of the dialog box.</param>
/// <param name="description">Description of the dialog box.</param>
/// <param name="defaultText">Default text displayed in the input area.</param>
/// <param name="usePasswordMode">If password mode is enabled, the characters entered are not displayed.</param>
/// <returns>Text entered by the player. Null if back was used.</returns>
/// <exception cref="System.Exception">Thrown when the message box is already visible</exception>
/// <example>
/// <code>
/// var name = await KeyboardInput.Show("Name", "What's your name?", "Player");
/// </code>
/// </example>
public static async Task<string> Show(string title, string description, string defaultText = "", bool usePasswordMode = false)
{
if (IsVisible)
throw new Exception("The function cannot be completed at this time: the KeyboardInput UI is already active. Wait until KeyboardInput.IsVisible is false before issuing this call.");
IsVisible = true;
var result = await PlatformShow(title, description, defaultText, usePasswordMode);
IsVisible = false;
return result;
}
/// <summary>
/// Hides the keyboard input interface and returns the parameter as the result of <see cref="Show"/>
/// </summary>
/// <param name="result">Result to return</param>
/// <exception cref="System.Exception">Thrown when the keyboard input is not visible</exception>
/// <example>
/// <code>
/// var nameTask = KeyboardInput.Show("Name", "What's your name?", "Player");
/// KeyboardInput.Cancel("John Doe");
/// var name = await nameTask;
/// </code>
/// </example>
public static void Cancel(string result)
{
if (!IsVisible)
throw new Exception("The function cannot be completed at this time: the MessageBox UI is not active.");
PlatformCancel(result);
}
}
}