├── .clang-format ├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report--报告你发现的缺陷-.md │ ├── config.yml │ └── feature-request--提议你想增加的功能-.md ├── release.yml └── workflows │ ├── build-linux-x86_64.yml │ ├── build-macos-x86_64.yml │ ├── build-windows-x86_64.yml │ └── create-release.yml ├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── cmake └── QtConfig.cmake ├── docs ├── 00-_introduction_8md.html ├── 01-_build_and_config_8md.html ├── 02-_first_project_8md.html ├── 03-_resource_loading_8md.html ├── 04-_interoperability_8md.html ├── 05-_rendering_8md.html ├── 06-_web_a_p_is_8md.html ├── _cef_version_8h.html ├── _cef_version_8h.js ├── _q_cef_config_8h.html ├── _q_cef_config_8h.js ├── _q_cef_context_8h.html ├── _q_cef_context_8h.js ├── _q_cef_download_item_8h.html ├── _q_cef_download_item_8h.js ├── _q_cef_event_8h.html ├── _q_cef_event_8h.js ├── _q_cef_query_8h.html ├── _q_cef_query_8h.js ├── _q_cef_setting_8h.html ├── _q_cef_setting_8h.js ├── _q_cef_view_8h.html ├── _q_cef_view_8h.js ├── _q_cef_view__global_8h.html ├── _q_cef_view__global_8h.js ├── add-event-listener-01.png ├── add-event-listener-02.png ├── annotated.html ├── annotated_dup.js ├── bc_s.png ├── bc_sd.png ├── cefview-query-01.png ├── cefview-query-02.png ├── class_q_cef_config-members.html ├── class_q_cef_config.html ├── class_q_cef_config.js ├── class_q_cef_context-members.html ├── class_q_cef_context.html ├── class_q_cef_context.js ├── class_q_cef_download_item-members.html ├── class_q_cef_download_item.html ├── class_q_cef_download_item.js ├── class_q_cef_event-members.html ├── class_q_cef_event.html ├── class_q_cef_event.js ├── class_q_cef_query-members.html ├── class_q_cef_query.html ├── class_q_cef_query.js ├── class_q_cef_setting-members.html ├── class_q_cef_setting.html ├── class_q_cef_setting.js ├── class_q_cef_view-members.html ├── class_q_cef_view.html ├── class_q_cef_view.js ├── classes.html ├── clipboard.js ├── closed.png ├── cookie.js ├── custom-alternative.css ├── custom.css ├── deprecated.html ├── dir_d44c64559bbebec7f509842c48db8b23.html ├── dir_d44c64559bbebec7f509842c48db8b23.js ├── dir_f717602cc3ca9f25f43675f90fbe7db2.html ├── doc.svg ├── docd.svg ├── doxygen-awesome-darkmode-toggle.js ├── doxygen-awesome-fragment-copy-button.js ├── doxygen-awesome-interactive-toc.js ├── doxygen-awesome-paragraph-link.js ├── doxygen-awesome-sidebar-only-darkmode-toggle.css ├── doxygen-awesome-sidebar-only.css ├── doxygen-awesome-tabs.js ├── doxygen-awesome.css ├── doxygen.css ├── doxygen.svg ├── doxygen_crawl.html ├── dynsections.js ├── files.html ├── files_dup.js ├── first-project.png ├── folderclosed.svg ├── folderclosedd.svg ├── folderopen.svg ├── folderopend.svg ├── functions.html ├── functions_b.html ├── functions_c.html ├── functions_d.html ├── functions_dup.js ├── functions_e.html ├── functions_enum.html ├── functions_eval.html ├── functions_f.html ├── functions_func.html ├── functions_func.js ├── functions_func_b.html ├── functions_func_c.html ├── functions_func_d.html ├── functions_func_e.html ├── functions_func_f.html ├── functions_func_h.html ├── functions_func_i.html ├── functions_func_j.html ├── functions_func_k.html ├── functions_func_l.html ├── functions_func_m.html ├── functions_func_n.html ├── functions_func_o.html ├── functions_func_p.html ├── functions_func_q.html ├── functions_func_r.html ├── functions_func_s.html ├── functions_func_t.html ├── functions_func_u.html ├── functions_func_w.html ├── functions_func_~.html ├── functions_h.html ├── functions_i.html ├── functions_j.html ├── functions_k.html ├── functions_l.html ├── functions_m.html ├── functions_n.html ├── functions_o.html ├── functions_p.html ├── functions_q.html ├── functions_r.html ├── functions_s.html ├── functions_t.html ├── functions_u.html ├── functions_vars.html ├── functions_w.html ├── functions_~.html ├── globals.html ├── globals_defs.html ├── globals_func.html ├── hierarchy.html ├── hierarchy.js ├── index.html ├── index.js ├── invoke-method-01.png ├── invoke-method-02.png ├── jquery.js ├── linux-demo.png ├── macOS-demo.png ├── md_docs_201-_build_and_config.html ├── md_docs_202-_first_project.html ├── md_docs_203-_resource_loading.html ├── md_docs_204-_interoperability.html ├── md_docs_205-_rendering.html ├── md_docs_206-_web_a_p_is.html ├── menu.js ├── menudata.js ├── minus.svg ├── minusd.svg ├── nav_f.png ├── nav_fd.png ├── nav_g.png ├── nav_h.png ├── nav_hd.png ├── navtree.css ├── navtree.js ├── navtreedata.js ├── navtreeindex0.js ├── navtreeindex1.js ├── open.png ├── pages.html ├── plus.svg ├── plusd.svg ├── resize.js ├── search │ ├── all_0.js │ ├── all_1.js │ ├── all_10.js │ ├── all_11.js │ ├── all_12.js │ ├── all_13.js │ ├── all_14.js │ ├── all_15.js │ ├── all_16.js │ ├── all_17.js │ ├── all_18.js │ ├── all_19.js │ ├── all_1a.js │ ├── all_1b.js │ ├── all_2.js │ ├── all_3.js │ ├── all_4.js │ ├── all_5.js │ ├── all_6.js │ ├── all_7.js │ ├── all_8.js │ ├── all_9.js │ ├── all_a.js │ ├── all_b.js │ ├── all_c.js │ ├── all_d.js │ ├── all_e.js │ ├── all_f.js │ ├── classes_0.js │ ├── close.svg │ ├── defines_0.js │ ├── defines_1.js │ ├── defines_2.js │ ├── defines_3.js │ ├── enums_0.js │ ├── enums_1.js │ ├── enumvalues_0.js │ ├── enumvalues_1.js │ ├── files_0.js │ ├── files_1.js │ ├── files_2.js │ ├── functions_0.js │ ├── functions_1.js │ ├── functions_10.js │ ├── functions_11.js │ ├── functions_12.js │ ├── functions_13.js │ ├── functions_14.js │ ├── functions_15.js │ ├── functions_2.js │ ├── functions_3.js │ ├── functions_4.js │ ├── functions_5.js │ ├── functions_6.js │ ├── functions_7.js │ ├── functions_8.js │ ├── functions_9.js │ ├── functions_a.js │ ├── functions_b.js │ ├── functions_c.js │ ├── functions_d.js │ ├── functions_e.js │ ├── functions_f.js │ ├── mag.svg │ ├── mag_d.svg │ ├── mag_sel.svg │ ├── mag_seld.svg │ ├── pages_0.js │ ├── pages_1.js │ ├── pages_2.js │ ├── pages_3.js │ ├── pages_4.js │ ├── pages_5.js │ ├── pages_6.js │ ├── pages_7.js │ ├── pages_8.js │ ├── pages_9.js │ ├── search.css │ ├── search.js │ ├── searchdata.js │ ├── variables_0.js │ └── variables_1.js ├── splitbar.png ├── splitbard.png ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_ad.png ├── tab_b.png ├── tab_bd.png ├── tab_h.png ├── tab_hd.png ├── tab_s.png ├── tab_sd.png ├── tabs.css ├── toggle-alternative-theme.js └── windows-demo.png ├── example └── QCefViewTest │ ├── CMakeLists.txt │ ├── CefViewWidget.cpp │ ├── CefViewWidget.h │ ├── DownloadManager.cpp │ ├── DownloadManager.h │ ├── MainWindow.cpp │ ├── MainWindow.h │ ├── MainWindow.ui │ ├── QCefViewTest.manifest │ ├── mac │ ├── Info.plist │ └── MainWindow_mac.mm │ ├── main.cpp │ ├── qcefviewtest.qrc │ └── websrc │ ├── iframe.in.html │ ├── left.in.html │ └── right.in.html ├── generate-linux-x86.sh ├── generate-linux-x86_64.sh ├── generate-mac-arm64.sh ├── generate-mac-x86_64.sh ├── generate-win-arm64.bat ├── generate-win-x86.bat ├── generate-win-x86_64.bat ├── include ├── CefVersion.h ├── QCefConfig.h ├── QCefContext.h ├── QCefDownloadItem.h ├── QCefEvent.h ├── QCefQuery.h ├── QCefSetting.h ├── QCefView.h └── QCefView_global.h ├── readme.md ├── scripts └── doxygen │ ├── Doxyfile │ ├── docs │ ├── 00-Introduction.md │ ├── 01-BuildAndConfig.md │ ├── 02-FirstProject.md │ ├── 03-ResourceLoading.md │ ├── 04-Interoperability.md │ ├── 05-Rendering.md │ ├── 06-WebAPIs.md │ └── img │ │ ├── QCefViewTest-Windows-Hardware-Rendering-FPS1000-Limit.png │ │ ├── QCefViewTest-Windows-Software-Rendering-FPS1000-Limit.png │ │ ├── QCefViewTest-macOS-Hardware-Rendering-FPS1000-Limit.png │ │ ├── QCefViewTest-macOS-Software-Rendering-FPS1000-Limit.png │ │ ├── guide │ │ ├── add-event-listener-01.png │ │ ├── add-event-listener-02.png │ │ ├── cefview-query-01.png │ │ ├── cefview-query-02.png │ │ ├── first-project.png │ │ ├── invoke-method-01.png │ │ └── invoke-method-02.png │ │ ├── linux-demo.png │ │ ├── macOS-demo.png │ │ └── windows-demo.png │ ├── gen-doc.bat │ └── theme │ ├── css │ ├── custom-alternative.css │ ├── custom.css │ ├── doxygen-awesome-sidebar-only-darkmode-toggle.css │ ├── doxygen-awesome-sidebar-only.css │ └── doxygen-awesome.css │ ├── html │ └── header.html │ └── js │ ├── doxygen-awesome-darkmode-toggle.js │ ├── doxygen-awesome-fragment-copy-button.js │ ├── doxygen-awesome-interactive-toc.js │ ├── doxygen-awesome-paragraph-link.js │ ├── doxygen-awesome-tabs.js │ └── toggle-alternative-theme.js ├── src ├── CMakeLists.txt ├── QCefConfig.cpp ├── QCefContext.cpp ├── QCefDownloadItem.cpp ├── QCefEvent.cpp ├── QCefQuery.cpp ├── QCefSetting.cpp ├── QCefView.cpp ├── QCefView_global.h.in ├── details │ ├── CCefAppDelegate.cpp │ ├── CCefAppDelegate.h │ ├── CCefClientDelegate.cpp │ ├── CCefClientDelegate.h │ ├── QCefConfigPrivate.cpp │ ├── QCefConfigPrivate.h │ ├── QCefContextPrivate.cpp │ ├── QCefContextPrivate.h │ ├── QCefDownloadItemPrivate.cpp │ ├── QCefDownloadItemPrivate.h │ ├── QCefEventPrivate.cpp │ ├── QCefEventPrivate.h │ ├── QCefQueryPrivate.cpp │ ├── QCefQueryPrivate.h │ ├── QCefSettingPrivate.cpp │ ├── QCefSettingPrivate.h │ ├── QCefViewPrivate.cpp │ ├── QCefViewPrivate.h │ ├── QCefWindow.cpp │ ├── QCefWindow.h │ ├── handler │ │ ├── CCefClientDelegate_ContextMenuHandler.cpp │ │ ├── CCefClientDelegate_DialogHandler.cpp │ │ ├── CCefClientDelegate_DisplayHandler.cpp │ │ ├── CCefClientDelegate_DownloadHandler.cpp │ │ ├── CCefClientDelegate_DragHandler.cpp │ │ ├── CCefClientDelegate_FocusHandler.cpp │ │ ├── CCefClientDelegate_JSDialogHandler.cpp │ │ ├── CCefClientDelegate_KeyboardHandler.cpp │ │ ├── CCefClientDelegate_LifeSpanHandler.cpp │ │ ├── CCefClientDelegate_LoadHandler.cpp │ │ └── CCefClientDelegate_RenderHandler.cpp │ ├── render │ │ ├── CefViewRendererFactory.cpp │ │ ├── CefViewRendererFactory.h │ │ ├── ICefViewRenderer.h │ │ ├── hardware │ │ │ ├── CefViewHardwareRenderer.cpp │ │ │ └── CefViewHardwareRenderer.h │ │ └── software │ │ │ ├── QtSoftwareRenderer.cpp │ │ │ └── QtSoftwareRenderer.h │ └── utils │ │ ├── CommonUtils.cpp │ │ ├── CommonUtils.h │ │ ├── CursorUtils.cpp │ │ ├── CursorUtils.h │ │ ├── DragAndDropUtils.cpp │ │ ├── DragAndDropUtils.h │ │ ├── KeyboardUtils.cpp │ │ ├── KeyboardUtils.h │ │ ├── MenuBuilder.cpp │ │ ├── MenuBuilder.h │ │ ├── ValueConvertor.cpp │ │ └── ValueConvertor.h ├── linux │ └── details │ │ ├── QCefContextPrivate_linux.cpp │ │ └── render │ │ └── hardware │ │ ├── OpenGLRenderBackend.cpp │ │ └── OpenGLRenderBackend.h ├── mac │ ├── Info.plist │ └── details │ │ ├── QCefContextPrivate_mac.mm │ │ └── render │ │ └── hardware │ │ ├── MetalRenderBackend.h │ │ └── MetalRenderBackend.mm └── win │ └── details │ ├── QCefContextPrivate_win.cpp │ └── render │ └── hardware │ ├── DX11RenderBackend.cpp │ └── DX11RenderBackend.h └── thirdparty └── CMakeLists.txt /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: Mozilla 3 | ColumnLimit: 120 4 | AlignAfterOpenBracket: Align 5 | BinPackArguments: false 6 | SortIncludes: true 7 | FixNamespaceComments: true # add commend at end: 8 | NamespaceIndentation: None #intend content of namespace 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # To learn more about .editorconfig see https://aka.ms/editorconfigdocs 2 | 3 | # All files 4 | [*.{c,cpp,cxx,h,hpp,hxx}] 5 | indent_style = space 6 | charset = utf-8-bom 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | *.{cmd,[cC][mM][dD]} text eol=crlf 3 | *.{bat,[bB][aA][tT]} text eol=crlf -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report--报告你发现的缺陷-.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report [报告你发现的缺陷] 3 | about: Create a bug report to help us improve 【请使用此模板提交BUG报告,没有使用模板的issue将被直接关闭】 4 | title: "[BUG]: " 5 | labels: bug, feature, triage 6 | assignees: tishion 7 | 8 | --- 9 | 10 | [//]: # (以下所有的以"[//]: #"开始的文字都是注释,不会被markdown渲染,所以无需删除) 11 | [//]: # (All lines start "with [//]: #" below are comment lines and will not be rebdered by markdown, so there's no need to delete them) 12 | 13 | 14 | [//]: # (注意:如果你发现的BUG是由于使用了与当前代码库中不同的Qt/CEF版本,该BUG将会被忽略) 15 | [//]: # (Node: if you find some bugs caused by using different CEF/Qt version with the one in current repo, this report will be ignored) 16 | 17 | **Describe the bug 【Bug描述】** 18 | 19 | [//]: # (在下面填写描述BUG发生的表现) 20 | [//]: # (A clear and concise description of what the bug is) 21 | ... 22 | 23 | 24 | **To Reproduce 【复现步骤】** 25 | 26 | [//]: # (在下面填写复现该BUG的详细操作步骤) 27 | [//]: # (Steps to reproduce the behavior) 28 | 1. Go to '...' 29 | 2. Click on '....' 30 | 3. Scroll down to '....' 31 | 4. See error 32 | 33 | **Expected behavior 【正确的预期行为】** 34 | 35 | [//]: # (在下面填写如果不存在该BUG时候预期的正确行为) 36 | [//]: # (A clear and concise description of what you expected to happen) 37 | ... 38 | 39 | **Screenshots 【截图】** 40 | 41 | [//]: # (如果可以请在下面请提供BUG的截图信息) 42 | [//]: # (If applicable, add screenshots to help explain your problem) 43 | ... 44 | 45 | **Environment 【BUG产生的环境】** 46 | 47 | [//]: # (请提供以下信息,OSR和非OSR模式为必须提供项目,无此项目issue不会被处理) 48 | [//]: # (Please complete the following information, OSR/NCW is mandatory) 49 | - OSR/NCW Mode: 50 | - OS & Version: [e.g. Windows/macOS/Linux] 51 | - Qt Version: 52 | - CEF Version: 53 | 54 | 55 | **Additional context 【更多额外信息】** 56 | 57 | [//]: # (如有更多额外信息,请在下面添加) 58 | [//]: # (Add any other context about the problem here) 59 | ... 60 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: FAQ-讨论区 4 | url: https://github.com/CefView/QCefView/discussions 5 | about: Please ask and answer questions here.【请在这里获取帮助/解答】 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request--提议你想增加的功能-.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 【提议你想增加的功能】 3 | about: Suggest an idea for this project 【请使用此模板发起新特性需求】 4 | title: "[FEATURE]" 5 | labels: triage 6 | assignees: tishion 7 | 8 | --- 9 | 10 | [//]: # (以下所有的以"[//]: #"开始的文字都是注释,不会被markdown渲染,所以无需删除) 11 | [//]: # (All lines start "with [//]: #" below are comment lines and will not be rendered by markdown, so there's no need to delete them) 12 | 13 | ** Feature Description 【特性详细描述】** 14 | 15 | [//]: # (请在下面描述所需新特性的详细信息) 16 | [//]: # (Please describe the detailed information about the request feature) 17 | ... 18 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | labels: 4 | - ignore-for-release 5 | categories: 6 | - title: 🛑 Breaking Changes 7 | labels: 8 | - breaking-change 9 | - title: 🎉 New Features 10 | labels: 11 | - feature 12 | - enhancement 13 | - title: 🌈 Bug Fix 14 | labels: 15 | - bug 16 | - title: Other Changes 17 | labels: 18 | - "*" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .build 3 | .build.* 4 | dep/cef 5 | output 6 | .DS_Store 7 | CMakeLists.txt.user 8 | docs/doxygen/xml 9 | out 10 | scripts/doxygen/xml 11 | include/QCefView_global.h 12 | .idea/ 13 | cmake-build-*/ 14 | build 15 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/.gitmodules -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | This project welcomes contributions and suggestions. 2 | Make sure to align your code style with the configuration defined by .clang-format file 3 | 4 | Making contributions is not a hard thing. 5 | - Solving an issue(maybe just answering a question raised in issues list or gitter)- 6 | - Fixing/Issuing a bug 7 | - Improving the documents and even fixing a typo 8 | are important contributions to QCefView 9 | 10 | If you would like to become one of QCefView's maintainers to contribute more (e.g. help merge PR, triage issues), please contact me by email(sheentianshen#gmail.com). I am glad to help you to set the right permission. 11 | -------------------------------------------------------------------------------- /cmake/QtConfig.cmake: -------------------------------------------------------------------------------- 1 | # ################################################################################ 2 | # 3 | # The Qt SDK path 4 | # You can set the environment variable via 5 | # 1. command line 6 | # Windows: SET QTDIR=PATH/TO/QT 7 | # Non-Windows: export QTDIR=PATH/TO/QT 8 | # 2. modifying the value below directly 9 | # 10 | 11 | # Qt build toolchain path not set or doesn't exist 12 | # try to read from environment QTDIR 13 | if(NOT EXISTS ${QT_SDK_DIR}) 14 | message(STATUS "QT_SDK_DIR not found, try to read from environment variable: QTDIR") 15 | set(QT_SDK_DIR "$ENV{QTDIR}" CACHE STRING "QT_SDK_DIR read from environment variable: QTDIR" FORCE) 16 | endif() 17 | 18 | # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 19 | # You must make sure the target platform and architecture 20 | # of QT binaries math the ones of CEF binaries 21 | # Qt linux-x86 + CEF linux-x86 22 | # Qt linux-x86_64 + CEF linux-x86_64 23 | # Qt windows-x86 + CEF windows-x86 24 | # Qt windows-x86_64 + CEF windows-x86_64 25 | # Qt macos-x86_64 + CEF macos-x86_64 26 | # Qt macos-arm64 + CEF macos-arm64 27 | # 28 | 29 | # find required components 30 | message(STATUS "Qt SDK dir: " ${QT_SDK_DIR}) 31 | set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT_SDK_DIR}) 32 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Widgets REQUIRED) 33 | find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets REQUIRED) -------------------------------------------------------------------------------- /docs/_cef_version_8h.js: -------------------------------------------------------------------------------- 1 | var _cef_version_8h = 2 | [ 3 | [ "CEF_VERSION", "_cef_version_8h.html#af685e354a4145c66d8020a366872fa31", null ], 4 | [ "CEF_VERSION_MAJOR", "_cef_version_8h.html#a7a9be029daf6e2078b974348dcea2985", null ], 5 | [ "CEF_VERSION_MINOR", "_cef_version_8h.html#a67ccdb367f59d0948c8c607b3fa8c1fd", null ], 6 | [ "CEF_VERSION_PATCH", "_cef_version_8h.html#a43e12afa87b9af993b0aa6aba4d4cc80", null ], 7 | [ "CEF_COMMIT_NUMBER", "_cef_version_8h.html#a95fd47d721b7760374eeee9089bedd54", null ], 8 | [ "CEF_COMMIT_HASH", "_cef_version_8h.html#a3eed202b5601adca42fcb536e7fc8301", null ] 9 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_config_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_config_8h = 2 | [ 3 | [ "QCefConfig", "class_q_cef_config.html", "class_q_cef_config" ], 4 | [ "Q_DECLARE_METATYPE", "_q_cef_config_8h.html#a9c4f9b520ed6a74eb2f7c521c08471c6", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_context_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_context_8h = 2 | [ 3 | [ "QCefContext", "class_q_cef_context.html", "class_q_cef_context" ] 4 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_download_item_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_download_item_8h = 2 | [ 3 | [ "QCefDownloadItem", "class_q_cef_download_item.html", "class_q_cef_download_item" ] 4 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_event_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_event_8h = 2 | [ 3 | [ "QCefEvent", "class_q_cef_event.html", "class_q_cef_event" ], 4 | [ "Q_DECLARE_METATYPE", "_q_cef_event_8h.html#ad2abcec84743c92df60fa3b333b3d2b5", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_query_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_query_8h = 2 | [ 3 | [ "QCefQuery", "class_q_cef_query.html", "class_q_cef_query" ], 4 | [ "Q_DECLARE_METATYPE", "_q_cef_query_8h.html#a83540a9479efcf57275cd6d2e99cb415", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_setting_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_setting_8h = 2 | [ 3 | [ "QCefSetting", "class_q_cef_setting.html", "class_q_cef_setting" ], 4 | [ "Q_DECLARE_METATYPE", "_q_cef_setting_8h.html#a08f5f6912484f50f55dae4c9dedbd2a4", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_view_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_view_8h = 2 | [ 3 | [ "QCefView", "class_q_cef_view.html", "class_q_cef_view" ], 4 | [ "QCefBrowserId", "_q_cef_view_8h.html#aa777d6fc375d0b946818bfb17c3292df", null ], 5 | [ "QCefFrameId", "_q_cef_view_8h.html#a9f68e892e3db80ea20e887e4ac50de5b", null ] 6 | ]; -------------------------------------------------------------------------------- /docs/_q_cef_view__global_8h.js: -------------------------------------------------------------------------------- 1 | var _q_cef_view__global_8h = 2 | [ 3 | [ "QCEFVIEW_EXPORT", "_q_cef_view__global_8h.html#a4489f56825bd83a3b95b3d18fdca331f", null ], 4 | [ "DEPRECATED_SINCE_CEF_VERSION", "_q_cef_view__global_8h.html#a761b5c2677e327ac6c1c3e8a8b67f067", null ], 5 | [ "DEPRECATED_CEF_API_WARNING", "_q_cef_view__global_8h.html#a342783eb60e0e77913cc501712966dab", null ], 6 | [ "INTRODUCED_SINCE_CEF_VERSION", "_q_cef_view__global_8h.html#a3dcdd1222917bd78bc60c08d2c041d2b", null ], 7 | [ "INTRODUCED_CEF_API_WARNING", "_q_cef_view__global_8h.html#af3bf408a6987e48e4ebe84ca2669d6a4", null ] 8 | ]; -------------------------------------------------------------------------------- /docs/add-event-listener-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/add-event-listener-01.png -------------------------------------------------------------------------------- /docs/add-event-listener-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/add-event-listener-02.png -------------------------------------------------------------------------------- /docs/annotated_dup.js: -------------------------------------------------------------------------------- 1 | var annotated_dup = 2 | [ 3 | [ "QCefConfig", "class_q_cef_config.html", "class_q_cef_config" ], 4 | [ "QCefContext", "class_q_cef_context.html", "class_q_cef_context" ], 5 | [ "QCefDownloadItem", "class_q_cef_download_item.html", "class_q_cef_download_item" ], 6 | [ "QCefEvent", "class_q_cef_event.html", "class_q_cef_event" ], 7 | [ "QCefQuery", "class_q_cef_query.html", "class_q_cef_query" ], 8 | [ "QCefSetting", "class_q_cef_setting.html", "class_q_cef_setting" ], 9 | [ "QCefView", "class_q_cef_view.html", "class_q_cef_view" ] 10 | ]; -------------------------------------------------------------------------------- /docs/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/bc_s.png -------------------------------------------------------------------------------- /docs/bc_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/bc_sd.png -------------------------------------------------------------------------------- /docs/cefview-query-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/cefview-query-01.png -------------------------------------------------------------------------------- /docs/cefview-query-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/cefview-query-02.png -------------------------------------------------------------------------------- /docs/class_q_cef_context.js: -------------------------------------------------------------------------------- 1 | var class_q_cef_context = 2 | [ 3 | [ "QCefContext", "class_q_cef_context.html#aa2b8af8d2d806ba8b5110e868d314c8c", null ], 4 | [ "~QCefContext", "class_q_cef_context.html#a91de7d9c36aafdaca390a355d6da5c6d", null ], 5 | [ "addLocalFolderResource", "class_q_cef_context.html#aecc6f7ee9d296bcf8d2ba470e0c0e454", null ], 6 | [ "addArchiveResource", "class_q_cef_context.html#aba9c70a84379190d151bdc4b634367e6", null ], 7 | [ "addCookie", "class_q_cef_context.html#a6d2e90de7fb5fcf2b7e7a6581d26e62c", null ], 8 | [ "deleteAllCookies", "class_q_cef_context.html#a794e41a74ddabc503bed5e8c47fe3dd0", null ], 9 | [ "addCrossOriginWhitelistEntry", "class_q_cef_context.html#aaba077228a77f5e7d7491eda3ce10267", null ], 10 | [ "removeCrossOriginWhitelistEntry", "class_q_cef_context.html#af04aefeea503031f5a8fbdabf05bc5e8", null ], 11 | [ "clearCrossOriginWhitelistEntry", "class_q_cef_context.html#a95d71c83fef34e8218a8ce559f173ab4", null ], 12 | [ "cefConfig", "class_q_cef_context.html#acfd6416ebc0a8df5cf8961dadeff960e", null ], 13 | [ "init", "class_q_cef_context.html#a78836c8d4d2bdf4970a256d8d29c80c6", null ], 14 | [ "uninit", "class_q_cef_context.html#aee74a7460786ddc17f8f9c0f68eaab6b", null ], 15 | [ "QCefView", "class_q_cef_context.html#a5a3b8eafc568f47fa0dc1f5232277a29", null ] 16 | ]; -------------------------------------------------------------------------------- /docs/class_q_cef_download_item.js: -------------------------------------------------------------------------------- 1 | var class_q_cef_download_item = 2 | [ 3 | [ "~QCefDownloadItem", "class_q_cef_download_item.html#a913a2654dcd05ef8facefc515d831124", null ], 4 | [ "start", "class_q_cef_download_item.html#a315592aa53a2bf7bc8aea717195f5b43", null ], 5 | [ "pause", "class_q_cef_download_item.html#aaa31f59599e9311f0aee99a0a13e2568", null ], 6 | [ "resume", "class_q_cef_download_item.html#aa2afc687e69c7c78f6c49e9a41a34823", null ], 7 | [ "cancel", "class_q_cef_download_item.html#a723b2081749a447049efd04e768d9e57", null ], 8 | [ "isStarted", "class_q_cef_download_item.html#a6febee1fe8a5f7d15e888a4352d50526", null ], 9 | [ "isInProgress", "class_q_cef_download_item.html#a22455702c989d4dcc08fb1d13659739d", null ], 10 | [ "isComplete", "class_q_cef_download_item.html#a67c86edf9e9cb742050e2521b55c86df", null ], 11 | [ "isCanceled", "class_q_cef_download_item.html#ada41b0480a3e97d788086ea8c420a22c", null ], 12 | [ "currentSpeed", "class_q_cef_download_item.html#a5c9648906b02ce59aa6d82f03e468c1d", null ], 13 | [ "percentComplete", "class_q_cef_download_item.html#a18fafe4f375aa60e43ec7c5d855ab91e", null ], 14 | [ "totalBytes", "class_q_cef_download_item.html#ab1ff7414475451351e4d4ab50f723bee", null ], 15 | [ "receivedBytes", "class_q_cef_download_item.html#a5d76f04bb41c5e4edad6d680b01fe63f", null ], 16 | [ "startTime", "class_q_cef_download_item.html#afe0d048a282cb605da910de1c5d82242", null ], 17 | [ "endTime", "class_q_cef_download_item.html#a61b2bd3cdc2f35d2424ded4e8b3801fd", null ], 18 | [ "fullPath", "class_q_cef_download_item.html#a40227300f52cd34a67281eacf95bcc28", null ], 19 | [ "id", "class_q_cef_download_item.html#aff911ad0aa21867cdfe56457293f4914", null ], 20 | [ "url", "class_q_cef_download_item.html#a253cf33b582e3994b65d5611ef277bbe", null ], 21 | [ "originalUrl", "class_q_cef_download_item.html#a9f9bcb65952b50b4f24c4d55eff9b64e", null ], 22 | [ "suggestedFileName", "class_q_cef_download_item.html#ac0dd9f8bea7ca594f04935d81cfb72a4", null ], 23 | [ "contentDisposition", "class_q_cef_download_item.html#af97dad25e439c8b997d6689fe1c91bf8", null ], 24 | [ "mimeType", "class_q_cef_download_item.html#afb8ec36477b64a222b0610c8518f8e31", null ], 25 | [ "QCefView", "class_q_cef_download_item.html#a5a3b8eafc568f47fa0dc1f5232277a29", null ] 26 | ]; -------------------------------------------------------------------------------- /docs/class_q_cef_event.js: -------------------------------------------------------------------------------- 1 | var class_q_cef_event = 2 | [ 3 | [ "QCefEvent", "class_q_cef_event.html#ab444dcc856db38dcc679db326ef22bf5", null ], 4 | [ "QCefEvent", "class_q_cef_event.html#a2b2b8bacbfebefe302cd1fab91cd5e8c", null ], 5 | [ "QCefEvent", "class_q_cef_event.html#a357d5cb242977682523e69d501c673d4", null ], 6 | [ "~QCefEvent", "class_q_cef_event.html#a5c0e38242fa1ba823f1664232966787c", null ], 7 | [ "operator=", "class_q_cef_event.html#a95e2f8c582270de0f9501945a6e063ee", null ], 8 | [ "setEventName", "class_q_cef_event.html#a5db1273fdda416900f5b7b26a119c85a", null ], 9 | [ "eventName", "class_q_cef_event.html#a5a970c76a348788b15a040c8c405a103", null ], 10 | [ "setArguments", "class_q_cef_event.html#ac84ba1292bcf56abdc5c6c4245aa6c04", null ], 11 | [ "arguments", "class_q_cef_event.html#a4cf70fa60235d723b9e578cded919327", null ], 12 | [ "QCefView", "class_q_cef_event.html#a5a3b8eafc568f47fa0dc1f5232277a29", null ] 13 | ]; -------------------------------------------------------------------------------- /docs/class_q_cef_query.js: -------------------------------------------------------------------------------- 1 | var class_q_cef_query = 2 | [ 3 | [ "QCefQuery", "class_q_cef_query.html#a2d63bf6b4584e80edbfe4e00fdc8790e", null ], 4 | [ "QCefQuery", "class_q_cef_query.html#a22d9fddcadce7a6e0259c691634c4d7a", null ], 5 | [ "~QCefQuery", "class_q_cef_query.html#a402d117cbd2d37681394f86d31ed11a3", null ], 6 | [ "markAsReplied", "class_q_cef_query.html#af1e8c950b361ad9ca4d4e260626c5d14", null ], 7 | [ "request", "class_q_cef_query.html#a16d137bcc1bf2ef9bc8969ff1bd091e7", null ], 8 | [ "id", "class_q_cef_query.html#a5b701d7f9c92ff814cfe28b110142a4c", null ], 9 | [ "response", "class_q_cef_query.html#a663d5945146bebe69a0a3c5448bb9280", null ], 10 | [ "result", "class_q_cef_query.html#a8c2d78e19628d8066570338d659bc9b2", null ], 11 | [ "error", "class_q_cef_query.html#ab35201ac89d89f1445538f82a12f8fa8", null ], 12 | [ "setResponseResult", "class_q_cef_query.html#aa86db4e257e3dc4e29c7906d80e06f28", null ], 13 | [ "reply", "class_q_cef_query.html#a9b7df2f2ffaf42431392fcb0a89042be", null ], 14 | [ "QCefViewPrivate", "class_q_cef_query.html#a96f89510561545834ce356603ebee9be", null ] 15 | ]; -------------------------------------------------------------------------------- /docs/clipboard.js: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | The code below is based on the Doxygen Awesome project, see 4 | https://github.com/jothepro/doxygen-awesome-css 5 | 6 | MIT License 7 | 8 | Copyright (c) 2021 - 2022 jothepro 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | */ 29 | 30 | let clipboard_title = "Copy to clipboard" 31 | let clipboard_icon = `` 32 | let clipboard_successIcon = `` 33 | let clipboard_successDuration = 1000 34 | 35 | $(function() { 36 | if(navigator.clipboard) { 37 | const fragments = document.getElementsByClassName("fragment") 38 | for(const fragment of fragments) { 39 | const clipboard_div = document.createElement("div") 40 | clipboard_div.classList.add("clipboard") 41 | clipboard_div.innerHTML = clipboard_icon 42 | clipboard_div.title = clipboard_title 43 | $(clipboard_div).click(function() { 44 | const content = this.parentNode.cloneNode(true) 45 | // filter out line number and folded fragments from file listings 46 | content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) 47 | let text = content.textContent 48 | // remove trailing newlines and trailing spaces from empty lines 49 | text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') 50 | navigator.clipboard.writeText(text); 51 | this.classList.add("success") 52 | this.innerHTML = clipboard_successIcon 53 | window.setTimeout(() => { // switch back to normal icon after timeout 54 | this.classList.remove("success") 55 | this.innerHTML = clipboard_icon 56 | }, clipboard_successDuration); 57 | }) 58 | fragment.insertBefore(clipboard_div, fragment.firstChild) 59 | } 60 | } 61 | }) 62 | -------------------------------------------------------------------------------- /docs/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/closed.png -------------------------------------------------------------------------------- /docs/cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | Cookie helper functions 3 | Copyright (c) 2023 Dimitri van Heesch 4 | Released under MIT license. 5 | */ 6 | let Cookie = { 7 | cookie_namespace: 'doxygen_', 8 | 9 | readSetting(cookie,defVal) { 10 | if (window.chrome) { 11 | const val = localStorage.getItem(this.cookie_namespace+cookie) || 12 | sessionStorage.getItem(this.cookie_namespace+cookie); 13 | if (val) return val; 14 | } else { 15 | let myCookie = this.cookie_namespace+cookie+"="; 16 | if (document.cookie) { 17 | const index = document.cookie.indexOf(myCookie); 18 | if (index != -1) { 19 | const valStart = index + myCookie.length; 20 | let valEnd = document.cookie.indexOf(";", valStart); 21 | if (valEnd == -1) { 22 | valEnd = document.cookie.length; 23 | } 24 | return document.cookie.substring(valStart, valEnd); 25 | } 26 | } 27 | } 28 | return defVal; 29 | }, 30 | 31 | writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete 32 | if (window.chrome) { 33 | if (days==0) { 34 | sessionStorage.setItem(this.cookie_namespace+cookie,val); 35 | } else { 36 | localStorage.setItem(this.cookie_namespace+cookie,val); 37 | } 38 | } else { 39 | let date = new Date(); 40 | date.setTime(date.getTime()+(days*24*60*60*1000)); 41 | const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; 42 | document.cookie = this.cookie_namespace + cookie + "=" + 43 | val + "; SameSite=Lax;" + expiration + "path=/"; 44 | } 45 | }, 46 | 47 | eraseSetting(cookie) { 48 | if (window.chrome) { 49 | if (localStorage.getItem(this.cookie_namespace+cookie)) { 50 | localStorage.removeItem(this.cookie_namespace+cookie); 51 | } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { 52 | sessionStorage.removeItem(this.cookie_namespace+cookie); 53 | } 54 | } else { 55 | this.writeSetting(cookie,'',-1); 56 | } 57 | }, 58 | } 59 | -------------------------------------------------------------------------------- /docs/custom-alternative.css: -------------------------------------------------------------------------------- 1 | html.alternative { 2 | /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ 3 | --primary-color: #AF7FE4; 4 | --primary-dark-color: #9270E4; 5 | --primary-light-color: #7aabd6; 6 | --primary-lighter-color: #cae1f1; 7 | --primary-lightest-color: #e9f1f8; 8 | 9 | /* page base colors */ 10 | --page-background-color: white; 11 | --page-foreground-color: #2c3e50; 12 | --page-secondary-foreground-color: #67727e; 13 | 14 | 15 | --border-radius-large: 22px; 16 | --border-radius-small: 9px; 17 | --border-radius-medium: 14px; 18 | --spacing-small: 8px; 19 | --spacing-medium: 14px; 20 | --spacing-large: 19px; 21 | 22 | --top-height: 125px; 23 | 24 | --side-nav-background: #324067; 25 | --side-nav-foreground: #F1FDFF; 26 | --header-foreground: var(--side-nav-foreground); 27 | --searchbar-background: var(--side-nav-foreground); 28 | --searchbar-border-radius: var(--border-radius-medium); 29 | --header-background: var(--side-nav-background); 30 | --header-foreground: var(--side-nav-foreground); 31 | 32 | --toc-background: rgb(243, 240, 252); 33 | --toc-foreground: var(--page-foreground-color); 34 | } 35 | 36 | html.alternative.dark-mode { 37 | color-scheme: dark; 38 | 39 | --primary-color: #AF7FE4; 40 | --primary-dark-color: #9270E4; 41 | --primary-light-color: #4779ac; 42 | --primary-lighter-color: #191e21; 43 | --primary-lightest-color: #191a1c; 44 | 45 | --page-background-color: #1C1D1F; 46 | --page-foreground-color: #d2dbde; 47 | --page-secondary-foreground-color: #859399; 48 | --separator-color: #3a3246; 49 | --side-nav-background: #171D32; 50 | --side-nav-foreground: #F1FDFF; 51 | --toc-background: #20142C; 52 | --searchbar-background: var(--page-background-color); 53 | 54 | } -------------------------------------------------------------------------------- /docs/custom.css: -------------------------------------------------------------------------------- 1 | .github-corner svg { 2 | fill: var(--primary-light-color); 3 | color: var(--page-background-color); 4 | width: 72px; 5 | height: 72px; 6 | } 7 | 8 | @media screen and (max-width: 767px) { 9 | .github-corner svg { 10 | width: 50px; 11 | height: 50px; 12 | } 13 | #projectnumber { 14 | margin-right: 22px; 15 | } 16 | } 17 | 18 | .alter-theme-button { 19 | display: inline-block; 20 | cursor: pointer; 21 | background: var(--primary-color); 22 | color: var(--page-background-color) !important; 23 | border-radius: var(--border-radius-medium); 24 | padding: var(--spacing-small) var(--spacing-medium); 25 | text-decoration: none; 26 | } 27 | 28 | .alter-theme-button:hover { 29 | background: var(--primary-dark-color); 30 | } 31 | 32 | html.dark-mode .darkmode_inverted_image img, /* < doxygen 1.9.3 */ 33 | html.dark-mode .darkmode_inverted_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ { 34 | filter: brightness(89%) hue-rotate(180deg) invert(); 35 | } 36 | 37 | .bordered_image { 38 | border-radius: var(--border-radius-small); 39 | border: 1px solid var(--separator-color); 40 | display: inline-block; 41 | overflow: hidden; 42 | } 43 | 44 | html.dark-mode .bordered_image img, /* < doxygen 1.9.3 */ 45 | html.dark-mode .bordered_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ { 46 | border-radius: var(--border-radius-small); 47 | } 48 | 49 | .title_screenshot { 50 | filter: drop-shadow(0px 3px 10px rgba(0,0,0,0.22)); 51 | max-width: 500px; 52 | margin: var(--spacing-large) 0; 53 | } 54 | 55 | .title_screenshot .caption { 56 | display: none; 57 | } 58 | -------------------------------------------------------------------------------- /docs/dir_d44c64559bbebec7f509842c48db8b23.js: -------------------------------------------------------------------------------- 1 | var dir_d44c64559bbebec7f509842c48db8b23 = 2 | [ 3 | [ "CefVersion.h", "_cef_version_8h.html", "_cef_version_8h" ], 4 | [ "QCefConfig.h", "_q_cef_config_8h.html", "_q_cef_config_8h" ], 5 | [ "QCefContext.h", "_q_cef_context_8h.html", "_q_cef_context_8h" ], 6 | [ "QCefDownloadItem.h", "_q_cef_download_item_8h.html", "_q_cef_download_item_8h" ], 7 | [ "QCefEvent.h", "_q_cef_event_8h.html", "_q_cef_event_8h" ], 8 | [ "QCefQuery.h", "_q_cef_query_8h.html", "_q_cef_query_8h" ], 9 | [ "QCefSetting.h", "_q_cef_setting_8h.html", "_q_cef_setting_8h" ], 10 | [ "QCefView.h", "_q_cef_view_8h.html", "_q_cef_view_8h" ], 11 | [ "QCefView_global.h", "_q_cef_view__global_8h.html", "_q_cef_view__global_8h" ] 12 | ]; -------------------------------------------------------------------------------- /docs/doc.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/docd.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/doxygen-awesome-paragraph-link.js: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | Doxygen Awesome 4 | https://github.com/jothepro/doxygen-awesome-css 5 | 6 | MIT License 7 | 8 | Copyright (c) 2022 - 2023 jothepro 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | */ 29 | 30 | class DoxygenAwesomeParagraphLink { 31 | // Icon from https://fonts.google.com/icons 32 | // Licensed under the Apache 2.0 license: 33 | // https://www.apache.org/licenses/LICENSE-2.0.html 34 | static icon = `` 35 | static title = "Permanent Link" 36 | static init() { 37 | $(function() { 38 | $(document).ready(function() { 39 | document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => { 40 | let anchorlink = document.createElement("a") 41 | anchorlink.setAttribute("href", `#${node.getAttribute("id")}`) 42 | anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title) 43 | anchorlink.classList.add("anchorlink") 44 | node.classList.add("anchor") 45 | anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon 46 | node.parentElement.appendChild(anchorlink) 47 | }) 48 | }) 49 | }) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /docs/doxygen-awesome-sidebar-only-darkmode-toggle.css: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | 4 | Doxygen Awesome 5 | https://github.com/jothepro/doxygen-awesome-css 6 | 7 | MIT License 8 | 9 | Copyright (c) 2021 - 2023 jothepro 10 | 11 | Permission is hereby granted, free of charge, to any person obtaining a copy 12 | of this software and associated documentation files (the "Software"), to deal 13 | in the Software without restriction, including without limitation the rights 14 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the Software is 16 | furnished to do so, subject to the following conditions: 17 | 18 | The above copyright notice and this permission notice shall be included in all 19 | copies or substantial portions of the Software. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 | SOFTWARE. 28 | 29 | */ 30 | 31 | @media screen and (min-width: 768px) { 32 | 33 | #MSearchBox { 34 | width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px); 35 | } 36 | 37 | #MSearchField { 38 | width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height)); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docs/files_dup.js: -------------------------------------------------------------------------------- 1 | var files_dup = 2 | [ 3 | [ "docs", "dir_f717602cc3ca9f25f43675f90fbe7db2.html", null ], 4 | [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ] 5 | ]; -------------------------------------------------------------------------------- /docs/first-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/first-project.png -------------------------------------------------------------------------------- /docs/folderclosed.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/folderclosedd.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/folderopend.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/functions_dup.js: -------------------------------------------------------------------------------- 1 | var functions_dup = 2 | [ 3 | [ "a", "functions.html", null ], 4 | [ "b", "functions_b.html", null ], 5 | [ "c", "functions_c.html", null ], 6 | [ "d", "functions_d.html", null ], 7 | [ "e", "functions_e.html", null ], 8 | [ "f", "functions_f.html", null ], 9 | [ "h", "functions_h.html", null ], 10 | [ "i", "functions_i.html", null ], 11 | [ "j", "functions_j.html", null ], 12 | [ "l", "functions_l.html", null ], 13 | [ "m", "functions_m.html", null ], 14 | [ "n", "functions_n.html", null ], 15 | [ "o", "functions_o.html", null ], 16 | [ "p", "functions_p.html", null ], 17 | [ "q", "functions_q.html", null ], 18 | [ "r", "functions_r.html", null ], 19 | [ "s", "functions_s.html", null ], 20 | [ "t", "functions_t.html", null ], 21 | [ "u", "functions_u.html", null ], 22 | [ "w", "functions_w.html", null ], 23 | [ "~", "functions_~.html", null ] 24 | ]; -------------------------------------------------------------------------------- /docs/functions_func.js: -------------------------------------------------------------------------------- 1 | var functions_func = 2 | [ 3 | [ "a", "functions_func.html", null ], 4 | [ "b", "functions_func_b.html", null ], 5 | [ "c", "functions_func_c.html", null ], 6 | [ "d", "functions_func_d.html", null ], 7 | [ "e", "functions_func_e.html", null ], 8 | [ "f", "functions_func_f.html", null ], 9 | [ "h", "functions_func_h.html", null ], 10 | [ "i", "functions_func_i.html", null ], 11 | [ "j", "functions_func_j.html", null ], 12 | [ "l", "functions_func_l.html", null ], 13 | [ "m", "functions_func_m.html", null ], 14 | [ "n", "functions_func_n.html", null ], 15 | [ "o", "functions_func_o.html", null ], 16 | [ "p", "functions_func_p.html", null ], 17 | [ "q", "functions_func_q.html", null ], 18 | [ "r", "functions_func_r.html", null ], 19 | [ "s", "functions_func_s.html", null ], 20 | [ "t", "functions_func_t.html", null ], 21 | [ "u", "functions_func_u.html", null ], 22 | [ "w", "functions_func_w.html", null ], 23 | [ "~", "functions_func_~.html", null ] 24 | ]; -------------------------------------------------------------------------------- /docs/hierarchy.js: -------------------------------------------------------------------------------- 1 | var hierarchy = 2 | [ 3 | [ "QCefConfig", "class_q_cef_config.html", null ], 4 | [ "QCefDownloadItem", "class_q_cef_download_item.html", null ], 5 | [ "QCefEvent", "class_q_cef_event.html", null ], 6 | [ "QCefQuery", "class_q_cef_query.html", null ], 7 | [ "QCefSetting", "class_q_cef_setting.html", null ], 8 | [ "QObject", null, [ 9 | [ "QCefContext", "class_q_cef_context.html", null ] 10 | ] ], 11 | [ "QWidget", null, [ 12 | [ "QCefView", "class_q_cef_view.html", null ] 13 | ] ] 14 | ]; -------------------------------------------------------------------------------- /docs/index.js: -------------------------------------------------------------------------------- 1 | var index = 2 | [ 3 | [ "What is QCefView?", "index.html#autotoc_md1", null ], 4 | [ "Why Choose QCefView over Electron?", "index.html#autotoc_md2", null ], 5 | [ "Ideal Use Cases for QCefView", "index.html#autotoc_md3", null ], 6 | [ "Alternatives to Qt", "index.html#autotoc_md4", [ 7 | [ "Unreal Game Development", "index.html#autotoc_md5", null ], 8 | [ "macOS App Development", "index.html#autotoc_md6", null ] 9 | ] ] 10 | ]; -------------------------------------------------------------------------------- /docs/invoke-method-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/invoke-method-01.png -------------------------------------------------------------------------------- /docs/invoke-method-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/invoke-method-02.png -------------------------------------------------------------------------------- /docs/linux-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/linux-demo.png -------------------------------------------------------------------------------- /docs/macOS-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/macOS-demo.png -------------------------------------------------------------------------------- /docs/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/minusd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/nav_f.png -------------------------------------------------------------------------------- /docs/nav_fd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/nav_fd.png -------------------------------------------------------------------------------- /docs/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/nav_g.png -------------------------------------------------------------------------------- /docs/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/nav_h.png -------------------------------------------------------------------------------- /docs/nav_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/nav_hd.png -------------------------------------------------------------------------------- /docs/navtree.css: -------------------------------------------------------------------------------- 1 | #nav-tree .children_ul { 2 | margin:0; 3 | padding:4px; 4 | } 5 | 6 | #nav-tree ul { 7 | list-style:none outside none; 8 | margin:0px; 9 | padding:0px; 10 | } 11 | 12 | #nav-tree li { 13 | white-space:nowrap; 14 | margin:0px; 15 | padding:0px; 16 | } 17 | 18 | #nav-tree .plus { 19 | margin:0px; 20 | } 21 | 22 | #nav-tree .selected { 23 | background-image: url('tab_a.png'); 24 | background-repeat:repeat-x; 25 | color: var(--nav-text-active-color); 26 | text-shadow: var(--nav-text-active-shadow); 27 | } 28 | 29 | #nav-tree .selected .arrow { 30 | color: var(--nav-arrow-selected-color); 31 | text-shadow: none; 32 | } 33 | 34 | #nav-tree img { 35 | margin:0px; 36 | padding:0px; 37 | border:0px; 38 | vertical-align: middle; 39 | } 40 | 41 | #nav-tree a { 42 | text-decoration:none; 43 | padding:0px; 44 | margin:0px; 45 | } 46 | 47 | #nav-tree .label { 48 | margin:0px; 49 | padding:0px; 50 | font: 12px var(--font-family-nav); 51 | } 52 | 53 | #nav-tree .label a { 54 | padding:2px; 55 | } 56 | 57 | #nav-tree .selected a { 58 | text-decoration:none; 59 | color:var(--nav-text-active-color); 60 | } 61 | 62 | #nav-tree .children_ul { 63 | margin:0px; 64 | padding:0px; 65 | } 66 | 67 | #nav-tree .item { 68 | margin:0px; 69 | padding:0px; 70 | } 71 | 72 | #nav-tree { 73 | padding: 0px 0px; 74 | font-size:14px; 75 | overflow:auto; 76 | } 77 | 78 | #doc-content { 79 | overflow:auto; 80 | display:block; 81 | padding:0px; 82 | margin:0px; 83 | -webkit-overflow-scrolling : touch; /* iOS 5+ */ 84 | } 85 | 86 | #side-nav { 87 | padding:0 6px 0 0; 88 | margin: 0px; 89 | display:block; 90 | position: absolute; 91 | left: 0px; 92 | width: $width; 93 | overflow : hidden; 94 | } 95 | 96 | .ui-resizable .ui-resizable-handle { 97 | display:block; 98 | } 99 | 100 | .ui-resizable-e { 101 | background-image:var(--nav-splitbar-image); 102 | background-size:100%; 103 | background-repeat:repeat-y; 104 | background-attachment: scroll; 105 | cursor:ew-resize; 106 | height:100%; 107 | right:0; 108 | top:0; 109 | width:6px; 110 | } 111 | 112 | .ui-resizable-handle { 113 | display:none; 114 | font-size:0.1px; 115 | position:absolute; 116 | z-index:1; 117 | } 118 | 119 | #nav-tree-contents { 120 | margin: 6px 0px 0px 0px; 121 | } 122 | 123 | #nav-tree { 124 | background-repeat:repeat-x; 125 | background-color: var(--nav-background-color); 126 | -webkit-overflow-scrolling : touch; /* iOS 5+ */ 127 | } 128 | 129 | #nav-sync { 130 | position:absolute; 131 | top:5px; 132 | right:24px; 133 | z-index:0; 134 | } 135 | 136 | #nav-sync img { 137 | opacity:0.3; 138 | } 139 | 140 | #nav-sync img:hover { 141 | opacity:0.9; 142 | } 143 | 144 | @media print 145 | { 146 | #nav-tree { display: none; } 147 | div.ui-resizable-handle { display: none; position: relative; } 148 | } 149 | 150 | -------------------------------------------------------------------------------- /docs/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/open.png -------------------------------------------------------------------------------- /docs/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/plusd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['00_2dintroduction_2emd_0',['00-Introduction.md',['../00-_introduction_8md.html',1,'']]], 4 | ['01_2dbuildandconfig_2emd_1',['01-BuildAndConfig.md',['../01-_build_and_config_8md.html',1,'']]], 5 | ['02_2dfirstproject_2emd_2',['02-FirstProject.md',['../02-_first_project_8md.html',1,'']]], 6 | ['03_2dresourceloading_2emd_3',['03-ResourceLoading.md',['../03-_resource_loading_8md.html',1,'']]], 7 | ['04_2dinteroperability_2emd_4',['04-Interoperability.md',['../04-_interoperability_8md.html',1,'']]], 8 | ['05_2drendering_2emd_5',['05-Rendering.md',['../05-_rendering_8md.html',1,'']]], 9 | ['06_2dwebapis_2emd_6',['06-WebAPIs.md',['../06-_web_a_p_is_8md.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['1_20cmake_0',['1. CMake',['../md_docs_201-_build_and_config.html#autotoc_md10',1,'']]], 4 | ['1_20load_20online_20web_20resource_1',['1. Load Online Web Resource',['../md_docs_203-_resource_loading.html#autotoc_md30',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['macos_20app_20development_0',['macOS App Development',['../index.html#autotoc_md6',1,'']]], 4 | ['mainframeid_1',['MainFrameID',['../class_q_cef_view.html#aecdaec6088be4f77a505e0fae0765625',1,'QCefView']]], 5 | ['mapping_2',['Mapping',['../md_docs_203-_resource_loading.html#autotoc_md32',1,'3. Add Local Folder Mapping'],['../md_docs_203-_resource_loading.html#autotoc_md33',1,'4. Add Local Archive Mapping']]], 6 | ['markasreplied_3',['markAsReplied',['../class_q_cef_query.html#af1e8c950b361ad9ca4d4e260626c5d14',1,'QCefQuery']]], 7 | ['mimetype_4',['mimeType',['../class_q_cef_download_item.html#afb8ec36477b64a222b0610c8518f8e31',1,'QCefDownloadItem']]], 8 | ['minimumfontsize_5',['minimumFontSize',['../class_q_cef_setting.html#a3b263c84f28ef76fc1dc4cd4dfad8e5d',1,'QCefSetting']]], 9 | ['minimumlogicalfontsize_6',['minimumLogicalFontSize',['../class_q_cef_setting.html#a3f0801d8ecbc7fe86df805dc6db3aad9',1,'QCefSetting']]], 10 | ['mode_7',['mode',['../md_docs_205-_rendering.html#autotoc_md50',1,'NCW mode'],['../md_docs_205-_rendering.html#autotoc_md51',1,'OSR mode']]], 11 | ['mode_20in_20qcefview_8',['Setting OSR Mode in QCefView',['../md_docs_205-_rendering.html#autotoc_md52',1,'']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /docs/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['name_20args_0',['invoke(name, ...args)',['../md_docs_206-_web_a_p_is.html#CefViewClient_invoke',1,'']]], 4 | ['name_20listener_1',['name listener',['../md_docs_206-_web_a_p_is.html#CefViewClient_addEventListener',1,'addEventListener(name, listener)'],['../md_docs_206-_web_a_p_is.html#CefViewClient_removeEventListener',1,'removeEventListener(name, listener)']]], 5 | ['nativebrowsercreated_2',['nativeBrowserCreated',['../class_q_cef_view.html#a543b0eca797c5161d6325665d5ddd576',1,'QCefView']]], 6 | ['navigatetostring_3',['navigateToString',['../class_q_cef_view.html#ac3b8ec3b088422a67f93fc580047a1a0',1,'QCefView']]], 7 | ['navigatetourl_4',['navigateToUrl',['../class_q_cef_view.html#a4bf036d5a7d128d4c1487afaa0393d5b',1,'QCefView']]], 8 | ['ncw_20mode_5',['NCW mode',['../md_docs_205-_rendering.html#autotoc_md50',1,'']]], 9 | ['notes_6',['Additional Notes',['../md_docs_201-_build_and_config.html#autotoc_md13',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['online_20web_20resource_0',['1. Load Online Web Resource',['../md_docs_203-_resource_loading.html#autotoc_md30',1,'']]], 4 | ['onnewbrowser_1',['onNewBrowser',['../class_q_cef_view.html#a49c99555c9c604dc2e310c3df02bf385',1,'QCefView']]], 5 | ['onnewdownloaditem_2',['onNewDownloadItem',['../class_q_cef_view.html#a666e93d6e9f9be7444f9b898f77c8292',1,'QCefView']]], 6 | ['onnewpopup_3',['onNewPopup',['../class_q_cef_view.html#aadb6d47674e2ad414eb20a066b7e0738',1,'QCefView']]], 7 | ['onrequestclosefromweb_4',['onRequestCloseFromWeb',['../class_q_cef_view.html#ad23057b6187876c84f883b1e7120456d',1,'QCefView']]], 8 | ['onupdatedownloaditem_5',['onUpdateDownloadItem',['../class_q_cef_view.html#a9833a1db8ef5864489f9462ef397cbb8',1,'QCefView']]], 9 | ['operator_3d_6',['operator=',['../class_q_cef_config.html#a2f78eccb1b7463db2c0b174aff5d0553',1,'QCefConfig::operator=()'],['../class_q_cef_event.html#a95e2f8c582270de0f9501945a6e063ee',1,'QCefEvent::operator=()'],['../class_q_cef_setting.html#a486f0c9edda93fb30c75608ac9b98ba2',1,'QCefSetting::operator=()']]], 10 | ['originalurl_7',['originalUrl',['../class_q_cef_download_item.html#a9f9bcb65952b50b4f24c4d55eff9b64e',1,'QCefDownloadItem']]], 11 | ['osr_20mode_8',['OSR mode',['../md_docs_205-_rendering.html#autotoc_md51',1,'']]], 12 | ['osr_20mode_20in_20qcefview_9',['Setting OSR Mode in QCefView',['../md_docs_205-_rendering.html#autotoc_md52',1,'']]], 13 | ['over_20electron_10',['Why Choose QCefView over Electron?',['../index.html#autotoc_md2',1,'']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/search/all_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['page_0',['Create a Simple Web Page',['../md_docs_202-_first_project.html#autotoc_md27',1,'']]], 4 | ['paintengine_1',['paintEngine',['../class_q_cef_view.html#ad88e5a99ad808b7a911b58ba9ed9b838',1,'QCefView']]], 5 | ['parameters_2',['Parameters',['../md_docs_206-_web_a_p_is.html#autotoc_md55',1,'Parameters'],['../md_docs_206-_web_a_p_is.html#autotoc_md56',1,'Parameters'],['../md_docs_206-_web_a_p_is.html#autotoc_md57',1,'Parameters'],['../md_docs_206-_web_a_p_is.html#autotoc_md58',1,'Parameters'],['../md_docs_206-_web_a_p_is.html#autotoc_md60',1,'Parameters']]], 6 | ['path_3',['2. Load Local File With File Path',['../md_docs_203-_resource_loading.html#autotoc_md31',1,'']]], 7 | ['pause_4',['pause',['../class_q_cef_download_item.html#aaa31f59599e9311f0aee99a0a13e2568',1,'QCefDownloadItem']]], 8 | ['percentcomplete_5',['percentComplete',['../class_q_cef_download_item.html#a18fafe4f375aa60e43ec7c5d855ab91e',1,'QCefDownloadItem']]], 9 | ['persistsessioncookies_6',['persistSessionCookies',['../class_q_cef_config.html#aa8b22bc6b4d9ef5c8aeccfc363ee1f9c',1,'QCefConfig']]], 10 | ['persistuserpreferences_7',['persistUserPreferences',['../class_q_cef_config.html#a4749b6aa16660a15d753f5248985e25f',1,'QCefConfig']]], 11 | ['plugins_8',['plugins',['../class_q_cef_setting.html#a99c3a6c649171d42402af815f6628f03',1,'QCefSetting']]], 12 | ['prerequisites_9',['Prerequisites',['../md_docs_201-_build_and_config.html#autotoc_md9',1,'']]], 13 | ['project_10',['First Project',['../md_docs_202-_first_project.html',1,'']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/search/all_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['receivedbytes_0',['receivedBytes',['../class_q_cef_download_item.html#a5d76f04bb41c5e4edad6d680b01fe63f',1,'QCefDownloadItem']]], 4 | ['remotedebuggingport_1',['remoteDebuggingPort',['../class_q_cef_config.html#aeaa7b37b83ee32a5ec50a1dec11d0c2e',1,'QCefConfig']]], 5 | ['remotefonts_2',['remoteFonts',['../class_q_cef_setting.html#a6b503e82defe4c57a88936fb2cec2509',1,'QCefSetting']]], 6 | ['removecrossoriginwhitelistentry_3',['removeCrossOriginWhitelistEntry',['../class_q_cef_context.html#af04aefeea503031f5a8fbdabf05bc5e8',1,'QCefContext']]], 7 | ['removeeventlistener_20name_20listener_4',['removeEventListener(name, listener)',['../md_docs_206-_web_a_p_is.html#CefViewClient_removeEventListener',1,'']]], 8 | ['rendering_5',['Rendering',['../md_docs_205-_rendering.html',1,'']]], 9 | ['reply_6',['reply',['../class_q_cef_query.html#a9b7df2f2ffaf42431392fcb0a89042be',1,'QCefQuery']]], 10 | ['reportjavascriptresult_7',['reportJavascriptResult',['../class_q_cef_view.html#a9b69938aa6f8352799bee6084bab03e4',1,'QCefView']]], 11 | ['request_8',['request',['../class_q_cef_query.html#a16d137bcc1bf2ef9bc8969ff1bd091e7',1,'QCefQuery']]], 12 | ['resource_9',['1. Load Online Web Resource',['../md_docs_203-_resource_loading.html#autotoc_md30',1,'']]], 13 | ['resource_20loading_10',['Resource Loading',['../md_docs_203-_resource_loading.html',1,'']]], 14 | ['response_11',['response',['../class_q_cef_query.html#a663d5945146bebe69a0a3c5448bb9280',1,'QCefQuery']]], 15 | ['responseqcefquery_12',['responseQCefQuery',['../class_q_cef_view.html#afc838dab54d2b083b05f0d98349b50cc',1,'QCefView']]], 16 | ['result_13',['result',['../class_q_cef_query.html#a8c2d78e19628d8066570338d659bc9b2',1,'QCefQuery']]], 17 | ['resume_14',['resume',['../class_q_cef_download_item.html#aa2afc687e69c7c78f6c49e9a41a34823',1,'QCefDownloadItem']]], 18 | ['returns_15',['Returns',['../md_docs_206-_web_a_p_is.html#autotoc_md59',1,'']]], 19 | ['rootcachepath_16',['rootCachePath',['../class_q_cef_config.html#a5bc459471e82e88326c17220a0e05310',1,'QCefConfig']]], 20 | ['run_20the_20application_17',['Run the Application',['../md_docs_202-_first_project.html#autotoc_md28',1,'Run the Application'],['../md_docs_204-_interoperability.html#autotoc_md40',1,'Run the Application'],['../md_docs_204-_interoperability.html#autotoc_md44',1,'Run the Application'],['../md_docs_204-_interoperability.html#autotoc_md48',1,'Run the Application']]] 21 | ]; 22 | -------------------------------------------------------------------------------- /docs/search/all_17.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tabtolinks_0',['tabToLinks',['../class_q_cef_setting.html#a9b81d1bcf47146dfc5eeeabeb583e627',1,'QCefSetting']]], 4 | ['textarearesize_1',['textAreaResize',['../class_q_cef_setting.html#a8d88588797f311f71c55073f95dafafe',1,'QCefSetting']]], 5 | ['the_20application_2',['the Application',['../md_docs_202-_first_project.html#autotoc_md28',1,'Run the Application'],['../md_docs_204-_interoperability.html#autotoc_md40',1,'Run the Application'],['../md_docs_204-_interoperability.html#autotoc_md44',1,'Run the Application'],['../md_docs_204-_interoperability.html#autotoc_md48',1,'Run the Application']]], 6 | ['the_20qcefcontext_20instance_3',['Initializing the QCefContext Instance',['../md_docs_202-_first_project.html#autotoc_md25',1,'']]], 7 | ['titlechanged_4',['titleChanged',['../class_q_cef_view.html#a48c82c208cab769a1baa7177bc58b030',1,'QCefView']]], 8 | ['to_20qt_5',['Alternatives to Qt',['../index.html#autotoc_md4',1,'']]], 9 | ['totalbytes_6',['totalBytes',['../class_q_cef_download_item.html#ab1ff7414475451351e4d4ab50f723bee',1,'QCefDownloadItem']]], 10 | ['triggerevent_7',['triggerEvent',['../class_q_cef_view.html#ac47c23ffcd94bdffe2b6a81eaae077a2',1,'QCefView::triggerEvent(const QCefEvent &event)'],['../class_q_cef_view.html#ab70a707afda924d6f035b20a1aecc695',1,'QCefView::triggerEvent(const QCefEvent &event, const QString &frameId)']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/all_18.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uninit_0',['uninit',['../class_q_cef_context.html#aee74a7460786ddc17f8f9c0f68eaab6b',1,'QCefContext']]], 4 | ['unreal_20game_20development_1',['Unreal Game Development',['../index.html#autotoc_md5',1,'']]], 5 | ['url_2',['url',['../class_q_cef_download_item.html#a253cf33b582e3994b65d5611ef277bbe',1,'QCefDownloadItem']]], 6 | ['use_20cases_3',['Use Cases',['../md_docs_203-_resource_loading.html#autotoc_md34',1,'']]], 7 | ['use_20cases_20for_20qcefview_4',['Ideal Use Cases for QCefView',['../index.html#autotoc_md3',1,'']]], 8 | ['use_5fqt_5fevent_5floop_5',['USE_QT_EVENT_LOOP',['../md_docs_201-_build_and_config.html#autotoc_md23',1,'']]], 9 | ['use_5fsandbox_6',['USE_SANDBOX',['../md_docs_201-_build_and_config.html#autotoc_md21',1,'']]], 10 | ['use_5fwin_5fdcomposition_7',['USE_WIN_DCOMPOSITION',['../md_docs_201-_build_and_config.html#autotoc_md22',1,'']]], 11 | ['useragent_8',['userAgent',['../class_q_cef_config.html#ad95b55d57719d9fc1a3dc5abb5695016',1,'QCefConfig']]], 12 | ['userdatapath_9',['userDataPath',['../class_q_cef_config.html#a317ff9d74e89dac404e20005c33b08e9',1,'QCefConfig']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/search/all_19.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['web_20apis_0',['Web APIs',['../md_docs_206-_web_a_p_is.html',1,'']]], 4 | ['web_20page_1',['Create a Simple Web Page',['../md_docs_202-_first_project.html#autotoc_md27',1,'']]], 5 | ['web_20resource_2',['1. Load Online Web Resource',['../md_docs_203-_resource_loading.html#autotoc_md30',1,'']]], 6 | ['webgl_3',['webGL',['../class_q_cef_setting.html#aca84c981db4fcc2cf6aa3ece7c44973c',1,'QCefSetting']]], 7 | ['what_20is_20qcefview_4',['What is QCefView?',['../index.html#autotoc_md1',1,'']]], 8 | ['why_20choose_20qcefview_20over_20electron_5',['Why Choose QCefView over Electron?',['../index.html#autotoc_md2',1,'']]], 9 | ['window_20cefviewclient_6',['window.CefViewClient',['../md_docs_206-_web_a_p_is.html#CefViewClient',1,'']]], 10 | ['window_20cefviewquery_7',['window.cefViewQuery',['../md_docs_206-_web_a_p_is.html#cefViewQuery',1,'']]], 11 | ['window_20cefviewquerycancel_8',['window.cefViewQueryCancel',['../md_docs_206-_web_a_p_is.html#cefViewQueryCancel',1,'']]], 12 | ['windowinitialsize_9',['windowInitialSize',['../class_q_cef_setting.html#ad3aabefb7879e392952a94464c983978',1,'QCefSetting']]], 13 | ['windowlessframerate_10',['windowlessFrameRate',['../class_q_cef_setting.html#adfc424688213e0e695b6b84681581135',1,'QCefSetting']]], 14 | ['windowlessrenderingenabled_11',['windowlessRenderingEnabled',['../class_q_cef_config.html#a17b6765b357b7a2d69a1f02b27a4eb92',1,'QCefConfig']]], 15 | ['with_20file_20path_12',['2. Load Local File With File Path',['../md_docs_203-_resource_loading.html#autotoc_md31',1,'']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /docs/search/all_1a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eqcefconfig_0',['~QCefConfig',['../class_q_cef_config.html#a67d06ef56affa82e943c7a5c73afee9a',1,'QCefConfig']]], 4 | ['_7eqcefcontext_1',['~QCefContext',['../class_q_cef_context.html#a91de7d9c36aafdaca390a355d6da5c6d',1,'QCefContext']]], 5 | ['_7eqcefdownloaditem_2',['~QCefDownloadItem',['../class_q_cef_download_item.html#a913a2654dcd05ef8facefc515d831124',1,'QCefDownloadItem']]], 6 | ['_7eqcefevent_3',['~QCefEvent',['../class_q_cef_event.html#a5c0e38242fa1ba823f1664232966787c',1,'QCefEvent']]], 7 | ['_7eqcefquery_4',['~QCefQuery',['../class_q_cef_query.html#a402d117cbd2d37681394f86d31ed11a3',1,'QCefQuery']]], 8 | ['_7eqcefsetting_5',['~QCefSetting',['../class_q_cef_setting.html#a589b16fe883213d0e330503c0ccab218',1,'QCefSetting']]], 9 | ['_7eqcefview_6',['~QCefView',['../class_q_cef_view.html#a70903dca8ccd3e2776d68742531177fd',1,'QCefView']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/all_1b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eqcefconfig_0',['~QCefConfig',['../class_q_cef_config.html#a67d06ef56affa82e943c7a5c73afee9a',1,'QCefConfig']]], 4 | ['_7eqcefcontext_1',['~QCefContext',['../class_q_cef_context.html#a91de7d9c36aafdaca390a355d6da5c6d',1,'QCefContext']]], 5 | ['_7eqcefdownloaditem_2',['~QCefDownloadItem',['../class_q_cef_download_item.html#a913a2654dcd05ef8facefc515d831124',1,'QCefDownloadItem']]], 6 | ['_7eqcefevent_3',['~QCefEvent',['../class_q_cef_event.html#a5c0e38242fa1ba823f1664232966787c',1,'QCefEvent']]], 7 | ['_7eqcefquery_4',['~QCefQuery',['../class_q_cef_query.html#a402d117cbd2d37681394f86d31ed11a3',1,'QCefQuery']]], 8 | ['_7eqcefsetting_5',['~QCefSetting',['../class_q_cef_setting.html#a589b16fe883213d0e330503c0ccab218',1,'QCefSetting']]], 9 | ['_7eqcefview_6',['~QCefView',['../class_q_cef_view.html#a70903dca8ccd3e2776d68742531177fd',1,'QCefView']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['2_20load_20local_20file_20with_20file_20path_0',['2. Load Local File With File Path',['../md_docs_203-_resource_loading.html#autotoc_md31',1,'']]], 4 | ['2_20qt_20framework_1',['2. Qt Framework',['../md_docs_201-_build_and_config.html#autotoc_md11',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['3_20add_20local_20folder_20mapping_0',['3. Add Local Folder Mapping',['../md_docs_203-_resource_loading.html#autotoc_md32',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['4_20add_20local_20archive_20mapping_0',['4. Add Local Archive Mapping',['../md_docs_203-_resource_loading.html#autotoc_md33',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['backgroundcolor_0',['backgroundColor',['../class_q_cef_config.html#aa04db9637f47424834bbcdf05a8b640b',1,'QCefConfig::backgroundColor()'],['../class_q_cef_setting.html#a9db276640c98e1d5d38290e06ae17d1a',1,'QCefSetting::backgroundColor()']]], 4 | ['bridgeobjectname_1',['bridgeObjectName',['../class_q_cef_config.html#aab1ee01c7697e38b94b8edf961da4b35',1,'QCefConfig']]], 5 | ['broadcastevent_2',['broadcastEvent',['../class_q_cef_view.html#ad5455e3a8cb0ffa1f9d7cb98307a6bb4',1,'QCefView']]], 6 | ['browsercangoback_3',['browserCanGoBack',['../class_q_cef_view.html#a01100f7ab97f9f643e4f23af5cea9900',1,'QCefView']]], 7 | ['browsercangoforward_4',['browserCanGoForward',['../class_q_cef_view.html#ae1d6a6d94e02a54654463e5b0c491624',1,'QCefView']]], 8 | ['browsergoback_5',['browserGoBack',['../class_q_cef_view.html#aa82e1ceaa7f543f8d99d7d9cbf714382',1,'QCefView']]], 9 | ['browsergoforward_6',['browserGoForward',['../class_q_cef_view.html#a9ce96fbf25701594b8d65381661141db',1,'QCefView']]], 10 | ['browserid_7',['browserId',['../class_q_cef_view.html#ae4aa1652bf9852ed744dd38487bbb748',1,'QCefView']]], 11 | ['browserisloading_8',['browserIsLoading',['../class_q_cef_view.html#a12ca0bc0f4fc55dfc838769990d6a6d7',1,'QCefView']]], 12 | ['browserreload_9',['browserReload',['../class_q_cef_view.html#a45bc8cd7340ce410cf873d7296ffacf6',1,'QCefView']]], 13 | ['browserstopload_10',['browserStopLoad',['../class_q_cef_view.html#afadd210f3c5cd95598b18aa158a9c16f',1,'QCefView']]], 14 | ['build_11',['Build',['../md_docs_201-_build_and_config.html#autotoc_md8',1,'']]], 15 | ['build_20and_20config_12',['Build and Config',['../md_docs_201-_build_and_config.html',1,'']]], 16 | ['build_20qcefview_13',['Build QCefView',['../md_docs_201-_build_and_config.html#autotoc_md12',1,'']]], 17 | ['build_5fdemo_14',['BUILD_DEMO',['../md_docs_201-_build_and_config.html#autotoc_md18',1,'']]], 18 | ['build_5fstatic_15',['BUILD_STATIC',['../md_docs_201-_build_and_config.html#autotoc_md19',1,'']]], 19 | ['builtinschemename_16',['builtinSchemeName',['../class_q_cef_config.html#a626d58894a334167dfc3fbe4fa055711',1,'QCefConfig']]] 20 | ]; 21 | -------------------------------------------------------------------------------- /docs/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['databases_0',['databases',['../class_q_cef_setting.html#a94b2a957c8754619df7a37258a41c31d',1,'QCefSetting']]], 4 | ['defaultencoding_1',['defaultEncoding',['../class_q_cef_setting.html#a2de89967072377f279b36e821bde18e1',1,'QCefSetting']]], 5 | ['defaultfixedfontsize_2',['defaultFixedFontSize',['../class_q_cef_setting.html#ab25a8bd4b9d5acb865c840b8c4320f5d',1,'QCefSetting']]], 6 | ['defaultfontsize_3',['defaultFontSize',['../class_q_cef_setting.html#a4a38db62a20b2e8e7a26029f0b928689',1,'QCefSetting']]], 7 | ['deleteallcookies_4',['deleteAllCookies',['../class_q_cef_context.html#a794e41a74ddabc503bed5e8c47fe3dd0',1,'QCefContext']]], 8 | ['deprecated_20list_5',['Deprecated List',['../deprecated.html',1,'']]], 9 | ['deprecated_5fcef_5fapi_5fwarning_6',['DEPRECATED_CEF_API_WARNING',['../_q_cef_view__global_8h.html#a342783eb60e0e77913cc501712966dab',1,'QCefView_global.h']]], 10 | ['deprecated_5fsince_5fcef_5fversion_7',['DEPRECATED_SINCE_CEF_VERSION',['../_q_cef_view__global_8h.html#a761b5c2677e327ac6c1c3e8a8b67f067',1,'QCefView_global.h']]], 11 | ['development_8',['Development',['../index.html#autotoc_md6',1,'macOS App Development'],['../index.html#autotoc_md5',1,'Unreal Game Development']]], 12 | ['draggableregionchanged_9',['draggableRegionChanged',['../class_q_cef_view.html#ae11274817f627abf9d407e12dcd5c050',1,'QCefView']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['electron_0',['Why Choose QCefView over Electron?',['../index.html#autotoc_md2',1,'']]], 4 | ['endtime_1',['endTime',['../class_q_cef_download_item.html#a61b2bd3cdc2f35d2424ded4e8b3801fd',1,'QCefDownloadItem']]], 5 | ['error_2',['error',['../class_q_cef_query.html#ab35201ac89d89f1445538f82a12f8fa8',1,'QCefQuery']]], 6 | ['event_3',['event',['../class_q_cef_view.html#a2c33acd395e7f4adecbef1bf67b7680c',1,'QCefView']]], 7 | ['eventname_4',['eventName',['../class_q_cef_event.html#a5a970c76a348788b15a040c8c405a103',1,'QCefEvent']]], 8 | ['executejavascript_5',['executeJavascript',['../class_q_cef_view.html#aef5bf034432e297e89cfd45aca68f5ff',1,'QCefView']]], 9 | ['executejavascriptwithresult_6',['executeJavascriptWithResult',['../class_q_cef_view.html#ac13fdea19da380026a742a60c51a2356',1,'QCefView']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fantasyfontfamily_0',['fantasyFontFamily',['../class_q_cef_setting.html#a0acd7303ff77ae1eff9fa579fc96e97a',1,'QCefSetting']]], 4 | ['faviconurlchanged_1',['faviconURLChanged',['../class_q_cef_view.html#a7b9e104469c1a4a203c2e1d7e9cfd2a7',1,'QCefView']]], 5 | ['file_20path_2',['2. Load Local File With File Path',['../md_docs_203-_resource_loading.html#autotoc_md31',1,'']]], 6 | ['file_20with_20file_20path_3',['2. Load Local File With File Path',['../md_docs_203-_resource_loading.html#autotoc_md31',1,'']]], 7 | ['first_20project_4',['First Project',['../md_docs_202-_first_project.html',1,'']]], 8 | ['fixedfontfamily_5',['fixedFontFamily',['../class_q_cef_setting.html#a239e1982f4ab4198a62f9c00ae17bcbb',1,'QCefSetting']]], 9 | ['folder_20mapping_6',['3. Add Local Folder Mapping',['../md_docs_203-_resource_loading.html#autotoc_md32',1,'']]], 10 | ['for_20qcefview_7',['Ideal Use Cases for QCefView',['../index.html#autotoc_md3',1,'']]], 11 | ['framework_8',['2. Qt Framework',['../md_docs_201-_build_and_config.html#autotoc_md11',1,'']]], 12 | ['from_20c_9',['Call Javascript from C++',['../md_docs_204-_interoperability.html#autotoc_md41',1,'']]], 13 | ['from_20javascript_10',['Call C++ from Javascript',['../md_docs_204-_interoperability.html#autotoc_md37',1,'']]], 14 | ['fullpath_11',['fullPath',['../class_q_cef_download_item.html#a40227300f52cd34a67281eacf95bcc28',1,'QCefDownloadItem']]], 15 | ['fullscreenmodechanged_12',['fullscreenModeChanged',['../class_q_cef_view.html#afa0fbb5b4c2c6c3592085e9b94dffc4a',1,'QCefView']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /docs/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['game_20development_0',['Unreal Game Development',['../index.html#autotoc_md5',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hardware_20acceleration_0',['Hardware Acceleration',['../md_docs_205-_rendering.html#autotoc_md53',1,'']]], 4 | ['hardwareaccelerationenabled_1',['hardwareAccelerationEnabled',['../class_q_cef_setting.html#a4bdbfb2a4dc08f09b21b75bf0a5fd264',1,'QCefSetting']]], 5 | ['hasdevtools_2',['hasDevTools',['../class_q_cef_view.html#a85fd904cbd3b91a72ce090cffb0119c8',1,'QCefView']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['id_0',['id',['../class_q_cef_download_item.html#aff911ad0aa21867cdfe56457293f4914',1,'QCefDownloadItem::id()'],['../class_q_cef_query.html#a5b701d7f9c92ff814cfe28b110142a4c',1,'QCefQuery::id()']]], 4 | ['ideal_20use_20cases_20for_20qcefview_1',['Ideal Use Cases for QCefView',['../index.html#autotoc_md3',1,'']]], 5 | ['imageloading_2',['imageLoading',['../class_q_cef_setting.html#aa06779c82a28a01bd862ac605356be40',1,'QCefSetting']]], 6 | ['imageshrinkstandalonetofit_3',['imageShrinkStandaloneToFit',['../class_q_cef_setting.html#a7374edce9be761b5d40edef80f42f7b9',1,'QCefSetting']]], 7 | ['in_20qcefview_4',['Setting OSR Mode in QCefView',['../md_docs_205-_rendering.html#autotoc_md52',1,'']]], 8 | ['init_5',['init',['../class_q_cef_context.html#a78836c8d4d2bdf4970a256d8d29c80c6',1,'QCefContext']]], 9 | ['initializing_20the_20qcefcontext_20instance_6',['Initializing the QCefContext Instance',['../md_docs_202-_first_project.html#autotoc_md25',1,'']]], 10 | ['inputmethodquery_7',['inputMethodQuery',['../class_q_cef_view.html#af25a011c126a9bb5dc3df99756a75368',1,'QCefView']]], 11 | ['instance_8',['Instance',['../md_docs_202-_first_project.html#autotoc_md26',1,'Create QCefView Instance'],['../md_docs_202-_first_project.html#autotoc_md25',1,'Initializing the QCefContext Instance']]], 12 | ['instance_9',['instance',['../class_q_cef_context.html#a3e6491f837fdd72c7b4fefed5569853b',1,'QCefContext']]], 13 | ['interoperability_10',['Interoperability',['../md_docs_204-_interoperability.html',1,'']]], 14 | ['introduced_5fcef_5fapi_5fwarning_11',['INTRODUCED_CEF_API_WARNING',['../_q_cef_view__global_8h.html#af3bf408a6987e48e4ebe84ca2669d6a4',1,'QCefView_global.h']]], 15 | ['introduced_5fsince_5fcef_5fversion_12',['INTRODUCED_SINCE_CEF_VERSION',['../_q_cef_view__global_8h.html#a3dcdd1222917bd78bc60c08d2c041d2b',1,'QCefView_global.h']]], 16 | ['introduction_13',['Introduction',['../index.html',1,'']]], 17 | ['invoke_20name_20args_14',['invoke(name, ...args)',['../md_docs_206-_web_a_p_is.html#CefViewClient_invoke',1,'']]], 18 | ['invokemethod_15',['invokeMethod',['../class_q_cef_view.html#a00435b9ab61d04517427dbe4805e970d',1,'QCefView']]], 19 | ['is_20qcefview_16',['What is QCefView?',['../index.html#autotoc_md1',1,'']]], 20 | ['iscanceled_17',['isCanceled',['../class_q_cef_download_item.html#ada41b0480a3e97d788086ea8c420a22c',1,'QCefDownloadItem']]], 21 | ['iscomplete_18',['isComplete',['../class_q_cef_download_item.html#a67c86edf9e9cb742050e2521b55c86df',1,'QCefDownloadItem']]], 22 | ['isinprogress_19',['isInProgress',['../class_q_cef_download_item.html#a22455702c989d4dcc08fb1d13659739d',1,'QCefDownloadItem']]], 23 | ['isstarted_20',['isStarted',['../class_q_cef_download_item.html#a6febee1fe8a5f7d15e888a4352d50526',1,'QCefDownloadItem']]] 24 | ]; 25 | -------------------------------------------------------------------------------- /docs/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['javascript_0',['Call C++ from Javascript',['../md_docs_204-_interoperability.html#autotoc_md37',1,'']]], 4 | ['javascript_1',['javascript',['../class_q_cef_setting.html#abfa7cceca149b6311e7a28e6ae4e2853',1,'QCefSetting']]], 5 | ['javascript_20code_2',['Javascript Code',['../md_docs_204-_interoperability.html#autotoc_md38',1,'Add Javascript Code'],['../md_docs_204-_interoperability.html#autotoc_md42',1,'Add Javascript Code'],['../md_docs_204-_interoperability.html#autotoc_md46',1,'Add Javascript Code']]], 6 | ['javascript_20from_20c_3',['Call Javascript from C++',['../md_docs_204-_interoperability.html#autotoc_md41',1,'']]], 7 | ['javascriptaccessclipboard_4',['javascriptAccessClipboard',['../class_q_cef_setting.html#aff511401ea2d0453583db4b642526dbd',1,'QCefSetting']]], 8 | ['javascriptclosewindows_5',['javascriptCloseWindows',['../class_q_cef_setting.html#a8cab27275ce36cb0b1477a85b6694f3b',1,'QCefSetting']]], 9 | ['javascriptdompaste_6',['javascriptDomPaste',['../class_q_cef_setting.html#a6696cc8fa0b4ea1ef14d71259cd4350d',1,'QCefSetting']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qcefconfig_0',['QCefConfig',['../class_q_cef_config.html',1,'']]], 4 | ['qcefcontext_1',['QCefContext',['../class_q_cef_context.html',1,'']]], 5 | ['qcefdownloaditem_2',['QCefDownloadItem',['../class_q_cef_download_item.html',1,'']]], 6 | ['qcefevent_3',['QCefEvent',['../class_q_cef_event.html',1,'']]], 7 | ['qcefquery_4',['QCefQuery',['../class_q_cef_query.html',1,'']]], 8 | ['qcefsetting_5',['QCefSetting',['../class_q_cef_setting.html',1,'']]], 9 | ['qcefview_6',['QCefView',['../class_q_cef_view.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | 14 | 18 | 19 | -------------------------------------------------------------------------------- /docs/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cef_5fcommit_5fhash_0',['CEF_COMMIT_HASH',['../_cef_version_8h.html#a3eed202b5601adca42fcb536e7fc8301',1,'CefVersion.h']]], 4 | ['cef_5fcommit_5fnumber_1',['CEF_COMMIT_NUMBER',['../_cef_version_8h.html#a95fd47d721b7760374eeee9089bedd54',1,'CefVersion.h']]], 5 | ['cef_5fversion_2',['CEF_VERSION',['../_cef_version_8h.html#af685e354a4145c66d8020a366872fa31',1,'CefVersion.h']]], 6 | ['cef_5fversion_5fmajor_3',['CEF_VERSION_MAJOR',['../_cef_version_8h.html#a7a9be029daf6e2078b974348dcea2985',1,'CefVersion.h']]], 7 | ['cef_5fversion_5fminor_4',['CEF_VERSION_MINOR',['../_cef_version_8h.html#a67ccdb367f59d0948c8c607b3fa8c1fd',1,'CefVersion.h']]], 8 | ['cef_5fversion_5fpatch_5',['CEF_VERSION_PATCH',['../_cef_version_8h.html#a43e12afa87b9af993b0aa6aba4d4cc80',1,'CefVersion.h']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/defines_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['deprecated_5fcef_5fapi_5fwarning_0',['DEPRECATED_CEF_API_WARNING',['../_q_cef_view__global_8h.html#a342783eb60e0e77913cc501712966dab',1,'QCefView_global.h']]], 4 | ['deprecated_5fsince_5fcef_5fversion_1',['DEPRECATED_SINCE_CEF_VERSION',['../_q_cef_view__global_8h.html#a761b5c2677e327ac6c1c3e8a8b67f067',1,'QCefView_global.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/defines_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['introduced_5fcef_5fapi_5fwarning_0',['INTRODUCED_CEF_API_WARNING',['../_q_cef_view__global_8h.html#af3bf408a6987e48e4ebe84ca2669d6a4',1,'QCefView_global.h']]], 4 | ['introduced_5fsince_5fcef_5fversion_1',['INTRODUCED_SINCE_CEF_VERSION',['../_q_cef_view__global_8h.html#a3dcdd1222917bd78bc60c08d2c041d2b',1,'QCefView_global.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/defines_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qcefbrowserid_0',['QCefBrowserId',['../_q_cef_view_8h.html#aa777d6fc375d0b946818bfb17c3292df',1,'QCefView.h']]], 4 | ['qcefframeid_1',['QCefFrameId',['../_q_cef_view_8h.html#a9f68e892e3db80ea20e887e4ac50de5b',1,'QCefView.h']]], 5 | ['qcefview_5fexport_2',['QCEFVIEW_EXPORT',['../_q_cef_view__global_8h.html#a4489f56825bd83a3b95b3d18fdca331f',1,'QCefView_global.h']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cefwindowopendisposition_0',['CefWindowOpenDisposition',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787',1,'QCefView']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/enums_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['loglevel_0',['LogLevel',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7c',1,'QCefConfig']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/enumvalues_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cefwindowopendispositioncurrenttab_0',['CefWindowOpenDispositionCurrentTab',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a48d5eb6b5d1564c6668f15f1f2a45b24',1,'QCefView']]], 4 | ['cefwindowopendispositionignoreaction_1',['CefWindowOpenDispositionIgnoreAction',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a66fc224542ebf19b10e51aa721b1ef09',1,'QCefView']]], 5 | ['cefwindowopendispositionnewbackgroundtab_2',['CefWindowOpenDispositionNewBackgroundTab',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787ab43a4c561c1e83ac6419cc711220e62c',1,'QCefView']]], 6 | ['cefwindowopendispositionnewforegroundtab_3',['CefWindowOpenDispositionNewForeGroundTab',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a8bd674f0da6b33d87117c7b8bf5153c2',1,'QCefView']]], 7 | ['cefwindowopendispositionnewpopup_4',['CefWindowOpenDispositionNewPopup',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a844b09433f6bcfe05e43fcd8c848a41d',1,'QCefView']]], 8 | ['cefwindowopendispositionnewwindow_5',['CefWindowOpenDispositionNewWindow',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a7b2dddad8191aff9c281badd83b710b1',1,'QCefView']]], 9 | ['cefwindowopendispositionofftherecord_6',['CefWindowOpenDispositionOffTheRecord',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a5e8deb29da2ecf34eaaf23f1ed7201f7',1,'QCefView']]], 10 | ['cefwindowopendispositionsavetodisk_7',['CefWindowOpenDispositionSaveToDisk',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a664b036a79acb7f6c84c2cfdedbd4093',1,'QCefView']]], 11 | ['cefwindowopendispositionsingletontab_8',['CefWindowOpenDispositionSingletonTab',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787a3d46df185e4a92deef33f80cfdae4c5c',1,'QCefView']]], 12 | ['cefwindowopendispositionunknown_9',['CefWindowOpenDispositionUnknown',['../class_q_cef_view.html#a9963d810f8aa71b45b1b10f0abbe8787af5284fd406b0fe65ef1071961543d3a9',1,'QCefView']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/search/enumvalues_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['logseverity_5fdebug_0',['LOGSEVERITY_DEBUG',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7cafb3f2009094b0d1ff363969eb01ee94b',1,'QCefConfig']]], 4 | ['logseverity_5fdefault_1',['LOGSEVERITY_DEFAULT',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7ca01b281485ae3ba1c2c608e92b81f8d60',1,'QCefConfig']]], 5 | ['logseverity_5fdisable_2',['LOGSEVERITY_DISABLE',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7ca7b5b19b0c251025706099ca43e4492a7',1,'QCefConfig']]], 6 | ['logseverity_5ferror_3',['LOGSEVERITY_ERROR',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7ca7480fe3cac801638c8bb04aefb6abb3d',1,'QCefConfig']]], 7 | ['logseverity_5ffatal_4',['LOGSEVERITY_FATAL',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7ca4ac597d5afa3a624c8df22a538e0b11b',1,'QCefConfig']]], 8 | ['logseverity_5finfo_5',['LOGSEVERITY_INFO',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7cae85556e5aa93d733b265d282d43ccdc2',1,'QCefConfig']]], 9 | ['logseverity_5fverbose_6',['LOGSEVERITY_VERBOSE',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7cadbf6a1df0d32aa49fb6b9158983435d3',1,'QCefConfig']]], 10 | ['logseverity_5fwarning_7',['LOGSEVERITY_WARNING',['../class_q_cef_config.html#ae437cd58b60d3902bba07e75a48d9a7ca9074dc5764211db3e4de761451aa8422',1,'QCefConfig']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['00_2dintroduction_2emd_0',['00-Introduction.md',['../00-_introduction_8md.html',1,'']]], 4 | ['01_2dbuildandconfig_2emd_1',['01-BuildAndConfig.md',['../01-_build_and_config_8md.html',1,'']]], 5 | ['02_2dfirstproject_2emd_2',['02-FirstProject.md',['../02-_first_project_8md.html',1,'']]], 6 | ['03_2dresourceloading_2emd_3',['03-ResourceLoading.md',['../03-_resource_loading_8md.html',1,'']]], 7 | ['04_2dinteroperability_2emd_4',['04-Interoperability.md',['../04-_interoperability_8md.html',1,'']]], 8 | ['05_2drendering_2emd_5',['05-Rendering.md',['../05-_rendering_8md.html',1,'']]], 9 | ['06_2dwebapis_2emd_6',['06-WebAPIs.md',['../06-_web_a_p_is_8md.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cefversion_2eh_0',['CefVersion.h',['../_cef_version_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qcefconfig_2eh_0',['QCefConfig.h',['../_q_cef_config_8h.html',1,'']]], 4 | ['qcefcontext_2eh_1',['QCefContext.h',['../_q_cef_context_8h.html',1,'']]], 5 | ['qcefdownloaditem_2eh_2',['QCefDownloadItem.h',['../_q_cef_download_item_8h.html',1,'']]], 6 | ['qcefevent_2eh_3',['QCefEvent.h',['../_q_cef_event_8h.html',1,'']]], 7 | ['qcefquery_2eh_4',['QCefQuery.h',['../_q_cef_query_8h.html',1,'']]], 8 | ['qcefsetting_2eh_5',['QCefSetting.h',['../_q_cef_setting_8h.html',1,'']]], 9 | ['qcefview_2eh_6',['QCefView.h',['../_q_cef_view_8h.html',1,'']]], 10 | ['qcefview_5fglobal_2eh_7',['QCefView_global.h',['../_q_cef_view__global_8h.html',1,'']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['acceptlanguagelist_0',['acceptLanguageList',['../class_q_cef_config.html#a2828af9a2815ddeb1026e2f6a760d5e8',1,'QCefConfig::acceptLanguageList()'],['../class_q_cef_setting.html#aee323c86faebc36358a92c931c500478',1,'QCefSetting::acceptLanguageList()']]], 4 | ['addarchiveresource_1',['addArchiveResource',['../class_q_cef_context.html#aba9c70a84379190d151bdc4b634367e6',1,'QCefContext::addArchiveResource()'],['../class_q_cef_view.html#a503148f8ff5ca5b28d3f0e123bf5bf76',1,'QCefView::addArchiveResource()']]], 5 | ['addcommandlineswitch_2',['addCommandLineSwitch',['../class_q_cef_config.html#a2873f9e8e8997db4060348418df16632',1,'QCefConfig']]], 6 | ['addcommandlineswitchwithvalue_3',['addCommandLineSwitchWithValue',['../class_q_cef_config.html#a141daa8b02526d190e462cbcb38dbab5',1,'QCefConfig']]], 7 | ['addcookie_4',['addCookie',['../class_q_cef_context.html#a6d2e90de7fb5fcf2b7e7a6581d26e62c',1,'QCefContext']]], 8 | ['addcrossoriginwhitelistentry_5',['addCrossOriginWhitelistEntry',['../class_q_cef_context.html#aaba077228a77f5e7d7491eda3ce10267',1,'QCefContext']]], 9 | ['addlocalfolderresource_6',['addLocalFolderResource',['../class_q_cef_context.html#aecc6f7ee9d296bcf8d2ba470e0c0e454',1,'QCefContext::addLocalFolderResource()'],['../class_q_cef_view.html#a8c6286b279094a691832fc89b93c75f1',1,'QCefView::addLocalFolderResource(const QString &path, const QString &url, int priority=0)']]], 10 | ['addresschanged_7',['addressChanged',['../class_q_cef_view.html#a93bf80d520a6d1da560bb1729d4b5152',1,'QCefView']]], 11 | ['allowdrag_8',['allowDrag',['../class_q_cef_view.html#adf944b4ec19dc62e6703b35f62c8cdd5',1,'QCefView']]], 12 | ['arguments_9',['arguments',['../class_q_cef_event.html#a4cf70fa60235d723b9e578cded919327',1,'QCefEvent']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['backgroundcolor_0',['backgroundColor',['../class_q_cef_config.html#aa04db9637f47424834bbcdf05a8b640b',1,'QCefConfig::backgroundColor()'],['../class_q_cef_setting.html#a9db276640c98e1d5d38290e06ae17d1a',1,'QCefSetting::backgroundColor()']]], 4 | ['bridgeobjectname_1',['bridgeObjectName',['../class_q_cef_config.html#aab1ee01c7697e38b94b8edf961da4b35',1,'QCefConfig']]], 5 | ['broadcastevent_2',['broadcastEvent',['../class_q_cef_view.html#ad5455e3a8cb0ffa1f9d7cb98307a6bb4',1,'QCefView']]], 6 | ['browsercangoback_3',['browserCanGoBack',['../class_q_cef_view.html#a01100f7ab97f9f643e4f23af5cea9900',1,'QCefView']]], 7 | ['browsercangoforward_4',['browserCanGoForward',['../class_q_cef_view.html#ae1d6a6d94e02a54654463e5b0c491624',1,'QCefView']]], 8 | ['browsergoback_5',['browserGoBack',['../class_q_cef_view.html#aa82e1ceaa7f543f8d99d7d9cbf714382',1,'QCefView']]], 9 | ['browsergoforward_6',['browserGoForward',['../class_q_cef_view.html#a9ce96fbf25701594b8d65381661141db',1,'QCefView']]], 10 | ['browserid_7',['browserId',['../class_q_cef_view.html#ae4aa1652bf9852ed744dd38487bbb748',1,'QCefView']]], 11 | ['browserisloading_8',['browserIsLoading',['../class_q_cef_view.html#a12ca0bc0f4fc55dfc838769990d6a6d7',1,'QCefView']]], 12 | ['browserreload_9',['browserReload',['../class_q_cef_view.html#a45bc8cd7340ce410cf873d7296ffacf6',1,'QCefView']]], 13 | ['browserstopload_10',['browserStopLoad',['../class_q_cef_view.html#afadd210f3c5cd95598b18aa158a9c16f',1,'QCefView']]], 14 | ['builtinschemename_11',['builtinSchemeName',['../class_q_cef_config.html#a626d58894a334167dfc3fbe4fa055711',1,'QCefConfig']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /docs/search/functions_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tabtolinks_0',['tabToLinks',['../class_q_cef_setting.html#a9b81d1bcf47146dfc5eeeabeb583e627',1,'QCefSetting']]], 4 | ['textarearesize_1',['textAreaResize',['../class_q_cef_setting.html#a8d88588797f311f71c55073f95dafafe',1,'QCefSetting']]], 5 | ['titlechanged_2',['titleChanged',['../class_q_cef_view.html#a48c82c208cab769a1baa7177bc58b030',1,'QCefView']]], 6 | ['totalbytes_3',['totalBytes',['../class_q_cef_download_item.html#ab1ff7414475451351e4d4ab50f723bee',1,'QCefDownloadItem']]], 7 | ['triggerevent_4',['triggerEvent',['../class_q_cef_view.html#ac47c23ffcd94bdffe2b6a81eaae077a2',1,'QCefView::triggerEvent(const QCefEvent &event)'],['../class_q_cef_view.html#ab70a707afda924d6f035b20a1aecc695',1,'QCefView::triggerEvent(const QCefEvent &event, const QString &frameId)']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/functions_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uninit_0',['uninit',['../class_q_cef_context.html#aee74a7460786ddc17f8f9c0f68eaab6b',1,'QCefContext']]], 4 | ['url_1',['url',['../class_q_cef_download_item.html#a253cf33b582e3994b65d5611ef277bbe',1,'QCefDownloadItem']]], 5 | ['useragent_2',['userAgent',['../class_q_cef_config.html#ad95b55d57719d9fc1a3dc5abb5695016',1,'QCefConfig']]], 6 | ['userdatapath_3',['userDataPath',['../class_q_cef_config.html#a317ff9d74e89dac404e20005c33b08e9',1,'QCefConfig']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/functions_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['webgl_0',['webGL',['../class_q_cef_setting.html#aca84c981db4fcc2cf6aa3ece7c44973c',1,'QCefSetting']]], 4 | ['windowinitialsize_1',['windowInitialSize',['../class_q_cef_setting.html#ad3aabefb7879e392952a94464c983978',1,'QCefSetting']]], 5 | ['windowlessframerate_2',['windowlessFrameRate',['../class_q_cef_setting.html#adfc424688213e0e695b6b84681581135',1,'QCefSetting']]], 6 | ['windowlessrenderingenabled_3',['windowlessRenderingEnabled',['../class_q_cef_config.html#a17b6765b357b7a2d69a1f02b27a4eb92',1,'QCefConfig']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/functions_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eqcefconfig_0',['~QCefConfig',['../class_q_cef_config.html#a67d06ef56affa82e943c7a5c73afee9a',1,'QCefConfig']]], 4 | ['_7eqcefcontext_1',['~QCefContext',['../class_q_cef_context.html#a91de7d9c36aafdaca390a355d6da5c6d',1,'QCefContext']]], 5 | ['_7eqcefdownloaditem_2',['~QCefDownloadItem',['../class_q_cef_download_item.html#a913a2654dcd05ef8facefc515d831124',1,'QCefDownloadItem']]], 6 | ['_7eqcefevent_3',['~QCefEvent',['../class_q_cef_event.html#a5c0e38242fa1ba823f1664232966787c',1,'QCefEvent']]], 7 | ['_7eqcefquery_4',['~QCefQuery',['../class_q_cef_query.html#a402d117cbd2d37681394f86d31ed11a3',1,'QCefQuery']]], 8 | ['_7eqcefsetting_5',['~QCefSetting',['../class_q_cef_setting.html#a589b16fe883213d0e330503c0ccab218',1,'QCefSetting']]], 9 | ['_7eqcefview_6',['~QCefView',['../class_q_cef_view.html#a70903dca8ccd3e2776d68742531177fd',1,'QCefView']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/functions_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eqcefconfig_0',['~QCefConfig',['../class_q_cef_config.html#a67d06ef56affa82e943c7a5c73afee9a',1,'QCefConfig']]], 4 | ['_7eqcefcontext_1',['~QCefContext',['../class_q_cef_context.html#a91de7d9c36aafdaca390a355d6da5c6d',1,'QCefContext']]], 5 | ['_7eqcefdownloaditem_2',['~QCefDownloadItem',['../class_q_cef_download_item.html#a913a2654dcd05ef8facefc515d831124',1,'QCefDownloadItem']]], 6 | ['_7eqcefevent_3',['~QCefEvent',['../class_q_cef_event.html#a5c0e38242fa1ba823f1664232966787c',1,'QCefEvent']]], 7 | ['_7eqcefquery_4',['~QCefQuery',['../class_q_cef_query.html#a402d117cbd2d37681394f86d31ed11a3',1,'QCefQuery']]], 8 | ['_7eqcefsetting_5',['~QCefSetting',['../class_q_cef_setting.html#a589b16fe883213d0e330503c0ccab218',1,'QCefSetting']]], 9 | ['_7eqcefview_6',['~QCefView',['../class_q_cef_view.html#a70903dca8ccd3e2776d68742531177fd',1,'QCefView']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cachepath_0',['cachePath',['../class_q_cef_config.html#ab3a95ce139ce862abb4abb300c1cc1e3',1,'QCefConfig']]], 4 | ['cancel_1',['cancel',['../class_q_cef_download_item.html#a723b2081749a447049efd04e768d9e57',1,'QCefDownloadItem']]], 5 | ['cefconfig_2',['cefConfig',['../class_q_cef_context.html#acfd6416ebc0a8df5cf8961dadeff960e',1,'QCefContext']]], 6 | ['cefqueryrequest_3',['cefQueryRequest',['../class_q_cef_view.html#aef058b415485dba45c8dfffdcf956a5f',1,'QCefView']]], 7 | ['cefurlrequest_4',['cefUrlRequest',['../class_q_cef_view.html#add5abd934b15c1b8b3e91703701a8cf4',1,'QCefView']]], 8 | ['clearcrossoriginwhitelistentry_5',['clearCrossOriginWhitelistEntry',['../class_q_cef_context.html#a95d71c83fef34e8218a8ce559f173ab4',1,'QCefContext']]], 9 | ['closedevtools_6',['closeDevTools',['../class_q_cef_view.html#abdf0a68139fe9163ecd9b5a0cdeed6d7',1,'QCefView']]], 10 | ['commandlinepassthroughdisabled_7',['commandLinePassthroughDisabled',['../class_q_cef_config.html#a892715bebd8dc71e5acb0be17bfff43d',1,'QCefConfig']]], 11 | ['consolemessage_8',['consoleMessage',['../class_q_cef_view.html#a2dae6946082712815273c2967d37762a',1,'QCefView']]], 12 | ['contentdisposition_9',['contentDisposition',['../class_q_cef_download_item.html#af97dad25e439c8b997d6689fe1c91bf8',1,'QCefDownloadItem']]], 13 | ['currentspeed_10',['currentSpeed',['../class_q_cef_download_item.html#a5c9648906b02ce59aa6d82f03e468c1d',1,'QCefDownloadItem']]], 14 | ['cursivefontfamily_11',['cursiveFontFamily',['../class_q_cef_setting.html#a86526505941342ffbc96b6e5226ffcbe',1,'QCefSetting']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /docs/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['databases_0',['databases',['../class_q_cef_setting.html#a94b2a957c8754619df7a37258a41c31d',1,'QCefSetting']]], 4 | ['defaultencoding_1',['defaultEncoding',['../class_q_cef_setting.html#a2de89967072377f279b36e821bde18e1',1,'QCefSetting']]], 5 | ['defaultfixedfontsize_2',['defaultFixedFontSize',['../class_q_cef_setting.html#ab25a8bd4b9d5acb865c840b8c4320f5d',1,'QCefSetting']]], 6 | ['defaultfontsize_3',['defaultFontSize',['../class_q_cef_setting.html#a4a38db62a20b2e8e7a26029f0b928689',1,'QCefSetting']]], 7 | ['deleteallcookies_4',['deleteAllCookies',['../class_q_cef_context.html#a794e41a74ddabc503bed5e8c47fe3dd0',1,'QCefContext']]], 8 | ['draggableregionchanged_5',['draggableRegionChanged',['../class_q_cef_view.html#ae11274817f627abf9d407e12dcd5c050',1,'QCefView']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['endtime_0',['endTime',['../class_q_cef_download_item.html#a61b2bd3cdc2f35d2424ded4e8b3801fd',1,'QCefDownloadItem']]], 4 | ['error_1',['error',['../class_q_cef_query.html#ab35201ac89d89f1445538f82a12f8fa8',1,'QCefQuery']]], 5 | ['event_2',['event',['../class_q_cef_view.html#a2c33acd395e7f4adecbef1bf67b7680c',1,'QCefView']]], 6 | ['eventname_3',['eventName',['../class_q_cef_event.html#a5a970c76a348788b15a040c8c405a103',1,'QCefEvent']]], 7 | ['executejavascript_4',['executeJavascript',['../class_q_cef_view.html#aef5bf034432e297e89cfd45aca68f5ff',1,'QCefView']]], 8 | ['executejavascriptwithresult_5',['executeJavascriptWithResult',['../class_q_cef_view.html#ac13fdea19da380026a742a60c51a2356',1,'QCefView']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fantasyfontfamily_0',['fantasyFontFamily',['../class_q_cef_setting.html#a0acd7303ff77ae1eff9fa579fc96e97a',1,'QCefSetting']]], 4 | ['faviconurlchanged_1',['faviconURLChanged',['../class_q_cef_view.html#a7b9e104469c1a4a203c2e1d7e9cfd2a7',1,'QCefView']]], 5 | ['fixedfontfamily_2',['fixedFontFamily',['../class_q_cef_setting.html#a239e1982f4ab4198a62f9c00ae17bcbb',1,'QCefSetting']]], 6 | ['fullpath_3',['fullPath',['../class_q_cef_download_item.html#a40227300f52cd34a67281eacf95bcc28',1,'QCefDownloadItem']]], 7 | ['fullscreenmodechanged_4',['fullscreenModeChanged',['../class_q_cef_view.html#afa0fbb5b4c2c6c3592085e9b94dffc4a',1,'QCefView']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hardwareaccelerationenabled_0',['hardwareAccelerationEnabled',['../class_q_cef_setting.html#a4bdbfb2a4dc08f09b21b75bf0a5fd264',1,'QCefSetting']]], 4 | ['hasdevtools_1',['hasDevTools',['../class_q_cef_view.html#a85fd904cbd3b91a72ce090cffb0119c8',1,'QCefView']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['id_0',['id',['../class_q_cef_download_item.html#aff911ad0aa21867cdfe56457293f4914',1,'QCefDownloadItem::id()'],['../class_q_cef_query.html#a5b701d7f9c92ff814cfe28b110142a4c',1,'QCefQuery::id()']]], 4 | ['imageloading_1',['imageLoading',['../class_q_cef_setting.html#aa06779c82a28a01bd862ac605356be40',1,'QCefSetting']]], 5 | ['imageshrinkstandalonetofit_2',['imageShrinkStandaloneToFit',['../class_q_cef_setting.html#a7374edce9be761b5d40edef80f42f7b9',1,'QCefSetting']]], 6 | ['init_3',['init',['../class_q_cef_context.html#a78836c8d4d2bdf4970a256d8d29c80c6',1,'QCefContext']]], 7 | ['inputmethodquery_4',['inputMethodQuery',['../class_q_cef_view.html#af25a011c126a9bb5dc3df99756a75368',1,'QCefView']]], 8 | ['instance_5',['instance',['../class_q_cef_context.html#a3e6491f837fdd72c7b4fefed5569853b',1,'QCefContext']]], 9 | ['invokemethod_6',['invokeMethod',['../class_q_cef_view.html#a00435b9ab61d04517427dbe4805e970d',1,'QCefView']]], 10 | ['iscanceled_7',['isCanceled',['../class_q_cef_download_item.html#ada41b0480a3e97d788086ea8c420a22c',1,'QCefDownloadItem']]], 11 | ['iscomplete_8',['isComplete',['../class_q_cef_download_item.html#a67c86edf9e9cb742050e2521b55c86df',1,'QCefDownloadItem']]], 12 | ['isinprogress_9',['isInProgress',['../class_q_cef_download_item.html#a22455702c989d4dcc08fb1d13659739d',1,'QCefDownloadItem']]], 13 | ['isstarted_10',['isStarted',['../class_q_cef_download_item.html#a6febee1fe8a5f7d15e888a4352d50526',1,'QCefDownloadItem']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['javascript_0',['javascript',['../class_q_cef_setting.html#abfa7cceca149b6311e7a28e6ae4e2853',1,'QCefSetting']]], 4 | ['javascriptaccessclipboard_1',['javascriptAccessClipboard',['../class_q_cef_setting.html#aff511401ea2d0453583db4b642526dbd',1,'QCefSetting']]], 5 | ['javascriptclosewindows_2',['javascriptCloseWindows',['../class_q_cef_setting.html#a8cab27275ce36cb0b1477a85b6694f3b',1,'QCefSetting']]], 6 | ['javascriptdompaste_3',['javascriptDomPaste',['../class_q_cef_setting.html#a6696cc8fa0b4ea1ef14d71259cd4350d',1,'QCefSetting']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['loadend_0',['loadEnd',['../class_q_cef_view.html#a567e20fd09518ca9c0d2e82f936ff5d6',1,'QCefView']]], 4 | ['loaderror_1',['loadError',['../class_q_cef_view.html#a460c00b974b6368ad8d1a5975d3aaf7d',1,'QCefView']]], 5 | ['loadingprogresschanged_2',['loadingProgressChanged',['../class_q_cef_view.html#ac7377eeed6811bafca1e6887b64d62a5',1,'QCefView']]], 6 | ['loadingstatechanged_3',['loadingStateChanged',['../class_q_cef_view.html#a076678fb5d8deec1600f369d4f1fc95a',1,'QCefView']]], 7 | ['loadstart_4',['loadStart',['../class_q_cef_view.html#a6b04776ad4d7b62c102e9c38ac022b40',1,'QCefView']]], 8 | ['locale_5',['locale',['../class_q_cef_config.html#ac1d5ca26f596c9f3e7697da04e549414',1,'QCefConfig']]], 9 | ['localstorage_6',['localStorage',['../class_q_cef_setting.html#a4fffdf46c7617f7b116e2e836dbb48d0',1,'QCefSetting']]], 10 | ['loglevel_7',['logLevel',['../class_q_cef_config.html#a8728d026571a97449e13e8502c34e5e5',1,'QCefConfig']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['markasreplied_0',['markAsReplied',['../class_q_cef_query.html#af1e8c950b361ad9ca4d4e260626c5d14',1,'QCefQuery']]], 4 | ['mimetype_1',['mimeType',['../class_q_cef_download_item.html#afb8ec36477b64a222b0610c8518f8e31',1,'QCefDownloadItem']]], 5 | ['minimumfontsize_2',['minimumFontSize',['../class_q_cef_setting.html#a3b263c84f28ef76fc1dc4cd4dfad8e5d',1,'QCefSetting']]], 6 | ['minimumlogicalfontsize_3',['minimumLogicalFontSize',['../class_q_cef_setting.html#a3f0801d8ecbc7fe86df805dc6db3aad9',1,'QCefSetting']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['nativebrowsercreated_0',['nativeBrowserCreated',['../class_q_cef_view.html#a543b0eca797c5161d6325665d5ddd576',1,'QCefView']]], 4 | ['navigatetostring_1',['navigateToString',['../class_q_cef_view.html#ac3b8ec3b088422a67f93fc580047a1a0',1,'QCefView']]], 5 | ['navigatetourl_2',['navigateToUrl',['../class_q_cef_view.html#a4bf036d5a7d128d4c1487afaa0393d5b',1,'QCefView']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['onnewbrowser_0',['onNewBrowser',['../class_q_cef_view.html#a49c99555c9c604dc2e310c3df02bf385',1,'QCefView']]], 4 | ['onnewdownloaditem_1',['onNewDownloadItem',['../class_q_cef_view.html#a666e93d6e9f9be7444f9b898f77c8292',1,'QCefView']]], 5 | ['onnewpopup_2',['onNewPopup',['../class_q_cef_view.html#aadb6d47674e2ad414eb20a066b7e0738',1,'QCefView']]], 6 | ['onrequestclosefromweb_3',['onRequestCloseFromWeb',['../class_q_cef_view.html#ad23057b6187876c84f883b1e7120456d',1,'QCefView']]], 7 | ['onupdatedownloaditem_4',['onUpdateDownloadItem',['../class_q_cef_view.html#a9833a1db8ef5864489f9462ef397cbb8',1,'QCefView']]], 8 | ['operator_3d_5',['operator=',['../class_q_cef_config.html#a2f78eccb1b7463db2c0b174aff5d0553',1,'QCefConfig::operator=()'],['../class_q_cef_event.html#a95e2f8c582270de0f9501945a6e063ee',1,'QCefEvent::operator=()'],['../class_q_cef_setting.html#a486f0c9edda93fb30c75608ac9b98ba2',1,'QCefSetting::operator=()']]], 9 | ['originalurl_6',['originalUrl',['../class_q_cef_download_item.html#a9f9bcb65952b50b4f24c4d55eff9b64e',1,'QCefDownloadItem']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/functions_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['paintengine_0',['paintEngine',['../class_q_cef_view.html#ad88e5a99ad808b7a911b58ba9ed9b838',1,'QCefView']]], 4 | ['pause_1',['pause',['../class_q_cef_download_item.html#aaa31f59599e9311f0aee99a0a13e2568',1,'QCefDownloadItem']]], 5 | ['percentcomplete_2',['percentComplete',['../class_q_cef_download_item.html#a18fafe4f375aa60e43ec7c5d855ab91e',1,'QCefDownloadItem']]], 6 | ['persistsessioncookies_3',['persistSessionCookies',['../class_q_cef_config.html#aa8b22bc6b4d9ef5c8aeccfc363ee1f9c',1,'QCefConfig']]], 7 | ['persistuserpreferences_4',['persistUserPreferences',['../class_q_cef_config.html#a4749b6aa16660a15d753f5248985e25f',1,'QCefConfig']]], 8 | ['plugins_5',['plugins',['../class_q_cef_setting.html#a99c3a6c649171d42402af815f6628f03',1,'QCefSetting']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/search/functions_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['q_5fdeclare_5fmetatype_0',['Q_DECLARE_METATYPE',['../_q_cef_config_8h.html#a9c4f9b520ed6a74eb2f7c521c08471c6',1,'Q_DECLARE_METATYPE(QCefConfig): QCefConfig.h'],['../_q_cef_event_8h.html#ad2abcec84743c92df60fa3b333b3d2b5',1,'Q_DECLARE_METATYPE(QCefEvent): QCefEvent.h'],['../_q_cef_query_8h.html#a83540a9479efcf57275cd6d2e99cb415',1,'Q_DECLARE_METATYPE(QCefQuery): QCefQuery.h'],['../_q_cef_setting_8h.html#a08f5f6912484f50f55dae4c9dedbd2a4',1,'Q_DECLARE_METATYPE(QCefSetting): QCefSetting.h']]], 4 | ['qcefconfig_1',['QCefConfig',['../class_q_cef_config.html#a2a937276cdbf76f77d2bf70a766c6412',1,'QCefConfig::QCefConfig()'],['../class_q_cef_config.html#af90f0b9e087d39a6bd059701ee450516',1,'QCefConfig::QCefConfig(const QCefConfig &other)']]], 5 | ['qcefcontext_2',['QCefContext',['../class_q_cef_context.html#aa2b8af8d2d806ba8b5110e868d314c8c',1,'QCefContext']]], 6 | ['qcefevent_3',['QCefEvent',['../class_q_cef_event.html#ab444dcc856db38dcc679db326ef22bf5',1,'QCefEvent::QCefEvent()'],['../class_q_cef_event.html#a2b2b8bacbfebefe302cd1fab91cd5e8c',1,'QCefEvent::QCefEvent(const QString &name)'],['../class_q_cef_event.html#a357d5cb242977682523e69d501c673d4',1,'QCefEvent::QCefEvent(const QCefEvent &other)']]], 7 | ['qcefquery_4',['QCefQuery',['../class_q_cef_query.html#a2d63bf6b4584e80edbfe4e00fdc8790e',1,'QCefQuery::QCefQuery(QCefViewPrivate *source, const QString &req, const int64_t query)'],['../class_q_cef_query.html#a22d9fddcadce7a6e0259c691634c4d7a',1,'QCefQuery::QCefQuery()']]], 8 | ['qcefsetting_5',['QCefSetting',['../class_q_cef_setting.html#afb8450a162ed9ce3f59a37491147db8d',1,'QCefSetting::QCefSetting()'],['../class_q_cef_setting.html#af650fcab674f8c33a996a2d8cd34eaef',1,'QCefSetting::QCefSetting(const QCefSetting &other)']]], 9 | ['qcefview_6',['QCefView',['../class_q_cef_view.html#a203cdf24f64a5582f7c79e2401e9d8ca',1,'QCefView::QCefView(const QString &url, const QCefSetting *setting, QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())'],['../class_q_cef_view.html#a84f33f3697e39588e9b76d2cd4847892',1,'QCefView::QCefView(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/functions_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['receivedbytes_0',['receivedBytes',['../class_q_cef_download_item.html#a5d76f04bb41c5e4edad6d680b01fe63f',1,'QCefDownloadItem']]], 4 | ['remotedebuggingport_1',['remoteDebuggingPort',['../class_q_cef_config.html#aeaa7b37b83ee32a5ec50a1dec11d0c2e',1,'QCefConfig']]], 5 | ['remotefonts_2',['remoteFonts',['../class_q_cef_setting.html#a6b503e82defe4c57a88936fb2cec2509',1,'QCefSetting']]], 6 | ['removecrossoriginwhitelistentry_3',['removeCrossOriginWhitelistEntry',['../class_q_cef_context.html#af04aefeea503031f5a8fbdabf05bc5e8',1,'QCefContext']]], 7 | ['reply_4',['reply',['../class_q_cef_query.html#a9b7df2f2ffaf42431392fcb0a89042be',1,'QCefQuery']]], 8 | ['reportjavascriptresult_5',['reportJavascriptResult',['../class_q_cef_view.html#a9b69938aa6f8352799bee6084bab03e4',1,'QCefView']]], 9 | ['request_6',['request',['../class_q_cef_query.html#a16d137bcc1bf2ef9bc8969ff1bd091e7',1,'QCefQuery']]], 10 | ['response_7',['response',['../class_q_cef_query.html#a663d5945146bebe69a0a3c5448bb9280',1,'QCefQuery']]], 11 | ['responseqcefquery_8',['responseQCefQuery',['../class_q_cef_view.html#afc838dab54d2b083b05f0d98349b50cc',1,'QCefView']]], 12 | ['result_9',['result',['../class_q_cef_query.html#a8c2d78e19628d8066570338d659bc9b2',1,'QCefQuery']]], 13 | ['resume_10',['resume',['../class_q_cef_download_item.html#aa2afc687e69c7c78f6c49e9a41a34823',1,'QCefDownloadItem']]], 14 | ['rootcachepath_11',['rootCachePath',['../class_q_cef_config.html#a5bc459471e82e88326c17220a0e05310',1,'QCefConfig']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /docs/search/mag.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | 14 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /docs/search/mag_d.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | 14 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /docs/search/mag_sel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 15 | 21 | 26 | 31 | 32 | -------------------------------------------------------------------------------- /docs/search/mag_seld.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 15 | 21 | 26 | 31 | 32 | -------------------------------------------------------------------------------- /docs/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['and_20config_0',['Build and Config',['../md_docs_201-_build_and_config.html',1,'']]], 4 | ['apis_1',['Web APIs',['../md_docs_206-_web_a_p_is.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/pages_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build_20and_20config_0',['Build and Config',['../md_docs_201-_build_and_config.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/pages_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['config_0',['Build and Config',['../md_docs_201-_build_and_config.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/pages_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['deprecated_20list_0',['Deprecated List',['../deprecated.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/pages_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['first_20project_0',['First Project',['../md_docs_202-_first_project.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/pages_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['interoperability_0',['Interoperability',['../md_docs_204-_interoperability.html',1,'']]], 4 | ['introduction_1',['Introduction',['../index.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/pages_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['list_0',['Deprecated List',['../deprecated.html',1,'']]], 4 | ['loading_1',['Resource Loading',['../md_docs_203-_resource_loading.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/pages_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['project_0',['First Project',['../md_docs_202-_first_project.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/pages_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rendering_0',['Rendering',['../md_docs_205-_rendering.html',1,'']]], 4 | ['resource_20loading_1',['Resource Loading',['../md_docs_203-_resource_loading.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/pages_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['web_20apis_0',['Web APIs',['../md_docs_206-_web_a_p_is.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "01234abcdefghijlmnopqrstuw~", 4 | 1: "q", 5 | 2: "0cq", 6 | 3: "abcdefhijlmnopqrstuw~", 7 | 4: "am", 8 | 5: "cl", 9 | 6: "cl", 10 | 7: "cdiq", 11 | 8: "abcdfilprw" 12 | }; 13 | 14 | var indexSectionNames = 15 | { 16 | 0: "all", 17 | 1: "classes", 18 | 2: "files", 19 | 3: "functions", 20 | 4: "variables", 21 | 5: "enums", 22 | 6: "enumvalues", 23 | 7: "defines", 24 | 8: "pages" 25 | }; 26 | 27 | var indexSectionLabels = 28 | { 29 | 0: "All", 30 | 1: "Classes", 31 | 2: "Files", 32 | 3: "Functions", 33 | 4: "Variables", 34 | 5: "Enumerations", 35 | 6: "Enumerator", 36 | 7: "Macros", 37 | 8: "Pages" 38 | }; 39 | 40 | -------------------------------------------------------------------------------- /docs/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['allframeid_0',['AllFrameID',['../class_q_cef_view.html#aa0b341726ea511a8a4c0bf6b603da5f7',1,'QCefView']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mainframeid_0',['MainFrameID',['../class_q_cef_view.html#aecdaec6088be4f77a505e0fae0765625',1,'QCefView']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/splitbar.png -------------------------------------------------------------------------------- /docs/splitbard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/splitbard.png -------------------------------------------------------------------------------- /docs/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/sync_off.png -------------------------------------------------------------------------------- /docs/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/sync_on.png -------------------------------------------------------------------------------- /docs/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_a.png -------------------------------------------------------------------------------- /docs/tab_ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_ad.png -------------------------------------------------------------------------------- /docs/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_b.png -------------------------------------------------------------------------------- /docs/tab_bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_bd.png -------------------------------------------------------------------------------- /docs/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_h.png -------------------------------------------------------------------------------- /docs/tab_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_hd.png -------------------------------------------------------------------------------- /docs/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_s.png -------------------------------------------------------------------------------- /docs/tab_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/tab_sd.png -------------------------------------------------------------------------------- /docs/toggle-alternative-theme.js: -------------------------------------------------------------------------------- 1 | 2 | let original_theme_active = true; 3 | 4 | function toggle_alternative_theme() { 5 | if(original_theme_active) { 6 | document.documentElement.classList.add("alternative") 7 | original_theme_active = false; 8 | } else { 9 | document.documentElement.classList.remove("alternative") 10 | original_theme_active = true; 11 | } 12 | } -------------------------------------------------------------------------------- /docs/windows-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/docs/windows-demo.png -------------------------------------------------------------------------------- /example/QCefViewTest/CefViewWidget.h: -------------------------------------------------------------------------------- 1 | #ifndef CUSTOMCEFVIEW_H 2 | #define CUSTOMCEFVIEW_H 3 | 4 | #include 5 | 6 | #include 7 | 8 | /// 9 | /// Represents the customized QCefView 10 | /// 11 | class CefViewWidget : public QCefView 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | CefViewWidget(const QString url, const QCefSetting* setting, QWidget* parent = 0); 17 | 18 | ~CefViewWidget(); 19 | 20 | protected slots: 21 | void onScreenChanged(QScreen* screen); 22 | 23 | void onNativeBrowserWindowCreated(QWindow* window); 24 | 25 | void onDraggableRegionChanged(const QRegion& draggableRegion, const QRegion& nonDraggableRegion); 26 | 27 | protected: 28 | bool onNewPopup(const QCefFrameId& sourceFrameId, 29 | const QString& targetUrl, 30 | QString& targetFrameName, 31 | QCefView::CefWindowOpenDisposition targetDisposition, 32 | QRect& rect, 33 | QCefSetting& settings, 34 | bool& disableJavascriptAccess) override; 35 | 36 | void onNewDownloadItem(const QSharedPointer& item, const QString& suggestedName) override; 37 | 38 | void onUpdateDownloadItem(const QSharedPointer& item) override; 39 | 40 | protected: 41 | void resizeEvent(QResizeEvent* event) override; 42 | 43 | void mousePressEvent(QMouseEvent* event) override; 44 | 45 | private: 46 | void updateMask(); 47 | 48 | private: 49 | QWindow* m_pCefWindow = nullptr; 50 | 51 | int m_iCornerRadius = 50; 52 | 53 | QRegion m_draggableRegion; 54 | 55 | QRegion m_nonDraggableRegion; 56 | }; 57 | 58 | #endif // CUSTOMCEFVIEW_H 59 | -------------------------------------------------------------------------------- /example/QCefViewTest/DownloadManager.cpp: -------------------------------------------------------------------------------- 1 | #include "DownloadManager.h" 2 | 3 | #include 4 | 5 | DownloadManager& 6 | DownloadManager::getInstance() 7 | { 8 | static DownloadManager s_instance; 9 | return s_instance; 10 | } 11 | 12 | void 13 | DownloadManager::AddNewDownloadItem(const QSharedPointer& item) 14 | { 15 | qDebug() << "DownloadManager::AddNewDownloadItem:" 16 | << " id: " << item->id() << "\n" 17 | << " name: " << item->suggestedFileName() << "\n" 18 | << " path: " << item->fullPath() << "\n" 19 | << " percent: " << item->percentComplete() << "%, " << item->totalBytes() << "/" << item->receivedBytes() 20 | << "\n" 21 | << " canceled: " << item->isCanceled() << "\n" 22 | << " complete: " << item->isComplete(); 23 | 24 | m_mapDownloadingItem[item->id()] = item; 25 | item->start("", true); 26 | } 27 | 28 | void 29 | DownloadManager::UpdateDownloadItem(const QSharedPointer& item) 30 | { 31 | qDebug() << "DownloadManager::UpdateDownloadItem:" 32 | << " id: " << item->id() << "\n" 33 | << " name: " << item->suggestedFileName() << "\n" 34 | << " path: " << item->fullPath() << "\n" 35 | << " percent: " << item->percentComplete() << "%, " << item->totalBytes() << "/" << item->receivedBytes() 36 | << "\n" 37 | << " canceled: " << item->isCanceled() << "\n" 38 | << " complete: " << item->isComplete(); 39 | 40 | if (item->isCanceled() || item->isComplete()) 41 | m_mapDownloadingItem.remove(item->id()); 42 | } 43 | 44 | DownloadManager::DownloadManager() {} 45 | 46 | DownloadManager::~DownloadManager() 47 | { 48 | for (auto& item : m_mapDownloadingItem) { 49 | item->cancel(); 50 | } 51 | m_mapDownloadingItem.clear(); 52 | } 53 | -------------------------------------------------------------------------------- /example/QCefViewTest/DownloadManager.h: -------------------------------------------------------------------------------- 1 | #ifndef DOWNLOADMANAGER_H 2 | #define DOWNLOADMANAGER_H 3 | #pragma once 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | class DownloadManager 11 | { 12 | public: 13 | static DownloadManager& getInstance(); 14 | 15 | void AddNewDownloadItem(const QSharedPointer& item); 16 | 17 | void UpdateDownloadItem(const QSharedPointer& item); 18 | 19 | private: 20 | DownloadManager(); 21 | ~DownloadManager(); 22 | 23 | QMap> m_mapDownloadingItem; 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /example/QCefViewTest/MainWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef QCEFVIEWTEST_H 2 | #define QCEFVIEWTEST_H 3 | 4 | #include 5 | #include 6 | 7 | #include "ui_MainWindow.h" 8 | 9 | #include "CefViewWidget.h" 10 | 11 | class MainWindow : public QMainWindow 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | MainWindow(QWidget* parent = 0); 17 | ~MainWindow(); 18 | 19 | protected: 20 | void createLeftCefView(); 21 | void createRightCefView(); 22 | void setupWindow(); 23 | 24 | // QCefView slots 25 | protected slots: 26 | 27 | void onInvokeMethod(const QCefBrowserId& browserId, 28 | const QCefFrameId& frameId, 29 | const QString& method, 30 | const QVariantList& arguments); 31 | 32 | void onQCefUrlRequest(const QCefBrowserId& browserId, const QCefFrameId& frameId, const QString& url); 33 | 34 | void onQCefQueryRequest(const QCefBrowserId& browserId, const QCefFrameId& frameId, const QCefQuery& query); 35 | 36 | void onJavascriptResult(const QCefBrowserId& browserId, 37 | const QCefFrameId& frameId, 38 | const QString& context, 39 | const QVariant& result); 40 | 41 | void onLoadingStateChanged(const QCefBrowserId& browserId, bool isLoading, bool canGoBack, bool canGoForward); 42 | 43 | void onLoadStart(const QCefBrowserId& browserId, const QCefFrameId& frameId, bool isMainFrame, int transitionType); 44 | 45 | void onLoadEnd(const QCefBrowserId& browserId, const QCefFrameId& frameId, bool isMainFrame, int httpStatusCode); 46 | 47 | void onLoadError(const QCefBrowserId& browserId, 48 | const QCefFrameId& frameId, 49 | bool isMainFrame, 50 | int errorCode, 51 | const QString& errorMsg, 52 | const QString& failedUrl); 53 | 54 | // ui slots 55 | protected slots: 56 | void onBtnShowDevToolsClicked(); 57 | 58 | void onBtnReloadRightViewClicked(); 59 | 60 | void onBtnRecreateRightViewClicked(); 61 | 62 | void onBtnChangeColorClicked(); 63 | 64 | void onBtnSetFocusClicked(); 65 | 66 | void onBtnCallJSCodeClicked(); 67 | 68 | void onBtnNewBrowserClicked(); 69 | 70 | private: 71 | Ui::MainWindow m_ui; 72 | 73 | QCefView* m_pLeftCefViewWidget = nullptr; 74 | QCefView* m_pRightCefViewWidget = nullptr; 75 | }; 76 | 77 | #endif // QCEFVIEWTEST_H 78 | -------------------------------------------------------------------------------- /example/QCefViewTest/QCefViewTest.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | QCefViewTest Applicatoin 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /example/QCefViewTest/mac/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2022 QCefView. All rights reserved. 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | DemoApplication 31 | NSSupportsAutomaticTermination 32 | 33 | NSSupportsSuddenTermination 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /example/QCefViewTest/mac/MainWindow_mac.mm: -------------------------------------------------------------------------------- 1 | #include "MainWindow.h" 2 | #include 3 | 4 | void 5 | MainWindow::setupWindow() { 6 | // [NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]]; 7 | 8 | // id hwnd = (id)this->winId(); 9 | // NSWindow* window = [hwnd window]; 10 | // window.titlebarAppearsTransparent = true; 11 | // [window setTitle: @""]; 12 | // window.movableByWindowBackground = true; 13 | // window.styleMask |= NSWindowStyleMaskFullSizeContentView; 14 | } 15 | -------------------------------------------------------------------------------- /example/QCefViewTest/qcefviewtest.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /example/QCefViewTest/websrc/right.in.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Web Area

