17#if !defined(DAF_WEB_VIEW_HPP_INCLUDED) && !defined(DGL_WEB_VIEW_HPP_INCLUDED)
18# define DAF_WEB_VIEW_INCLUDE_IMPLEMENTATION
19# include "WebView.hpp"
31#ifdef WEB_VIEW_DGL_NAMESPACE
33using DAF_NAMESPACE::WebView;
38WebView* webview_choc_create(
const WEB_VIEW_NAMESPACE::WebViewOptions& opts);
39void webview_choc_destroy(WebView*);
40void* webview_choc_handle(WebView*);
41void webview_choc_eval(WebView*,
const char* js);
42void webview_choc_navigate(WebView*,
const char* url);
44#ifdef WEB_VIEW_DGL_NAMESPACE
52#ifdef DAF_WEB_VIEW_INCLUDE_IMPLEMENTATION
54# define WC_ERR_INVALID_CHARS 0x80
55# include "choc/choc_WebView.h"
57#ifdef WEB_VIEW_DGL_NAMESPACE
63WebView* webview_choc_create(
const WEB_VIEW_NAMESPACE::WebViewOptions& opts)
65 WebView::Options wopts;
66 wopts.acceptsFirstMouseClick =
true;
67 wopts.enableDebugMode =
true;
69 std::unique_ptr<WebView> webview = std::make_unique<WebView>(wopts);
70 DAF_SAFE_ASSERT_RETURN(webview->loadedOK(),
nullptr);
72 if (
const WEB_VIEW_NAMESPACE::WebViewMessageCallback callback = opts.callback)
74 webview->addInitScript(
"function postMessage(m){window.chrome.webview.postMessage(m);}");
76 void*
const callbackPtr = opts.callbackPtr;
77 webview->bind([callback, callbackPtr](
const std::string& value) {
78 char*
const data = strdup(value.data());
79 callback(callbackPtr, data);
85 webview->addInitScript(
"function postMessage(m){}");
88 if (opts.initialJS !=
nullptr)
89 webview->addInitScript(opts.initialJS);
91 return webview.release();
94void webview_choc_destroy(WebView*
const webview)
99void* webview_choc_handle(WebView*
const webview)
101 return webview->getViewHandle();
104void webview_choc_eval(WebView*
const webview,
const char*
const js)
106 webview->evaluateJavascript(js);
109void webview_choc_navigate(WebView*
const webview,
const char*
const url)
111 webview->navigate(url);
114#ifdef WEB_VIEW_DGL_NAMESPACE
#define END_NAMESPACE_DAF
Definition DafInfo.hpp:996
#define START_NAMESPACE_DAF
Definition DafInfo.hpp:990