v0.2.0 107c393

tabletv2.go RawHistoryFolder

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

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 14

↑↓ moveenter openesc close