Commit graph

60 commits

Author SHA1 Message Date
Vadim Zeitlin
92f6f164b3 Add wxEVT_WEBVIEW_CREATED for wxWebViewChromium async creation
wxWebViewChromium creation is asynchronous and the object can't be
really used until OnAfterCreated() is called, so expose this in the
public API via a new event sent when the object becomes actually usable.

As a side effect, add a convenient wxWebViewEvent ctor taking wxWebView
as argument and calling SetEventObject() itself, instead of forcing all
code creating wxWebViewEvents to do it.
2023-09-06 03:50:34 +02:00
Vadim Zeitlin
cdab976148 Build fixes for wxUSE_WEBVIEW_CHROMIUM && !wxUSE_WEBVIEW_WEBKIT
Fix wxGTK build when CEF backend is available but WebKit(2) one is not.
2023-08-31 16:01:21 +02:00
Tobias Taschner
e15a1ac18e
Add wxWebViewWindowFeatures and event
This replaces the previously implemented wxWebViewWindowInfo.

It explicitly breaks the previous API to enable WebKitGTK
integration and to make the usage in application code less error prone.

A new event wxEVT_WEBVIEW_NEWWINDOW_FEATURES is added to allow
access to the window features and the child web view.
2023-03-24 15:10:21 +01:00
Tobias Taschner
b48e5b4c66
Add wxWebViewConfiguration::SetDataPath()
While currently only implemented for the Edge backend GTK webkit could
also make use of such a setting.

Fixes: #19317
2023-03-17 09:29:46 +01:00
Tobias Taschner
dd4d5c75af
Add wxWebViewConfiguration
In 40ff38b63b wxWebView::GetNativeConfiguration() was
added which isn't suitable if multiple wxWebViewEdge instances are created with
different options (as they must share the same options). To prevent such errors
the previous method is replaced by the new class wxWebViewConfiguration which
can be shared between various wxWebView instances.

This explicitly breaks API to improve usage.

In the future the new class could also enable a good way to wrap various
common options/configurations available via native API.
2023-03-17 09:29:46 +01:00
Tobias Taschner
45d5de6a26
Add wxEVT_WEBVIEW_WINDOW_CLOSE_REQUESTED
This event is usually triggered by javascript calling window.close()
2023-03-09 14:29:25 +01:00
Vadim Zeitlin
4f4c5fcfdf Use nullptr instead of NULL in the code and documentation
This is a combination of running clang-tidy with modernize-use-nullptr
check for some ports (GTK, X11, OSX) and manual changes to the ports for
which it couldn't be used easily (MSW, DFB) and also manually updating
the docs.

Also replace NULL with null or nullptr in the comments as this is more
consistent with the use of nullptr in the code and makes it simpler to
grep for the remaining occurrences of NULL itself.

And also use null in the assert messages.

Only a few occurrences of "NULL" are still left in non-C files, mostly
corresponding to unclear comments or string output which it might not be
safe to change.
2022-10-18 01:25:25 +02:00
PB
88d526660f Replace wxOVERRIDE and wxNOEXCEPT with override and noexcept
Don't use deprecated macros in wxWidgets itself.
2022-10-15 18:10:45 +02:00
Tobias Taschner
5ab7151ada
Apply suggestions from code review
Co-authored-by: VZ <vz-github@zeitlins.org>
2022-09-19 19:41:42 +02:00
Tobias Taschner
4500a48407
Add wxWebViewHandler::StartRequest()
The new method an associated classes allow for a more detailed
handling in wxWebViewHandler instances.

Most notibly post data and headers from the request can be processsed.
The response can be send asynchronously.
2022-09-16 20:47:52 +02:00
Tobias Taschner
9f9ccf33e1
Initialize syncScriptResult and remove unused parameter 2021-11-05 09:52:53 +01:00
Tobias Taschner
8613f3aa6b
Apply suggestions from code review
Co-authored-by: VZ <vz-github@zeitlins.org>
2021-11-05 09:41:39 +01:00
Tobias Taschner
e9dc74cb6d
Add wxWebView::RunScriptAsync() 2021-11-03 11:19:07 +01:00
Tobias Taschner
97e469c255
Add access to user agent for wxWebView
Allow setting a custom user agent for a webview.
Also allow access to the current user agent.
2021-03-16 22:53:00 +01:00
Tobias Taschner
011035ef08
Add wxEVT_WEBVIEW_SCRIPT_MESSAGE_RECEIVED event 2021-02-26 15:41:41 +01:00
Paul Cornett
1406d3dc03 Simplify wxWebView zoom conversion code
So there is no need to "shut up compilers"
2021-02-23 10:01:18 -08:00
Tobias Taschner
e09063186c
Provide generic wxWebView::Find() implementation
This implementation is based on javascript 'window.find()'
https://developer.mozilla.org/en-US/docs/Web/API/Window/find
It's not standard, but implemented in most browsers.

It's not a complete implementation as it can't determine how
many search results can be found.

If the backends API provides a native find interface it should be
used instead of this implementation, but it's good fallback.
2021-02-10 23:55:18 +01:00
Tobias Taschner
f6a23a0431
Add wxEVT_WEBVIEW_FULLSCREEN_CHANGED event
The event is triggered by wxWebView when the page requests fullscreen view.

