using CefSharp; using TweetDuck.Browser.Notification; using TweetDuck.Controls; using TweetLib.Browser.Contexts; using IContextMenuHandler = TweetLib.Browser.Interfaces.IContextMenuHandler; namespace TweetDuck.Browser.Handling { sealed class ContextMenuNotification : ContextMenuBase { private readonly FormNotificationBase form; public ContextMenuNotification(FormNotificationBase form, IContextMenuHandler handler) : base(handler) { this.form = form; } protected override Context CreateContext(IContextMenuParams parameters) { Context context = base.CreateContext(parameters); context.Notification = new TweetLib.Browser.Contexts.Notification(form.CurrentTweetUrl, form.CurrentQuoteUrl); return context; } public override void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { base.OnBeforeContextMenu(browserControl, browser, frame, parameters, model); form.InvokeAsyncSafe(() => form.ContextMenuOpen = true); } public override void OnContextMenuDismissed(IWebBrowser browserControl, IBrowser browser, IFrame frame) { base.OnContextMenuDismissed(browserControl, browser, frame); form.InvokeAsyncSafe(() => form.ContextMenuOpen = false); } } }