1// Code generated by wlgen; DO NOT EDIT.
2package extforeigntoplevellist
3
4import (
5 "fmt"
6 "github.com/bnema/purego-libwayland/server"
7 "runtime"
8)
9
10var ExtForeignToplevelListV1Interface *server.Interface
11var ExtForeignToplevelHandleV1Interface *server.Interface
12
13func init() {
14 ExtForeignToplevelListV1Interface = &server.Interface{Name: "ext_foreign_toplevel_list_v1", Version: 1}
15 ExtForeignToplevelHandleV1Interface = &server.Interface{Name: "ext_foreign_toplevel_handle_v1", Version: 1}
16 ExtForeignToplevelListV1Interface.Requests = []server.Message{
17 {Name: "stop", Signature: "", Types: []*server.Interface{}},
18 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
19 }
20 ExtForeignToplevelListV1Interface.Events = []server.Message{
21 {Name: "toplevel", Signature: "n", Types: []*server.Interface{ExtForeignToplevelHandleV1Interface}},
22 {Name: "finished", Signature: "", Types: []*server.Interface{}},
23 }
24 ExtForeignToplevelHandleV1Interface.Requests = []server.Message{
25 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
26 }
27 ExtForeignToplevelHandleV1Interface.Events = []server.Message{
28 {Name: "closed", Signature: "", Types: []*server.Interface{}},
29 {Name: "done", Signature: "", Types: []*server.Interface{}},
30 {Name: "title", Signature: "s", Types: []*server.Interface{nil}},
31 {Name: "app_id", Signature: "s", Types: []*server.Interface{nil}},
32 {Name: "identifier", Signature: "s", Types: []*server.Interface{nil}},
33 }
34 if err := server.NewInterfaces(ExtForeignToplevelListV1Interface, ExtForeignToplevelHandleV1Interface); err != nil {
35 panic(err)
36 }
37}
38
39// ExtForeignToplevelListV1 list toplevels.
40type ExtForeignToplevelListV1 struct{ *server.Resource }
41
42func WrapExtForeignToplevelListV1(r *server.Resource) *ExtForeignToplevelListV1 {
43 if r == nil {
44 return nil
45 }
46 return &ExtForeignToplevelListV1{r}
47}
48
49const ExtForeignToplevelListV1RequestStop uint32 = 0
50const ExtForeignToplevelListV1RequestDestroy uint32 = 1
51const ExtForeignToplevelListV1EventToplevel uint32 = 0
52const ExtForeignToplevelListV1EventFinished uint32 = 1
53
54// ExtForeignToplevelListV1Handler handles ext_foreign_toplevel_list_v1 requests.
55type ExtForeignToplevelListV1Handler interface {
56 Stop(self *ExtForeignToplevelListV1)
57 Destroy(self *ExtForeignToplevelListV1)
58}
59
60func NewExtForeignToplevelListV1(c server.Client, version int32, id uint32, h ExtForeignToplevelListV1Handler) (*ExtForeignToplevelListV1, error) {
61 if h == nil {
62 return nil, fmt.Errorf("purego-libwayland: nil handler for ext_foreign_toplevel_list_v1")
63 }
64 var self *ExtForeignToplevelListV1
65 r, err := c.CreateResource(ExtForeignToplevelListV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
66 switch opcode {
67 case 0:
68 h.Stop(self)
69 case 1:
70 h.Destroy(self)
71 self.Destroy()
72 }
73 })
74 if err != nil {
75 return nil, err
76 }
77 self = WrapExtForeignToplevelListV1(r)
78 r.Data = self
79 return self, nil
80}
81
82// SendToplevel a toplevel has been created.
83func (self *ExtForeignToplevelListV1) SendToplevel(toplevel *ExtForeignToplevelHandleV1) {
84 self.PostEvent(ExtForeignToplevelListV1EventToplevel, server.NewID(resourceOf(toplevel)))
85}
86
87// SendFinished the compositor has finished with the toplevel manager.
88func (self *ExtForeignToplevelListV1) SendFinished() {
89 self.PostEvent(ExtForeignToplevelListV1EventFinished)
90}
91func NewExtForeignToplevelListV1Global(d *server.Display, version int32, bind server.BindFunc) error {
92 return d.CreateGlobal(ExtForeignToplevelListV1Interface, version, bind)
93}
94
95// ExtForeignToplevelHandleV1 a mapped toplevel.
96type ExtForeignToplevelHandleV1 struct{ *server.Resource }
97
98func WrapExtForeignToplevelHandleV1(r *server.Resource) *ExtForeignToplevelHandleV1 {
99 if r == nil {
100 return nil
101 }
102 return &ExtForeignToplevelHandleV1{r}
103}
104
105const ExtForeignToplevelHandleV1RequestDestroy uint32 = 0
106const ExtForeignToplevelHandleV1EventClosed uint32 = 0
107const ExtForeignToplevelHandleV1EventDone uint32 = 1
108const ExtForeignToplevelHandleV1EventTitle uint32 = 2
109const ExtForeignToplevelHandleV1EventAppId uint32 = 3
110const ExtForeignToplevelHandleV1EventIdentifier uint32 = 4
111
112// ExtForeignToplevelHandleV1Handler handles ext_foreign_toplevel_handle_v1 requests.
113type ExtForeignToplevelHandleV1Handler interface {
114 Destroy(self *ExtForeignToplevelHandleV1)
115}
116
117func NewExtForeignToplevelHandleV1(c server.Client, version int32, id uint32, h ExtForeignToplevelHandleV1Handler) (*ExtForeignToplevelHandleV1, error) {
118 if h == nil {
119 return nil, fmt.Errorf("purego-libwayland: nil handler for ext_foreign_toplevel_handle_v1")
120 }
121 var self *ExtForeignToplevelHandleV1
122 r, err := c.CreateResource(ExtForeignToplevelHandleV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
123 switch opcode {
124 case 0:
125 h.Destroy(self)
126 self.Destroy()
127 }
128 })
129 if err != nil {
130 return nil, err
131 }
132 self = WrapExtForeignToplevelHandleV1(r)
133 r.Data = self
134 return self, nil
135}
136
137// SendClosed the toplevel has been closed.
138func (self *ExtForeignToplevelHandleV1) SendClosed() {
139 self.PostEvent(ExtForeignToplevelHandleV1EventClosed)
140}
141
142// SendDone all information about the toplevel has been sent.
143func (self *ExtForeignToplevelHandleV1) SendDone() {
144 self.PostEvent(ExtForeignToplevelHandleV1EventDone)
145}
146
147// SendTitle title change.
148func (self *ExtForeignToplevelHandleV1) SendTitle(title string) {
149 var p runtime.Pinner
150 defer p.Unpin()
151 self.PostEvent(ExtForeignToplevelHandleV1EventTitle, server.String(&p, title, false))
152}
153
154// SendAppId app_id change.
155func (self *ExtForeignToplevelHandleV1) SendAppId(appId string) {
156 var p runtime.Pinner
157 defer p.Unpin()
158 self.PostEvent(ExtForeignToplevelHandleV1EventAppId, server.String(&p, appId, false))
159}
160
161// SendIdentifier a stable identifier for a toplevel.
162func (self *ExtForeignToplevelHandleV1) SendIdentifier(identifier string) {
163 var p runtime.Pinner
164 defer p.Unpin()
165 self.PostEvent(ExtForeignToplevelHandleV1EventIdentifier, server.String(&p, identifier, false))
166}
167func NewExtForeignToplevelHandleV1Global(d *server.Display, version int32, bind server.BindFunc) error {
168 return d.CreateGlobal(ExtForeignToplevelHandleV1Interface, version, bind)
169}
170func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
171 if v == nil {
172 return nil
173 }
174 return v.GetResource()
175}
176func (self *ExtForeignToplevelListV1) GetResource() *server.Resource {
177 if self == nil {
178 return nil
179 }
180 return self.Resource
181}
182func (self *ExtForeignToplevelHandleV1) GetResource() *server.Resource {
183 if self == nil {
184 return nil
185 }
186 return self.Resource
187}