108 lines
2.9 KiB
C++
108 lines
2.9 KiB
C++
#include "wasmhelper.h"
|
|
#include "qrect.h"
|
|
#include "emscripten.h"
|
|
#include "emscripten/html5.h"
|
|
|
|
//弹出js信息框
|
|
EM_JS(void, showMessageJs, (const char *text), {
|
|
alert(UTF8ToString(text));
|
|
})
|
|
|
|
//弹出js输入框
|
|
EM_JS(const char *, getInputJs, (const char *title, const char *defaultText), {
|
|
var result = prompt(UTF8ToString(title), UTF8ToString(defaultText));
|
|
if (!result)
|
|
{
|
|
result = "";
|
|
}
|
|
return stringToNewUTF8(result);
|
|
})
|
|
|
|
//打开iframe窗体
|
|
EM_JS(void, openIframeJs, (const char *flag, const char *url, const char *style), {
|
|
//如果存在则只移动位置
|
|
var id = UTF8ToString(flag);
|
|
var iframe = document.getElementById(id);
|
|
if (iframe)
|
|
{
|
|
iframe.style = UTF8ToString(style);
|
|
return;
|
|
}
|
|
|
|
iframe = document.createElement('iframe');
|
|
iframe.id = id;
|
|
iframe.src = UTF8ToString(url);
|
|
iframe.style = UTF8ToString(style);
|
|
iframe.scrolling = 'no';
|
|
document.body.appendChild(iframe);
|
|
})
|
|
|
|
//加载iframe窗体
|
|
EM_JS(void, reloadIframeJs, (const char *flag, const char *url), {
|
|
var iframe = document.getElementById(UTF8ToString(flag));
|
|
if (iframe)
|
|
{
|
|
iframe.src = UTF8ToString(url);
|
|
}
|
|
})
|
|
|
|
//移动iframe窗体
|
|
EM_JS(void, moveIframeJs, (const char *flag, const char *style), {
|
|
var iframe = document.getElementById(UTF8ToString(flag));
|
|
if (iframe)
|
|
{
|
|
iframe.style = UTF8ToString(style);
|
|
}
|
|
})
|
|
|
|
//隐藏iframe窗体
|
|
EM_JS(void, hideIframeJs, (const char *flag), {
|
|
var iframe = document.getElementById(UTF8ToString(flag));
|
|
if (iframe)
|
|
{
|
|
iframe.style = "display:none";
|
|
}
|
|
})
|
|
|
|
void WasmHelper::showMessage(const QString &text)
|
|
{
|
|
showMessageJs(text.toUtf8().constData());
|
|
}
|
|
|
|
QString WasmHelper::getInput(const QString &title, const QString &text)
|
|
{
|
|
return getInputJs(title.toUtf8().constData(), text.toUtf8().constData());
|
|
}
|
|
|
|
QString WasmHelper::getIframeStyle(const QRect &rect)
|
|
{
|
|
QString style = QString("border:0px;position:absolute;margin:0px;padding:0px;z-index:10000;opacity:1.0;");
|
|
style += QString("left:%1px;").arg(rect.x());
|
|
style += QString("top:%1px;").arg(rect.y());
|
|
style += QString("width:%1px;").arg(rect.width());
|
|
style += QString("height:%1px;").arg(rect.height());
|
|
return style;
|
|
}
|
|
|
|
void WasmHelper::openIframe(const QString &flag, const QString &url, const QRect &rect)
|
|
{
|
|
QString style = getIframeStyle(rect);
|
|
openIframeJs(flag.toUtf8().constData(), url.toUtf8().constData(), style.toUtf8().constData());
|
|
}
|
|
|
|
void WasmHelper::reloadIframe(const QString &flag, const QString &url)
|
|
{
|
|
reloadIframeJs(flag.toUtf8().constData(), url.toUtf8().constData());
|
|
}
|
|
|
|
void WasmHelper::moveIframe(const QString &flag, const QRect &rect)
|
|
{
|
|
QString style = getIframeStyle(rect);
|
|
moveIframeJs(flag.toUtf8().constData(), style.toUtf8().constData());
|
|
}
|
|
|
|
void WasmHelper::hideIframe(const QString &flag)
|
|
{
|
|
hideIframeJs(flag.toUtf8().constData());
|
|
}
|