4#include <emscripten/bind.h> 
   10#include <qpa/qplatforminputcontext.h> 
   14#include <QKeySequence> 
   15#include <qpa/qwindowsysteminterface.h> 
   23    int length = 
event[
"target"][
"value"][
"length"].as<
int>();
 
   27    emscripten::val _incomingCharVal = 
event[
"data"];
 
   28    if (_incomingCharVal != emscripten::val::undefined() && _incomingCharVal != emscripten::val::null()) {
 
   37    event[
"target"].set(
"value", 
"");
 
   46    emscripten::val document = emscripten::val::global(
"document");
 
   47    m_inputElement = document.call<emscripten::val>(
"createElement", std::string(
"input"));
 
   48    m_inputElement.set(
"type", 
"text");
 
   49    m_inputElement.set(
"style", 
"position:absolute;left:-1000px;top:-1000px"); 
 
   50    m_inputElement.set(
"contenteditable",
"true");
 
   55        document.call<
void>(
"addEventListener", inputType,
 
   56                                  emscripten::val::module_property(
"qtInputContextCallback"),
 
   57                                  emscripten::val(
false));
 
   58        m_inputElement.set(
"data-qinputcontext",
 
   59                           emscripten::val(
quintptr(
reinterpret_cast<void *
>(
this))));
 
   60        emscripten::val body = document[
"body"];
 
   61        body.call<
void>(
"appendChild", m_inputElement);
 
   64        emscripten_set_keydown_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, (
void *)
this, 1,
 
   65                                        &androidKeyboardCallback);
 
   70        auto callback = [=](emscripten::val) {
 
   71            m_inputElement[
"parentElement"].call<
void>(
"removeChild", m_inputElement);
 
   72            inputPanelIsOpen = 
false;
 
   74        m_blurEventHandler.reset(
new EventCallback(m_inputElement, 
"blur", callback));
 
   84        emscripten_set_keydown_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, 0, NULL);
 
   89    m_focusWindow = focusWindow;
 
   92emscripten::val QWasmInputContext::inputHandlerElementForFocusedWindow()
 
   95        return emscripten::val::undefined();
 
   96    return static_cast<QWasmWindow *
>(m_focusWindow->handle())->inputHandlerElement();
 
  107        && !inputPanelIsOpen) { 
 
  108            m_inputElement.call<
void>(
"focus");
 
  123        emscripten::val inputWrapper = inputHandlerElementForFocusedWindow();
 
  124        if (inputWrapper.isUndefined())
 
  126        inputWrapper.call<
void>(
"appendChild", m_inputElement);
 
  129    m_inputElement.call<
void>(
"focus");
 
  130    inputPanelIsOpen = 
true;
 
  137    m_inputElement.call<
void>(
"blur");
 
  138    inputPanelIsOpen = 
false;
 
  150int QWasmInputContext::androidKeyboardCallback(
int eventType,
 
  151                                               const EmscriptenKeyboardEvent *keyEvent,
 
  157    if (strKey == 
"Unidentified" || strKey == 
"Process")
 
void focusWindowChanged(QWindow *focusWindow)
This signal is emitted when the focused window changes.
 
The QKeySequence class encapsulates a key sequence as used by shortcuts.
 
static QKeySequence fromString(const QString &str, SequenceFormat format=PortableText)
 
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
 
virtual void update(Qt::InputMethodQueries)
Notification on editor updates.
 
\macro QT_RESTRICTED_CAST_FROM_ASCII
 
static QString fromStdString(const std::string &s)
 
void showInputPanel() override
Request to show input panel.
 
~QWasmInputContext() override
 
void hideInputPanel() override
Request to hide input panel.
 
void update(Qt::InputMethodQueries) override
Notification on editor updates.
 
void focusWindowChanged(QWindow *focusWindow)
 
void inputStringChanged(QString &, QWasmInputContext *context)
 
static QWasmIntegration * get()
 
static bool handleKeyEvent(QWindow *window, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString &text=QString(), bool autorep=false, ushort count=1)
 
Combined button and popup list for selecting options.
 
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction function
 
GLenum GLuint GLenum GLsizei length
 
static void inputCallback(emscripten::val event)
 
EMSCRIPTEN_BINDINGS(clipboard_module)