EventTargetExtensions
A set of extensions for EventTarget objects.
using AngleSharp.Dom;
using AngleSharp.Dom.Events;
using System;
using System.Threading.Tasks;
namespace AngleSharp.Extensions
{
internal static class EventTargetExtensions
{
public static bool FireSimpleEvent(this IEventTarget target, string eventName, bool bubble = false, bool cancelable = false)
{
Event event = new Event();
event.IsTrusted = true;
event.Init(eventName, bubble, cancelable);
return event.Dispatch(target);
}
public static bool Fire(this IEventTarget target, Event eventData)
{
eventData.IsTrusted = true;
return eventData.Dispatch(target);
}
public static Task FireAsync<T>(this IBrowsingContext target, string eventName, T data)
{
InteractivityEvent<T> interactivityEvent = new InteractivityEvent<T>(eventName, data);
target.Fire(interactivityEvent);
return interactivityEvent.Result ?? TaskEx.FromResult(false);
}
public static bool Fire<T>(this IEventTarget target, Action<T> initializer, IEventTarget targetOverride = null) where T : Event, new
{
T val = new T();
val.IsTrusted = true;
T val2 = val;
initializer(val2);
return val2.Dispatch(targetOverride ?? target);
}
}
}