// Copyright (c) 2024 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. // // --------------------------------------------------------------------------- // // This file was generated by the CEF translator tool. If making changes by // hand only do so within the body of existing method and function // implementations. See the translator.README.txt file in the tools directory // for more information. // // $hash=bd2c8c9be10525d69d072dacfb3cfd215486e077$ // #include "libcef_dll/ctocpp/dialog_handler_ctocpp.h" #include "libcef_dll/cpptoc/browser_cpptoc.h" #include "libcef_dll/cpptoc/file_dialog_callback_cpptoc.h" #include "libcef_dll/shutdown_checker.h" #include "libcef_dll/transfer_util.h" // VIRTUAL METHODS - Body may be edited by hand. NO_SANITIZE("cfi-icall") bool CefDialogHandlerCToCpp::OnFileDialog( CefRefPtr browser, FileDialogMode mode, const CefString& title, const CefString& default_file_path, const std::vector& accept_filters, const std::vector& accept_extensions, const std::vector& accept_descriptions, CefRefPtr callback) { shutdown_checker::AssertNotShutdown(); cef_dialog_handler_t* _struct = GetStruct(); if (CEF_MEMBER_MISSING(_struct, on_file_dialog)) { return false; } // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING // Verify param: browser; type: refptr_diff DCHECK(browser.get()); if (!browser.get()) { return false; } // Verify param: callback; type: refptr_diff DCHECK(callback.get()); if (!callback.get()) { return false; } // Unverified params: title, default_file_path, accept_filters, // accept_extensions, accept_descriptions // Translate param: accept_filters; type: string_vec_byref_const cef_string_list_t accept_filtersList = cef_string_list_alloc(); DCHECK(accept_filtersList); if (accept_filtersList) { transfer_string_list_contents(accept_filters, accept_filtersList); } // Translate param: accept_extensions; type: string_vec_byref_const cef_string_list_t accept_extensionsList = cef_string_list_alloc(); DCHECK(accept_extensionsList); if (accept_extensionsList) { transfer_string_list_contents(accept_extensions, accept_extensionsList); } // Translate param: accept_descriptions; type: string_vec_byref_const cef_string_list_t accept_descriptionsList = cef_string_list_alloc(); DCHECK(accept_descriptionsList); if (accept_descriptionsList) { transfer_string_list_contents(accept_descriptions, accept_descriptionsList); } // Execute int _retval = _struct->on_file_dialog( _struct, CefBrowserCppToC::Wrap(browser), mode, title.GetStruct(), default_file_path.GetStruct(), accept_filtersList, accept_extensionsList, accept_descriptionsList, CefFileDialogCallbackCppToC::Wrap(callback)); // Restore param:accept_filters; type: string_vec_byref_const if (accept_filtersList) { cef_string_list_free(accept_filtersList); } // Restore param:accept_extensions; type: string_vec_byref_const if (accept_extensionsList) { cef_string_list_free(accept_extensionsList); } // Restore param:accept_descriptions; type: string_vec_byref_const if (accept_descriptionsList) { cef_string_list_free(accept_descriptionsList); } // Return type: bool return _retval ? true : false; } // CONSTRUCTOR - Do not edit by hand. CefDialogHandlerCToCpp::CefDialogHandlerCToCpp() {} // DESTRUCTOR - Do not edit by hand. CefDialogHandlerCToCpp::~CefDialogHandlerCToCpp() { shutdown_checker::AssertNotShutdown(); } template <> cef_dialog_handler_t* CefCToCppRefCounted::UnwrapDerived(CefWrapperType type, CefDialogHandler* c) { DCHECK(false) << "Unexpected class type: " << type; return nullptr; } template <> CefWrapperType CefCToCppRefCounted::kWrapperType = WT_DIALOG_HANDLER;