#pragma once #include #include // Turns what the keyboard produces into text operations. // DirectEngine passes them straight through; prediction and swipe engines // will sit here too (preedit, candidates, auto-correction). class InputEngine { public: virtual ~InputEngine() = default; virtual void commitText(const QString &text) = 0; // See TextBackend::replaceBeforeCursor. virtual void replaceBeforeCursor(const QString &before, const QString &text) = 0; virtual void sendKeysym(quint32 keysym, Qt::KeyboardModifiers modifiers = Qt::NoModifier) = 0; };