// Copyright © 2021 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. using System.Collections.Generic; namespace CefSharp.Handler { /// /// Implement this interface to handle dialog events. The methods of this class will be called on the CEF UI thread. /// public class DialogHandler : IDialogHandler { /// bool IDialogHandler.OnFileDialog( IWebBrowser chromiumWebBrowser, IBrowser browser, CefFileDialogMode mode, string title, string defaultFilePath, List acceptFilters, IFileDialogCallback callback) { return OnFileDialog(chromiumWebBrowser, browser, mode, title, defaultFilePath, acceptFilters, callback); } /// /// Runs a file chooser dialog. /// /// /// To test assign something like TempFileDialogHandler (from CefSharp.Example) to DialogHandler e.g. /// /// browser.DialogHandler = new TempFileDialogHandler(); /// /// Example URL to use for file browsing http://www.cs.tut.fi/~jkorpela/forms/file.html#example /// Simply click browse, the space next to the browse button should be populated with a randomly generated filename. /// /// the ChromiumWebBrowser control /// the browser object /// represents the type of dialog to display /// the title to be used for the dialog. It may be empty to show the default title ("Open" or "Save" /// depending on the mode). /// is the path with optional directory and/or file name component that /// should be initially selected in the dialog. /// are used to restrict the selectable file types and may any combination of /// (a) valid lower-cased MIME types (e.g. "text/*" or "image/*"), /// (b) individual file extensions (e.g. ".txt" or ".png"), /// (c) combined description and file extension delimited using "|" and ";" (e.g. "Image Types|.png;.gif;.jpg"). /// Callback interface for asynchronous continuation of file dialog requests. /// To display a custom dialog return true. To display the default dialog return false. protected virtual bool OnFileDialog( IWebBrowser chromiumWebBrowser, IBrowser browser, CefFileDialogMode mode, string title, string defaultFilePath, List acceptFilters, IFileDialogCallback callback) { return false; } } }