1// Code generated by wlgen; DO NOT EDIT.
2package xdgdecoration
3
4import (
5 "fmt"
6 xdgshell "github.com/bnema/purego-libwayland/protocol/xdgshell"
7 "github.com/bnema/purego-libwayland/server"
8)
9
10var ZxdgDecorationManagerV1Interface *server.Interface
11var ZxdgToplevelDecorationV1Interface *server.Interface
12
13func init() {
14 ZxdgDecorationManagerV1Interface = &server.Interface{Name: "zxdg_decoration_manager_v1", Version: 2}
15 ZxdgToplevelDecorationV1Interface = &server.Interface{Name: "zxdg_toplevel_decoration_v1", Version: 2}
16 ZxdgDecorationManagerV1Interface.Requests = []server.Message{
17 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
18 {Name: "get_toplevel_decoration", Signature: "no", Types: []*server.Interface{ZxdgToplevelDecorationV1Interface, xdgshell.ToplevelInterface}},
19 }
20 ZxdgDecorationManagerV1Interface.Events = []server.Message{}
21 ZxdgToplevelDecorationV1Interface.Requests = []server.Message{
22 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
23 {Name: "set_mode", Signature: "u", Types: []*server.Interface{nil}},
24 {Name: "unset_mode", Signature: "", Types: []*server.Interface{}},
25 }
26 ZxdgToplevelDecorationV1Interface.Events = []server.Message{
27 {Name: "configure", Signature: "u", Types: []*server.Interface{nil}},
28 }
29 if err := server.NewInterfaces(ZxdgDecorationManagerV1Interface, ZxdgToplevelDecorationV1Interface); err != nil {
30 panic(err)
31 }
32}
33
34// ZxdgDecorationManagerV1 window decoration manager.
35type ZxdgDecorationManagerV1 struct{ *server.Resource }
36
37func WrapZxdgDecorationManagerV1(r *server.Resource) *ZxdgDecorationManagerV1 {
38 if r == nil {
39 return nil
40 }
41 return &ZxdgDecorationManagerV1{r}
42}
43
44const ZxdgDecorationManagerV1RequestDestroy uint32 = 0
45const ZxdgDecorationManagerV1RequestGetToplevelDecoration uint32 = 1
46
47// ZxdgDecorationManagerV1Handler handles zxdg_decoration_manager_v1 requests.
48type ZxdgDecorationManagerV1Handler interface {
49 Destroy(self *ZxdgDecorationManagerV1)
50 GetToplevelDecoration(self *ZxdgDecorationManagerV1, id uint32, toplevel *xdgshell.Toplevel)
51}
52
53func NewZxdgDecorationManagerV1(c server.Client, version int32, id uint32, h ZxdgDecorationManagerV1Handler) (*ZxdgDecorationManagerV1, error) {
54 if h == nil {
55 return nil, fmt.Errorf("purego-libwayland: nil handler for zxdg_decoration_manager_v1")
56 }
57 var self *ZxdgDecorationManagerV1
58 r, err := c.CreateResource(ZxdgDecorationManagerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
59 switch opcode {
60 case 0:
61 h.Destroy(self)
62 self.Destroy()
63 case 1:
64 h.GetToplevelDecoration(self, args[0].NewID(), xdgshell.WrapToplevel(args[1].Resource()))
65 }
66 })
67 if err != nil {
68 return nil, err
69 }
70 self = WrapZxdgDecorationManagerV1(r)
71 r.Data = self
72 return self, nil
73}
74func NewZxdgDecorationManagerV1Global(d *server.Display, version int32, bind server.BindFunc) error {
75 return d.CreateGlobal(ZxdgDecorationManagerV1Interface, version, bind)
76}
77
78// ZxdgToplevelDecorationV1 decoration object for a toplevel surface.
79type ZxdgToplevelDecorationV1 struct{ *server.Resource }
80
81func WrapZxdgToplevelDecorationV1(r *server.Resource) *ZxdgToplevelDecorationV1 {
82 if r == nil {
83 return nil
84 }
85 return &ZxdgToplevelDecorationV1{r}
86}
87
88const ZxdgToplevelDecorationV1RequestDestroy uint32 = 0
89const ZxdgToplevelDecorationV1RequestSetMode uint32 = 1
90const ZxdgToplevelDecorationV1RequestUnsetMode uint32 = 2
91const ZxdgToplevelDecorationV1EventConfigure uint32 = 0
92
93// ZxdgToplevelDecorationV1Error .
94type ZxdgToplevelDecorationV1Error uint32
95
96const (
97 ZxdgToplevelDecorationV1ErrorUnconfiguredBuffer ZxdgToplevelDecorationV1Error = 0
98 ZxdgToplevelDecorationV1ErrorAlreadyConstructed ZxdgToplevelDecorationV1Error = 1
99 ZxdgToplevelDecorationV1ErrorOrphaned ZxdgToplevelDecorationV1Error = 2
100 ZxdgToplevelDecorationV1ErrorInvalidMode ZxdgToplevelDecorationV1Error = 3
101)
102
103// ZxdgToplevelDecorationV1Mode window decoration modes.
104type ZxdgToplevelDecorationV1Mode uint32
105
106const (
107 ZxdgToplevelDecorationV1ModeClientSide ZxdgToplevelDecorationV1Mode = 1
108 ZxdgToplevelDecorationV1ModeServerSide ZxdgToplevelDecorationV1Mode = 2
109)
110
111// ZxdgToplevelDecorationV1Handler handles zxdg_toplevel_decoration_v1 requests.
112type ZxdgToplevelDecorationV1Handler interface {
113 Destroy(self *ZxdgToplevelDecorationV1)
114 SetMode(self *ZxdgToplevelDecorationV1, mode uint32)
115 UnsetMode(self *ZxdgToplevelDecorationV1)
116}
117
118func NewZxdgToplevelDecorationV1(c server.Client, version int32, id uint32, h ZxdgToplevelDecorationV1Handler) (*ZxdgToplevelDecorationV1, error) {
119 if h == nil {
120 return nil, fmt.Errorf("purego-libwayland: nil handler for zxdg_toplevel_decoration_v1")
121 }
122 var self *ZxdgToplevelDecorationV1
123 r, err := c.CreateResource(ZxdgToplevelDecorationV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
124 switch opcode {
125 case 0:
126 h.Destroy(self)
127 self.Destroy()
128 case 1:
129 h.SetMode(self, args[0].Uint())
130 case 2:
131 h.UnsetMode(self)
132 }
133 })
134 if err != nil {
135 return nil, err
136 }
137 self = WrapZxdgToplevelDecorationV1(r)
138 r.Data = self
139 return self, nil
140}
141
142// SendConfigure notify a decoration mode change.
143func (self *ZxdgToplevelDecorationV1) SendConfigure(mode uint32) {
144 self.PostEvent(ZxdgToplevelDecorationV1EventConfigure, server.Uint(mode))
145}
146func NewZxdgToplevelDecorationV1Global(d *server.Display, version int32, bind server.BindFunc) error {
147 return d.CreateGlobal(ZxdgToplevelDecorationV1Interface, version, bind)
148}
149func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
150 if v == nil {
151 return nil
152 }
153 return v.GetResource()
154}
155func (self *ZxdgDecorationManagerV1) GetResource() *server.Resource {
156 if self == nil {
157 return nil
158 }
159 return self.Resource
160}
161func (self *ZxdgToplevelDecorationV1) GetResource() *server.Resource {
162 if self == nil {
163 return nil
164 }
165 return self.Resource
166}