Show More
Commit Description:
Rename constant to something clearer.
Commit Description:
Rename constant to something clearer.
References:
File last commit:
Show/Diff file:
Action:
FNA/src/Input/TextInputEXT.cs
100 lines | 2.5 KiB | text/x-csharp | CSharpLexer
100 lines | 2.5 KiB | text/x-csharp | CSharpLexer
r0 | #region License | |||
/* FNA - XNA4 Reimplementation for Desktop Platforms | ||||
r690 | * Copyright 2009-2022 Ethan Lee and the MonoGame Team | |||
r0 | * | |||
* Released under the Microsoft Public License. | ||||
* See LICENSE for details. | ||||
*/ | ||||
#endregion | ||||
#region Using Statements | ||||
using System; | ||||
#endregion | ||||
namespace Microsoft.Xna.Framework.Input | ||||
{ | ||||
public static class TextInputEXT | ||||
{ | ||||
#region Event | ||||
/// <summary> | ||||
/// Use this event to retrieve text for objects like textboxes. | ||||
/// This event is not raised by noncharacter keys. | ||||
/// This event also supports key repeat. | ||||
/// For more information this event is based off: | ||||
/// http://msdn.microsoft.com/en-AU/library/system.windows.forms.control.keypress.aspx | ||||
/// </summary> | ||||
public static event Action<char> TextInput; | ||||
r690 | /// <summary> | |||
/// This event notifies you of in-progress text composition happening in an IME or other tool | ||||
/// and allows you to display the draft text appropriately before it has become input. | ||||
/// For more information, see SDL's tutorial: https://wiki.libsdl.org/Tutorials-TextInput | ||||
/// </summary> | ||||
public static event Action<string, int, int> TextEditing; | ||||
r0 | #endregion | |||
#region Public Static Methods | ||||
r690 | /// <summary> | |||
/// Returns if text input state is active | ||||
/// | ||||
/// Note: For on-screen keyboard, this may remain true on | ||||
/// some platforms if an external event closed the keyboard. | ||||
/// In this case, check IsScreenKeyboardShow instead. | ||||
/// </summary> | ||||
/// <returns>True if text input state is active</returns> | ||||
public static bool IsTextInputActive() | ||||
{ | ||||
return FNAPlatform.IsTextInputActive(); | ||||
} | ||||
public static bool IsScreenKeyboardShown(IntPtr window) | ||||
{ | ||||
return FNAPlatform.IsScreenKeyboardShown(window); | ||||
} | ||||
r0 | public static void StartTextInput() | |||
{ | ||||
FNAPlatform.StartTextInput(); | ||||
} | ||||
public static void StopTextInput() | ||||
{ | ||||
FNAPlatform.StopTextInput(); | ||||
} | ||||
/// <summary> | ||||
/// Sets the location within the game window where the text input is located. | ||||
/// This is used to set the location of the IME suggestions | ||||
/// </summary> | ||||
/// <param name="rectangle">Text input location relative to GameWindow.ClientBounds</param> | ||||
public static void SetInputRectangle(Rectangle rectangle) | ||||
{ | ||||
FNAPlatform.SetTextInputRectangle(rectangle); | ||||
} | ||||
#endregion | ||||
#region Internal Event Access Method | ||||
internal static void OnTextInput(char c) | ||||
{ | ||||
if (TextInput != null) | ||||
{ | ||||
TextInput(c); | ||||
} | ||||
} | ||||
r690 | internal static void OnTextEditing(string text, int start, int length) | |||
{ | ||||
if (TextEditing != null) | ||||
{ | ||||
TextEditing(text, start, length); | ||||
} | ||||
} | ||||
r0 | #endregion | |||
} | ||||
} | ||||