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

45 lines
1.3 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using UIKit;
namespace Microsoft.Xna.Framework.Input
{
public static partial class MessageBox
{
private static TaskCompletionSource<int?> tcs;
private static UIAlertView alert;
private static Task<int?> PlatformShow(string title, string description, List<string> buttons)
{
tcs = new TaskCompletionSource<int?>();
UIApplication.SharedApplication.InvokeOnMainThread(delegate
{
alert = new UIAlertView();
alert.Title = title;
alert.Message = description;
foreach (string button in buttons)
alert.AddButton(button);
alert.Dismissed += (sender, e) =>
{
if (!tcs.Task.IsCompleted)
tcs.SetResult((int)e.ButtonIndex);
};
alert.Show();
});
return tcs.Task;
}
private static void PlatformCancel(int? result)
{
if (!tcs.Task.IsCompleted)
tcs.SetResult(result);
UIApplication.SharedApplication.InvokeOnMainThread(delegate
{
alert.DismissWithClickedButtonIndex(0, true);
});
}
}
}