Files
racket-webview/rktwebview_qt/main.cpp
2026-03-16 20:04:30 +01:00

87 lines
2.4 KiB
C++

#include "rktwebview.h"
#include <QThread>
#include <QFile>
static int _argc;
static char **_argv;
void eventCb(rkt_data_t *e)
{
printf("event: %s\n", e->data.event.event);
rkt_webview_free_data(e);
}
int main(int argc, char *argv[])
{
int wv1;
int wv2;
_argc = argc;
_argv = argv;
rkt_webview_init();
int context = rkt_webview_new_context("console.log('boilerplate!');", nullptr);
wv1 = rkt_webview_create(context, 0, eventCb);
rkt_webview_move(wv1, 200, 300);
rkt_webview_resize(wv1, 800, 600);
rkt_webview_set_url(wv1, "https://wikipedia.org"); //"http://127.0.0.1:8083");
int i = 0;
while(i < 35) {
printf("Waiting...%d\n", i);
rkt_webview_process_events(1000);
if (i == 6) {
rkt_webview_open_devtools(wv1);
}
if (i == 3) {
rkt_data_t *r = rkt_webview_call_js(wv1, "{ let a = 7 * 6; console.log('a = ' + a); return a; }");
printf("rkt_js_result: %d: %s\n", r->data.js_result.result, r->data.js_result.value);
rkt_webview_free_data(r);
}
if (i == 4) {
rkt_data_t *r = rkt_webview_call_js(wv1, "let el = document.getElementById('hi');el.value = '10';");
printf("rkt_js_result: %d: %s\n", r->data.js_result.result, r->data.js_result.value);
rkt_webview_free_data(r);
}
if (i == 6) {
//rkt_data_t *r = rkt_webview_call_js(wv1, "document.body.innerHTML = '<h1>Hi!</h1>'; return document.body.innerHTML;");
//printf("rkt_js_result: %d: %s\n", r->data.js_result.result, r->data.js_result.value);
//rkt_webview_free_data(r);
}
if (i == 7) {
result_t r = rkt_webview_message_box(wv1, "This is a title", "This is my message", "This is my submessage", rkt_messagetype_t::yes_no);
}
if (i == 10) {
wv2 = rkt_webview_create(context, wv1, eventCb);
rkt_webview_move(wv2, 400, 200);
rkt_webview_resize(wv2, 800, 600);
rkt_webview_set_url(wv2, "https://127.0.0.1");
}
if (i > 10) {
char buf[1000];
sprintf(buf, "{ let obj = { e: 'test', i: %d }; window.rkt_send_event(obj); }", i);
rkt_webview_run_js(wv1, buf);
}
if (i == 15) {
rkt_webview_close(wv2);
}
i += 1;
}
rkt_webview_close(wv2);
}