Ooui-tws-port/Ooui.Forms/DisplayAlert.cs

115 lines
2.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using Xamarin.Forms.Internals;
namespace Ooui.Forms
{
public class DisplayAlert
{
private readonly Button _closeButton;
private readonly Button _acceptButton;
private readonly Button _cancelButton;
public DisplayAlert(AlertArguments arguments)
{
Element = new Div
{
ClassName = "modal-dialog"
};
var content = new Div
{
ClassName = "modal-content"
};
var header = new Div
{
ClassName = "modal-header"
};
_closeButton = new Button
{
ClassName = "close"
};
_closeButton.AppendChild(new Span("×"));
var h4 = new Heading(4)
{
Text = arguments.Title
};
header.AppendChild(_closeButton);
header.AppendChild(h4);
content.AppendChild(header);
content.AppendChild(new Div()
{
ClassName = "modal-body",
Text = arguments.Message
});
if (!string.IsNullOrEmpty(arguments.Cancel))
{
var footer = new Div()
{
ClassName = "modal-footer"
};
_cancelButton = new Button(arguments.Cancel)
{
ClassName = "btn btn-default"
};
_cancelButton.Click += (s, e) => SetResult(false);
footer.AppendChild(_cancelButton);
if (!string.IsNullOrEmpty(arguments.Accept))
{
_acceptButton = new Button(arguments.Accept)
{
ClassName = "btn btn-default"
};
_acceptButton.Click += (s, e) => SetResult(true);
footer.AppendChild(_acceptButton);
}
content.AppendChild(footer);
}
Element.AppendChild(content);
void SetResult(bool result)
{
arguments.SetResult(result);
}
}
public event TargetEventHandler Clicked
{
add
{
_closeButton.Click += value;
if(_cancelButton != null)
_cancelButton.Click += value;
if(_acceptButton != null)
_acceptButton.Click += value;
}
remove
{
_closeButton.Click -= value;
if (_cancelButton != null)
_cancelButton.Click -= value;
if (_acceptButton != null)
_acceptButton.Click -= value;
}
}
public Element Element { get; private set; }
}
}