Changeset View
Changeset View
Standalone View
Standalone View
src/server/textinput_interface_p.h
Show All 28 Lines | |||||
29 | 29 | | |||
30 | namespace KWayland | 30 | namespace KWayland | ||
31 | { | 31 | { | ||
32 | namespace Server | 32 | namespace Server | ||
33 | { | 33 | { | ||
34 | 34 | | |||
35 | class TextInputManagerUnstableV0Interface; | 35 | class TextInputManagerUnstableV0Interface; | ||
36 | class TextInputManagerUnstableV2Interface; | 36 | class TextInputManagerUnstableV2Interface; | ||
37 | class TextInputManagerUnstableV3Interface; | ||||
37 | 38 | | |||
38 | class TextInputManagerInterface::Private : public Global::Private | 39 | class TextInputManagerInterface::Private : public Global::Private | ||
39 | { | 40 | { | ||
40 | public: | 41 | public: | ||
41 | QVector<TextInputInterface*> inputs; | 42 | QVector<TextInputInterface*> inputs; | ||
42 | TextInputInterfaceVersion interfaceVersion; | 43 | TextInputInterfaceVersion interfaceVersion; | ||
43 | 44 | | |||
44 | protected: | 45 | protected: | ||
45 | Private(TextInputInterfaceVersion interfaceVersion, TextInputManagerInterface *q, Display *d, const wl_interface *interface, quint32 version); | 46 | Private(TextInputInterfaceVersion interfaceVersion, TextInputManagerInterface *q, Display *d, const wl_interface *interface, quint32 version); | ||
46 | TextInputManagerInterface *q; | 47 | TextInputManagerInterface *q; | ||
47 | }; | 48 | }; | ||
48 | 49 | | |||
49 | class TextInputInterface::Private : public Resource::Private | 50 | class TextInputInterface::Private : public Resource::Private | ||
50 | { | 51 | { | ||
51 | public: | 52 | public: | ||
52 | ~Private(); | 53 | ~Private(); | ||
53 | 54 | | |||
54 | virtual void sendEnter(SurfaceInterface *surface, quint32 serial) = 0; | 55 | virtual void sendEnter(SurfaceInterface *surface, quint32 serial) = 0; | ||
55 | virtual void sendLeave(quint32 serial, SurfaceInterface *surface) = 0; | 56 | virtual void sendLeave(quint32 serial, SurfaceInterface *surface) = 0; | ||
56 | 57 | | |||
57 | virtual void preEdit(const QByteArray &text, const QByteArray &commit) = 0; | 58 | virtual void preEdit(const QByteArray &text, const QByteArray &commit) = 0; | ||
58 | virtual void commit(const QByteArray &text) = 0; | 59 | virtual void commit(const QByteArray &text) = 0; | ||
59 | virtual void deleteSurroundingText(quint32 beforeLength, quint32 afterLength) = 0; | 60 | virtual void deleteSurroundingText(quint32 beforeLength, quint32 afterLength) = 0; | ||
60 | virtual void setTextDirection(Qt::LayoutDirection direction) = 0; | 61 | virtual void setTextDirection(Qt::LayoutDirection direction) = 0; | ||
61 | virtual void setPreEditCursor(qint32 index) = 0; | 62 | virtual void setPreEditCursor(qint32 begin, qint32 end) = 0; | ||
62 | virtual void setCursorPosition(qint32 index, qint32 anchor) = 0; | 63 | virtual void setCursorPosition(qint32 index, qint32 anchor) = 0; | ||
63 | virtual void keysymPressed(quint32 keysym, Qt::KeyboardModifiers modifiers) = 0; | 64 | virtual void keysymPressed(quint32 keysym, Qt::KeyboardModifiers modifiers) = 0; | ||
64 | virtual void keysymReleased(quint32 keysym, Qt::KeyboardModifiers modifiers) = 0; | 65 | virtual void keysymReleased(quint32 keysym, Qt::KeyboardModifiers modifiers) = 0; | ||
65 | virtual TextInputInterfaceVersion interfaceVersion() const = 0; | 66 | virtual TextInputInterfaceVersion interfaceVersion() const = 0; | ||
66 | virtual void sendInputPanelState() = 0; | 67 | virtual void sendInputPanelState() = 0; | ||
67 | virtual void sendLanguage() = 0; | 68 | virtual void sendLanguage() = 0; | ||
69 | virtual void done(); | ||||
68 | 70 | | |||
69 | virtual TextInputInterface::ContentHints convertContentHint(uint32_t hint) const = 0; | 71 | virtual TextInputInterface::ContentHints convertContentHint(uint32_t hint) const = 0; | ||
70 | virtual TextInputInterface::ContentPurpose convertContentPurpose(uint32_t purpose) const = 0; | 72 | virtual TextInputInterface::ContentPurpose convertContentPurpose(uint32_t purpose) const = 0; | ||
71 | 73 | | |||
72 | QByteArray preferredLanguage; | 74 | QByteArray preferredLanguage; | ||
73 | QRect cursorRectangle; | 75 | QRect cursorRectangle; | ||
74 | TextInputInterface::ContentHints contentHints = TextInputInterface::ContentHint::None; | 76 | TextInputInterface::ContentHints contentHints = TextInputInterface::ContentHint::None; | ||
75 | TextInputInterface::ContentPurpose contentPurpose = TextInputInterface::ContentPurpose::Normal; | 77 | TextInputInterface::ContentPurpose contentPurpose = TextInputInterface::ContentPurpose::Normal; | ||
76 | SeatInterface *seat = nullptr; | 78 | SeatInterface *seat = nullptr; | ||
77 | QPointer<SurfaceInterface> surface; | 79 | QPointer<SurfaceInterface> surface; | ||
78 | bool enabled = false; | 80 | bool enabled = false; | ||
79 | QByteArray surroundingText; | 81 | QByteArray surroundingText; | ||
80 | qint32 surroundingTextCursorPosition = 0; | 82 | qint32 surroundingTextCursorPosition = 0; | ||
81 | qint32 surroundingTextSelectionAnchor = 0; | 83 | qint32 surroundingTextSelectionAnchor = 0; | ||
82 | bool inputPanelVisible = false; | 84 | bool inputPanelVisible = false; | ||
83 | QRect overlappedSurfaceArea; | 85 | QRect overlappedSurfaceArea; | ||
84 | QByteArray language; | 86 | QByteArray language; | ||
87 | TextInputInterface::ChangeCause surroundingTextChangeCause = TextInputInterface::ChangeCause::InputMethod; | ||||
85 | 88 | | |||
86 | protected: | 89 | protected: | ||
87 | Private(TextInputInterface *q, Global *c, wl_resource *parentResource, const wl_interface *interface, const void *implementation); | 90 | Private(TextInputInterface *q, Global *c, wl_resource *parentResource, const wl_interface *interface, const void *implementation); | ||
88 | 91 | | |||
89 | static void showInputPanelCallback(wl_client *client, wl_resource *resource); | 92 | static void showInputPanelCallback(wl_client *client, wl_resource *resource); | ||
90 | static void hideInputPanelCallback(wl_client *client, wl_resource *resource); | 93 | static void hideInputPanelCallback(wl_client *client, wl_resource *resource); | ||
91 | static void setSurroundingTextCallback(wl_client *client, wl_resource *resource, const char * text, int32_t cursor, int32_t anchor); | 94 | static void setSurroundingTextCallback(wl_client *client, wl_resource *resource, const char * text, int32_t cursor, int32_t anchor); | ||
92 | static void setContentTypeCallback(wl_client *client, wl_resource *resource, uint32_t hint, uint32_t purpose); | 95 | static void setContentTypeCallback(wl_client *client, wl_resource *resource, uint32_t hint, uint32_t purpose); | ||
93 | static void setCursorRectangleCallback(wl_client *client, wl_resource *resource, int32_t x, int32_t y, int32_t width, int32_t height); | 96 | static void setCursorRectangleCallback(wl_client *client, wl_resource *resource, int32_t x, int32_t y, int32_t width, int32_t height); | ||
94 | static void setPreferredLanguageCallback(wl_client *client, wl_resource *resource, const char * language); | 97 | static void setPreferredLanguageCallback(wl_client *client, wl_resource *resource, const char * language); | ||
95 | 98 | | |||
99 | virtual void setSurroundingText(const char *text, int32_t cursor, int32_t anchor); | ||||
100 | virtual void setContentType(TextInputInterface::ContentHints hints, TextInputInterface::ContentPurpose purpose); | ||||
101 | virtual void setCursorRectangle(const QRect &rect); | ||||
102 | | ||||
96 | private: | 103 | private: | ||
97 | TextInputInterface *q_func() { | 104 | TextInputInterface *q_func() { | ||
98 | return reinterpret_cast<TextInputInterface *>(q); | 105 | return reinterpret_cast<TextInputInterface *>(q); | ||
99 | } | 106 | } | ||
100 | }; | 107 | }; | ||
101 | 108 | | |||
102 | class TextInputUnstableV0Interface : public TextInputInterface | 109 | class TextInputUnstableV0Interface : public TextInputInterface | ||
103 | { | 110 | { | ||
Show All 20 Lines | 130 | public: | |||
124 | virtual ~TextInputUnstableV2Interface(); | 131 | virtual ~TextInputUnstableV2Interface(); | ||
125 | 132 | | |||
126 | private: | 133 | private: | ||
127 | explicit TextInputUnstableV2Interface(TextInputManagerUnstableV2Interface *parent, wl_resource *parentResource); | 134 | explicit TextInputUnstableV2Interface(TextInputManagerUnstableV2Interface *parent, wl_resource *parentResource); | ||
128 | friend class TextInputManagerUnstableV2Interface; | 135 | friend class TextInputManagerUnstableV2Interface; | ||
129 | class Private; | 136 | class Private; | ||
130 | }; | 137 | }; | ||
131 | 138 | | |||
139 | class TextInputUnstableV3Interface : public TextInputInterface | ||||
140 | { | ||||
141 | Q_OBJECT | ||||
142 | public: | ||||
143 | virtual ~TextInputUnstableV3Interface(); | ||||
144 | | ||||
145 | private: | ||||
146 | explicit TextInputUnstableV3Interface(TextInputManagerUnstableV3Interface *parent, wl_resource *parentResource); | ||||
147 | friend class TextInputManagerUnstableV3Interface; | ||||
148 | class Private; | ||||
149 | }; | ||||
150 | | ||||
132 | class TextInputManagerUnstableV0Interface : public TextInputManagerInterface | 151 | class TextInputManagerUnstableV0Interface : public TextInputManagerInterface | ||
133 | { | 152 | { | ||
134 | Q_OBJECT | 153 | Q_OBJECT | ||
135 | public: | 154 | public: | ||
136 | explicit TextInputManagerUnstableV0Interface(Display *display, QObject *parent = nullptr); | 155 | explicit TextInputManagerUnstableV0Interface(Display *display, QObject *parent = nullptr); | ||
137 | virtual ~TextInputManagerUnstableV0Interface(); | 156 | virtual ~TextInputManagerUnstableV0Interface(); | ||
138 | 157 | | |||
139 | private: | 158 | private: | ||
140 | class Private; | 159 | class Private; | ||
141 | }; | 160 | }; | ||
142 | 161 | | |||
143 | class TextInputManagerUnstableV2Interface : public TextInputManagerInterface | 162 | class TextInputManagerUnstableV2Interface : public TextInputManagerInterface | ||
144 | { | 163 | { | ||
145 | Q_OBJECT | 164 | Q_OBJECT | ||
146 | public: | 165 | public: | ||
147 | explicit TextInputManagerUnstableV2Interface(Display *display, QObject *parent = nullptr); | 166 | explicit TextInputManagerUnstableV2Interface(Display *display, QObject *parent = nullptr); | ||
148 | virtual ~TextInputManagerUnstableV2Interface(); | 167 | virtual ~TextInputManagerUnstableV2Interface(); | ||
149 | 168 | | |||
150 | private: | 169 | private: | ||
151 | class Private; | 170 | class Private; | ||
152 | }; | 171 | }; | ||
153 | 172 | | |||
173 | class TextInputManagerUnstableV3Interface : public TextInputManagerInterface | ||||
174 | { | ||||
175 | Q_OBJECT | ||||
176 | public: | ||||
177 | explicit TextInputManagerUnstableV3Interface(Display *display, QObject *parent = nullptr); | ||||
178 | virtual ~TextInputManagerUnstableV3Interface(); | ||||
179 | | ||||
180 | private: | ||||
181 | class Private; | ||||
182 | }; | ||||
183 | | ||||
154 | } | 184 | } | ||
155 | } | 185 | } | ||
156 | 186 | | |||
157 | #endif | 187 | #endif |