1// Code generated by wlgen; DO NOT EDIT.
2package xdgtopleveldrag
3
4import (
5 "fmt"
6 wayland "github.com/bnema/purego-libwayland/protocol/wayland"
7 xdgshell "github.com/bnema/purego-libwayland/protocol/xdgshell"
8 "github.com/bnema/purego-libwayland/server"
9)
10
11var ToplevelDragManagerV1Interface *server.Interface
12var ToplevelDragV1Interface *server.Interface
13
14func init() {
15 ToplevelDragManagerV1Interface = &server.Interface{Name: "xdg_toplevel_drag_manager_v1", Version: 1}
16 ToplevelDragV1Interface = &server.Interface{Name: "xdg_toplevel_drag_v1", Version: 1}
17 ToplevelDragManagerV1Interface.Requests = []server.Message{
18 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
19 {Name: "get_xdg_toplevel_drag", Signature: "no", Types: []*server.Interface{ToplevelDragV1Interface, wayland.DataSourceInterface}},
20 }
21 ToplevelDragManagerV1Interface.Events = []server.Message{}
22 ToplevelDragV1Interface.Requests = []server.Message{
23 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
24 {Name: "attach", Signature: "oii", Types: []*server.Interface{xdgshell.ToplevelInterface, nil, nil}},
25 }
26 ToplevelDragV1Interface.Events = []server.Message{}
27 if err := server.NewInterfaces(ToplevelDragManagerV1Interface, ToplevelDragV1Interface); err != nil {
28 panic(err)
29 }
30}
31
32// ToplevelDragManagerV1 Move a window during a drag.
33type ToplevelDragManagerV1 struct{ *server.Resource }
34
35func WrapToplevelDragManagerV1(r *server.Resource) *ToplevelDragManagerV1 {
36 if r == nil {
37 return nil
38 }
39 return &ToplevelDragManagerV1{r}
40}
41
42const ToplevelDragManagerV1RequestDestroy uint32 = 0
43const ToplevelDragManagerV1RequestGetXdgToplevelDrag uint32 = 1
44
45// ToplevelDragManagerV1Error .
46type ToplevelDragManagerV1Error uint32
47
48const (
49 ToplevelDragManagerV1ErrorInvalidSource ToplevelDragManagerV1Error = 0
50)
51
52// ToplevelDragManagerV1Handler handles xdg_toplevel_drag_manager_v1 requests.
53type ToplevelDragManagerV1Handler interface {
54 Destroy(self *ToplevelDragManagerV1)
55 GetXdgToplevelDrag(self *ToplevelDragManagerV1, id uint32, dataSource *wayland.DataSource)
56}
57
58func NewToplevelDragManagerV1(c server.Client, version int32, id uint32, h ToplevelDragManagerV1Handler) (*ToplevelDragManagerV1, error) {
59 if h == nil {
60 return nil, fmt.Errorf("purego-libwayland: nil handler for xdg_toplevel_drag_manager_v1")
61 }
62 var self *ToplevelDragManagerV1
63 r, err := c.CreateResource(ToplevelDragManagerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
64 switch opcode {
65 case 0:
66 h.Destroy(self)
67 self.Destroy()
68 case 1:
69 h.GetXdgToplevelDrag(self, args[0].NewID(), wayland.WrapDataSource(args[1].Resource()))
70 }
71 })
72 if err != nil {
73 return nil, err
74 }
75 self = WrapToplevelDragManagerV1(r)
76 r.Data = self
77 return self, nil
78}
79func NewToplevelDragManagerV1Global(d *server.Display, version int32, bind server.BindFunc) error {
80 return d.CreateGlobal(ToplevelDragManagerV1Interface, version, bind)
81}
82
83// ToplevelDragV1 Object representing a toplevel move during a drag.
84type ToplevelDragV1 struct{ *server.Resource }
85
86func WrapToplevelDragV1(r *server.Resource) *ToplevelDragV1 {
87 if r == nil {
88 return nil
89 }
90 return &ToplevelDragV1{r}
91}
92
93const ToplevelDragV1RequestDestroy uint32 = 0
94const ToplevelDragV1RequestAttach uint32 = 1
95
96// ToplevelDragV1Error .
97type ToplevelDragV1Error uint32
98
99const (
100 ToplevelDragV1ErrorToplevelAttached ToplevelDragV1Error = 0
101 ToplevelDragV1ErrorOngoingDrag ToplevelDragV1Error = 1
102)
103
104// ToplevelDragV1Handler handles xdg_toplevel_drag_v1 requests.
105type ToplevelDragV1Handler interface {
106 Destroy(self *ToplevelDragV1)
107 Attach(self *ToplevelDragV1, toplevel *xdgshell.Toplevel, xOffset int32, yOffset int32)
108}
109
110func NewToplevelDragV1(c server.Client, version int32, id uint32, h ToplevelDragV1Handler) (*ToplevelDragV1, error) {
111 if h == nil {
112 return nil, fmt.Errorf("purego-libwayland: nil handler for xdg_toplevel_drag_v1")
113 }
114 var self *ToplevelDragV1
115 r, err := c.CreateResource(ToplevelDragV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
116 switch opcode {
117 case 0:
118 h.Destroy(self)
119 self.Destroy()
120 case 1:
121 h.Attach(self, xdgshell.WrapToplevel(args[0].Resource()), args[1].Int(), args[2].Int())
122 }
123 })
124 if err != nil {
125 return nil, err
126 }
127 self = WrapToplevelDragV1(r)
128 r.Data = self
129 return self, nil
130}
131func NewToplevelDragV1Global(d *server.Display, version int32, bind server.BindFunc) error {
132 return d.CreateGlobal(ToplevelDragV1Interface, version, bind)
133}
134func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
135 if v == nil {
136 return nil
137 }
138 return v.GetResource()
139}
140func (self *ToplevelDragManagerV1) GetResource() *server.Resource {
141 if self == nil {
142 return nil
143 }
144 return self.Resource
145}
146func (self *ToplevelDragV1) GetResource() *server.Resource {
147 if self == nil {
148 return nil
149 }
150 return self.Resource
151}