1// Code generated by wlbgen; DO NOT EDIT.
2
3// Upstream protocol copyright and license:
4// Copyright 2014 © Stephen "Lyude" Chandler Paul
5// Copyright 2015-2024 © Red Hat, Inc.
6//
7// Permission is hereby granted, free of charge, to any person
8// obtaining a copy of this software and associated documentation files
9// (the "Software"), to deal in the Software without restriction,
10// including without limitation the rights to use, copy, modify, merge,
11// publish, distribute, sublicense, and/or sell copies of the Software,
12// and to permit persons to whom the Software is furnished to do so,
13// subject to the following conditions:
14//
15// The above copyright notice and this permission notice (including the
16// next paragraph) shall be included in all copies or substantial
17// portions of the Software.
18//
19// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
23// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
24// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26// SOFTWARE.
27
28package tablet
29
30import (
31 "fmt"
32 wayland "github.com/bnema/go-wayland-bindings/server/wayland"
33 "github.com/bnema/purego-libwayland/server"
34 "runtime"
35)
36
37var ZwpTabletManagerV2Interface *server.Interface
38var ZwpTabletSeatV2Interface *server.Interface
39var ZwpTabletToolV2Interface *server.Interface
40var ZwpTabletV2Interface *server.Interface
41var ZwpTabletPadRingV2Interface *server.Interface
42var ZwpTabletPadStripV2Interface *server.Interface
43var ZwpTabletPadGroupV2Interface *server.Interface
44var ZwpTabletPadV2Interface *server.Interface
45var ZwpTabletPadDialV2Interface *server.Interface
46
47func init() {
48 ZwpTabletManagerV2Interface = &server.Interface{Name: "zwp_tablet_manager_v2", Version: 2}
49 ZwpTabletSeatV2Interface = &server.Interface{Name: "zwp_tablet_seat_v2", Version: 2}
50 ZwpTabletToolV2Interface = &server.Interface{Name: "zwp_tablet_tool_v2", Version: 2}
51 ZwpTabletV2Interface = &server.Interface{Name: "zwp_tablet_v2", Version: 2}
52 ZwpTabletPadRingV2Interface = &server.Interface{Name: "zwp_tablet_pad_ring_v2", Version: 2}
53 ZwpTabletPadStripV2Interface = &server.Interface{Name: "zwp_tablet_pad_strip_v2", Version: 2}
54 ZwpTabletPadGroupV2Interface = &server.Interface{Name: "zwp_tablet_pad_group_v2", Version: 2}
55 ZwpTabletPadV2Interface = &server.Interface{Name: "zwp_tablet_pad_v2", Version: 2}
56 ZwpTabletPadDialV2Interface = &server.Interface{Name: "zwp_tablet_pad_dial_v2", Version: 2}
57 ZwpTabletManagerV2Interface.Requests = []server.Message{
58 {Name: "get_tablet_seat", Signature: "no", Types: []*server.Interface{ZwpTabletSeatV2Interface, wayland.SeatInterface}},
59 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
60 }
61 ZwpTabletManagerV2Interface.Events = []server.Message{}
62 ZwpTabletSeatV2Interface.Requests = []server.Message{
63 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
64 }
65 ZwpTabletSeatV2Interface.Events = []server.Message{
66 {Name: "tablet_added", Signature: "n", Types: []*server.Interface{ZwpTabletV2Interface}},
67 {Name: "tool_added", Signature: "n", Types: []*server.Interface{ZwpTabletToolV2Interface}},
68 {Name: "pad_added", Signature: "n", Types: []*server.Interface{ZwpTabletPadV2Interface}},
69 }
70 ZwpTabletToolV2Interface.Requests = []server.Message{
71 {Name: "set_cursor", Signature: "u?oii", Types: []*server.Interface{nil, wayland.SurfaceInterface, nil, nil}},
72 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
73 }
74 ZwpTabletToolV2Interface.Events = []server.Message{
75 {Name: "type", Signature: "u", Types: []*server.Interface{nil}},
76 {Name: "hardware_serial", Signature: "uu", Types: []*server.Interface{nil, nil}},
77 {Name: "hardware_id_wacom", Signature: "uu", Types: []*server.Interface{nil, nil}},
78 {Name: "capability", Signature: "u", Types: []*server.Interface{nil}},
79 {Name: "done", Signature: "", Types: []*server.Interface{}},
80 {Name: "removed", Signature: "", Types: []*server.Interface{}},
81 {Name: "proximity_in", Signature: "uoo", Types: []*server.Interface{nil, ZwpTabletV2Interface, wayland.SurfaceInterface}},
82 {Name: "proximity_out", Signature: "", Types: []*server.Interface{}},
83 {Name: "down", Signature: "u", Types: []*server.Interface{nil}},
84 {Name: "up", Signature: "", Types: []*server.Interface{}},
85 {Name: "motion", Signature: "ff", Types: []*server.Interface{nil, nil}},
86 {Name: "pressure", Signature: "u", Types: []*server.Interface{nil}},
87 {Name: "distance", Signature: "u", Types: []*server.Interface{nil}},
88 {Name: "tilt", Signature: "ff", Types: []*server.Interface{nil, nil}},
89 {Name: "rotation", Signature: "f", Types: []*server.Interface{nil}},
90 {Name: "slider", Signature: "i", Types: []*server.Interface{nil}},
91 {Name: "wheel", Signature: "fi", Types: []*server.Interface{nil, nil}},
92 {Name: "button", Signature: "uuu", Types: []*server.Interface{nil, nil, nil}},
93 {Name: "frame", Signature: "u", Types: []*server.Interface{nil}},
94 }
95 ZwpTabletV2Interface.Requests = []server.Message{
96 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
97 }
98 ZwpTabletV2Interface.Events = []server.Message{
99 {Name: "name", Signature: "s", Types: []*server.Interface{nil}},
100 {Name: "id", Signature: "uu", Types: []*server.Interface{nil, nil}},
101 {Name: "path", Signature: "s", Types: []*server.Interface{nil}},
102 {Name: "done", Signature: "", Types: []*server.Interface{}},
103 {Name: "removed", Signature: "", Types: []*server.Interface{}},
104 {Name: "bustype", Signature: "2u", Types: []*server.Interface{nil}},
105 }
106 ZwpTabletPadRingV2Interface.Requests = []server.Message{
107 {Name: "set_feedback", Signature: "su", Types: []*server.Interface{nil, nil}},
108 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
109 }
110 ZwpTabletPadRingV2Interface.Events = []server.Message{
111 {Name: "source", Signature: "u", Types: []*server.Interface{nil}},
112 {Name: "angle", Signature: "f", Types: []*server.Interface{nil}},
113 {Name: "stop", Signature: "", Types: []*server.Interface{}},
114 {Name: "frame", Signature: "u", Types: []*server.Interface{nil}},
115 }
116 ZwpTabletPadStripV2Interface.Requests = []server.Message{
117 {Name: "set_feedback", Signature: "su", Types: []*server.Interface{nil, nil}},
118 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
119 }
120 ZwpTabletPadStripV2Interface.Events = []server.Message{
121 {Name: "source", Signature: "u", Types: []*server.Interface{nil}},
122 {Name: "position", Signature: "u", Types: []*server.Interface{nil}},
123 {Name: "stop", Signature: "", Types: []*server.Interface{}},
124 {Name: "frame", Signature: "u", Types: []*server.Interface{nil}},
125 }
126 ZwpTabletPadGroupV2Interface.Requests = []server.Message{
127 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
128 }
129 ZwpTabletPadGroupV2Interface.Events = []server.Message{
130 {Name: "buttons", Signature: "a", Types: []*server.Interface{nil}},
131 {Name: "ring", Signature: "n", Types: []*server.Interface{ZwpTabletPadRingV2Interface}},
132 {Name: "strip", Signature: "n", Types: []*server.Interface{ZwpTabletPadStripV2Interface}},
133 {Name: "modes", Signature: "u", Types: []*server.Interface{nil}},
134 {Name: "done", Signature: "", Types: []*server.Interface{}},
135 {Name: "mode_switch", Signature: "uuu", Types: []*server.Interface{nil, nil, nil}},
136 {Name: "dial", Signature: "2n", Types: []*server.Interface{ZwpTabletPadDialV2Interface}},
137 }
138 ZwpTabletPadV2Interface.Requests = []server.Message{
139 {Name: "set_feedback", Signature: "usu", Types: []*server.Interface{nil, nil, nil}},
140 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
141 }
142 ZwpTabletPadV2Interface.Events = []server.Message{
143 {Name: "group", Signature: "n", Types: []*server.Interface{ZwpTabletPadGroupV2Interface}},
144 {Name: "path", Signature: "s", Types: []*server.Interface{nil}},
145 {Name: "buttons", Signature: "u", Types: []*server.Interface{nil}},
146 {Name: "done", Signature: "", Types: []*server.Interface{}},
147 {Name: "button", Signature: "uuu", Types: []*server.Interface{nil, nil, nil}},
148 {Name: "enter", Signature: "uoo", Types: []*server.Interface{nil, ZwpTabletV2Interface, wayland.SurfaceInterface}},
149 {Name: "leave", Signature: "uo", Types: []*server.Interface{nil, wayland.SurfaceInterface}},
150 {Name: "removed", Signature: "", Types: []*server.Interface{}},
151 }
152 ZwpTabletPadDialV2Interface.Requests = []server.Message{
153 {Name: "set_feedback", Signature: "su", Types: []*server.Interface{nil, nil}},
154 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
155 }
156 ZwpTabletPadDialV2Interface.Events = []server.Message{
157 {Name: "delta", Signature: "i", Types: []*server.Interface{nil}},
158 {Name: "frame", Signature: "u", Types: []*server.Interface{nil}},
159 }
160 if err := server.NewInterfaces(ZwpTabletManagerV2Interface, ZwpTabletSeatV2Interface, ZwpTabletToolV2Interface, ZwpTabletV2Interface, ZwpTabletPadRingV2Interface, ZwpTabletPadStripV2Interface, ZwpTabletPadGroupV2Interface, ZwpTabletPadV2Interface, ZwpTabletPadDialV2Interface); err != nil {
161 panic(err)
162 }
163}
164
165// ZwpTabletManagerV2 controller object for graphic tablet devices.
166type ZwpTabletManagerV2 struct{ *server.Resource }
167
168func WrapZwpTabletManagerV2(r *server.Resource) *ZwpTabletManagerV2 {
169 if r == nil {
170 return nil
171 }
172 return &ZwpTabletManagerV2{r}
173}
174
175const ZwpTabletManagerV2RequestGetTabletSeat uint32 = 0
176const ZwpTabletManagerV2RequestDestroy uint32 = 1
177
178// ZwpTabletManagerV2Handler handles zwp_tablet_manager_v2 requests.
179type ZwpTabletManagerV2Handler interface {
180 GetTabletSeat(self *ZwpTabletManagerV2, tabletSeat uint32, seat *wayland.Seat)
181 Destroy(self *ZwpTabletManagerV2)
182}
183
184func NewZwpTabletManagerV2(c server.Client, version int32, id uint32, h ZwpTabletManagerV2Handler) (*ZwpTabletManagerV2, error) {
185 if h == nil {
186 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_manager_v2")
187 }
188 var self *ZwpTabletManagerV2
189 r, err := c.CreateResource(ZwpTabletManagerV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
190 switch opcode {
191 case 0:
192 h.GetTabletSeat(self, args[0].NewID(), wayland.WrapSeat(args[1].Resource()))
193 case 1:
194 h.Destroy(self)
195 self.Destroy()
196 }
197 })
198 if err != nil {
199 return nil, err
200 }
201 self = WrapZwpTabletManagerV2(r)
202 r.Data = self
203 return self, nil
204}
205func NewZwpTabletManagerV2Global(d *server.Display, version int32, bind server.BindFunc) error {
206 return d.CreateGlobal(ZwpTabletManagerV2Interface, version, bind)
207}
208
209// ZwpTabletSeatV2 controller object for graphic tablet devices of a seat.
210type ZwpTabletSeatV2 struct{ *server.Resource }
211
212func WrapZwpTabletSeatV2(r *server.Resource) *ZwpTabletSeatV2 {
213 if r == nil {
214 return nil
215 }
216 return &ZwpTabletSeatV2{r}
217}
218
219const ZwpTabletSeatV2RequestDestroy uint32 = 0
220const ZwpTabletSeatV2EventTabletAdded uint32 = 0
221const ZwpTabletSeatV2EventToolAdded uint32 = 1
222const ZwpTabletSeatV2EventPadAdded uint32 = 2
223
224// ZwpTabletSeatV2Handler handles zwp_tablet_seat_v2 requests.
225type ZwpTabletSeatV2Handler interface {
226 Destroy(self *ZwpTabletSeatV2)
227}
228
229func NewZwpTabletSeatV2(c server.Client, version int32, id uint32, h ZwpTabletSeatV2Handler) (*ZwpTabletSeatV2, error) {
230 if h == nil {
231 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_seat_v2")
232 }
233 var self *ZwpTabletSeatV2
234 r, err := c.CreateResource(ZwpTabletSeatV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
235 switch opcode {
236 case 0:
237 h.Destroy(self)
238 self.Destroy()
239 }
240 })
241 if err != nil {
242 return nil, err
243 }
244 self = WrapZwpTabletSeatV2(r)
245 r.Data = self
246 return self, nil
247}
248
249// SendTabletAdded new device notification.
250func (self *ZwpTabletSeatV2) SendTabletAdded(id *ZwpTabletV2) {
251 self.PostEvent(ZwpTabletSeatV2EventTabletAdded, server.NewID(resourceOf(id)))
252}
253
254// SendToolAdded a new tool has been used with a tablet.
255func (self *ZwpTabletSeatV2) SendToolAdded(id *ZwpTabletToolV2) {
256 self.PostEvent(ZwpTabletSeatV2EventToolAdded, server.NewID(resourceOf(id)))
257}
258
259// SendPadAdded new pad notification.
260func (self *ZwpTabletSeatV2) SendPadAdded(id *ZwpTabletPadV2) {
261 self.PostEvent(ZwpTabletSeatV2EventPadAdded, server.NewID(resourceOf(id)))
262}
263func NewZwpTabletSeatV2Global(d *server.Display, version int32, bind server.BindFunc) error {
264 return d.CreateGlobal(ZwpTabletSeatV2Interface, version, bind)
265}
266
267// ZwpTabletToolV2 a physical tablet tool.
268type ZwpTabletToolV2 struct{ *server.Resource }
269
270func WrapZwpTabletToolV2(r *server.Resource) *ZwpTabletToolV2 {
271 if r == nil {
272 return nil
273 }
274 return &ZwpTabletToolV2{r}
275}
276
277const ZwpTabletToolV2RequestSetCursor uint32 = 0
278const ZwpTabletToolV2RequestDestroy uint32 = 1
279const ZwpTabletToolV2EventType uint32 = 0
280const ZwpTabletToolV2EventHardwareSerial uint32 = 1
281const ZwpTabletToolV2EventHardwareIdWacom uint32 = 2
282const ZwpTabletToolV2EventCapability uint32 = 3
283const ZwpTabletToolV2EventDone uint32 = 4
284const ZwpTabletToolV2EventRemoved uint32 = 5
285const ZwpTabletToolV2EventProximityIn uint32 = 6
286const ZwpTabletToolV2EventProximityOut uint32 = 7
287const ZwpTabletToolV2EventDown uint32 = 8
288const ZwpTabletToolV2EventUp uint32 = 9
289const ZwpTabletToolV2EventMotion uint32 = 10
290const ZwpTabletToolV2EventPressure uint32 = 11
291const ZwpTabletToolV2EventDistance uint32 = 12
292const ZwpTabletToolV2EventTilt uint32 = 13
293const ZwpTabletToolV2EventRotation uint32 = 14
294const ZwpTabletToolV2EventSlider uint32 = 15
295const ZwpTabletToolV2EventWheel uint32 = 16
296const ZwpTabletToolV2EventButton uint32 = 17
297const ZwpTabletToolV2EventFrame uint32 = 18
298
299// ZwpTabletToolV2Type a physical tool type.
300type ZwpTabletToolV2Type uint32
301
302const (
303 ZwpTabletToolV2TypePen ZwpTabletToolV2Type = 0x140
304 ZwpTabletToolV2TypeEraser ZwpTabletToolV2Type = 0x141
305 ZwpTabletToolV2TypeBrush ZwpTabletToolV2Type = 0x142
306 ZwpTabletToolV2TypePencil ZwpTabletToolV2Type = 0x143
307 ZwpTabletToolV2TypeAirbrush ZwpTabletToolV2Type = 0x144
308 ZwpTabletToolV2TypeFinger ZwpTabletToolV2Type = 0x145
309 ZwpTabletToolV2TypeMouse ZwpTabletToolV2Type = 0x146
310 ZwpTabletToolV2TypeLens ZwpTabletToolV2Type = 0x147
311)
312
313// ZwpTabletToolV2Capability capability flags for a tool.
314type ZwpTabletToolV2Capability uint32
315
316const (
317 ZwpTabletToolV2CapabilityTilt ZwpTabletToolV2Capability = 1
318 ZwpTabletToolV2CapabilityPressure ZwpTabletToolV2Capability = 2
319 ZwpTabletToolV2CapabilityDistance ZwpTabletToolV2Capability = 3
320 ZwpTabletToolV2CapabilityRotation ZwpTabletToolV2Capability = 4
321 ZwpTabletToolV2CapabilitySlider ZwpTabletToolV2Capability = 5
322 ZwpTabletToolV2CapabilityWheel ZwpTabletToolV2Capability = 6
323)
324
325// ZwpTabletToolV2ButtonState physical button state.
326type ZwpTabletToolV2ButtonState uint32
327
328const (
329 ZwpTabletToolV2ButtonStateReleased ZwpTabletToolV2ButtonState = 0
330 ZwpTabletToolV2ButtonStatePressed ZwpTabletToolV2ButtonState = 1
331)
332
333// ZwpTabletToolV2Error .
334type ZwpTabletToolV2Error uint32
335
336const (
337 ZwpTabletToolV2ErrorRole ZwpTabletToolV2Error = 0
338)
339
340// ZwpTabletToolV2Handler handles zwp_tablet_tool_v2 requests.
341type ZwpTabletToolV2Handler interface {
342 SetCursor(self *ZwpTabletToolV2, serial uint32, surface *wayland.Surface, hotspotX int32, hotspotY int32)
343 Destroy(self *ZwpTabletToolV2)
344}
345
346func NewZwpTabletToolV2(c server.Client, version int32, id uint32, h ZwpTabletToolV2Handler) (*ZwpTabletToolV2, error) {
347 if h == nil {
348 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_tool_v2")
349 }
350 var self *ZwpTabletToolV2
351 r, err := c.CreateResource(ZwpTabletToolV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
352 switch opcode {
353 case 0:
354 h.SetCursor(self, args[0].Uint(), wayland.WrapSurface(args[1].Resource()), args[2].Int(), args[3].Int())
355 case 1:
356 h.Destroy(self)
357 self.Destroy()
358 }
359 })
360 if err != nil {
361 return nil, err
362 }
363 self = WrapZwpTabletToolV2(r)
364 r.Data = self
365 return self, nil
366}
367
368// SendType tool type.
369func (self *ZwpTabletToolV2) SendType(toolType uint32) {
370 self.PostEvent(ZwpTabletToolV2EventType, server.Uint(toolType))
371}
372
373// SendHardwareSerial unique hardware serial number of the tool.
374func (self *ZwpTabletToolV2) SendHardwareSerial(hardwareSerialHi uint32, hardwareSerialLo uint32) {
375 self.PostEvent(ZwpTabletToolV2EventHardwareSerial, server.Uint(hardwareSerialHi), server.Uint(hardwareSerialLo))
376}
377
378// SendHardwareIdWacom hardware id notification in Wacom's format.
379func (self *ZwpTabletToolV2) SendHardwareIdWacom(hardwareIdHi uint32, hardwareIdLo uint32) {
380 self.PostEvent(ZwpTabletToolV2EventHardwareIdWacom, server.Uint(hardwareIdHi), server.Uint(hardwareIdLo))
381}
382
383// SendCapability tool capability notification.
384func (self *ZwpTabletToolV2) SendCapability(capability uint32) {
385 self.PostEvent(ZwpTabletToolV2EventCapability, server.Uint(capability))
386}
387
388// SendDone tool description events sequence complete.
389func (self *ZwpTabletToolV2) SendDone() {
390 self.PostEvent(ZwpTabletToolV2EventDone)
391}
392
393// SendRemoved tool removed.
394func (self *ZwpTabletToolV2) SendRemoved() {
395 self.PostEvent(ZwpTabletToolV2EventRemoved)
396}
397
398// SendProximityIn proximity in event.
399func (self *ZwpTabletToolV2) SendProximityIn(serial uint32, tablet *ZwpTabletV2, surface *wayland.Surface) {
400 self.PostEvent(ZwpTabletToolV2EventProximityIn, server.Uint(serial), server.Object(resourceOf(tablet)), server.Object(resourceOf(surface)))
401}
402
403// SendProximityOut proximity out event.
404func (self *ZwpTabletToolV2) SendProximityOut() {
405 self.PostEvent(ZwpTabletToolV2EventProximityOut)
406}
407
408// SendDown tablet tool is making contact.
409func (self *ZwpTabletToolV2) SendDown(serial uint32) {
410 self.PostEvent(ZwpTabletToolV2EventDown, server.Uint(serial))
411}
412
413// SendUp tablet tool is no longer making contact.
414func (self *ZwpTabletToolV2) SendUp() {
415 self.PostEvent(ZwpTabletToolV2EventUp)
416}
417
418// SendMotion motion event.
419func (self *ZwpTabletToolV2) SendMotion(x server.Fixed, y server.Fixed) {
420 self.PostEvent(ZwpTabletToolV2EventMotion, server.FixedArg(x), server.FixedArg(y))
421}
422
423// SendPressure pressure change event.
424func (self *ZwpTabletToolV2) SendPressure(pressure uint32) {
425 self.PostEvent(ZwpTabletToolV2EventPressure, server.Uint(pressure))
426}
427
428// SendDistance distance change event.
429func (self *ZwpTabletToolV2) SendDistance(distance uint32) {
430 self.PostEvent(ZwpTabletToolV2EventDistance, server.Uint(distance))
431}
432
433// SendTilt tilt change event.
434func (self *ZwpTabletToolV2) SendTilt(tiltX server.Fixed, tiltY server.Fixed) {
435 self.PostEvent(ZwpTabletToolV2EventTilt, server.FixedArg(tiltX), server.FixedArg(tiltY))
436}
437
438// SendRotation z-rotation change event.
439func (self *ZwpTabletToolV2) SendRotation(degrees server.Fixed) {
440 self.PostEvent(ZwpTabletToolV2EventRotation, server.FixedArg(degrees))
441}
442
443// SendSlider Slider position change event.
444func (self *ZwpTabletToolV2) SendSlider(position int32) {
445 self.PostEvent(ZwpTabletToolV2EventSlider, server.Int(position))
446}
447
448// SendWheel Wheel delta event.
449func (self *ZwpTabletToolV2) SendWheel(degrees server.Fixed, clicks int32) {
450 self.PostEvent(ZwpTabletToolV2EventWheel, server.FixedArg(degrees), server.Int(clicks))
451}
452
453// SendButton button event.
454func (self *ZwpTabletToolV2) SendButton(serial uint32, button uint32, state uint32) {
455 self.PostEvent(ZwpTabletToolV2EventButton, server.Uint(serial), server.Uint(button), server.Uint(state))
456}
457
458// SendFrame frame event.
459func (self *ZwpTabletToolV2) SendFrame(time uint32) {
460 self.PostEvent(ZwpTabletToolV2EventFrame, server.Uint(time))
461}
462func NewZwpTabletToolV2Global(d *server.Display, version int32, bind server.BindFunc) error {
463 return d.CreateGlobal(ZwpTabletToolV2Interface, version, bind)
464}
465
466// ZwpTabletV2 graphics tablet device.
467type ZwpTabletV2 struct{ *server.Resource }
468
469func WrapZwpTabletV2(r *server.Resource) *ZwpTabletV2 {
470 if r == nil {
471 return nil
472 }
473 return &ZwpTabletV2{r}
474}
475
476const ZwpTabletV2RequestDestroy uint32 = 0
477const ZwpTabletV2EventName uint32 = 0
478const ZwpTabletV2EventId uint32 = 1
479const ZwpTabletV2EventPath uint32 = 2
480const ZwpTabletV2EventDone uint32 = 3
481const ZwpTabletV2EventRemoved uint32 = 4
482const ZwpTabletV2EventBustype uint32 = 5
483
484// ZwpTabletV2Bustype bus type .
485type ZwpTabletV2Bustype uint32
486
487const (
488 ZwpTabletV2BustypeUsb ZwpTabletV2Bustype = 3
489 ZwpTabletV2BustypeBluetooth ZwpTabletV2Bustype = 5
490 ZwpTabletV2BustypeVirtual ZwpTabletV2Bustype = 6
491 ZwpTabletV2BustypeSerial ZwpTabletV2Bustype = 17
492 ZwpTabletV2BustypeI2c ZwpTabletV2Bustype = 24
493)
494
495// ZwpTabletV2Handler handles zwp_tablet_v2 requests.
496type ZwpTabletV2Handler interface {
497 Destroy(self *ZwpTabletV2)
498}
499
500func NewZwpTabletV2(c server.Client, version int32, id uint32, h ZwpTabletV2Handler) (*ZwpTabletV2, error) {
501 if h == nil {
502 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_v2")
503 }
504 var self *ZwpTabletV2
505 r, err := c.CreateResource(ZwpTabletV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
506 switch opcode {
507 case 0:
508 h.Destroy(self)
509 self.Destroy()
510 }
511 })
512 if err != nil {
513 return nil, err
514 }
515 self = WrapZwpTabletV2(r)
516 r.Data = self
517 return self, nil
518}
519
520// SendName tablet device name.
521func (self *ZwpTabletV2) SendName(name string) {
522 var p runtime.Pinner
523 defer p.Unpin()
524 self.PostEvent(ZwpTabletV2EventName, server.String(&p, name, false))
525}
526
527// SendId tablet device vendor/product id.
528func (self *ZwpTabletV2) SendId(vid uint32, pid uint32) {
529 self.PostEvent(ZwpTabletV2EventId, server.Uint(vid), server.Uint(pid))
530}
531
532// SendPath path to the device.
533func (self *ZwpTabletV2) SendPath(path string) {
534 var p runtime.Pinner
535 defer p.Unpin()
536 self.PostEvent(ZwpTabletV2EventPath, server.String(&p, path, false))
537}
538
539// SendDone tablet description events sequence complete.
540func (self *ZwpTabletV2) SendDone() {
541 self.PostEvent(ZwpTabletV2EventDone)
542}
543
544// SendRemoved tablet removed event.
545func (self *ZwpTabletV2) SendRemoved() {
546 self.PostEvent(ZwpTabletV2EventRemoved)
547}
548
549// SendBustype tablet device bus type (since version 2).
550func (self *ZwpTabletV2) SendBustype(bustype uint32) {
551 self.PostEvent(ZwpTabletV2EventBustype, server.Uint(bustype))
552}
553func NewZwpTabletV2Global(d *server.Display, version int32, bind server.BindFunc) error {
554 return d.CreateGlobal(ZwpTabletV2Interface, version, bind)
555}
556
557// ZwpTabletPadRingV2 pad ring.
558type ZwpTabletPadRingV2 struct{ *server.Resource }
559
560func WrapZwpTabletPadRingV2(r *server.Resource) *ZwpTabletPadRingV2 {
561 if r == nil {
562 return nil
563 }
564 return &ZwpTabletPadRingV2{r}
565}
566
567const ZwpTabletPadRingV2RequestSetFeedback uint32 = 0
568const ZwpTabletPadRingV2RequestDestroy uint32 = 1
569const ZwpTabletPadRingV2EventSource uint32 = 0
570const ZwpTabletPadRingV2EventAngle uint32 = 1
571const ZwpTabletPadRingV2EventStop uint32 = 2
572const ZwpTabletPadRingV2EventFrame uint32 = 3
573
574// ZwpTabletPadRingV2Source ring axis source.
575type ZwpTabletPadRingV2Source uint32
576
577const (
578 ZwpTabletPadRingV2SourceFinger ZwpTabletPadRingV2Source = 1
579)
580
581// ZwpTabletPadRingV2Handler handles zwp_tablet_pad_ring_v2 requests.
582type ZwpTabletPadRingV2Handler interface {
583 SetFeedback(self *ZwpTabletPadRingV2, description string, serial uint32)
584 Destroy(self *ZwpTabletPadRingV2)
585}
586
587func NewZwpTabletPadRingV2(c server.Client, version int32, id uint32, h ZwpTabletPadRingV2Handler) (*ZwpTabletPadRingV2, error) {
588 if h == nil {
589 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_pad_ring_v2")
590 }
591 var self *ZwpTabletPadRingV2
592 r, err := c.CreateResource(ZwpTabletPadRingV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
593 switch opcode {
594 case 0:
595 h.SetFeedback(self, args[0].String(), args[1].Uint())
596 case 1:
597 h.Destroy(self)
598 self.Destroy()
599 }
600 })
601 if err != nil {
602 return nil, err
603 }
604 self = WrapZwpTabletPadRingV2(r)
605 r.Data = self
606 return self, nil
607}
608
609// SendSource ring event source.
610func (self *ZwpTabletPadRingV2) SendSource(source uint32) {
611 self.PostEvent(ZwpTabletPadRingV2EventSource, server.Uint(source))
612}
613
614// SendAngle angle changed.
615func (self *ZwpTabletPadRingV2) SendAngle(degrees server.Fixed) {
616 self.PostEvent(ZwpTabletPadRingV2EventAngle, server.FixedArg(degrees))
617}
618
619// SendStop interaction stopped.
620func (self *ZwpTabletPadRingV2) SendStop() {
621 self.PostEvent(ZwpTabletPadRingV2EventStop)
622}
623
624// SendFrame end of a ring event sequence.
625func (self *ZwpTabletPadRingV2) SendFrame(time uint32) {
626 self.PostEvent(ZwpTabletPadRingV2EventFrame, server.Uint(time))
627}
628func NewZwpTabletPadRingV2Global(d *server.Display, version int32, bind server.BindFunc) error {
629 return d.CreateGlobal(ZwpTabletPadRingV2Interface, version, bind)
630}
631
632// ZwpTabletPadStripV2 pad strip.
633type ZwpTabletPadStripV2 struct{ *server.Resource }
634
635func WrapZwpTabletPadStripV2(r *server.Resource) *ZwpTabletPadStripV2 {
636 if r == nil {
637 return nil
638 }
639 return &ZwpTabletPadStripV2{r}
640}
641
642const ZwpTabletPadStripV2RequestSetFeedback uint32 = 0
643const ZwpTabletPadStripV2RequestDestroy uint32 = 1
644const ZwpTabletPadStripV2EventSource uint32 = 0
645const ZwpTabletPadStripV2EventPosition uint32 = 1
646const ZwpTabletPadStripV2EventStop uint32 = 2
647const ZwpTabletPadStripV2EventFrame uint32 = 3
648
649// ZwpTabletPadStripV2Source strip axis source.
650type ZwpTabletPadStripV2Source uint32
651
652const (
653 ZwpTabletPadStripV2SourceFinger ZwpTabletPadStripV2Source = 1
654)
655
656// ZwpTabletPadStripV2Handler handles zwp_tablet_pad_strip_v2 requests.
657type ZwpTabletPadStripV2Handler interface {
658 SetFeedback(self *ZwpTabletPadStripV2, description string, serial uint32)
659 Destroy(self *ZwpTabletPadStripV2)
660}
661
662func NewZwpTabletPadStripV2(c server.Client, version int32, id uint32, h ZwpTabletPadStripV2Handler) (*ZwpTabletPadStripV2, error) {
663 if h == nil {
664 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_pad_strip_v2")
665 }
666 var self *ZwpTabletPadStripV2
667 r, err := c.CreateResource(ZwpTabletPadStripV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
668 switch opcode {
669 case 0:
670 h.SetFeedback(self, args[0].String(), args[1].Uint())
671 case 1:
672 h.Destroy(self)
673 self.Destroy()
674 }
675 })
676 if err != nil {
677 return nil, err
678 }
679 self = WrapZwpTabletPadStripV2(r)
680 r.Data = self
681 return self, nil
682}
683
684// SendSource strip event source.
685func (self *ZwpTabletPadStripV2) SendSource(source uint32) {
686 self.PostEvent(ZwpTabletPadStripV2EventSource, server.Uint(source))
687}
688
689// SendPosition position changed.
690func (self *ZwpTabletPadStripV2) SendPosition(position uint32) {
691 self.PostEvent(ZwpTabletPadStripV2EventPosition, server.Uint(position))
692}
693
694// SendStop interaction stopped.
695func (self *ZwpTabletPadStripV2) SendStop() {
696 self.PostEvent(ZwpTabletPadStripV2EventStop)
697}
698
699// SendFrame end of a strip event sequence.
700func (self *ZwpTabletPadStripV2) SendFrame(time uint32) {
701 self.PostEvent(ZwpTabletPadStripV2EventFrame, server.Uint(time))
702}
703func NewZwpTabletPadStripV2Global(d *server.Display, version int32, bind server.BindFunc) error {
704 return d.CreateGlobal(ZwpTabletPadStripV2Interface, version, bind)
705}
706
707// ZwpTabletPadGroupV2 a set of buttons, rings and strips.
708type ZwpTabletPadGroupV2 struct{ *server.Resource }
709
710func WrapZwpTabletPadGroupV2(r *server.Resource) *ZwpTabletPadGroupV2 {
711 if r == nil {
712 return nil
713 }
714 return &ZwpTabletPadGroupV2{r}
715}
716
717const ZwpTabletPadGroupV2RequestDestroy uint32 = 0
718const ZwpTabletPadGroupV2EventButtons uint32 = 0
719const ZwpTabletPadGroupV2EventRing uint32 = 1
720const ZwpTabletPadGroupV2EventStrip uint32 = 2
721const ZwpTabletPadGroupV2EventModes uint32 = 3
722const ZwpTabletPadGroupV2EventDone uint32 = 4
723const ZwpTabletPadGroupV2EventModeSwitch uint32 = 5
724const ZwpTabletPadGroupV2EventDial uint32 = 6
725
726// ZwpTabletPadGroupV2Handler handles zwp_tablet_pad_group_v2 requests.
727type ZwpTabletPadGroupV2Handler interface {
728 Destroy(self *ZwpTabletPadGroupV2)
729}
730
731func NewZwpTabletPadGroupV2(c server.Client, version int32, id uint32, h ZwpTabletPadGroupV2Handler) (*ZwpTabletPadGroupV2, error) {
732 if h == nil {
733 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_pad_group_v2")
734 }
735 var self *ZwpTabletPadGroupV2
736 r, err := c.CreateResource(ZwpTabletPadGroupV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
737 switch opcode {
738 case 0:
739 h.Destroy(self)
740 self.Destroy()
741 }
742 })
743 if err != nil {
744 return nil, err
745 }
746 self = WrapZwpTabletPadGroupV2(r)
747 r.Data = self
748 return self, nil
749}
750
751// SendButtons buttons announced.
752func (self *ZwpTabletPadGroupV2) SendButtons(buttons []byte) {
753 var p runtime.Pinner
754 defer p.Unpin()
755 self.PostEvent(ZwpTabletPadGroupV2EventButtons, server.Array(&p, buttons))
756}
757
758// SendRing ring announced.
759func (self *ZwpTabletPadGroupV2) SendRing(ring *ZwpTabletPadRingV2) {
760 self.PostEvent(ZwpTabletPadGroupV2EventRing, server.NewID(resourceOf(ring)))
761}
762
763// SendStrip strip announced.
764func (self *ZwpTabletPadGroupV2) SendStrip(strip *ZwpTabletPadStripV2) {
765 self.PostEvent(ZwpTabletPadGroupV2EventStrip, server.NewID(resourceOf(strip)))
766}
767
768// SendModes mode-switch ability announced.
769func (self *ZwpTabletPadGroupV2) SendModes(modes uint32) {
770 self.PostEvent(ZwpTabletPadGroupV2EventModes, server.Uint(modes))
771}
772
773// SendDone tablet group description events sequence complete.
774func (self *ZwpTabletPadGroupV2) SendDone() {
775 self.PostEvent(ZwpTabletPadGroupV2EventDone)
776}
777
778// SendModeSwitch mode switch event.
779func (self *ZwpTabletPadGroupV2) SendModeSwitch(time uint32, serial uint32, mode uint32) {
780 self.PostEvent(ZwpTabletPadGroupV2EventModeSwitch, server.Uint(time), server.Uint(serial), server.Uint(mode))
781}
782
783// SendDial dial announced (since version 2).
784func (self *ZwpTabletPadGroupV2) SendDial(dial *ZwpTabletPadDialV2) {
785 self.PostEvent(ZwpTabletPadGroupV2EventDial, server.NewID(resourceOf(dial)))
786}
787func NewZwpTabletPadGroupV2Global(d *server.Display, version int32, bind server.BindFunc) error {
788 return d.CreateGlobal(ZwpTabletPadGroupV2Interface, version, bind)
789}
790
791// ZwpTabletPadV2 a set of buttons, rings, strips and dials.
792type ZwpTabletPadV2 struct{ *server.Resource }
793
794func WrapZwpTabletPadV2(r *server.Resource) *ZwpTabletPadV2 {
795 if r == nil {
796 return nil
797 }
798 return &ZwpTabletPadV2{r}
799}
800
801const ZwpTabletPadV2RequestSetFeedback uint32 = 0
802const ZwpTabletPadV2RequestDestroy uint32 = 1
803const ZwpTabletPadV2EventGroup uint32 = 0
804const ZwpTabletPadV2EventPath uint32 = 1
805const ZwpTabletPadV2EventButtons uint32 = 2
806const ZwpTabletPadV2EventDone uint32 = 3
807const ZwpTabletPadV2EventButton uint32 = 4
808const ZwpTabletPadV2EventEnter uint32 = 5
809const ZwpTabletPadV2EventLeave uint32 = 6
810const ZwpTabletPadV2EventRemoved uint32 = 7
811
812// ZwpTabletPadV2ButtonState physical button state.
813type ZwpTabletPadV2ButtonState uint32
814
815const (
816 ZwpTabletPadV2ButtonStateReleased ZwpTabletPadV2ButtonState = 0
817 ZwpTabletPadV2ButtonStatePressed ZwpTabletPadV2ButtonState = 1
818)
819
820// ZwpTabletPadV2Handler handles zwp_tablet_pad_v2 requests.
821type ZwpTabletPadV2Handler interface {
822 SetFeedback(self *ZwpTabletPadV2, button uint32, description string, serial uint32)
823 Destroy(self *ZwpTabletPadV2)
824}
825
826func NewZwpTabletPadV2(c server.Client, version int32, id uint32, h ZwpTabletPadV2Handler) (*ZwpTabletPadV2, error) {
827 if h == nil {
828 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_pad_v2")
829 }
830 var self *ZwpTabletPadV2
831 r, err := c.CreateResource(ZwpTabletPadV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
832 switch opcode {
833 case 0:
834 h.SetFeedback(self, args[0].Uint(), args[1].String(), args[2].Uint())
835 case 1:
836 h.Destroy(self)
837 self.Destroy()
838 }
839 })
840 if err != nil {
841 return nil, err
842 }
843 self = WrapZwpTabletPadV2(r)
844 r.Data = self
845 return self, nil
846}
847
848// SendGroup group announced.
849func (self *ZwpTabletPadV2) SendGroup(padGroup *ZwpTabletPadGroupV2) {
850 self.PostEvent(ZwpTabletPadV2EventGroup, server.NewID(resourceOf(padGroup)))
851}
852
853// SendPath path to the device.
854func (self *ZwpTabletPadV2) SendPath(path string) {
855 var p runtime.Pinner
856 defer p.Unpin()
857 self.PostEvent(ZwpTabletPadV2EventPath, server.String(&p, path, false))
858}
859
860// SendButtons buttons announced.
861func (self *ZwpTabletPadV2) SendButtons(buttons uint32) {
862 self.PostEvent(ZwpTabletPadV2EventButtons, server.Uint(buttons))
863}
864
865// SendDone pad description event sequence complete.
866func (self *ZwpTabletPadV2) SendDone() {
867 self.PostEvent(ZwpTabletPadV2EventDone)
868}
869
870// SendButton physical button state.
871func (self *ZwpTabletPadV2) SendButton(time uint32, button uint32, state uint32) {
872 self.PostEvent(ZwpTabletPadV2EventButton, server.Uint(time), server.Uint(button), server.Uint(state))
873}
874
875// SendEnter enter event.
876func (self *ZwpTabletPadV2) SendEnter(serial uint32, tablet *ZwpTabletV2, surface *wayland.Surface) {
877 self.PostEvent(ZwpTabletPadV2EventEnter, server.Uint(serial), server.Object(resourceOf(tablet)), server.Object(resourceOf(surface)))
878}
879
880// SendLeave leave event.
881func (self *ZwpTabletPadV2) SendLeave(serial uint32, surface *wayland.Surface) {
882 self.PostEvent(ZwpTabletPadV2EventLeave, server.Uint(serial), server.Object(resourceOf(surface)))
883}
884
885// SendRemoved pad removed event.
886func (self *ZwpTabletPadV2) SendRemoved() {
887 self.PostEvent(ZwpTabletPadV2EventRemoved)
888}
889func NewZwpTabletPadV2Global(d *server.Display, version int32, bind server.BindFunc) error {
890 return d.CreateGlobal(ZwpTabletPadV2Interface, version, bind)
891}
892
893// ZwpTabletPadDialV2 pad dial.
894type ZwpTabletPadDialV2 struct{ *server.Resource }
895
896func WrapZwpTabletPadDialV2(r *server.Resource) *ZwpTabletPadDialV2 {
897 if r == nil {
898 return nil
899 }
900 return &ZwpTabletPadDialV2{r}
901}
902
903const ZwpTabletPadDialV2RequestSetFeedback uint32 = 0
904const ZwpTabletPadDialV2RequestDestroy uint32 = 1
905const ZwpTabletPadDialV2EventDelta uint32 = 0
906const ZwpTabletPadDialV2EventFrame uint32 = 1
907
908// ZwpTabletPadDialV2Handler handles zwp_tablet_pad_dial_v2 requests.
909type ZwpTabletPadDialV2Handler interface {
910 SetFeedback(self *ZwpTabletPadDialV2, description string, serial uint32)
911 Destroy(self *ZwpTabletPadDialV2)
912}
913
914func NewZwpTabletPadDialV2(c server.Client, version int32, id uint32, h ZwpTabletPadDialV2Handler) (*ZwpTabletPadDialV2, error) {
915 if h == nil {
916 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_tablet_pad_dial_v2")
917 }
918 var self *ZwpTabletPadDialV2
919 r, err := c.CreateResource(ZwpTabletPadDialV2Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
920 switch opcode {
921 case 0:
922 h.SetFeedback(self, args[0].String(), args[1].Uint())
923 case 1:
924 h.Destroy(self)
925 self.Destroy()
926 }
927 })
928 if err != nil {
929 return nil, err
930 }
931 self = WrapZwpTabletPadDialV2(r)
932 r.Data = self
933 return self, nil
934}
935
936// SendDelta delta movement.
937func (self *ZwpTabletPadDialV2) SendDelta(value120 int32) {
938 self.PostEvent(ZwpTabletPadDialV2EventDelta, server.Int(value120))
939}
940
941// SendFrame end of a dial event sequence.
942func (self *ZwpTabletPadDialV2) SendFrame(time uint32) {
943 self.PostEvent(ZwpTabletPadDialV2EventFrame, server.Uint(time))
944}
945func NewZwpTabletPadDialV2Global(d *server.Display, version int32, bind server.BindFunc) error {
946 return d.CreateGlobal(ZwpTabletPadDialV2Interface, version, bind)
947}
948func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
949 if v == nil {
950 return nil
951 }
952 return v.GetResource()
953}
954func (self *ZwpTabletManagerV2) GetResource() *server.Resource {
955 if self == nil {
956 return nil
957 }
958 return self.Resource
959}
960func (self *ZwpTabletSeatV2) GetResource() *server.Resource {
961 if self == nil {
962 return nil
963 }
964 return self.Resource
965}
966func (self *ZwpTabletToolV2) GetResource() *server.Resource {
967 if self == nil {
968 return nil
969 }
970 return self.Resource
971}
972func (self *ZwpTabletV2) GetResource() *server.Resource {
973 if self == nil {
974 return nil
975 }
976 return self.Resource
977}
978func (self *ZwpTabletPadRingV2) GetResource() *server.Resource {
979 if self == nil {
980 return nil
981 }
982 return self.Resource
983}
984func (self *ZwpTabletPadStripV2) GetResource() *server.Resource {
985 if self == nil {
986 return nil
987 }
988 return self.Resource
989}
990func (self *ZwpTabletPadGroupV2) GetResource() *server.Resource {
991 if self == nil {
992 return nil
993 }
994 return self.Resource
995}
996func (self *ZwpTabletPadV2) GetResource() *server.Resource {
997 if self == nil {
998 return nil
999 }
1000 return self.Resource
1001}
1002func (self *ZwpTabletPadDialV2) GetResource() *server.Resource {
1003 if self == nil {
1004 return nil
1005 }
1006 return self.Resource
1007}