5 |
6 | 7 |
  • QCefView Site
  • 8 | 9 |
  • Google
  • 10 | 11 |
  • MDN Dev
  • 12 | 13 |
  • Download Files
  • 14 | 15 |
  • Test UFO
  • 16 | 17 |
  • Device Test
  • 18 |
    19 | 20 | 21 | -------------------------------------------------------------------------------- /generate-linux-x86.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BUILD_PROJECT=0 4 | 5 | BUILD_DIR="$(pwd)/.build/linux.x86" 6 | 7 | while getopts bi flag 8 | do 9 | case "${flag}" in 10 | b) BUILD_PROJECT=1;; 11 | esac 12 | done 13 | 14 | echo ============== Config project ============== 15 | cmake -G "Unix Makefiles" -S . -B "${BUILD_DIR}" -DCMAKE_BUILD_TYPE=Release -DPROJECT_ARCH=x86 -DBUILD_DEMO=ON -DUSE_SANDBOX=ON -DCMAKE_INSTALL_PREFIX:PATH="$(pwd)/out/linux.x86" $* 16 | 17 | if [ ${BUILD_PROJECT} -eq 1 ] 18 | then 19 | echo ============== Build project ============== 20 | cmake --build "${BUILD_DIR}" 21 | fi -------------------------------------------------------------------------------- /generate-linux-x86_64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BUILD_PROJECT=0 4 | 5 | BUILD_DIR="$(pwd)/.build/linux.x86_64" 6 | 7 | while getopts bi flag 8 | do 9 | case "${flag}" in 10 | b) BUILD_PROJECT=1;; 11 | esac 12 | done 13 | 14 | echo ============== Config project ============== 15 | cmake -G "Unix Makefiles" -S . -B "${BUILD_DIR}" -DCMAKE_BUILD_TYPE=Release -DPROJECT_ARCH=x86_64 -DBUILD_DEMO=ON -DUSE_SANDBOX=ON -DCMAKE_INSTALL_PREFIX:PATH="$(pwd)/out/linux.x86_64" $* 16 | 17 | if [ ${BUILD_PROJECT} -eq 1 ] 18 | then 19 | echo ============== Build project ============== 20 | cmake --build "${BUILD_DIR}" 21 | fi -------------------------------------------------------------------------------- /generate-mac-arm64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BUILD_PROJECT=0 4 | 5 | BUILD_DIR="$(pwd)/.build/macos.arm64" 6 | 7 | while getopts bi flag 8 | do 9 | case "${flag}" in 10 | b) BUILD_PROJECT=1;; 11 | esac 12 | done 13 | 14 | echo ============== Config project ============== 15 | cmake -G "Xcode" -S . -B "${BUILD_DIR}" -DPROJECT_ARCH=arm64 -DBUILD_DEMO=ON -DUSE_SANDBOX=ON -DCMAKE_INSTALL_PREFIX:PATH="$(pwd)/out/macos.arm64" $* 16 | 17 | if [ ${BUILD_PROJECT} -eq 1 ] 18 | then 19 | echo ============== Build project ============== 20 | cmake --build "${BUILD_DIR}" 21 | fi -------------------------------------------------------------------------------- /generate-mac-x86_64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BUILD_PROJECT=0 4 | 5 | BUILD_DIR="$(pwd)/.build/macos.x86_64" 6 | 7 | while getopts bi flag 8 | do 9 | case "${flag}" in 10 | b) BUILD_PROJECT=1;; 11 | esac 12 | done 13 | 14 | echo ============== Config project ============== 15 | cmake -G "Xcode" -S . -B "${BUILD_DIR}" -DPROJECT_ARCH=x86_64 -DBUILD_DEMO=ON -DUSE_SANDBOX=ON -DCMAKE_INSTALL_PREFIX:PATH="$(pwd)/out/macos.x86_64" $* 16 | 17 | if [ ${BUILD_PROJECT} -eq 1 ] 18 | then 19 | echo ============== Build project ============== 20 | cmake --build "${BUILD_DIR}" 21 | fi -------------------------------------------------------------------------------- /generate-win-arm64.bat: -------------------------------------------------------------------------------- 1 | cmake -S . ^ 2 | -B .build/windows.arm64 ^ 3 | -A ARM64 ^ 4 | -DPROJECT_ARCH=arm64 ^ 5 | -DBUILD_DEMO=ON ^ 6 | -DCMAKE_INSTALL_PREFIX:PATH="%cd%/out/windows.arm64" ^ 7 | %* -------------------------------------------------------------------------------- /generate-win-x86.bat: -------------------------------------------------------------------------------- 1 | cmake -S . ^ 2 | -B .build/windows.x86 ^ 3 | -A Win32 ^ 4 | -DPROJECT_ARCH=x86 ^ 5 | -DBUILD_DEMO=ON ^ 6 | -DCMAKE_INSTALL_PREFIX:PATH="%cd%/out/windows.x86" ^ 7 | %* -------------------------------------------------------------------------------- /generate-win-x86_64.bat: -------------------------------------------------------------------------------- 1 | cmake -S . ^ 2 | -B .build/windows.x86_64 ^ 3 | -A x64 ^ 4 | -DPROJECT_ARCH=x86_64 ^ 5 | -DBUILD_DEMO=ON ^ 6 | -DCMAKE_INSTALL_PREFIX:PATH="%cd%/out/windows.x86_64" ^ 7 | %* -------------------------------------------------------------------------------- /include/CefVersion.h: -------------------------------------------------------------------------------- 1 | // 2 | // CefVersion.h 3 | // CefViewCore 4 | // 5 | // Created by Sheen Tian on 2025/1/19. 6 | // This file was generated during CMake configuring. 7 | // Do not edit this file directly by manual. 8 | // Edit the CefVersion.h.in and then re-config project with CMake. 9 | // 10 | 11 | #ifndef CefVersion_h 12 | #define CefVersion_h 13 | #pragma once 14 | 15 | // clang-format off 16 | #define CEF_VERSION "126.2.18+g3647d39+chromium-126.0.6478.183" 17 | #define CEF_VERSION_MAJOR 126 18 | #define CEF_VERSION_MINOR 2 19 | #define CEF_VERSION_PATCH 18 20 | #define CEF_COMMIT_NUMBER 3019 21 | #define CEF_COMMIT_HASH "3647d39e700c215bd78172c5964eb1c550950f0f" 22 | // clang-format on 23 | 24 | #endif // CefVersion 25 | -------------------------------------------------------------------------------- /include/QCefEvent.h: -------------------------------------------------------------------------------- 1 | /* 2 | * File: QCefEvent.h 3 | * Project: QCefView 4 | * Created: 29th March 2016 5 | * Author: Sheen 6 | * Source: https://github.com/cefview/qcefview 7 | * Docs: https://cefview.github.io/QCefView/ 8 | */ 9 | #ifndef QCEFEVENT_H 10 | #define QCEFEVENT_H 11 | #pragma once 12 | #include 13 | 14 | #pragma region qt_headers 15 | #include 16 | #include 17 | #include 18 | #pragma endregion 19 | 20 | class QCefEventPrivate; 21 | 22 | /// 23 | /// Represents the event sent from native context(C/C++ code) to the web context(javascript) 24 | /// 25 | class QCEFVIEW_EXPORT QCefEvent 26 | { 27 | Q_DECLARE_PRIVATE(QCefEvent) 28 | QScopedPointer d_ptr; 29 | 30 | friend class QCefView; 31 | 32 | public: 33 | /// 34 | /// Constructs an event instance 35 | /// 36 | QCefEvent(); 37 | 38 | /// 39 | /// Constructs an event instance with name 40 | /// 41 | /// The event name 42 | QCefEvent(const QString& name); 43 | 44 | /// 45 | /// Constructs an event instance from existing one 46 | /// 47 | /// The other event instance 48 | QCefEvent(const QCefEvent& other); 49 | 50 | /// 51 | /// Assigns an existing event instance to current 52 | /// 53 | /// The other event instance 54 | QCefEvent& operator=(const QCefEvent& other); 55 | 56 | /// 57 | /// Destructs the event instance 58 | /// 59 | ~QCefEvent(); 60 | 61 | /// 62 | /// Sets the event name 63 | /// 64 | /// The name to be set 65 | void setEventName(const QString& name); 66 | 67 | /// 68 | /// Gets the event name 69 | /// 70 | /// The event name 71 | const QString eventName() const; 72 | 73 | /// 74 | /// Sets the argument list 75 | /// 76 | /// The argument list 77 | void setArguments(const QVariantList& args); 78 | 79 | /// 80 | /// Gets the argument list 81 | /// 82 | /// The argument list 83 | QVariantList& arguments(); 84 | }; 85 | 86 | Q_DECLARE_METATYPE(QCefEvent); 87 | 88 | #endif // QCEFEVENT_H 89 | -------------------------------------------------------------------------------- /include/QCefView_global.h: -------------------------------------------------------------------------------- 1 | /* 2 | * File: QCefView_global.h 3 | * Project: QCefView 4 | * Created: 29th March 2016 5 | * Author: Sheen 6 | * Source: https://github.com/cefview/qcefview 7 | * Docs: https://cefview.github.io/QCefView/ 8 | */ 9 | #ifndef QCEFEVIEW_GLOBAL_H 10 | #define QCEFEVIEW_GLOBAL_H 11 | #pragma once 12 | 13 | // clang-format off 14 | #pragma region qt_headers 15 | #include 16 | #include 17 | #pragma endregion 18 | 19 | #ifdef QCEFVIEW_STATIC 20 | // Static library, no need export 21 | #define QCEFVIEW_EXPORT 22 | #else 23 | // Dynamic library 24 | #ifdef QCEFVIEW_LIB 25 | // Build QCefView project, export API 26 | #define QCEFVIEW_EXPORT Q_DECL_EXPORT 27 | #else 28 | // Referenced by other project, import API 29 | #define QCEFVIEW_EXPORT Q_DECL_IMPORT 30 | #if _WIN32 31 | #pragma comment(lib, "QCefView.lib") 32 | #endif 33 | #endif 34 | #endif 35 | 36 | // CEF version numbers 37 | #include 38 | 39 | #define DEPRECATED_SINCE_CEF_VERSION(major, minor, patch) /* @deprecated Since CEF major . minor . patch */ 40 | 41 | #define DEPRECATED_CEF_API_WARNING(major, minor, patch) \ 42 | qWarning() << __FUNCTION__ << " was deprecated since CEF version:" \ 43 | << major << "." << minor << "." << patch << ". " \ 44 | << "Current CEF version: " \ 45 | << CEF_VERSION_MAJOR << "." << CEF_VERSION_MINOR << "." << CEF_VERSION_PATCH << "."; 46 | 47 | 48 | #define INTRODUCED_SINCE_CEF_VERSION(major, minor, patch) 49 | 50 | #define INTRODUCED_CEF_API_WARNING(major, minor, patch) \ 51 | qWarning() << __FUNCTION__ << " was introduced since CEF version:" \ 52 | << major << "." << minor << "." << patch << ". " \ 53 | << "Current CEF version: " \ 54 | << CEF_VERSION_MAJOR << "." << CEF_VERSION_MINOR << "." << CEF_VERSION_PATCH << "."; 55 | 56 | // clang-format on 57 | 58 | #endif // QCEFEVIEW_GLOBAL_H 59 | -------------------------------------------------------------------------------- /scripts/doxygen/docs/06-WebAPIs.md: -------------------------------------------------------------------------------- 1 | # Web APIs 2 | [TOC] 3 | 4 | QCefView inserts JavaScript bridge object and methods to `window` object for all browsers frames, with these bridge object you can perform communication between native and web context at anytime 5 | 6 | ## window.CefViewClient {#CefViewClient} 7 | This is main bridge object injected to all browser and frames by QCefView. And the object name can be specified by `QCefConfig::setBridgeObjectName`. 8 | 9 | ### addEventListener(name, listener) {#CefViewClient_addEventListener} 10 | Adds a listener for the event with specified name 11 | 12 | #### Parameters 13 | * `name` The event name 14 | * `listener` The listener callback function 15 | 16 | ### removeEventListener(name, listener) {#CefViewClient_removeEventListener} 17 | Removes the listener for the event with specified name 18 | 19 | #### Parameters 20 | * `name` The event name 21 | * `listener` The listener callback function 22 | 23 | ### invoke(name, ...args) {#CefViewClient_invoke} 24 | Invokes a native method with the specified name and arguments 25 | > [!caution] 26 | > The legacy `invokeMethod(name, ...args)` was deprecated by new method: `invoke(name, ...args)`.(renamed) 27 | 28 | #### Parameters 29 | * `name` The method name 30 | * `..args` The arguments for the method 31 | 32 | 33 | ## window.cefViewQuery {#cefViewQuery} 34 | Sends a cef query request to the native context 35 | > [!caution] 36 | > The legacy `window.CefViewQuery` was deprecated by new method: `window.cefViewQuery`. (uncapitalized) 37 | 38 | ### Parameters 39 | * `query` The query object 40 | 41 | 42 | #### Returns 43 | * The query id 44 | 45 | ## window.cefViewQueryCancel {#cefViewQueryCancel} 46 | Cancels the query request with the specified id 47 | > [!caution] 48 | > The legacy `window.CefViewQueryCancel` was deprecated by new method: `window.cefViewQueryCancel`. (uncapitalized) 49 | 50 | #### Parameters 51 | * `id` The query id 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/QCefViewTest-Windows-Hardware-Rendering-FPS1000-Limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/QCefViewTest-Windows-Hardware-Rendering-FPS1000-Limit.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/QCefViewTest-Windows-Software-Rendering-FPS1000-Limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/QCefViewTest-Windows-Software-Rendering-FPS1000-Limit.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/QCefViewTest-macOS-Hardware-Rendering-FPS1000-Limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/QCefViewTest-macOS-Hardware-Rendering-FPS1000-Limit.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/QCefViewTest-macOS-Software-Rendering-FPS1000-Limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/QCefViewTest-macOS-Software-Rendering-FPS1000-Limit.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/add-event-listener-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/add-event-listener-01.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/add-event-listener-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/add-event-listener-02.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/cefview-query-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/cefview-query-01.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/cefview-query-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/cefview-query-02.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/first-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/first-project.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/invoke-method-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/invoke-method-01.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/guide/invoke-method-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/guide/invoke-method-02.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/linux-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/linux-demo.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/macOS-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/macOS-demo.png -------------------------------------------------------------------------------- /scripts/doxygen/docs/img/windows-demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CefView/QCefView/3c0bfe0a693c2d14b4a442958f497a2f2a2b4af3/scripts/doxygen/docs/img/windows-demo.png -------------------------------------------------------------------------------- /scripts/doxygen/gen-doc.bat: -------------------------------------------------------------------------------- 1 | @REM genarete xml documentaion 2 | doxygen 3 | -------------------------------------------------------------------------------- /scripts/doxygen/theme/css/custom-alternative.css: -------------------------------------------------------------------------------- 1 | html.alternative { 2 | /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ 3 | --primary-color: #AF7FE4; 4 | --primary-dark-color: #9270E4; 5 | --primary-light-color: #7aabd6; 6 | --primary-lighter-color: #cae1f1; 7 | --primary-lightest-color: #e9f1f8; 8 | 9 | /* page base colors */ 10 | --page-background-color: white; 11 | --page-foreground-color: #2c3e50; 12 | --page-secondary-foreground-color: #67727e; 13 | 14 | 15 | --border-radius-large: 22px; 16 | --border-radius-small: 9px; 17 | --border-radius-medium: 14px; 18 | --spacing-small: 8px; 19 | --spacing-medium: 14px; 20 | --spacing-large: 19px; 21 | 22 | --top-height: 125px; 23 | 24 | --side-nav-background: #324067; 25 | --side-nav-foreground: #F1FDFF; 26 | --header-foreground: var(--side-nav-foreground); 27 | --searchbar-background: var(--side-nav-foreground); 28 | --searchbar-border-radius: var(--border-radius-medium); 29 | --header-background: var(--side-nav-background); 30 | --header-foreground: var(--side-nav-foreground); 31 | 32 | --toc-background: rgb(243, 240, 252); 33 | --toc-foreground: var(--page-foreground-color); 34 | } 35 | 36 | html.alternative.dark-mode { 37 | color-scheme: dark; 38 | 39 | --primary-color: #AF7FE4; 40 | --primary-dark-color: #9270E4; 41 | --primary-light-color: #4779ac; 42 | --primary-lighter-color: #191e21; 43 | --primary-lightest-color: #191a1c; 44 | 45 | --page-background-color: #1C1D1F; 46 | --page-foreground-color: #d2dbde; 47 | --page-secondary-foreground-color: #859399; 48 | --separator-color: #3a3246; 49 | --side-nav-background: #171D32; 50 | --side-nav-foreground: #F1FDFF; 51 | --toc-background: #20142C; 52 | --searchbar-background: var(--page-background-color); 53 | 54 | } -------------------------------------------------------------------------------- /scripts/doxygen/theme/css/custom.css: -------------------------------------------------------------------------------- 1 | .github-corner svg { 2 | fill: var(--primary-light-color); 3 | color: var(--page-background-color); 4 | width: 72px; 5 | height: 72px; 6 | } 7 | 8 | @media screen and (max-width: 767px) { 9 | .github-corner svg { 10 | width: 50px; 11 | height: 50px; 12 | } 13 | #projectnumber { 14 | margin-right: 22px; 15 | } 16 | } 17 | 18 | .alter-theme-button { 19 | display: inline-block; 20 | cursor: pointer; 21 | background: var(--primary-color); 22 | color: var(--page-background-color) !important; 23 | border-radius: var(--border-radius-medium); 24 | padding: var(--spacing-small) var(--spacing-medium); 25 | text-decoration: none; 26 | } 27 | 28 | .alter-theme-button:hover { 29 | background: var(--primary-dark-color); 30 | } 31 | 32 | html.dark-mode .darkmode_inverted_image img, /* < doxygen 1.9.3 */ 33 | html.dark-mode .darkmode_inverted_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ { 34 | filter: brightness(89%) hue-rotate(180deg) invert(); 35 | } 36 | 37 | .bordered_image { 38 | border-radius: var(--border-radius-small); 39 | border: 1px solid var(--separator-color); 40 | display: inline-block; 41 | overflow: hidden; 42 | } 43 | 44 | html.dark-mode .bordered_image img, /* < doxygen 1.9.3 */ 45 | html.dark-mode .bordered_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ { 46 | border-radius: var(--border-radius-small); 47 | } 48 | 49 | .title_screenshot { 50 | filter: drop-shadow(0px 3px 10px rgba(0,0,0,0.22)); 51 | max-width: 500px; 52 | margin: var(--spacing-large) 0; 53 | } 54 | 55 | .title_screenshot .caption { 56 | display: none; 57 | } 58 | -------------------------------------------------------------------------------- /scripts/doxygen/theme/css/doxygen-awesome-sidebar-only-darkmode-toggle.css: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | 4 | Doxygen Awesome 5 | https://github.com/jothepro/doxygen-awesome-css 6 | 7 | MIT License 8 | 9 | Copyright (c) 2021 - 2023 jothepro 10 | 11 | Permission is hereby granted, free of charge, to any person obtaining a copy 12 | of this software and associated documentation files (the "Software"), to deal 13 | in the Software without restriction, including without limitation the rights 14 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the Software is 16 | furnished to do so, subject to the following conditions: 17 | 18 | The above copyright notice and this permission notice shall be included in all 19 | copies or substantial portions of the Software. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 | SOFTWARE. 28 | 29 | */ 30 | 31 | @media screen and (min-width: 768px) { 32 | 33 | #MSearchBox { 34 | width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px); 35 | } 36 | 37 | #MSearchField { 38 | width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height)); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /scripts/doxygen/theme/js/doxygen-awesome-paragraph-link.js: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | Doxygen Awesome 4 | https://github.com/jothepro/doxygen-awesome-css 5 | 6 | MIT License 7 | 8 | Copyright (c) 2022 - 2023 jothepro 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | */ 29 | 30 | class DoxygenAwesomeParagraphLink { 31 | // Icon from https://fonts.google.com/icons 32 | // Licensed under the Apache 2.0 license: 33 | // https://www.apache.org/licenses/LICENSE-2.0.html 34 | static icon = `` 35 | static title = "Permanent Link" 36 | static init() { 37 | $(function() { 38 | $(document).ready(function() { 39 | document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => { 40 | let anchorlink = document.createElement("a") 41 | anchorlink.setAttribute("href", `#${node.getAttribute("id")}`) 42 | anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title) 43 | anchorlink.classList.add("anchorlink") 44 | node.classList.add("anchor") 45 | anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon 46 | node.parentElement.appendChild(anchorlink) 47 | }) 48 | }) 49 | }) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /scripts/doxygen/theme/js/toggle-alternative-theme.js: -------------------------------------------------------------------------------- 1 | 2 | let original_theme_active = true; 3 | 4 | function toggle_alternative_theme() { 5 | if(original_theme_active) { 6 | document.documentElement.classList.add("alternative") 7 | original_theme_active = false; 8 | } else { 9 | document.documentElement.classList.remove("alternative") 10 | original_theme_active = true; 11 | } 12 | } -------------------------------------------------------------------------------- /src/QCefEvent.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #pragma region cef_headers 4 | #include 5 | #pragma endregion 6 | 7 | #include "details/QCefEventPrivate.h" 8 | #include "details/utils/CommonUtils.h" 9 | 10 | REGISTER_METATYPE(QCefEvent); 11 | 12 | QCefEvent::QCefEvent() 13 | : d_ptr(new QCefEventPrivate) 14 | { 15 | } 16 | 17 | QCefEvent::QCefEvent(const QString& name) 18 | : QCefEvent() 19 | { 20 | setEventName(name); 21 | } 22 | 23 | QCefEvent::QCefEvent(const QCefEvent& other) 24 | : QCefEvent() 25 | { 26 | *d_ptr = *(other.d_ptr); 27 | } 28 | 29 | QCefEvent& 30 | QCefEvent::operator=(const QCefEvent& other) 31 | { 32 | *d_ptr = *(other.d_ptr); 33 | return *this; 34 | } 35 | 36 | QCefEvent::~QCefEvent() {} 37 | 38 | void 39 | QCefEvent::setEventName(const QString& name) 40 | { 41 | Q_D(QCefEvent); 42 | d->name = name; 43 | } 44 | 45 | const QString 46 | QCefEvent::eventName() const 47 | { 48 | Q_D(const QCefEvent); 49 | return d->name; 50 | } 51 | 52 | void 53 | QCefEvent::setArguments(const QVariantList& args) 54 | { 55 | Q_D(QCefEvent); 56 | d->args = args; 57 | } 58 | 59 | QVariantList& 60 | QCefEvent::arguments() 61 | { 62 | Q_D(QCefEvent); 63 | return d->args; 64 | } 65 | -------------------------------------------------------------------------------- /src/QCefQuery.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #pragma region cef_headers 4 | #include 5 | #pragma endregion 6 | 7 | #include 8 | 9 | #include "details/QCefQueryPrivate.h" 10 | #include "details/utils/CommonUtils.h" 11 | 12 | REGISTER_METATYPE(QCefQuery); 13 | 14 | QCefQuery::QCefQuery(QCefViewPrivate* source, const QString& req, const int64_t query) 15 | : d_ptr(new QCefQueryPrivate) 16 | { 17 | d_ptr->source_ = source; 18 | d_ptr->id_ = query; 19 | d_ptr->request_ = req; 20 | } 21 | 22 | void 23 | QCefQuery::markAsReplied() const 24 | { 25 | d_ptr->replyed_ = true; 26 | } 27 | 28 | QCefQuery::QCefQuery() 29 | : d_ptr(new QCefQueryPrivate) 30 | { 31 | } 32 | 33 | QCefQuery::~QCefQuery() 34 | { 35 | d_ptr.reset(); 36 | } 37 | 38 | const QString 39 | QCefQuery::request() const 40 | { 41 | Q_D(const QCefQuery); 42 | return d->request_; 43 | } 44 | 45 | const qint64 46 | QCefQuery::id() const 47 | { 48 | Q_D(const QCefQuery); 49 | return d->id_; 50 | } 51 | 52 | const QString 53 | QCefQuery::response() const 54 | { 55 | Q_D(const QCefQuery); 56 | return d->response_; 57 | } 58 | 59 | const bool 60 | QCefQuery::result() const 61 | { 62 | Q_D(const QCefQuery); 63 | return d->restult_; 64 | } 65 | 66 | const int 67 | QCefQuery::error() const 68 | { 69 | Q_D(const QCefQuery); 70 | return d->error_; 71 | } 72 | 73 | void 74 | QCefQuery::setResponseResult(bool success, const QString& response, int error /*= 0*/) const 75 | { 76 | d_ptr->restult_ = success; 77 | d_ptr->response_ = response; 78 | d_ptr->error_ = error; 79 | } 80 | 81 | void 82 | QCefQuery::reply(bool success, const QString& response, int error /*= 0*/) const 83 | { 84 | if (d_ptr->source_) { 85 | d_ptr->restult_ = success; 86 | d_ptr->response_ = response; 87 | d_ptr->error_ = error; 88 | d_ptr->source_->responseQCefQuery(*this); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /src/QCefView_global.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | * File: QCefView_global.h 3 | * Project: QCefView 4 | * Created: 29th March 2016 5 | * Author: Sheen 6 | * Source: https://github.com/cefview/qcefview 7 | * Docs: https://cefview.github.io/QCefView/ 8 | */ 9 | #ifndef QCEFEVIEW_GLOBAL_H 10 | #define QCEFEVIEW_GLOBAL_H 11 | #pragma once 12 | 13 | // clang-format off 14 | #pragma region qt_headers 15 | #include 16 | #include 17 | #pragma endregion 18 | 19 | #ifdef QCEFVIEW_STATIC 20 | // Static library, no need export 21 | #define QCEFVIEW_EXPORT 22 | #else 23 | // Dynamic library 24 | #ifdef QCEFVIEW_LIB 25 | // Build QCefView project, export API 26 | #define QCEFVIEW_EXPORT Q_DECL_EXPORT 27 | #else 28 | // Referenced by other project, import API 29 | #define QCEFVIEW_EXPORT Q_DECL_IMPORT 30 | #if _WIN32 31 | #pragma comment(lib, "QCefView.lib") 32 | #endif 33 | #endif 34 | #endif 35 | 36 | // CEF version numbers 37 | #define CEF_VERSION_MAJOR @CEF_VERSION_MAJOR@ 38 | #define CEF_VERSION_MINOR @CEF_VERSION_MINOR@ 39 | #define CEF_VERSION_PATCH @CEF_VERSION_PATCH@ 40 | 41 | // clang-format on 42 | 43 | #endif // QCEFEVIEW_GLOBAL_H 44 | -------------------------------------------------------------------------------- /src/details/CCefAppDelegate.cpp: -------------------------------------------------------------------------------- 1 | #include "CCefAppDelegate.h" 2 | 3 | #include 4 | 5 | #include "QCefContextPrivate.h" 6 | 7 | CCefAppDelegate::CCefAppDelegate(QCefContextPrivate* context, CommandLineArgs args) 8 | : pContext_(context) 9 | , commandLineArgs_(args) 10 | { 11 | } 12 | 13 | CCefAppDelegate::~CCefAppDelegate() 14 | { 15 | qDebug() << "CCefAppDelegate is being destructed"; 16 | } 17 | 18 | void 19 | CCefAppDelegate::onBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr command_line) 20 | { 21 | for (auto& kv : commandLineArgs_) { 22 | if (!kv.first.empty()) { 23 | if (!kv.second.empty()) 24 | command_line->AppendSwitchWithValue(kv.first, kv.second); 25 | else 26 | command_line->AppendSwitch(kv.first); 27 | } 28 | } 29 | } 30 | 31 | void 32 | CCefAppDelegate::onBeforeChildProcessLaunch(CefRefPtr command_line) 33 | { 34 | for (auto& kv : commandLineArgs_) { 35 | if (!kv.first.empty()) { 36 | if (!kv.second.empty()) 37 | command_line->AppendSwitchWithValue(kv.first, kv.second); 38 | else 39 | command_line->AppendSwitch(kv.first); 40 | } 41 | } 42 | } 43 | 44 | void 45 | CCefAppDelegate::onScheduleMessageLoopWork(int64_t delay_ms) 46 | { 47 | if (pContext_) { 48 | pContext_->scheduleCefLoopWork(delay_ms); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/details/CCefAppDelegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | #include 6 | 7 | class QCefContextPrivate; 8 | 9 | class CCefAppDelegate : public CefViewBrowserAppDelegateInterface 10 | { 11 | typedef std::unordered_map CommandLineArgs; 12 | 13 | public: 14 | CCefAppDelegate(QCefContextPrivate* context, CommandLineArgs args); 15 | 16 | ~CCefAppDelegate(); 17 | 18 | virtual void onBeforeCommandLineProcessing(const CefString& process_type, 19 | CefRefPtr command_line) override; 20 | 21 | virtual void onBeforeChildProcessLaunch(CefRefPtr command_line) override; 22 | 23 | void onScheduleMessageLoopWork(int64_t delay_ms) override; 24 | 25 | private: 26 | QCefContextPrivate* pContext_; 27 | 28 | CommandLineArgs commandLineArgs_; 29 | }; 30 | -------------------------------------------------------------------------------- /src/details/QCefConfigPrivate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region stl_headers 4 | #include 5 | #include 6 | #include 7 | #pragma endregion 8 | 9 | #pragma region cef_headers 10 | #include 11 | #pragma endregion 12 | 13 | #pragma region qt_headers 14 | #include 15 | #pragma endregion 16 | 17 | #include 18 | 19 | class QCefConfigPrivate 20 | { 21 | typedef std::unordered_map ArgsMap; 22 | 23 | public: 24 | explicit QCefConfigPrivate(); 25 | 26 | static void CopyToCefSettings(const QCefConfig* config, CefSettings* settings); 27 | 28 | static ArgsMap& GetCommandLineArgs(const QCefConfig* config); 29 | 30 | public: 31 | std::string locale_; 32 | std::string userAgent_; 33 | std::string cachePath_; 34 | 35 | #if CEF_VERSION_MAJOR < 115 36 | std::string userDataPath_; 37 | #else 38 | std::string rootCachePath_; 39 | #endif 40 | 41 | std::string bridgeObjectName_; 42 | std::string builtinSchemeName_; 43 | std::string acceptLanguageList_; 44 | 45 | #if defined(Q_OS_WINDOWS) || defined(Q_OS_LINUX) 46 | std::string localesDirectoryPath_; 47 | std::string browserSubProcessPath_; 48 | std::string resourceDirectoryPath_; 49 | #endif 50 | 51 | int logLevel_ = LOGSEVERITY_DEFAULT; 52 | 53 | /// 54 | /// /* bool */ 55 | /// Enable OSR mode by default 56 | /// 57 | QVariant windowlessRenderingEnabled_ = true; 58 | 59 | /// 60 | /// /* bool */ 61 | /// Enable standalone message loop (bool) 62 | /// 63 | #if defined(Q_OS_MACOS) 64 | QVariant standaloneMessgeLoopEnabled_ = false; 65 | #else 66 | QVariant standaloneMessgeLoopEnabled_ = true; 67 | #endif 68 | 69 | /// 70 | /// /* bool */ 71 | /// Disable sandbox (enabled by default) (bool) 72 | /// 73 | #if defined(CEF_USE_SANDBOX) 74 | QVariant sandboxDisabled_ = false; 75 | #else 76 | QVariant sandboxDisabled_ = true; 77 | #endif 78 | 79 | /// 80 | /// /* bool */ 81 | /// Disable command line pass through (enabled by default) (bool) 82 | /// 83 | QVariant commandLinePassthroughDisabled_ = false; 84 | 85 | /// 86 | /// /* bool */ 87 | /// 88 | /// 89 | QVariant persistSessionCookies_; 90 | 91 | #if CEF_VERSION_MAJOR < 128 92 | /// 93 | /// /* bool */ 94 | /// 95 | /// 96 | QVariant persistUserPreferences_; 97 | #endif 98 | 99 | /// 100 | /// /* int */ 101 | /// 102 | /// 103 | QVariant remoteDebuggingport_; 104 | 105 | /// 106 | /// /* QColor */ 107 | /// 108 | /// 109 | QVariant backgroundColor_; 110 | 111 | /// 112 | /// 113 | /// 114 | ArgsMap commandLineArgs_; 115 | }; 116 | -------------------------------------------------------------------------------- /src/details/QCefDownloadItemPrivate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | #include "CCefClientDelegate.h" 11 | 12 | class QCefDownloadItem; 13 | 14 | class QCefDownloadItemPrivate 15 | { 16 | public: 17 | CCefClientDelegate::WeakPtr handler; 18 | bool isStarted = false; 19 | 20 | quint32 id = 0; 21 | 22 | bool isInProgress = false; 23 | bool isComplete = false; 24 | bool isCanceled = false; 25 | 26 | int percentComplete = 0; 27 | qint64 currentSpeed = 0; 28 | qint64 totalBytes = 0; 29 | qint64 receivedBytes = 0; 30 | 31 | QDateTime startTime; 32 | QDateTime endTime; 33 | 34 | QString fullPath; 35 | QString url; 36 | QString originalUrl; 37 | QString suggestedFileName; 38 | QString contentDisposition; 39 | QString mimeType; 40 | 41 | CefRefPtr beforeDownloadCallback; 42 | CefRefPtr downloadItemCallback; 43 | 44 | public: 45 | static QSharedPointer create(CCefClientDelegate::RefPtr handler); 46 | 47 | static void setSuggestedName(QCefDownloadItem* item, const QString& suggestedFileName); 48 | 49 | static void update(QCefDownloadItem* item, CefDownloadItem& cefItem); 50 | 51 | static void setBeforeDownloadCallback(QCefDownloadItem* item, 52 | CefRefPtr beforeDownloadCallback); 53 | 54 | static void setDownloadItemCallback(QCefDownloadItem* item, CefRefPtr downloadItemCallback); 55 | 56 | static void destroy(QCefDownloadItem* item); 57 | }; 58 | -------------------------------------------------------------------------------- /src/details/QCefEventPrivate.cpp: -------------------------------------------------------------------------------- 1 | #include "QCefEventPrivate.h" 2 | 3 | QCefEventPrivate::QCefEventPrivate() {} 4 | 5 | QCefEventPrivate::~QCefEventPrivate() {} 6 | -------------------------------------------------------------------------------- /src/details/QCefEventPrivate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #include 6 | #pragma endregion 7 | 8 | class QCefEventPrivate 9 | { 10 | public: 11 | QCefEventPrivate(); 12 | 13 | ~QCefEventPrivate(); 14 | 15 | QString name; 16 | QVariantList args; 17 | }; 18 | -------------------------------------------------------------------------------- /src/details/QCefQueryPrivate.cpp: -------------------------------------------------------------------------------- 1 | #include "QCefQueryPrivate.h" 2 | 3 | QCefQueryPrivate::QCefQueryPrivate() {} 4 | 5 | QCefQueryPrivate::~QCefQueryPrivate() 6 | { 7 | if (!replyed_ && source_) { 8 | replyed_ = true; 9 | source_->responseQCefQuery(id_, restult_, response_, error_); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/details/QCefQueryPrivate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #pragma endregion 6 | 7 | #include 8 | 9 | #include "QCefViewPrivate.h" 10 | 11 | class QCefQueryPrivate 12 | { 13 | public: 14 | QCefQueryPrivate(); 15 | 16 | ~QCefQueryPrivate(); 17 | 18 | int64_t id_ = -1; 19 | QString request_; 20 | QString response_; 21 | bool restult_ = true; 22 | int error_ = 0; 23 | 24 | bool replyed_ = false; 25 | QPointer source_; 26 | }; 27 | -------------------------------------------------------------------------------- /src/details/QCefSettingPrivate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region stl_headers 4 | #include 5 | #include 6 | #pragma endregion 7 | 8 | #pragma region cef_headers 9 | #include 10 | #pragma endregion 11 | 12 | #pragma region qt_headers 13 | #include 14 | #pragma endregion 15 | 16 | #include 17 | 18 | class QCefSettingPrivate 19 | { 20 | Q_DECLARE_PUBLIC(QCefSetting) 21 | QCefSetting* q_ptr{}; 22 | 23 | friend class CCefClientDelegate; 24 | 25 | public: 26 | static void CopyFromCefBrowserSettings(QCefSetting* qs, const CefBrowserSettings* cs); 27 | 28 | static void CopyFromCefBrowserSettings(QCefSettingPrivate* qsp, const CefBrowserSettings* cs); 29 | 30 | static void CopyToCefBrowserSettings(const QCefSetting* qs, CefBrowserSettings* cs); 31 | 32 | static void CopyToCefBrowserSettings(const QCefSettingPrivate* qs, CefBrowserSettings* cs); 33 | 34 | public: 35 | explicit QCefSettingPrivate(); 36 | 37 | ////////////////////////////////////////////////////////////////////////// 38 | // Non CEF browser setting values 39 | QSize windowInitialSize_; 40 | bool hardwareAcceleration_ = true; 41 | 42 | ////////////////////////////////////////////////////////////////////////// 43 | // CEF browser setting values 44 | std::string standardFontFamily_; 45 | std::string fixedFontFamily_; 46 | std::string serifFontFamily_; 47 | std::string sansSerifFontFamily_; 48 | std::string cursiveFontFamily_; 49 | std::string fantasyFontFamily_; 50 | std::string defaultEncoding_; 51 | #if CEF_VERSION_MAJOR < 118 52 | std::string acceptLanguageList_; 53 | #endif 54 | 55 | /* int */ QVariant windowlessFrameRate_; 56 | /* int */ QVariant defaultFontSize_; 57 | /* int */ QVariant defaultFixedFontSize_; 58 | /* int */ QVariant minimumFontSize_; 59 | /* int */ QVariant minimumLogicalFontSize_; 60 | 61 | /* bool */ QVariant remoteFonts_; 62 | /* bool */ QVariant javascript_; 63 | /* bool */ QVariant javascriptCloseWindows_; 64 | /* bool */ QVariant javascriptAccessClipboard_; 65 | /* bool */ QVariant javascriptDomPaste_; 66 | #if CEF_VERSION_MAJOR < 100 67 | /* bool */ QVariant plugins_; 68 | #endif 69 | /* bool */ QVariant imageLoading_; 70 | /* bool */ QVariant imageShrinkStandaloneToFit_; 71 | /* bool */ QVariant textAreaResize_; 72 | /* bool */ QVariant tabToLinks_; 73 | /* bool */ QVariant localStorage_; 74 | /* bool */ QVariant databases_; 75 | /* bool */ QVariant webgl_; 76 | 77 | /* QColor */ QVariant backgroundColor_; 78 | 79 | private: 80 | /// 81 | /// 82 | /// 83 | /// 84 | void copyFromCefBrowserSettings(const CefBrowserSettings* cs); 85 | 86 | /// 87 | /// 88 | /// 89 | /// 90 | void copyToCefBrowserSettings(CefBrowserSettings* cs) const; 91 | }; 92 | -------------------------------------------------------------------------------- /src/details/QCefWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma region qt_headers 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #pragma endregion 10 | 11 | class QCefWindow : public QWindow 12 | { 13 | public: 14 | using QWindow::QWindow; 15 | 16 | QCefWindow(); 17 | 18 | ~QCefWindow(); 19 | 20 | QWidget* attachCefWindow(QWindow* win, QWidget* parent); 21 | 22 | void detachCefWindow(); 23 | 24 | void applyMask(const QRegion& region); 25 | 26 | QWindow* cefWindow(); 27 | 28 | protected: 29 | void syncCefWindowPosOnResize(); 30 | void syncCefWindowPosOnExpose(); 31 | 32 | protected: 33 | virtual void exposeEvent(QExposeEvent* e) override; 34 | 35 | virtual void resizeEvent(QResizeEvent* e) override; 36 | 37 | private: 38 | QWidget* cefWidget_ = nullptr; 39 | QWindow* cefWindow_ = nullptr; 40 | }; 41 | -------------------------------------------------------------------------------- /src/details/handler/CCefClientDelegate_ContextMenuHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "details/CCefClientDelegate.h" 2 | 3 | #include 4 | #include 5 | 6 | #include "details/utils/CommonUtils.h" 7 | #include "details/utils/MenuBuilder.h" 8 | 9 | #include "details/QCefViewPrivate.h" 10 | 11 | void 12 | CCefClientDelegate::onBeforeContextMenu(CefRefPtr& browser, 13 | CefRefPtr& frame, 14 | CefRefPtr& params, 15 | CefRefPtr& model) 16 | { 17 | FLog(); 18 | 19 | if (!pCefViewPrivate_) 20 | return; 21 | 22 | // popup browser doesn't involve off-screen rendering 23 | if (browser->IsPopup()) { 24 | return; 25 | } 26 | 27 | // main browser 28 | auto policy = pCefViewPrivate_->q_ptr->contextMenuPolicy(); 29 | if (Qt::DefaultContextMenu != policy) { 30 | // for all non-default value, we clear the menu info to prevent the showing 31 | model->Clear(); 32 | return; 33 | } 34 | 35 | if (pCefViewPrivate_->isOSRModeEnabled_) { 36 | // OSR mode 37 | auto menuData = MenuBuilder::CreateMenuDataFromCefMenu(model.get()); 38 | QMetaObject::invokeMethod(pCefViewPrivate_, [=]() { pCefViewPrivate_->onBeforeCefContextMenu(menuData); }); 39 | } 40 | } 41 | 42 | bool 43 | CCefClientDelegate::onRunContextMenu(CefRefPtr& browser, 44 | CefRefPtr& frame, 45 | CefRefPtr& params, 46 | CefRefPtr& model, 47 | CefRefPtr& callback) 48 | { 49 | FLog(); 50 | 51 | // popup browser doesn't involve off-screen rendering 52 | if (browser->IsPopup()) { 53 | return false; 54 | } 55 | 56 | if (pCefViewPrivate_->isOSRModeEnabled_) { 57 | // OSR mode, create context menu with CEF built-in menu mode and show as customized context menu 58 | QPoint pos(params->GetXCoord(), params->GetYCoord()); 59 | QMetaObject::invokeMethod(pCefViewPrivate_, [=]() { pCefViewPrivate_->onRunCefContextMenu(pos, callback); }); 60 | return true; 61 | } else { 62 | // NCW mode, to allow CEF native context menu 63 | return false; 64 | } 65 | } 66 | 67 | bool 68 | CCefClientDelegate::onContextMenuCommand(CefRefPtr& browser, 69 | CefRefPtr& frame, 70 | CefRefPtr& params, 71 | int command_id, 72 | CefContextMenuHandler::EventFlags event_flags) 73 | { 74 | FLog(); 75 | 76 | return false; 77 | } 78 | 79 | void 80 | CCefClientDelegate::onContextMenuDismissed(CefRefPtr& browser, CefRefPtr& frame) 81 | { 82 | FLog(); 83 | 84 | if (pCefViewPrivate_->isOSRModeEnabled_) { 85 | // OSR mode 86 | QMetaObject::invokeMethod(pCefViewPrivate_, [=]() { pCefViewPrivate_->onCefContextMenuDismissed(); }); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/details/handler/CCefClientDelegate_DialogHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "details/CCefClientDelegate.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include "details/QCefViewPrivate.h" 8 | #include "details/utils/CommonUtils.h" 9 | #include "details/utils/ValueConvertor.h" 10 | 11 | bool 12 | CCefClientDelegate::onFileDialog(CefRefPtr& browser, 13 | CefBrowserHost::FileDialogMode mode, 14 | const CefString& title, 15 | const CefString& default_file_path, 16 | const std::vector& accept_filters, 17 | #if CEF_VERSION_MAJOR < 102 18 | int selected_accept_filter, 19 | #endif 20 | CefRefPtr& callback) 21 | { 22 | QMetaObject::invokeMethod(pCefViewPrivate_, [=]() { 23 | QStringList filters; 24 | if (!accept_filters.empty()) { 25 | for (const auto& filter : accept_filters) { 26 | filters << "*" + QString::fromStdString(filter.ToString()); 27 | } 28 | } 29 | pCefViewPrivate_->onFileDialog(mode, 30 | title.ToString().c_str(), 31 | default_file_path.ToString().c_str(), 32 | filters, 33 | #if CEF_VERSION_MAJOR < 102 34 | selected_accept_filter, 35 | #endif 36 | callback); 37 | }); 38 | return true; 39 | } 40 | -------------------------------------------------------------------------------- /src/details/handler/CCefClientDelegate_DragHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "details/CCefClientDelegate.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include "details/QCefViewPrivate.h" 8 | 9 | bool 10 | CCefClientDelegate::onDragEnter(CefRefPtr& browser, 11 | CefRefPtr& dragData, 12 | CefDragHandler::DragOperationsMask mask) 13 | { 14 | if (!IsValidBrowser(browser)) 15 | return true; 16 | 17 | // return true to cancel, false to allow 18 | return !pCefViewPrivate_->shouldAllowDrop(dragData, mask); 19 | } 20 | 21 | void 22 | CCefClientDelegate::draggableRegionChanged(CefRefPtr& browser, 23 | CefRefPtr& frame, 24 | const std::vector& regions) 25 | { 26 | if (!IsValidBrowser(browser)) 27 | return; 28 | 29 | // Determine new draggable region. 30 | QRegion draggableRegion; 31 | QRegion nonDraggableRegion; 32 | std::vector::const_iterator it = regions.begin(); 33 | for (; it != regions.end(); ++it) { 34 | if (it->draggable) { 35 | draggableRegion += QRegion(it->bounds.x, it->bounds.y, it->bounds.width, it->bounds.height); 36 | } else { 37 | nonDraggableRegion += QRegion(it->bounds.x, it->bounds.y, it->bounds.width, it->bounds.height); 38 | } 39 | } 40 | 41 | emit pCefViewPrivate_->q_ptr->draggableRegionChanged(draggableRegion, nonDraggableRegion); 42 | } 43 | -------------------------------------------------------------------------------- /src/details/handler/CCefClientDelegate_FocusHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "details/CCefClientDelegate.h" 2 | 3 | #include "details/QCefViewPrivate.h" 4 | 5 | void 6 | CCefClientDelegate::takeFocus(CefRefPtr& browser, bool next) 7 | { 8 | if (!IsValidBrowser(browser)) 9 | return; 10 | 11 | QMetaObject::invokeMethod(pCefViewPrivate_, "onCefWindowLostTabFocus", Q_ARG(bool, next)); 12 | } 13 | 14 | bool 15 | CCefClientDelegate::setFocus(CefRefPtr& browser) 16 | { 17 | // allow the focus setting action 18 | return false; 19 | } 20 | 21 | void 22 | CCefClientDelegate::gotFocus(CefRefPtr& browser) 23 | { 24 | if (!IsValidBrowser(browser)) 25 | return; 26 | 27 | QMetaObject::invokeMethod(pCefViewPrivate_, "onCefWindowGotFocus"); 28 | } 29 | -------------------------------------------------------------------------------- /src/details/handler/CCefClientDelegate_KeyboardHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "details/CCefClientDelegate.h" 2 | 3 | #include 4 | 5 | #include "details/QCefViewPrivate.h" 6 | 7 | bool 8 | CCefClientDelegate::onPreKeyEvent(CefRefPtr& browser, 9 | const CefKeyEvent& event, 10 | CefEventHandle os_event, 11 | bool* is_keyboard_shortcut) 12 | { 13 | // qDebug("===== CefKeyEvent:type=%d, modifiers=0x%08x, windows_key_code=%d, native_key_code=%d, char=0x%04x, " 14 | // "unmod_char=0x%04x", 15 | // event.type, 16 | // event.modifiers, 17 | // event.windows_key_code, 18 | // event.native_key_code, 19 | // event.character, 20 | // event.unmodified_character); 21 | 22 | #if defined(Q_OS_MACOS) 23 | // it seems Qt breaks the macOS shortcut key, so we need to fix it 24 | if (event.modifiers & EVENTFLAG_COMMAND_DOWN && event.type == KEYEVENT_RAWKEYDOWN) { 25 | switch (event.native_key_code) { 26 | case 0: // A SelectAll 27 | case 6: // Z Undo 28 | case 7: // X Cut 29 | case 8: // C Copy 30 | case 9: // V Paste 31 | case 16: // Y Redo 32 | *is_keyboard_shortcut = true; 33 | break; 34 | } 35 | } 36 | #endif 37 | 38 | return false; 39 | } 40 | 41 | bool 42 | CCefClientDelegate::onKeyEvent(CefRefPtr& browser, const CefKeyEvent& event, CefEventHandle os_event) 43 | { 44 | #if defined(Q_OS_MACOS) 45 | // it seems Qt breaks the macOS shortcut key, so we need to fix it 46 | if (event.modifiers & EVENTFLAG_COMMAND_DOWN && event.type == KEYEVENT_RAWKEYDOWN) { 47 | switch (event.native_key_code) { 48 | case 0: // A 49 | browser->GetFocusedFrame()->SelectAll(); 50 | break; 51 | case 6: // Z 52 | browser->GetFocusedFrame()->Undo(); 53 | break; 54 | case 7: // X 55 | browser->GetFocusedFrame()->Cut(); 56 | break; 57 | case 8: // C 58 | browser->GetFocusedFrame()->Copy(); 59 | break; 60 | case 9: // V 61 | browser->GetFocusedFrame()->Paste(); 62 | break; 63 | case 16: // Y 64 | browser->GetFocusedFrame()->Redo(); 65 | break; 66 | } 67 | } 68 | #endif 69 | 70 | return false; 71 | } 72 | -------------------------------------------------------------------------------- /src/details/handler/CCefClientDelegate_LoadHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "details/CCefClientDelegate.h" 2 | 3 | #include "details/QCefViewPrivate.h" 4 | 5 | void 6 | CCefClientDelegate::loadingStateChanged(CefRefPtr& browser, 7 | bool isLoading, 8 | bool canGoBack, 9 | bool canGoForward) 10 | { 11 | if (!IsValidBrowser(browser)) 12 | return; 13 | 14 | emit pCefViewPrivate_->q_ptr->loadingStateChanged(browser->GetIdentifier(), isLoading, canGoBack, canGoForward); 15 | } 16 | 17 | void 18 | CCefClientDelegate::loadStart(CefRefPtr& browser, CefRefPtr& frame, int transitionType) 19 | { 20 | if (!IsValidBrowser(browser)) 21 | return; 22 | 23 | emit pCefViewPrivate_->q_ptr->loadStart( 24 | browser->GetIdentifier(), ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), frame->IsMain(), transitionType); 25 | } 26 | 27 | void 28 | CCefClientDelegate::loadEnd(CefRefPtr& browser, CefRefPtr& frame, int httpStatusCode) 29 | { 30 | if (!IsValidBrowser(browser)) 31 | return; 32 | 33 | // workaround for: 34 | // https://github.com/chromiumembedded/cef/issues/3870 35 | // after navigation CEF resets the browser focus status 36 | // without any callback notification (AKA, released the 37 | // focus silently), so we need to update the CEF browser 38 | // focus status according to the one we have kept 39 | if (true // 40 | && pCefViewPrivate_->isOSRModeEnabled_ // 41 | && pCefViewPrivate_->osr.hasCefGotFocus_ // 42 | && browser->GetHost() // 43 | ) { 44 | browser->GetHost()->SetFocus(true); 45 | } 46 | 47 | emit pCefViewPrivate_->q_ptr->loadEnd( 48 | browser->GetIdentifier(), ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), frame->IsMain(), httpStatusCode); 49 | } 50 | 51 | void 52 | CCefClientDelegate::loadError(CefRefPtr& browser, 53 | CefRefPtr& frame, 54 | int errorCode, 55 | const CefString& errorMsg, 56 | const CefString& failedUrl, 57 | bool& handled) 58 | { 59 | if (!IsValidBrowser(browser)) 60 | return; 61 | 62 | handled = pCefViewPrivate_->handleLoadError(browser, frame, errorCode, errorMsg, failedUrl); 63 | } 64 | -------------------------------------------------------------------------------- /src/details/render/CefViewRendererFactory.cpp: -------------------------------------------------------------------------------- 1 | #include "CefViewRendererFactory.h" 2 | 3 | #include "hardware/CefViewHardwareRenderer.h" 4 | #include "software/QtSoftwareRenderer.h" 5 | 6 | namespace CefViewRendererFactory { 7 | CefViewRendererPtr 8 | createRenderer(bool hardware) 9 | { 10 | if (hardware) { 11 | return createHardwareRenderer(); 12 | } else { 13 | return CefViewRendererPtr(new QtSoftwareRenderer); 14 | } 15 | } 16 | } // namespace CefViewRendererFactory 17 | -------------------------------------------------------------------------------- /src/details/render/CefViewRendererFactory.h: -------------------------------------------------------------------------------- 1 | #ifndef CEFVIEWRENDERERFACTORY_H 2 | #define CEFVIEWRENDERERFACTORY_H 3 | 4 | #pragma once 5 | #include "ICefViewRenderer.h" 6 | 7 | namespace CefViewRendererFactory { 8 | 9 | CefViewRendererPtr 10 | createRenderer(bool hardware); 11 | } 12 | #endif 13 | -------------------------------------------------------------------------------- /src/details/render/hardware/CefViewHardwareRenderer.cpp: -------------------------------------------------------------------------------- 1 | #include "CefViewHardwareRenderer.h" 2 | 3 | #if defined(OS_WINDOWS) 4 | #include "win/details/render/hardware/DX11RenderBackend.h" 5 | #elif defined(OS_MACOS) 6 | #include "mac/details/render/hardware/MetalRenderBackend.h" 7 | #elif defined(OS_LINUX) 8 | #include "linux/details/render/hardware/OpenGLRenderBackend.h" 9 | #else 10 | #error "Unsupported platform" 11 | #endif 12 | 13 | CefViewRendererPtr 14 | createHardwareRenderer() 15 | { 16 | #if defined(OS_WINDOWS) 17 | return CefViewRendererPtr(new DX11RenderBackend); 18 | #elif defined(OS_MACOS) 19 | return CefViewRendererPtr(new MetalRenderBackend); 20 | #elif defined(OS_LINUX) 21 | return CefViewRendererPtr(new OpenGLRenderBackend); 22 | #else 23 | #error "Unsupported platform" 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /src/details/render/hardware/CefViewHardwareRenderer.h: -------------------------------------------------------------------------------- 1 | #ifndef CEFVIEWHARDWARERENDERER_H 2 | #define CEFVIEWHARDWARERENDERER_H 3 | 4 | #pragma once 5 | #include "../ICefViewRenderer.h" 6 | 7 | CefViewRendererPtr 8 | createHardwareRenderer(); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/details/render/software/QtSoftwareRenderer.h: -------------------------------------------------------------------------------- 1 | #ifndef QTSOFTWARERENDERER_H 2 | #define QTSOFTWARERENDERER_H 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | 9 | #include "details/render/ICefViewRenderer.h" 10 | 11 | class QtSoftwareRenderer : public ICefViewRenderer 12 | { 13 | Q_OBJECT 14 | 15 | private: 16 | QScopedPointer m_backingStore; 17 | 18 | // popup status 19 | bool m_showPopup = false; 20 | CefRect m_popupRect; 21 | 22 | // images for internal processing 23 | QImage m_cefViewImage; 24 | QImage m_cefPopupImage; 25 | 26 | public: 27 | QtSoftwareRenderer(); 28 | 29 | ~QtSoftwareRenderer(); 30 | 31 | bool isHardware() override { return false; } 32 | 33 | bool initialize(QWidget* widget, int width, int height, float scale, const QColor& clear) override; 34 | 35 | void uninitialize() override; 36 | 37 | void resize(int width, int height, float scale) override; 38 | 39 | void updatePopupVisibility(bool visible) override; 40 | 41 | void updatePopupRect(const CefRect& rect) override; 42 | 43 | void updateFrameData(const CefRenderHandler::PaintElementType& type, 44 | const CefRenderHandler::RectList& dirtyRects, 45 | const FrameDataType& dataType, 46 | const FrameData& data) override; 47 | 48 | void render() override; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/details/utils/CommonUtils.cpp: -------------------------------------------------------------------------------- 1 | #include "CommonUtils.h" 2 | -------------------------------------------------------------------------------- /src/details/utils/CommonUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #include 6 | #include 7 | #include 8 | #pragma endregion 9 | 10 | #pragma region cef_headers 11 | #include 12 | #pragma endregion 13 | 14 | /// 15 | /// Registers a Qt metatype for the specified type. 16 | /// This macro defines a static struct whose constructor registers the given type 17 | /// with Qt's meta-object system using qRegisterMetaType(). 18 | /// 19 | /// 20 | /// Usage: 21 | /// REGISTER_METATYPE(MyCustomType) 22 | /// 23 | #define REGISTER_METATYPE(TYPE) \ 24 | static struct TYPE##_MetaTypeRegister \ 25 | { \ 26 | TYPE##_MetaTypeRegister() \ 27 | { \ 28 | qRegisterMetaType(); \ 29 | } \ 30 | } TYPE##_MetaTypeRegister; 31 | 32 | /// 33 | /// Utility class for logging function entry and exit. 34 | /// Prints debug messages upon construction and destruction, 35 | /// indicating when a function is entered and exited. 36 | /// 37 | class FunctionLogger 38 | { 39 | public: 40 | /// 41 | /// Constructs a FunctionLogger for the given function name. 42 | /// 43 | /// The name of the function to log. 44 | FunctionLogger(const QString& fn) 45 | : functionName_(fn) 46 | { 47 | qDebug() << "+++" << functionName_; 48 | } 49 | 50 | /// 51 | /// Destructor logs function exit. 52 | /// 53 | ~FunctionLogger() { qDebug() << "---" << functionName_; } 54 | 55 | /// 56 | /// The name of the function being logged. 57 | /// 58 | QString functionName_; 59 | }; 60 | 61 | #if defined(QT_DEBUG) 62 | /// 63 | /// Instantiates a FunctionLogger for the current function. 64 | /// In debug builds, this macro creates a FunctionLogger named __fl__ using 65 | /// the current function's name. In release builds, it does nothing. 66 | /// 67 | #define FLog() FunctionLogger __fl__(__FUNCTION__); 68 | #else 69 | #define FLog() 70 | #endif 71 | -------------------------------------------------------------------------------- /src/details/utils/CursorUtils.cpp: -------------------------------------------------------------------------------- 1 | #include "CursorUtils.h" 2 | 3 | Qt::CursorShape 4 | MapCursorShape(cef_cursor_type_t& type) 5 | { 6 | static Qt::CursorShape sCursorTable[] = { 7 | Qt::ArrowCursor, // CT_POINTER = 0, 8 | Qt::CrossCursor, // CT_CROSS, 9 | Qt::PointingHandCursor, // CT_HAND, 10 | Qt::IBeamCursor, // CT_IBEAM, 11 | Qt::WaitCursor, // CT_WAIT, 12 | Qt::WhatsThisCursor, // CT_HELP, 13 | Qt::SizeHorCursor, // CT_EASTRESIZE, 14 | Qt::SizeVerCursor, // CT_NORTHRESIZE, 15 | Qt::SizeBDiagCursor, // CT_NORTHEASTRESIZE, 16 | Qt::SizeFDiagCursor, // CT_NORTHWESTRESIZE, 17 | Qt::SizeVerCursor, // CT_SOUTHRESIZE, 18 | Qt::SizeFDiagCursor, // CT_SOUTHEASTRESIZE, 19 | Qt::SizeBDiagCursor, // CT_SOUTHWESTRESIZE, 20 | Qt::SizeHorCursor, // CT_WESTRESIZE, 21 | Qt::SizeVerCursor, // CT_NORTHSOUTHRESIZE, 22 | Qt::SizeHorCursor, // CT_EASTWESTRESIZE, 23 | Qt::SizeAllCursor, // CT_NORTHEASTSOUTHWESTRESIZE, 24 | Qt::SizeAllCursor, // CT_NORTHWESTSOUTHEASTRESIZE, 25 | Qt::SplitHCursor, // CT_COLUMNRESIZE, 26 | Qt::SplitVCursor, // CT_ROWRESIZE, 27 | Qt::ArrowCursor, // CT_MIDDLEPANNING, 28 | Qt::ArrowCursor, // CT_EASTPANNING, 29 | Qt::ArrowCursor, // CT_NORTHPANNING, 30 | Qt::ArrowCursor, // CT_NORTHEASTPANNING, 31 | Qt::ArrowCursor, // CT_NORTHWESTPANNING, 32 | Qt::ArrowCursor, // CT_SOUTHPANNING, 33 | Qt::ArrowCursor, // CT_SOUTHEASTPANNING, 34 | Qt::ArrowCursor, // CT_SOUTHWESTPANNING, 35 | Qt::ArrowCursor, // CT_WESTPANNING, 36 | Qt::ArrowCursor, // CT_MOVE, 37 | Qt::ArrowCursor, // CT_VERTICALTEXT, 38 | Qt::ArrowCursor, // CT_CELL, 39 | Qt::ArrowCursor, // CT_CONTEXTMENU, 40 | Qt::ArrowCursor, // CT_ALIAS, 41 | Qt::ArrowCursor, // CT_PROGRESS, 42 | Qt::ArrowCursor, // CT_NODROP, 43 | Qt::ArrowCursor, // CT_COPY, 44 | Qt::ArrowCursor, // CT_NONE, 45 | Qt::ForbiddenCursor, // CT_NOTALLOWED, 46 | Qt::ArrowCursor, // CT_ZOOMIN, 47 | Qt::ArrowCursor, // CT_ZOOMOUT, 48 | Qt::OpenHandCursor, // CT_GRAB, 49 | Qt::ClosedHandCursor, // CT_GRABBING, 50 | Qt::ArrowCursor, // CT_MIDDLE_PANNING_VERTICAL, 51 | Qt::ArrowCursor, // CT_MIDDLE_PANNING_HORIZONTAL, 52 | Qt::ArrowCursor, // CT_CUSTOM, 53 | Qt::ArrowCursor, // CT_DND_NONE, 54 | Qt::DragMoveCursor, // CT_DND_MOVE, 55 | Qt::DragCopyCursor, // CT_DND_COPY, 56 | Qt::DragLinkCursor, // CT_DND_LINK, 57 | }; 58 | return sCursorTable[type]; 59 | } 60 | -------------------------------------------------------------------------------- /src/details/utils/CursorUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #pragma endregion 6 | 7 | #pragma region cef_headers 8 | #include 9 | #pragma endregion 10 | 11 | /// 12 | /// Maps a CEF cursor type to a Qt cursor shape. 13 | /// 14 | /// The CEF cursor type to map. 15 | /// The corresponding Qt::CursorShape. 16 | Qt::CursorShape 17 | MapCursorShape(cef_cursor_type_t& type); 18 | -------------------------------------------------------------------------------- /src/details/utils/DragAndDropUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #pragma endregion 6 | 7 | #pragma region cef_headers 8 | #include 9 | #include 10 | #pragma endregion 11 | 12 | /// 13 | /// Maps a CEF drag operation mask to the corresponding Qt drop actions. 14 | /// 15 | /// The CEF drag operations mask to be mapped. 16 | /// 17 | /// The Qt drop actions corresponding to the specified CEF drag operation mask. 18 | /// 19 | Qt::DropActions 20 | MapCefDragOperationToQDropAction(CefRenderHandler::DragOperationsMask operation); 21 | 22 | /// 23 | /// Creates a QMimeData object from the given CefDragData instance. 24 | /// 25 | /// A reference to a CefDragData object containing the drag-and-drop data to convert. 26 | /// A pointer to a new QMimeData object representing the data from the provided CefDragData. 27 | QMimeData* 28 | CreateQMimeDataFromCefDragData(CefDragData& dragData); 29 | 30 | /// 31 | /// Maps Qt drop actions to the corresponding CEF drag operations mask. 32 | /// 33 | /// 34 | /// The Qt drop actions to be mapped, specified as a combination of Qt::DropActions flags. 35 | /// 36 | /// 37 | /// A CefRenderHandler::DragOperationsMask value representing the equivalent CEF drag operations for the given 38 | /// Qt drop actions. 39 | /// 40 | CefRenderHandler::DragOperationsMask 41 | MapQDropActionToCefDragOperation(Qt::DropActions actions); 42 | 43 | /// 44 | /// Creates a CefDragData object from a QMimeData instance. 45 | /// 46 | /// A reference to the QMimeData object containing the data to be converted. 47 | /// A CefRefPtr to a CefDragData object representing the data from the provided QMimeData. 48 | CefRefPtr 49 | CreateCefDragDataFromQMimeData(const QMimeData& mime); 50 | -------------------------------------------------------------------------------- /src/details/utils/KeyboardUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #include 6 | #pragma endregion 7 | 8 | #pragma region cef_headers 9 | #include 10 | #pragma endregion 11 | 12 | /// 13 | /// Maps a Qt QKeyEvent to a CEF CefKeyEvent structure. 14 | /// This function translates the Qt key event properties to their CEF equivalents, 15 | /// enabling proper keyboard event handling in CEF-based components. 16 | /// 17 | /// Pointer to the QKeyEvent to map from. 18 | /// Reference to the CefKeyEvent to populate. 19 | void 20 | MapQKeyEventToCefKeyEvent(QKeyEvent* qe, CefKeyEvent& ce); 21 | 22 | /// 23 | /// Determines whether a QKeyEvent should result in sending a CEF key character event. 24 | /// Typically used to filter out non-character or system key events. 25 | /// 26 | /// Pointer to the QKeyEvent to evaluate. 27 | /// True if a key character event should be sent; otherwise, false. 28 | bool 29 | ShouldSendKeyCharEvent(QKeyEvent* qe); 30 | 31 | /// 32 | /// Adjusts a CEF CefKeyEvent to ensure it correctly represents a key character event 33 | /// based on the provided QKeyEvent. This may modify event type, character code, or modifiers. 34 | /// 35 | /// Pointer to the QKeyEvent providing the source data. 36 | /// Reference to the CefKeyEvent to adjust. 37 | void 38 | AdjustCefKeyCharEvent(QKeyEvent* qe, CefKeyEvent& ce); 39 | -------------------------------------------------------------------------------- /src/details/utils/MenuBuilder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #include 6 | #include 7 | #pragma endregion 8 | 9 | #pragma region cef_headers 10 | #include 11 | #pragma endregion 12 | 13 | namespace MenuBuilder { 14 | 15 | /// 16 | /// Represents the type of a menu item. 17 | /// 18 | typedef enum MenuItemType 19 | { 20 | /// No menu item type specified. 21 | kMeueItemTypeNone, 22 | /// A standard command item (clickable action). 23 | kMeueItemTypeCommand, 24 | /// A checkable menu item (can be checked/unchecked). 25 | kMeueItemTypeCheck, 26 | /// A radio button menu item (part of a group, only one can be selected). 27 | kMeueItemTypeRadio, 28 | /// A separator (non-interactive visual divider). 29 | kMeueItemTypeSeparator, 30 | /// A submenu (contains nested menu items). 31 | kMeueItemTypeSubMenu, 32 | } MenuItemType; 33 | 34 | /// 35 | /// Represents a single menu item, including its type, label, state, and 36 | /// optional submenu data. 37 | /// 38 | typedef struct MenuItem 39 | { 40 | /// The type of the menu item (command, check, radio, etc.). 41 | MenuItemType type = kMeueItemTypeNone; 42 | /// The display label for the menu item. 43 | QString label; 44 | /// The command identifier associated with this item. 45 | int commandId = 0; 46 | /// Whether the menu item is enabled (can be interacted with). 47 | bool enable = false; 48 | /// Whether the menu item is visible. 49 | bool visible = false; 50 | /// Whether the menu item is checked (for check/radio types). 51 | bool checked = false; 52 | /// The group identifier (used for radio groups). 53 | int groupId = -1; 54 | /// The accelerator key (if any) associated with this item. 55 | int accelerator = -1; 56 | /// Submenu data, if this item is a submenu. 57 | QList subMenuData; 58 | } MenuItem; 59 | 60 | /// 61 | /// A list of MenuItem objects representing a menu structure. 62 | /// 63 | typedef QList MenuData; 64 | 65 | /// 66 | /// Creates a MenuData structure from a CefMenuModel. 67 | /// Iterates through the CEF menu model and converts each item into a MenuItem, 68 | /// preserving hierarchy for submenus. 69 | /// 70 | /// Pointer to the CefMenuModel to convert. 71 | /// A MenuData list representing the menu structure. 72 | MenuData 73 | CreateMenuDataFromCefMenu(CefMenuModel* model); 74 | 75 | /// 76 | /// Builds a QMenu from the provided MenuData structure. 77 | /// Recursively adds actions and submenus to the given QMenu based on the 78 | /// MenuData items. 79 | /// 80 | /// Pointer to the QMenu to populate. 81 | /// MenuData structure describing the menu items. 82 | void 83 | BuildQtMenuFromMenuData(QMenu* menu, const MenuData& data); 84 | 85 | }; // namespace MenuBuilder 86 | -------------------------------------------------------------------------------- /src/details/utils/ValueConvertor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma region qt_headers 4 | #include 5 | #pragma endregion 6 | 7 | #pragma region cef_headers 8 | #include 9 | #pragma endregion 10 | 11 | #include 12 | 13 | #include 14 | 15 | /// 16 | /// Provides static utility functions for converting between Qt and CEF value types, 17 | /// including QVariant, CefValue, and frame ID types. 18 | /// 19 | class ValueConvertor 20 | { 21 | public: 22 | /// 23 | /// Converts a CEF CefValue to a Qt QVariant. 24 | /// 25 | /// Pointer to the QVariant that will receive the converted value. 26 | /// Pointer to the CefValue to convert from. 27 | static void CefValueToQVariant(QVariant* qVariant, CefValue* cValue); 28 | 29 | /// 30 | /// Converts a Qt QVariant to a CEF CefValue. 31 | /// 32 | /// Pointer to the CefValue that will receive the converted value. 33 | /// Pointer to the QVariant to convert from. 34 | static void QVariantToCefValue(CefValue* cValue, const QVariant* qVariant); 35 | 36 | /// 37 | /// Converts a CEF frame ID (CefFrameId) to a Qt frame ID (QCefFrameId). 38 | /// 39 | /// The CefFrameId to convert. 40 | /// The corresponding QCefFrameId. 41 | static QCefFrameId FrameIdC2Q(const CefFrameId& id); 42 | 43 | /// 44 | /// Converts a Qt frame ID (QCefFrameId) to a CEF frame ID (CefFrameId). 45 | /// 46 | /// The QCefFrameId to convert. 47 | /// The corresponding CefFrameId. 48 | static CefFrameId FrameIdQ2C(const QCefFrameId& id); 49 | }; 50 | -------------------------------------------------------------------------------- /src/linux/details/QCefContextPrivate_linux.cpp: -------------------------------------------------------------------------------- 1 | #include "../../details/QCefContextPrivate.h" 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include "../../details/QCefConfigPrivate.h" 8 | 9 | bool 10 | QCefContextPrivate::initializeCef(const QCefConfig* config) 11 | { 12 | // Build CefSettings 13 | CefSettings cef_settings; 14 | QCefConfigPrivate::CopyToCefSettings(config, &cef_settings); 15 | 16 | #if CEF_VERSION_MAJOR >= 125 && CEF_VERSION_MAJOR <= 127 17 | // https://github.com/chromiumembedded/cef/issues/3685 18 | cef_settings.chrome_runtime = true; 19 | #endif 20 | 21 | // fixed values 22 | #if CEF_VERSION_MAJOR < 128 23 | cef_settings.pack_loading_disabled = false; 24 | #endif 25 | 26 | // external message pump 27 | if (cef_settings.multi_threaded_message_loop) { 28 | cef_settings.external_message_pump = false; 29 | } else { 30 | cef_settings.external_message_pump = true; 31 | } 32 | 33 | // path values 34 | if (CefString(&cef_settings.browser_subprocess_path).empty()) { 35 | QString strExePath = QDir(QCoreApplication::applicationDirPath()).filePath(kCefViewRenderProcessName); 36 | CefString(&cef_settings.browser_subprocess_path) = QDir::toNativeSeparators(strExePath).toStdString(); 37 | } 38 | 39 | // Initialize CEF. 40 | auto cmdArgs = QCefConfigPrivate::GetCommandLineArgs(config); 41 | auto appDelegate = std::make_shared(this, cmdArgs); 42 | auto builtinSchemeName = config ? config->builtinSchemeName().toStdString() : std::string(); 43 | auto bridgeObjectName = config ? config->bridgeObjectName().toStdString() : std::string(); 44 | auto app = new CefViewBrowserApp(builtinSchemeName, bridgeObjectName, appDelegate); 45 | 46 | CefMainArgs main_args(argc_, argv_); 47 | if (!CefInitialize(main_args, cef_settings, app, nullptr)) { 48 | assert(0); 49 | return false; 50 | } 51 | 52 | pApp_ = app; 53 | pAppDelegate_ = appDelegate; 54 | 55 | return true; 56 | } 57 | 58 | void 59 | QCefContextPrivate::uninitializeCef() 60 | { 61 | if (!pApp_) 62 | return; 63 | 64 | pAppDelegate_ = nullptr; 65 | pApp_ = nullptr; 66 | 67 | // shutdown the cef 68 | CefShutdown(); 69 | } 70 | -------------------------------------------------------------------------------- /src/linux/details/render/hardware/OpenGLRenderBackend.cpp: -------------------------------------------------------------------------------- 1 | #include "OpenGLRenderBackend.h" 2 | 3 | OpenGLRenderBackend::OpenGLRenderBackend() {} 4 | 5 | OpenGLRenderBackend::~OpenGLRenderBackend() {} 6 | 7 | bool 8 | OpenGLRenderBackend::initialize(QWidget* widget, int width, int height, float scale, const QColor& clear) 9 | { 10 | // TODO: it seems hardware acceleration is not supported by CEF currently. 11 | return false; 12 | } 13 | 14 | void 15 | OpenGLRenderBackend::uninitialize() 16 | { 17 | } 18 | 19 | void 20 | OpenGLRenderBackend::resize(int width, int height, float scale) 21 | { 22 | } 23 | 24 | void 25 | OpenGLRenderBackend::updatePopupVisibility(bool visible) 26 | { 27 | } 28 | 29 | void 30 | OpenGLRenderBackend::updatePopupRect(const CefRect& rect) 31 | { 32 | } 33 | 34 | void 35 | OpenGLRenderBackend::updateFrameData(const CefRenderHandler::PaintElementType& type, 36 | const CefRenderHandler::RectList& dirtyRects, 37 | const FrameDataType& dataType, 38 | const FrameData& data) 39 | { 40 | } 41 | 42 | void 43 | OpenGLRenderBackend::render() 44 | { 45 | } 46 | -------------------------------------------------------------------------------- /src/linux/details/render/hardware/OpenGLRenderBackend.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENGLRENDERBACKEND_H 2 | #define OPENGLRENDERBACKEND_H 3 | 4 | #pragma once 5 | 6 | #include "details/render/ICefViewRenderer.h" 7 | 8 | class OpenGLRenderBackend : public ICefViewRenderer 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | OpenGLRenderBackend(); 14 | 15 | ~OpenGLRenderBackend(); 16 | 17 | bool isHardware() override { return true; } 18 | 19 | bool initialize(QWidget* widget, int width, int height, float scale, const QColor& clear) override; 20 | 21 | void uninitialize() override; 22 | 23 | void resize(int width, int height, float scale) override; 24 | 25 | void updatePopupVisibility(bool visible) override; 26 | 27 | void updatePopupRect(const CefRect& rect) override; 28 | 29 | void updateFrameData(const CefRenderHandler::PaintElementType& type, 30 | const CefRenderHandler::RectList& dirtyRects, 31 | const FrameDataType& dataType, 32 | const FrameData& data) override; 33 | 34 | void render() override; 35 | }; 36 | #endif 37 | -------------------------------------------------------------------------------- /src/mac/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2022 CefView. All rights reserved. 27 | LSUIElement 28 | 1 29 | LSFileQuarantineEnabled 30 | 31 | NSSupportsAutomaticGraphicsSwitching 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/mac/details/render/hardware/MetalRenderBackend.h: -------------------------------------------------------------------------------- 1 | #ifndef METALRENDERBACKEND_H 2 | #define METALRENDERBACKEND_H 3 | 4 | #pragma once 5 | 6 | #include 7 | 8 | #include "details/render/ICefViewRenderer.h" 9 | 10 | class MetalRenderBackend : public ICefViewRenderer 11 | { 12 | Q_OBJECT 13 | 14 | private: 15 | class Implementation; 16 | std::unique_ptr m_pImpl; 17 | 18 | public: 19 | MetalRenderBackend(); 20 | 21 | ~MetalRenderBackend(); 22 | 23 | bool isHardware() override { return true; } 24 | 25 | bool initialize(QWidget* widget, int width, int height, float scale, const QColor& clear) override; 26 | 27 | void uninitialize() override; 28 | 29 | void resize(int width, int height, float scale) override; 30 | 31 | void updatePopupVisibility(bool visible) override; 32 | 33 | void updatePopupRect(const CefRect& rect) override; 34 | 35 | void updateFrameData(const CefRenderHandler::PaintElementType& type, 36 | const CefRenderHandler::RectList& dirtyRects, 37 | const FrameDataType& dataType, 38 | const FrameData& data) override; 39 | 40 | void render() override; 41 | }; 42 | 43 | #endif 44 | --------------------------------------------------------------------------------