123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using System.Drawing;
- using CefSharp;
- namespace prBrowser
- {
- internal class DownloadHandler : IDownloadHandler
- {
- private readonly MainForm myForm;
- public DownloadHandler(MainForm form)
- {
- myForm = form;
- }
- public void OnBeforeDownload(IWebBrowser webBrowser, IBrowser browser, DownloadItem item, IBeforeDownloadCallback callback)
- {
- if (callback.IsDisposed)
- {
- return;
- }
- using (callback)
- {
- myForm.UpdateDownloadItem(item);
- myForm.CurTab.Browser.BackColor = Color.White;
- string path = myForm.CalcDownloadPath(item);
- if (path == null)
- {
- callback.Continue(path, showDialog: false);
- return;
- }
- myForm.OpenDownloadsTab();
- callback.Continue(path, showDialog: true);
- }
- }
- public void OnDownloadUpdated(IWebBrowser webBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
- {
- myForm.UpdateDownloadItem(downloadItem);
- if (downloadItem.IsInProgress && myForm.CancelRequests.Contains(downloadItem.Id))
- {
- callback.Cancel();
- }
- }
- }
- }
|