1// Code generated by wlgen; DO NOT EDIT.
2package wlrforeigntoplevel
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 ZwlrForeignToplevelManagerV1Interface *server.Interface
12var ZwlrForeignToplevelHandleV1Interface *server.Interface
13
14func init() {
15 ZwlrForeignToplevelManagerV1Interface = &server.Interface{Name: "zwlr_foreign_toplevel_manager_v1", Version: 3}
16 ZwlrForeignToplevelHandleV1Interface = &server.Interface{Name: "zwlr_foreign_toplevel_handle_v1", Version: 3}
17 ZwlrForeignToplevelManagerV1Interface.Requests = []server.Message{
18 {Name: "stop", Signature: "", Types: []*server.Interface{}},
19 }
20 ZwlrForeignToplevelManagerV1Interface.Events = []server.Message{
21 {Name: "toplevel", Signature: "n", Types: []*server.Interface{ZwlrForeignToplevelHandleV1Interface}},
22 {Name: "finished", Signature: "", Types: []*server.Interface{}},
23 }
24 ZwlrForeignToplevelHandleV1Interface.Requests = []server.Message{
25 {Name: "set_maximized", Signature: "", Types: []*server.Interface{}},
26 {Name: "unset_maximized", Signature: "", Types: []*server.Interface{}},
27 {Name: "set_minimized", Signature: "", Types: []*server.Interface{}},
28 {Name: "unset_minimized", Signature: "", Types: []*server.Interface{}},
29 {Name: "activate", Signature: "o", Types: []*server.Interface{wayland.SeatInterface}},
30 {Name: "close", Signature: "", Types: []*server.Interface{}},
31 {Name: "set_rectangle", Signature: "oiiii", Types: []*server.Interface{wayland.SurfaceInterface, nil, nil, nil, nil}},
32 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
33 {Name: "set_fullscreen", Signature: "2?o", Types: []*server.Interface{wayland.OutputInterface}},
34 {Name: "unset_fullscreen", Signature: "2", Types: []*server.Interface{}},
35 }
36 ZwlrForeignToplevelHandleV1Interface.Events = []server.Message{
37 {Name: "title", Signature: "s", Types: []*server.Interface{nil}},
38 {Name: "app_id", Signature: "s", Types: []*server.Interface{nil}},
39 {Name: "output_enter", Signature: "o", Types: []*server.Interface{wayland.OutputInterface}},
40 {Name: "output_leave", Signature: "o", Types: []*server.Interface{wayland.OutputInterface}},
41 {Name: "state", Signature: "a", Types: []*server.Interface{nil}},
42 {Name: "done", Signature: "", Types: []*server.Interface{}},
43 {Name: "closed", Signature: "", Types: []*server.Interface{}},
44 {Name: "parent", Signature: "3?o", Types: []*server.Interface{ZwlrForeignToplevelHandleV1Interface}},
45 }
46 if err := server.NewInterfaces(ZwlrForeignToplevelManagerV1Interface, ZwlrForeignToplevelHandleV1Interface); err != nil {
47 panic(err)
48 }
49}
50
51// ZwlrForeignToplevelManagerV1 list and control opened apps.
52type ZwlrForeignToplevelManagerV1 struct{ *server.Resource }
53
54func WrapZwlrForeignToplevelManagerV1(r *server.Resource) *ZwlrForeignToplevelManagerV1 {
55 if r == nil {
56 return nil
57 }
58 return &ZwlrForeignToplevelManagerV1{r}
59}
60
61const ZwlrForeignToplevelManagerV1RequestStop uint32 = 0
62const ZwlrForeignToplevelManagerV1EventToplevel uint32 = 0
63const ZwlrForeignToplevelManagerV1EventFinished uint32 = 1
64
65// ZwlrForeignToplevelManagerV1Handler handles zwlr_foreign_toplevel_manager_v1 requests.
66type ZwlrForeignToplevelManagerV1Handler interface {
67 Stop(self *ZwlrForeignToplevelManagerV1)
68}
69
70func NewZwlrForeignToplevelManagerV1(c server.Client, version int32, id uint32, h ZwlrForeignToplevelManagerV1Handler) (*ZwlrForeignToplevelManagerV1, error) {
71 if h == nil {
72 return nil, fmt.Errorf("purego-libwayland: nil handler for zwlr_foreign_toplevel_manager_v1")
73 }
74 var self *ZwlrForeignToplevelManagerV1
75 r, err := c.CreateResource(ZwlrForeignToplevelManagerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
76 switch opcode {
77 case 0:
78 h.Stop(self)
79 }
80 })
81 if err != nil {
82 return nil, err
83 }
84 self = WrapZwlrForeignToplevelManagerV1(r)
85 r.Data = self
86 return self, nil
87}
88
89// SendToplevel a toplevel has been created.
90func (self *ZwlrForeignToplevelManagerV1) SendToplevel(toplevel *ZwlrForeignToplevelHandleV1) {
91 self.PostEvent(ZwlrForeignToplevelManagerV1EventToplevel, server.NewID(resourceOf(toplevel)))
92}
93
94// SendFinished the compositor has finished with the toplevel manager.
95func (self *ZwlrForeignToplevelManagerV1) SendFinished() {
96 self.PostEvent(ZwlrForeignToplevelManagerV1EventFinished)
97}
98func NewZwlrForeignToplevelManagerV1Global(d *server.Display, version int32, bind server.BindFunc) error {
99 return d.CreateGlobal(ZwlrForeignToplevelManagerV1Interface, version, bind)
100}
101
102// ZwlrForeignToplevelHandleV1 an opened toplevel.
103type ZwlrForeignToplevelHandleV1 struct{ *server.Resource }
104
105func WrapZwlrForeignToplevelHandleV1(r *server.Resource) *ZwlrForeignToplevelHandleV1 {
106 if r == nil {
107 return nil
108 }
109 return &ZwlrForeignToplevelHandleV1{r}
110}
111
112const ZwlrForeignToplevelHandleV1RequestSetMaximized uint32 = 0
113const ZwlrForeignToplevelHandleV1RequestUnsetMaximized uint32 = 1
114const ZwlrForeignToplevelHandleV1RequestSetMinimized uint32 = 2
115const ZwlrForeignToplevelHandleV1RequestUnsetMinimized uint32 = 3
116const ZwlrForeignToplevelHandleV1RequestActivate uint32 = 4
117const ZwlrForeignToplevelHandleV1RequestClose uint32 = 5
118const ZwlrForeignToplevelHandleV1RequestSetRectangle uint32 = 6
119const ZwlrForeignToplevelHandleV1RequestDestroy uint32 = 7
120const ZwlrForeignToplevelHandleV1RequestSetFullscreen uint32 = 8
121const ZwlrForeignToplevelHandleV1RequestUnsetFullscreen uint32 = 9
122const ZwlrForeignToplevelHandleV1EventTitle uint32 = 0
123const ZwlrForeignToplevelHandleV1EventAppId uint32 = 1
124const ZwlrForeignToplevelHandleV1EventOutputEnter uint32 = 2
125const ZwlrForeignToplevelHandleV1EventOutputLeave uint32 = 3
126const ZwlrForeignToplevelHandleV1EventState uint32 = 4
127const ZwlrForeignToplevelHandleV1EventDone uint32 = 5
128const ZwlrForeignToplevelHandleV1EventClosed uint32 = 6
129const ZwlrForeignToplevelHandleV1EventParent uint32 = 7
130
131// ZwlrForeignToplevelHandleV1State types of states on the toplevel.
132type ZwlrForeignToplevelHandleV1State uint32
133
134const (
135 ZwlrForeignToplevelHandleV1StateMaximized ZwlrForeignToplevelHandleV1State = 0
136 ZwlrForeignToplevelHandleV1StateMinimized ZwlrForeignToplevelHandleV1State = 1
137 ZwlrForeignToplevelHandleV1StateActivated ZwlrForeignToplevelHandleV1State = 2
138 ZwlrForeignToplevelHandleV1StateFullscreen ZwlrForeignToplevelHandleV1State = 3
139)
140
141// ZwlrForeignToplevelHandleV1Error .
142type ZwlrForeignToplevelHandleV1Error uint32
143
144const (
145 ZwlrForeignToplevelHandleV1ErrorInvalidRectangle ZwlrForeignToplevelHandleV1Error = 0
146)
147
148// ZwlrForeignToplevelHandleV1Handler handles zwlr_foreign_toplevel_handle_v1 requests.
149type ZwlrForeignToplevelHandleV1Handler interface {
150 SetMaximized(self *ZwlrForeignToplevelHandleV1)
151 UnsetMaximized(self *ZwlrForeignToplevelHandleV1)
152 SetMinimized(self *ZwlrForeignToplevelHandleV1)
153 UnsetMinimized(self *ZwlrForeignToplevelHandleV1)
154 Activate(self *ZwlrForeignToplevelHandleV1, seat *wayland.Seat)
155 Close(self *ZwlrForeignToplevelHandleV1)
156 SetRectangle(self *ZwlrForeignToplevelHandleV1, surface *wayland.Surface, x int32, y int32, width int32, height int32)
157 Destroy(self *ZwlrForeignToplevelHandleV1)
158 SetFullscreen(self *ZwlrForeignToplevelHandleV1, output *wayland.Output)
159 UnsetFullscreen(self *ZwlrForeignToplevelHandleV1)
160}
161
162func NewZwlrForeignToplevelHandleV1(c server.Client, version int32, id uint32, h ZwlrForeignToplevelHandleV1Handler) (*ZwlrForeignToplevelHandleV1, error) {
163 if h == nil {
164 return nil, fmt.Errorf("purego-libwayland: nil handler for zwlr_foreign_toplevel_handle_v1")
165 }
166 var self *ZwlrForeignToplevelHandleV1
167 r, err := c.CreateResource(ZwlrForeignToplevelHandleV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
168 switch opcode {
169 case 0:
170 h.SetMaximized(self)
171 case 1:
172 h.UnsetMaximized(self)
173 case 2:
174 h.SetMinimized(self)
175 case 3:
176 h.UnsetMinimized(self)
177 case 4:
178 h.Activate(self, wayland.WrapSeat(args[0].Resource()))
179 case 5:
180 h.Close(self)
181 case 6:
182 h.SetRectangle(self, wayland.WrapSurface(args[0].Resource()), args[1].Int(), args[2].Int(), args[3].Int(), args[4].Int())
183 case 7:
184 h.Destroy(self)
185 self.Destroy()
186 case 8:
187 h.SetFullscreen(self, wayland.WrapOutput(args[0].Resource()))
188 case 9:
189 h.UnsetFullscreen(self)
190 }
191 })
192 if err != nil {
193 return nil, err
194 }
195 self = WrapZwlrForeignToplevelHandleV1(r)
196 r.Data = self
197 return self, nil
198}
199
200// SendTitle title change.
201func (self *ZwlrForeignToplevelHandleV1) SendTitle(title string) {
202 var p runtime.Pinner
203 defer p.Unpin()
204 self.PostEvent(ZwlrForeignToplevelHandleV1EventTitle, server.String(&p, title, false))
205}
206
207// SendAppId app-id change.
208func (self *ZwlrForeignToplevelHandleV1) SendAppId(appId string) {
209 var p runtime.Pinner
210 defer p.Unpin()
211 self.PostEvent(ZwlrForeignToplevelHandleV1EventAppId, server.String(&p, appId, false))
212}
213
214// SendOutputEnter toplevel entered an output.
215func (self *ZwlrForeignToplevelHandleV1) SendOutputEnter(output *wayland.Output) {
216 self.PostEvent(ZwlrForeignToplevelHandleV1EventOutputEnter, server.Object(resourceOf(output)))
217}
218
219// SendOutputLeave toplevel left an output.
220func (self *ZwlrForeignToplevelHandleV1) SendOutputLeave(output *wayland.Output) {
221 self.PostEvent(ZwlrForeignToplevelHandleV1EventOutputLeave, server.Object(resourceOf(output)))
222}
223
224// SendState the toplevel state changed.
225func (self *ZwlrForeignToplevelHandleV1) SendState(state []byte) {
226 var p runtime.Pinner
227 defer p.Unpin()
228 self.PostEvent(ZwlrForeignToplevelHandleV1EventState, server.Array(&p, state))
229}
230
231// SendDone all information about the toplevel has been sent.
232func (self *ZwlrForeignToplevelHandleV1) SendDone() {
233 self.PostEvent(ZwlrForeignToplevelHandleV1EventDone)
234}
235
236// SendClosed this toplevel has been destroyed.
237func (self *ZwlrForeignToplevelHandleV1) SendClosed() {
238 self.PostEvent(ZwlrForeignToplevelHandleV1EventClosed)
239}
240
241// SendParent parent change (since version 3).
242func (self *ZwlrForeignToplevelHandleV1) SendParent(parent *ZwlrForeignToplevelHandleV1) {
243 self.PostEvent(ZwlrForeignToplevelHandleV1EventParent, server.Object(resourceOf(parent)))
244}
245func NewZwlrForeignToplevelHandleV1Global(d *server.Display, version int32, bind server.BindFunc) error {
246 return d.CreateGlobal(ZwlrForeignToplevelHandleV1Interface, version, bind)
247}
248func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
249 if v == nil {
250 return nil
251 }
252 return v.GetResource()
253}
254func (self *ZwlrForeignToplevelManagerV1) GetResource() *server.Resource {
255 if self == nil {
256 return nil
257 }
258 return self.Resource
259}
260func (self *ZwlrForeignToplevelHandleV1) GetResource() *server.Resource {
261 if self == nil {
262 return nil
263 }
264 return self.Resource
265}