1// Code generated by wlgen; DO NOT EDIT.
2package textinput
3
4import (
5 "fmt"
6 wayland "github.com/bnema/purego-libwayland/protocol/wayland"
7 "github.com/bnema/purego-libwayland/server"
8 "runtime"
9)
10
11var ZwpTextInputV3Interface *server.Interface
12var ZwpTextInputManagerV3Interface *server.Interface
13
14func init() {
15 ZwpTextInputV3Interface = &server.Interface{Name: "zwp_text_input_v3", Version: 2}
16 ZwpTextInputManagerV3Interface = &server.Interface{Name: "zwp_text_input_manager_v3", Version: 2}
17 ZwpTextInputV3Interface.Requests = []server.Message{
18 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
19 {Name: "enable", Signature: "", Types: []*server.Interface{}},
20 {Name: "disable", Signature: "", Types: []*server.Interface{}},
21 {Name: "set_surrounding_text", Signature: "sii", Types: []*server.Interface{nil, nil, nil}},
22 {Name: "set_text_change_cause", Signature: "u", Types: []*server.Interface{nil}},
23 {Name: "set_content_type", Signature: "uu", Types: []*server.Interface{nil, nil}},
24 {Name: "set_cursor_rectangle", Signature: "iiii", Types: []*server.Interface{nil, nil, nil, nil}},
25 {Name: "commit", Signature: "", Types: []*server.Interface{}},
26 {Name: "set_available_actions", Signature: "2a", Types: []*server.Interface{nil}},
27 {Name: "show_input_panel", Signature: "2", Types: []*server.Interface{}},
28 {Name: "hide_input_panel", Signature: "2", Types: []*server.Interface{}},
29 }
30 ZwpTextInputV3Interface.Events = []server.Message{
31 {Name: "enter", Signature: "o", Types: []*server.Interface{wayland.SurfaceInterface}},
32 {Name: "leave", Signature: "o", Types: []*server.Interface{wayland.SurfaceInterface}},
33 {Name: "preedit_string", Signature: "?sii", Types: []*server.Interface{nil, nil, nil}},
34 {Name: "commit_string", Signature: "?s", Types: []*server.Interface{nil}},
35 {Name: "delete_surrounding_text", Signature: "uu", Types: []*server.Interface{nil, nil}},
36 {Name: "done", Signature: "u", Types: []*server.Interface{nil}},
37 {Name: "action", Signature: "2uu", Types: []*server.Interface{nil, nil}},
38 {Name: "language", Signature: "2s", Types: []*server.Interface{nil}},
39 {Name: "preedit_hint", Signature: "2uuu", Types: []*server.Interface{nil, nil, nil}},
40 }
41 ZwpTextInputManagerV3Interface.Requests = []server.Message{
42 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
43 {Name: "get_text_input", Signature: "no", Types: []*server.Interface{ZwpTextInputV3Interface, wayland.SeatInterface}},
44 }
45 ZwpTextInputManagerV3Interface.Events = []server.Message{}
46 if err := server.NewInterfaces(ZwpTextInputV3Interface, ZwpTextInputManagerV3Interface); err != nil {
47 panic(err)
48 }
49}
50
51// ZwpTextInputV3 text input.
52type ZwpTextInputV3 struct{ *server.Resource }
53
54func WrapZwpTextInputV3(r *server.Resource) *ZwpTextInputV3 {
55 if r == nil {
56 return nil
57 }
58 return &ZwpTextInputV3{r}
59}
60
61const ZwpTextInputV3RequestDestroy uint32 = 0
62const ZwpTextInputV3RequestEnable uint32 = 1
63const ZwpTextInputV3RequestDisable uint32 = 2
64const ZwpTextInputV3RequestSetSurroundingText uint32 = 3
65const ZwpTextInputV3RequestSetTextChangeCause uint32 = 4
66const ZwpTextInputV3RequestSetContentType uint32 = 5
67const ZwpTextInputV3RequestSetCursorRectangle uint32 = 6
68const ZwpTextInputV3RequestCommit uint32 = 7
69const ZwpTextInputV3RequestSetAvailableActions uint32 = 8
70const ZwpTextInputV3RequestShowInputPanel uint32 = 9
71const ZwpTextInputV3RequestHideInputPanel uint32 = 10
72const ZwpTextInputV3EventEnter uint32 = 0
73const ZwpTextInputV3EventLeave uint32 = 1
74const ZwpTextInputV3EventPreeditString uint32 = 2
75const ZwpTextInputV3EventCommitString uint32 = 3
76const ZwpTextInputV3EventDeleteSurroundingText uint32 = 4
77const ZwpTextInputV3EventDone uint32 = 5
78const ZwpTextInputV3EventAction uint32 = 6
79const ZwpTextInputV3EventLanguage uint32 = 7
80const ZwpTextInputV3EventPreeditHint uint32 = 8
81
82// ZwpTextInputV3ChangeCause text change reason.
83type ZwpTextInputV3ChangeCause uint32
84
85const (
86 ZwpTextInputV3ChangeCauseInputMethod ZwpTextInputV3ChangeCause = 0
87 ZwpTextInputV3ChangeCauseOther ZwpTextInputV3ChangeCause = 1
88)
89
90// ZwpTextInputV3ContentHint content hint (bitfield).
91type ZwpTextInputV3ContentHint uint32
92
93const (
94 ZwpTextInputV3ContentHintNone ZwpTextInputV3ContentHint = 0x0
95 ZwpTextInputV3ContentHintCompletion ZwpTextInputV3ContentHint = 0x1
96 ZwpTextInputV3ContentHintSpellcheck ZwpTextInputV3ContentHint = 0x2
97 ZwpTextInputV3ContentHintAutoCapitalization ZwpTextInputV3ContentHint = 0x4
98 ZwpTextInputV3ContentHintLowercase ZwpTextInputV3ContentHint = 0x8
99 ZwpTextInputV3ContentHintUppercase ZwpTextInputV3ContentHint = 0x10
100 ZwpTextInputV3ContentHintTitlecase ZwpTextInputV3ContentHint = 0x20
101 ZwpTextInputV3ContentHintHiddenText ZwpTextInputV3ContentHint = 0x40
102 ZwpTextInputV3ContentHintSensitiveData ZwpTextInputV3ContentHint = 0x80
103 ZwpTextInputV3ContentHintLatin ZwpTextInputV3ContentHint = 0x100
104 ZwpTextInputV3ContentHintMultiline ZwpTextInputV3ContentHint = 0x200
105 ZwpTextInputV3ContentHintOnScreenInputProvided ZwpTextInputV3ContentHint = 0x400
106 ZwpTextInputV3ContentHintNoEmoji ZwpTextInputV3ContentHint = 0x800
107 ZwpTextInputV3ContentHintPreeditShown ZwpTextInputV3ContentHint = 0x1000
108)
109
110// ZwpTextInputV3ContentPurpose content purpose.
111type ZwpTextInputV3ContentPurpose uint32
112
113const (
114 ZwpTextInputV3ContentPurposeNormal ZwpTextInputV3ContentPurpose = 0
115 ZwpTextInputV3ContentPurposeAlpha ZwpTextInputV3ContentPurpose = 1
116 ZwpTextInputV3ContentPurposeDigits ZwpTextInputV3ContentPurpose = 2
117 ZwpTextInputV3ContentPurposeNumber ZwpTextInputV3ContentPurpose = 3
118 ZwpTextInputV3ContentPurposePhone ZwpTextInputV3ContentPurpose = 4
119 ZwpTextInputV3ContentPurposeUrl ZwpTextInputV3ContentPurpose = 5
120 ZwpTextInputV3ContentPurposeEmail ZwpTextInputV3ContentPurpose = 6
121 ZwpTextInputV3ContentPurposeName ZwpTextInputV3ContentPurpose = 7
122 ZwpTextInputV3ContentPurposePassword ZwpTextInputV3ContentPurpose = 8
123 ZwpTextInputV3ContentPurposePin ZwpTextInputV3ContentPurpose = 9
124 ZwpTextInputV3ContentPurposeDate ZwpTextInputV3ContentPurpose = 10
125 ZwpTextInputV3ContentPurposeTime ZwpTextInputV3ContentPurpose = 11
126 ZwpTextInputV3ContentPurposeDatetime ZwpTextInputV3ContentPurpose = 12
127 ZwpTextInputV3ContentPurposeTerminal ZwpTextInputV3ContentPurpose = 13
128)
129
130// ZwpTextInputV3Error .
131type ZwpTextInputV3Error uint32
132
133const (
134 ZwpTextInputV3ErrorInvalidAction ZwpTextInputV3Error = 0
135)
136
137// ZwpTextInputV3Action action.
138type ZwpTextInputV3Action uint32
139
140const (
141 ZwpTextInputV3ActionNone ZwpTextInputV3Action = 0
142 ZwpTextInputV3ActionSubmit ZwpTextInputV3Action = 1
143)
144
145// ZwpTextInputV3PreeditHint preedit style hint.
146type ZwpTextInputV3PreeditHint uint32
147
148const (
149 ZwpTextInputV3PreeditHintWhole ZwpTextInputV3PreeditHint = 1
150 ZwpTextInputV3PreeditHintSelection ZwpTextInputV3PreeditHint = 2
151 ZwpTextInputV3PreeditHintPrediction ZwpTextInputV3PreeditHint = 3
152 ZwpTextInputV3PreeditHintPrefix ZwpTextInputV3PreeditHint = 4
153 ZwpTextInputV3PreeditHintSuffix ZwpTextInputV3PreeditHint = 5
154 ZwpTextInputV3PreeditHintSpellingError ZwpTextInputV3PreeditHint = 6
155 ZwpTextInputV3PreeditHintComposeError ZwpTextInputV3PreeditHint = 7
156)
157
158// ZwpTextInputV3Handler handles zwp_text_input_v3 requests.
159type ZwpTextInputV3Handler interface {
160 Destroy(self *ZwpTextInputV3)
161 Enable(self *ZwpTextInputV3)
162 Disable(self *ZwpTextInputV3)
163 SetSurroundingText(self *ZwpTextInputV3, text string, cursor int32, anchor int32)
164 SetTextChangeCause(self *ZwpTextInputV3, cause uint32)
165 SetContentType(self *ZwpTextInputV3, hint uint32, purpose uint32)
166 SetCursorRectangle(self *ZwpTextInputV3, x int32, y int32, width int32, height int32)
167 Commit(self *ZwpTextInputV3)
168 SetAvailableActions(self *ZwpTextInputV3, availableActions []byte)
169 ShowInputPanel(self *ZwpTextInputV3)
170 HideInputPanel(self *ZwpTextInputV3)
171}
172
173func NewZwpTextInputV3(c server.Client, version int32, id uint32, h ZwpTextInputV3Handler) (*ZwpTextInputV3, error) {
174 if h == nil {
175 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_text_input_v3")
176 }
177 var self *ZwpTextInputV3
178 r, err := c.CreateResource(ZwpTextInputV3Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
179 switch opcode {
180 case 0:
181 h.Destroy(self)
182 self.Destroy()
183 case 1:
184 h.Enable(self)
185 case 2:
186 h.Disable(self)
187 case 3:
188 h.SetSurroundingText(self, args[0].String(), args[1].Int(), args[2].Int())
189 case 4:
190 h.SetTextChangeCause(self, args[0].Uint())
191 case 5:
192 h.SetContentType(self, args[0].Uint(), args[1].Uint())
193 case 6:
194 h.SetCursorRectangle(self, args[0].Int(), args[1].Int(), args[2].Int(), args[3].Int())
195 case 7:
196 h.Commit(self)
197 case 8:
198 h.SetAvailableActions(self, args[0].Array())
199 case 9:
200 h.ShowInputPanel(self)
201 case 10:
202 h.HideInputPanel(self)
203 }
204 })
205 if err != nil {
206 return nil, err
207 }
208 self = WrapZwpTextInputV3(r)
209 r.Data = self
210 return self, nil
211}
212
213// SendEnter enter event.
214func (self *ZwpTextInputV3) SendEnter(surface *wayland.Surface) {
215 self.PostEvent(ZwpTextInputV3EventEnter, server.Object(resourceOf(surface)))
216}
217
218// SendLeave leave event.
219func (self *ZwpTextInputV3) SendLeave(surface *wayland.Surface) {
220 self.PostEvent(ZwpTextInputV3EventLeave, server.Object(resourceOf(surface)))
221}
222
223// SendPreeditString pre-edit.
224func (self *ZwpTextInputV3) SendPreeditString(text string, cursorBegin int32, cursorEnd int32) {
225 var p runtime.Pinner
226 defer p.Unpin()
227 self.PostEvent(ZwpTextInputV3EventPreeditString, server.String(&p, text, true), server.Int(cursorBegin), server.Int(cursorEnd))
228}
229
230// SendCommitString text commit.
231func (self *ZwpTextInputV3) SendCommitString(text string) {
232 var p runtime.Pinner
233 defer p.Unpin()
234 self.PostEvent(ZwpTextInputV3EventCommitString, server.String(&p, text, true))
235}
236
237// SendDeleteSurroundingText delete surrounding text.
238func (self *ZwpTextInputV3) SendDeleteSurroundingText(beforeLength uint32, afterLength uint32) {
239 self.PostEvent(ZwpTextInputV3EventDeleteSurroundingText, server.Uint(beforeLength), server.Uint(afterLength))
240}
241
242// SendDone apply changes.
243func (self *ZwpTextInputV3) SendDone(serial uint32) {
244 self.PostEvent(ZwpTextInputV3EventDone, server.Uint(serial))
245}
246
247// SendAction action performed (since version 2).
248func (self *ZwpTextInputV3) SendAction(action uint32, serial uint32) {
249 self.PostEvent(ZwpTextInputV3EventAction, server.Uint(action), server.Uint(serial))
250}
251
252// SendLanguage notify of language selection (since version 2).
253func (self *ZwpTextInputV3) SendLanguage(language string) {
254 var p runtime.Pinner
255 defer p.Unpin()
256 self.PostEvent(ZwpTextInputV3EventLanguage, server.String(&p, language, false))
257}
258
259// SendPreeditHint pre-edit (since version 2).
260func (self *ZwpTextInputV3) SendPreeditHint(start uint32, end uint32, hint uint32) {
261 self.PostEvent(ZwpTextInputV3EventPreeditHint, server.Uint(start), server.Uint(end), server.Uint(hint))
262}
263func NewZwpTextInputV3Global(d *server.Display, version int32, bind server.BindFunc) error {
264 return d.CreateGlobal(ZwpTextInputV3Interface, version, bind)
265}
266
267// ZwpTextInputManagerV3 text input manager.
268type ZwpTextInputManagerV3 struct{ *server.Resource }
269
270func WrapZwpTextInputManagerV3(r *server.Resource) *ZwpTextInputManagerV3 {
271 if r == nil {
272 return nil
273 }
274 return &ZwpTextInputManagerV3{r}
275}
276
277const ZwpTextInputManagerV3RequestDestroy uint32 = 0
278const ZwpTextInputManagerV3RequestGetTextInput uint32 = 1
279
280// ZwpTextInputManagerV3Handler handles zwp_text_input_manager_v3 requests.
281type ZwpTextInputManagerV3Handler interface {
282 Destroy(self *ZwpTextInputManagerV3)
283 GetTextInput(self *ZwpTextInputManagerV3, id uint32, seat *wayland.Seat)
284}
285
286func NewZwpTextInputManagerV3(c server.Client, version int32, id uint32, h ZwpTextInputManagerV3Handler) (*ZwpTextInputManagerV3, error) {
287 if h == nil {
288 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_text_input_manager_v3")
289 }
290 var self *ZwpTextInputManagerV3
291 r, err := c.CreateResource(ZwpTextInputManagerV3Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
292 switch opcode {
293 case 0:
294 h.Destroy(self)
295 self.Destroy()
296 case 1:
297 h.GetTextInput(self, args[0].NewID(), wayland.WrapSeat(args[1].Resource()))
298 }
299 })
300 if err != nil {
301 return nil, err
302 }
303 self = WrapZwpTextInputManagerV3(r)
304 r.Data = self
305 return self, nil
306}
307func NewZwpTextInputManagerV3Global(d *server.Display, version int32, bind server.BindFunc) error {
308 return d.CreateGlobal(ZwpTextInputManagerV3Interface, version, bind)
309}
310func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
311 if v == nil {
312 return nil
313 }
314 return v.GetResource()
315}
316func (self *ZwpTextInputV3) GetResource() *server.Resource {
317 if self == nil {
318 return nil
319 }
320 return self.Resource
321}
322func (self *ZwpTextInputManagerV3) GetResource() *server.Resource {
323 if self == nil {
324 return nil
325 }
326 return self.Resource
327}