main 5004296

tablet_generated.go RawHistoryFolder

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}

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 1

↑↓ moveenter openesc close