1// Code generated by wlgen; DO NOT EDIT.
2package xdgdialog
3
4import (
5 "fmt"
6 xdgshell "github.com/bnema/purego-libwayland/protocol/xdgshell"
7 "github.com/bnema/purego-libwayland/server"
8)
9
10var WmDialogV1Interface *server.Interface
11var DialogV1Interface *server.Interface
12
13func init() {
14 WmDialogV1Interface = &server.Interface{Name: "xdg_wm_dialog_v1", Version: 1}
15 DialogV1Interface = &server.Interface{Name: "xdg_dialog_v1", Version: 1}
16 WmDialogV1Interface.Requests = []server.Message{
17 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
18 {Name: "get_xdg_dialog", Signature: "no", Types: []*server.Interface{DialogV1Interface, xdgshell.ToplevelInterface}},
19 }
20 WmDialogV1Interface.Events = []server.Message{}
21 DialogV1Interface.Requests = []server.Message{
22 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
23 {Name: "set_modal", Signature: "", Types: []*server.Interface{}},
24 {Name: "unset_modal", Signature: "", Types: []*server.Interface{}},
25 }
26 DialogV1Interface.Events = []server.Message{}
27 if err := server.NewInterfaces(WmDialogV1Interface, DialogV1Interface); err != nil {
28 panic(err)
29 }
30}
31
32// WmDialogV1 create dialogs related to other toplevels.
33type WmDialogV1 struct{ *server.Resource }
34
35func WrapWmDialogV1(r *server.Resource) *WmDialogV1 {
36 if r == nil {
37 return nil
38 }
39 return &WmDialogV1{r}
40}
41
42const WmDialogV1RequestDestroy uint32 = 0
43const WmDialogV1RequestGetXdgDialog uint32 = 1
44
45// WmDialogV1Error .
46type WmDialogV1Error uint32
47
48const (
49 WmDialogV1ErrorAlreadyUsed WmDialogV1Error = 0
50)
51
52// WmDialogV1Handler handles xdg_wm_dialog_v1 requests.
53type WmDialogV1Handler interface {
54 Destroy(self *WmDialogV1)
55 GetXdgDialog(self *WmDialogV1, id uint32, toplevel *xdgshell.Toplevel)
56}
57
58func NewWmDialogV1(c server.Client, version int32, id uint32, h WmDialogV1Handler) (*WmDialogV1, error) {
59 if h == nil {
60 return nil, fmt.Errorf("purego-libwayland: nil handler for xdg_wm_dialog_v1")
61 }
62 var self *WmDialogV1
63 r, err := c.CreateResource(WmDialogV1Interface, 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.GetXdgDialog(self, args[0].NewID(), xdgshell.WrapToplevel(args[1].Resource()))
70 }
71 })
72 if err != nil {
73 return nil, err
74 }
75 self = WrapWmDialogV1(r)
76 r.Data = self
77 return self, nil
78}
79func NewWmDialogV1Global(d *server.Display, version int32, bind server.BindFunc) error {
80 return d.CreateGlobal(WmDialogV1Interface, version, bind)
81}
82
83// DialogV1 dialog object.
84type DialogV1 struct{ *server.Resource }
85
86func WrapDialogV1(r *server.Resource) *DialogV1 {
87 if r == nil {
88 return nil
89 }
90 return &DialogV1{r}
91}
92
93const DialogV1RequestDestroy uint32 = 0
94const DialogV1RequestSetModal uint32 = 1
95const DialogV1RequestUnsetModal uint32 = 2
96
97// DialogV1Handler handles xdg_dialog_v1 requests.
98type DialogV1Handler interface {
99 Destroy(self *DialogV1)
100 SetModal(self *DialogV1)
101 UnsetModal(self *DialogV1)
102}
103
104func NewDialogV1(c server.Client, version int32, id uint32, h DialogV1Handler) (*DialogV1, error) {
105 if h == nil {
106 return nil, fmt.Errorf("purego-libwayland: nil handler for xdg_dialog_v1")
107 }
108 var self *DialogV1
109 r, err := c.CreateResource(DialogV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
110 switch opcode {
111 case 0:
112 h.Destroy(self)
113 self.Destroy()
114 case 1:
115 h.SetModal(self)
116 case 2:
117 h.UnsetModal(self)
118 }
119 })
120 if err != nil {
121 return nil, err
122 }
123 self = WrapDialogV1(r)
124 r.Data = self
125 return self, nil
126}
127func NewDialogV1Global(d *server.Display, version int32, bind server.BindFunc) error {
128 return d.CreateGlobal(DialogV1Interface, version, bind)
129}
130func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
131 if v == nil {
132 return nil
133 }
134 return v.GetResource()
135}
136func (self *WmDialogV1) GetResource() *server.Resource {
137 if self == nil {
138 return nil
139 }
140 return self.Resource
141}
142func (self *DialogV1) GetResource() *server.Resource {
143 if self == nil {
144 return nil
145 }
146 return self.Resource
147}