1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-05-16 17:34:08 +02:00
TweetDuck/Core/Handling/JavaScriptDialogHandler.cs

50 lines
1.9 KiB
C#

using CefSharp;
using CefSharp.WinForms;
using System.Windows.Forms;
using TweetDck.Core.Controls;
using TweetDck.Core.Other;
namespace TweetDck.Core.Handling {
class JavaScriptDialogHandler : IJsDialogHandler{
bool IJsDialogHandler.OnJSDialog(IWebBrowser browserControl, IBrowser browser, string originUrl, CefJsDialogType dialogType, string messageText, string defaultPromptText, IJsDialogCallback callback, ref bool suppressMessage){
if (dialogType != CefJsDialogType.Alert && dialogType != CefJsDialogType.Confirm){
return false;
}
((ChromiumWebBrowser)browserControl).InvokeSafe(() => {
FormMessage form = new FormMessage(Program.BrandName, messageText, MessageBoxIcon.None);
Button btnConfirm;
if (dialogType == CefJsDialogType.Alert){
btnConfirm = form.AddButton("OK");
}
else if (dialogType == CefJsDialogType.Confirm){
form.AddButton("No");
btnConfirm = form.AddButton("Yes");
}
else{
return;
}
if (form.ShowDialog() == DialogResult.OK && form.ClickedButton == btnConfirm){
callback.Continue(true);
}
else{
callback.Continue(false);
}
form.Dispose();
});
return true;
}
bool IJsDialogHandler.OnJSBeforeUnload(IWebBrowser browserControl, IBrowser browser, string message, bool isReload, IJsDialogCallback callback){
return false;
}
void IJsDialogHandler.OnResetDialogState(IWebBrowser browserControl, IBrowser browser){}
void IJsDialogHandler.OnDialogClosed(IWebBrowser browserControl, IBrowser browser){}
}
}