It's currently only implemented for the edge backend.
2021-02-09 22:28:29 +01:00
Tobias Taschner
d17e8978a6
Make wxWebView::RunScript() const 2021-02-05 22:18:31 +01:00
Vadim Zeitlin
e88b55bfe1
Apply suggestions from code review 2021-02-05 22:18:30 +01:00
Tobias Taschner
788bef2cf2
Select Edge as the default backend on MSW
If enabled and available at runtime use the Edge backend.
This is probably more useful for most users.
2021-02-05 22:18:29 +01:00
Tobias Taschner
b351e7762d
Move common wxWebView code to base class
Removes duplicate code in the various webview backends
2021-02-05 22:18:29 +01:00
Tobias Taschner
0d82348328
Add wxWebView::GetBackendVersionInfo()
Allows to get the WebView backend version if available
Currently implemented for IE, Edge and webkit2.
2021-02-05 22:18:28 +01:00
Tobias Taschner
46d123b953
WebViewEdge: Allow edge webview2 installation during runtime
Check if edge webview runtime is available in the call to
wxWebView::IsBackendAvailable() instead of only doing it during
process initialization. This allows an application to install
the Edge WebView2 Runtime during runtime and use the edge webview
afterwards without restarting the process.
2020-11-06 09:19:17 +01:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Maarten Bent
ce968d0ecb
Enable building without wxUSE_WEBVIEW_IE 2020-01-17 09:37:12 +01:00
Tobias Taschner
c3f0b7a6cb
Apply suggestions from code review
Co-Authored-By: VZ <vz-github@zeitlins.org>
2020-01-15 15:55:49 +01:00
Tobias Taschner
f919b6e2f5
Rename from webview_edgec to webview_edge 2020-01-11 14:47:47 +01:00
Markus Pingel
6a99e7e273
Add wxWebView Edge (Chromium) implementation
This backend requires WebView2 SDK and enables usage of Edge (Chromium)
on Windows 7 and newer
2020-01-10 22:22:28 +01:00
Tobias Taschner
095a93e0c0
Add wxWebView::IsBackendAvailable()
This allows to check if a specified backend has been registered before creation of a new instance
2020-01-09 13:44:06 +01:00
Maarten Bent
190cb0e025 Remove trailing spaces in webview code 2018-08-22 20:02:42 +02:00
Stefan Csomor
1b32b97966 adding minimal ios support for webview
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-31 07:55:36 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Steve Lamerton
8fdbcf4de8 Ensure that the default wxWebView backends are registered.
Fixes #15261

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-18 19:54:25 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Steve Lamerton
236cff7334 Rename all WEB_VIEW* style identifiers to WEBVIEW*.
This makes wxWebView consistent with the rest of the toolkit. 

Closes #15013

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-01 09:38:53 +00:00
Steve Lamerton
4c687fff5e Allow registering of custom wxWebView backends.
Add wxWebViewFactory as an abstract factory to provide backend creation. Remove old factory methods using wxWebViewBackend enum in favour of the new wxString based method.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-13 19:22:24 +00:00
Paul Cornett
91614f1aa3 don't include files which may not exist in source release for a specific platform, fixes #13746
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-11 05:36:52 +00:00
Vadim Zeitlin
88cc66f72d Only define wxUSE_WEBVIEW if wxWebView is really available.
Don't define wxUSE_WEBVIEW in configure if WebKit is not available under Unix
(we should also check for wxUSE_WEBVIEW_IE under Windows later) and add the
check that either wxUSE_WEBVIEW_WEBKIT or wxUSE_WEBVIEW_IE is defined if
wxUSE_WEBVIEW is to wx/chkconf.h.

This makes it possible to just check for wxUSE_WEBVIEW instead of checking for
wxUSE_WEBVIEW && (wxUSE_WEBVIEW_IE || wxUSE_WEBVIEW_WEBKIT) as the code did
previously which was ugly and error-prone.

Also, define wxUSE_WEBVIEW_IE in configure under MSW. Currently this supposes
that the required IE headers/libraries are available which is probably wrong,
we should add checks for them later.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-16 22:44:17 +00:00
Steve Lamerton
7011055c55 Ensure that we have an available backend for wxWebView compilation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-11 13:26:24 +00:00
Steve Lamerton
467d261e9d Rename web library to webview.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 10:45:16 +00:00
Steve Lamerton
e7aef23e7b Rename wxUSE_WEB to wxUSE_WEBVIEW to reflect that actually it specifically toggles the wxWebView class and associated features.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 09:15:06 +00:00
Steve Lamerton
04fa04d806 Rename wxWebNavigationError to wxWebViewNavigationError and wxWebNavigationEvent to wxWebViewEvent. This makes the names more consistent with other parts of wxWidgets.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-15 11:03:26 +00:00
Steve Lamerton
cddf4541fa Add missing wxRTTI macros and fix incorrect ones.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-01 15:49:05 +00:00
Steve Lamerton
9e3d4a3210 Overhaul wxWebHandler naming to try and make it consistent with the rest of wxWidgets. Split wxWebFileHandler into its own file.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-30 14:22:15 +00:00
Steve Lamerton
153530afb5 Add new wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED event. Implement for all backends, extend the sample to demonstrate it and document. Also update some copyright notices.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-30 11:26:55 +00:00
Steve Lamerton
e1efca6528 Add CombineURIs implementation for wxWebFileProtocolHandler. Update the IE backend to use it. Using the IE backend navigating through zip archives is now functional, including loading resources and links.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-29 10:33:54 +00:00
Steve Lamerton
eff8f7952e Move the wxWebFileProtocolHandler from the IE backend to the common source, add the RegisterProtocol method to all classes (as a stub in GTK and OSX). Register the file protocol handler in the sample for testing purposes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-28 16:49:48 +00:00
Steve Lamerton
9df97be2c1 Simplify backend enum naming, we do not need separate values for gtk and osx webkit backends. Simplify factory creation code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-05 15:33:42 +00:00
Steve Lamerton
0a6c851624 Bring osx class naming into line with the other ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68167 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-05 13:57:44 +00:00