1 /*
2  * SPDX-FileCopyrightText: 2017~2017 CSSlayer <wengxt@gmail.com>
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #include "fcitxqtinputcontextproxy_p.h"
9 #include <QCoreApplication>
10 #include <QDBusConnectionInterface>
11 #include <QDBusInterface>
12 #include <QDBusMetaType>
13 #include <QFileInfo>
14 #include <QTimer>
15 
16 namespace fcitx {
17 
FcitxQtInputContextProxy(FcitxQtWatcher * watcher,QObject * parent)18 FcitxQtInputContextProxy::FcitxQtInputContextProxy(FcitxQtWatcher *watcher,
19                                                    QObject *parent)
20     : QObject(parent),
21       d_ptr(new FcitxQtInputContextProxyPrivate(watcher, this)) {}
22 
~FcitxQtInputContextProxy()23 FcitxQtInputContextProxy::~FcitxQtInputContextProxy() {
24     Q_D(FcitxQtInputContextProxy);
25     if (isValid()) {
26         d->icproxy_->DestroyIC();
27     }
28     delete d_ptr;
29 }
30 
setDisplay(const QString & display)31 void FcitxQtInputContextProxy::setDisplay(const QString &display) {
32     Q_D(FcitxQtInputContextProxy);
33     d->display_ = display;
34 }
35 
display() const36 const QString &FcitxQtInputContextProxy::display() const {
37     Q_D(const FcitxQtInputContextProxy);
38     return d->display_;
39 }
40 
isValid() const41 bool FcitxQtInputContextProxy::isValid() const {
42     Q_D(const FcitxQtInputContextProxy);
43     return d->isValid();
44 }
45 
focusIn()46 QDBusPendingReply<> FcitxQtInputContextProxy::focusIn() {
47     Q_D(FcitxQtInputContextProxy);
48     return d->icproxy_->FocusIn();
49 }
50 
focusOut()51 QDBusPendingReply<> FcitxQtInputContextProxy::focusOut() {
52     Q_D(FcitxQtInputContextProxy);
53     return d->icproxy_->FocusOut();
54 }
55 
processKeyEvent(unsigned int keyval,unsigned int keycode,unsigned int state,bool type,unsigned int time)56 QDBusPendingReply<bool> FcitxQtInputContextProxy::processKeyEvent(
57     unsigned int keyval, unsigned int keycode, unsigned int state, bool type,
58     unsigned int time) {
59     Q_D(FcitxQtInputContextProxy);
60     return d->icproxy_->ProcessKeyEvent(keyval, keycode, state, type, time);
61 }
62 
reset()63 QDBusPendingReply<> FcitxQtInputContextProxy::reset() {
64     Q_D(FcitxQtInputContextProxy);
65     return d->icproxy_->Reset();
66 }
67 
setCapability(qulonglong caps)68 QDBusPendingReply<> FcitxQtInputContextProxy::setCapability(qulonglong caps) {
69     Q_D(FcitxQtInputContextProxy);
70     return d->icproxy_->SetCapability(caps);
71 }
72 
setCursorRect(int x,int y,int w,int h)73 QDBusPendingReply<> FcitxQtInputContextProxy::setCursorRect(int x, int y, int w,
74                                                             int h) {
75     Q_D(FcitxQtInputContextProxy);
76     return d->icproxy_->SetCursorRect(x, y, w, h);
77 }
78 
setSurroundingText(const QString & text,unsigned int cursor,unsigned int anchor)79 QDBusPendingReply<> FcitxQtInputContextProxy::setSurroundingText(
80     const QString &text, unsigned int cursor, unsigned int anchor) {
81     Q_D(FcitxQtInputContextProxy);
82     return d->icproxy_->SetSurroundingText(text, cursor, anchor);
83 }
84 
85 QDBusPendingReply<>
setSurroundingTextPosition(unsigned int cursor,unsigned int anchor)86 FcitxQtInputContextProxy::setSurroundingTextPosition(unsigned int cursor,
87                                                      unsigned int anchor) {
88     Q_D(FcitxQtInputContextProxy);
89     return d->icproxy_->SetSurroundingTextPosition(cursor, anchor);
90 }
91 
92 } // namespace fcitx
93 
94 #include "moc_fcitxqtinputcontextproxy.cpp"
95