1// Code generated by wlgen; DO NOT EDIT.
2package pointerwarp
3
4import (
5 "fmt"
6 wayland "github.com/bnema/purego-libwayland/protocol/wayland"
7 "github.com/bnema/purego-libwayland/server"
8)
9
10var WpPointerWarpV1Interface *server.Interface
11
12func init() {
13 WpPointerWarpV1Interface = &server.Interface{Name: "wp_pointer_warp_v1", Version: 1}
14 WpPointerWarpV1Interface.Requests = []server.Message{
15 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
16 {Name: "warp_pointer", Signature: "ooffu", Types: []*server.Interface{wayland.SurfaceInterface, wayland.PointerInterface, nil, nil, nil}},
17 }
18 WpPointerWarpV1Interface.Events = []server.Message{}
19 if err := server.NewInterfaces(WpPointerWarpV1Interface); err != nil {
20 panic(err)
21 }
22}
23
24// WpPointerWarpV1 reposition the pointer to a location on a surface.
25type WpPointerWarpV1 struct{ *server.Resource }
26
27func WrapWpPointerWarpV1(r *server.Resource) *WpPointerWarpV1 {
28 if r == nil {
29 return nil
30 }
31 return &WpPointerWarpV1{r}
32}
33
34const WpPointerWarpV1RequestDestroy uint32 = 0
35const WpPointerWarpV1RequestWarpPointer uint32 = 1
36
37// WpPointerWarpV1Handler handles wp_pointer_warp_v1 requests.
38type WpPointerWarpV1Handler interface {
39 Destroy(self *WpPointerWarpV1)
40 WarpPointer(self *WpPointerWarpV1, surface *wayland.Surface, pointer *wayland.Pointer, x server.Fixed, y server.Fixed, serial uint32)
41}
42
43func NewWpPointerWarpV1(c server.Client, version int32, id uint32, h WpPointerWarpV1Handler) (*WpPointerWarpV1, error) {
44 if h == nil {
45 return nil, fmt.Errorf("purego-libwayland: nil handler for wp_pointer_warp_v1")
46 }
47 var self *WpPointerWarpV1
48 r, err := c.CreateResource(WpPointerWarpV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
49 switch opcode {
50 case 0:
51 h.Destroy(self)
52 self.Destroy()
53 case 1:
54 h.WarpPointer(self, wayland.WrapSurface(args[0].Resource()), wayland.WrapPointer(args[1].Resource()), args[2].Fixed(), args[3].Fixed(), args[4].Uint())
55 }
56 })
57 if err != nil {
58 return nil, err
59 }
60 self = WrapWpPointerWarpV1(r)
61 r.Data = self
62 return self, nil
63}
64func NewWpPointerWarpV1Global(d *server.Display, version int32, bind server.BindFunc) error {
65 return d.CreateGlobal(WpPointerWarpV1Interface, version, bind)
66}
67func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
68 if v == nil {
69 return nil
70 }
71 return v.GetResource()
72}
73func (self *WpPointerWarpV1) GetResource() *server.Resource {
74 if self == nil {
75 return nil
76 }
77 return self.Resource
78}