// Code generated by wlgen; DO NOT EDIT. package extdatacontrol import ( "fmt" wayland "github.com/bnema/purego-libwayland/protocol/wayland" "github.com/bnema/purego-libwayland/server" "runtime" ) var ExtDataControlManagerV1Interface *server.Interface var ExtDataControlDeviceV1Interface *server.Interface var ExtDataControlSourceV1Interface *server.Interface var ExtDataControlOfferV1Interface *server.Interface func init() { ExtDataControlManagerV1Interface = &server.Interface{Name: "ext_data_control_manager_v1", Version: 1} ExtDataControlDeviceV1Interface = &server.Interface{Name: "ext_data_control_device_v1", Version: 1} ExtDataControlSourceV1Interface = &server.Interface{Name: "ext_data_control_source_v1", Version: 1} ExtDataControlOfferV1Interface = &server.Interface{Name: "ext_data_control_offer_v1", Version: 1} ExtDataControlManagerV1Interface.Requests = []server.Message{ {Name: "create_data_source", Signature: "n", Types: []*server.Interface{ExtDataControlSourceV1Interface}}, {Name: "get_data_device", Signature: "no", Types: []*server.Interface{ExtDataControlDeviceV1Interface, wayland.SeatInterface}}, {Name: "destroy", Signature: "", Types: []*server.Interface{}}, } ExtDataControlManagerV1Interface.Events = []server.Message{} ExtDataControlDeviceV1Interface.Requests = []server.Message{ {Name: "set_selection", Signature: "?o", Types: []*server.Interface{ExtDataControlSourceV1Interface}}, {Name: "destroy", Signature: "", Types: []*server.Interface{}}, {Name: "set_primary_selection", Signature: "?o", Types: []*server.Interface{ExtDataControlSourceV1Interface}}, } ExtDataControlDeviceV1Interface.Events = []server.Message{ {Name: "data_offer", Signature: "n", Types: []*server.Interface{ExtDataControlOfferV1Interface}}, {Name: "selection", Signature: "?o", Types: []*server.Interface{ExtDataControlOfferV1Interface}}, {Name: "finished", Signature: "", Types: []*server.Interface{}}, {Name: "primary_selection", Signature: "?o", Types: []*server.Interface{ExtDataControlOfferV1Interface}}, } ExtDataControlSourceV1Interface.Requests = []server.Message{ {Name: "offer", Signature: "s", Types: []*server.Interface{nil}}, {Name: "destroy", Signature: "", Types: []*server.Interface{}}, } ExtDataControlSourceV1Interface.Events = []server.Message{ {Name: "send", Signature: "sh", Types: []*server.Interface{nil, nil}}, {Name: "cancelled", Signature: "", Types: []*server.Interface{}}, } ExtDataControlOfferV1Interface.Requests = []server.Message{ {Name: "receive", Signature: "sh", Types: []*server.Interface{nil, nil}}, {Name: "destroy", Signature: "", Types: []*server.Interface{}}, } ExtDataControlOfferV1Interface.Events = []server.Message{ {Name: "offer", Signature: "s", Types: []*server.Interface{nil}}, } if err := server.NewInterfaces(ExtDataControlManagerV1Interface, ExtDataControlDeviceV1Interface, ExtDataControlSourceV1Interface, ExtDataControlOfferV1Interface); err != nil { panic(err) } } // ExtDataControlManagerV1 manager to control data devices. type ExtDataControlManagerV1 struct{ *server.Resource } func WrapExtDataControlManagerV1(r *server.Resource) *ExtDataControlManagerV1 { if r == nil { return nil } return &ExtDataControlManagerV1{r} } const ExtDataControlManagerV1RequestCreateDataSource uint32 = 0 const ExtDataControlManagerV1RequestGetDataDevice uint32 = 1 const ExtDataControlManagerV1RequestDestroy uint32 = 2 // ExtDataControlManagerV1Handler handles ext_data_control_manager_v1 requests. type ExtDataControlManagerV1Handler interface { CreateDataSource(self *ExtDataControlManagerV1, id uint32) GetDataDevice(self *ExtDataControlManagerV1, id uint32, seat *wayland.Seat) Destroy(self *ExtDataControlManagerV1) } func NewExtDataControlManagerV1(c server.Client, version int32, id uint32, h ExtDataControlManagerV1Handler) (*ExtDataControlManagerV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for ext_data_control_manager_v1") } var self *ExtDataControlManagerV1 r, err := c.CreateResource(ExtDataControlManagerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.CreateDataSource(self, args[0].NewID()) case 1: h.GetDataDevice(self, args[0].NewID(), wayland.WrapSeat(args[1].Resource())) case 2: h.Destroy(self) self.Destroy() } }) if err != nil { return nil, err } self = WrapExtDataControlManagerV1(r) r.Data = self return self, nil } func NewExtDataControlManagerV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ExtDataControlManagerV1Interface, version, bind) } // ExtDataControlDeviceV1 manage a data device for a seat. type ExtDataControlDeviceV1 struct{ *server.Resource } func WrapExtDataControlDeviceV1(r *server.Resource) *ExtDataControlDeviceV1 { if r == nil { return nil } return &ExtDataControlDeviceV1{r} } const ExtDataControlDeviceV1RequestSetSelection uint32 = 0 const ExtDataControlDeviceV1RequestDestroy uint32 = 1 const ExtDataControlDeviceV1RequestSetPrimarySelection uint32 = 2 const ExtDataControlDeviceV1EventDataOffer uint32 = 0 const ExtDataControlDeviceV1EventSelection uint32 = 1 const ExtDataControlDeviceV1EventFinished uint32 = 2 const ExtDataControlDeviceV1EventPrimarySelection uint32 = 3 // ExtDataControlDeviceV1Error . type ExtDataControlDeviceV1Error uint32 const ( ExtDataControlDeviceV1ErrorUsedSource ExtDataControlDeviceV1Error = 1 ) // ExtDataControlDeviceV1Handler handles ext_data_control_device_v1 requests. type ExtDataControlDeviceV1Handler interface { SetSelection(self *ExtDataControlDeviceV1, source *ExtDataControlSourceV1) Destroy(self *ExtDataControlDeviceV1) SetPrimarySelection(self *ExtDataControlDeviceV1, source *ExtDataControlSourceV1) } func NewExtDataControlDeviceV1(c server.Client, version int32, id uint32, h ExtDataControlDeviceV1Handler) (*ExtDataControlDeviceV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for ext_data_control_device_v1") } var self *ExtDataControlDeviceV1 r, err := c.CreateResource(ExtDataControlDeviceV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.SetSelection(self, WrapExtDataControlSourceV1(args[0].Resource())) case 1: h.Destroy(self) self.Destroy() case 2: h.SetPrimarySelection(self, WrapExtDataControlSourceV1(args[0].Resource())) } }) if err != nil { return nil, err } self = WrapExtDataControlDeviceV1(r) r.Data = self return self, nil } // SendDataOffer introduce a new ext_data_control_offer. func (self *ExtDataControlDeviceV1) SendDataOffer(id *ExtDataControlOfferV1) { self.PostEvent(ExtDataControlDeviceV1EventDataOffer, server.NewID(resourceOf(id))) } // SendSelection advertise new selection. func (self *ExtDataControlDeviceV1) SendSelection(id *ExtDataControlOfferV1) { self.PostEvent(ExtDataControlDeviceV1EventSelection, server.Object(resourceOf(id))) } // SendFinished this data control is no longer valid. func (self *ExtDataControlDeviceV1) SendFinished() { self.PostEvent(ExtDataControlDeviceV1EventFinished) } // SendPrimarySelection advertise new primary selection. func (self *ExtDataControlDeviceV1) SendPrimarySelection(id *ExtDataControlOfferV1) { self.PostEvent(ExtDataControlDeviceV1EventPrimarySelection, server.Object(resourceOf(id))) } func NewExtDataControlDeviceV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ExtDataControlDeviceV1Interface, version, bind) } // ExtDataControlSourceV1 offer to transfer data. type ExtDataControlSourceV1 struct{ *server.Resource } func WrapExtDataControlSourceV1(r *server.Resource) *ExtDataControlSourceV1 { if r == nil { return nil } return &ExtDataControlSourceV1{r} } const ExtDataControlSourceV1RequestOffer uint32 = 0 const ExtDataControlSourceV1RequestDestroy uint32 = 1 const ExtDataControlSourceV1EventSend uint32 = 0 const ExtDataControlSourceV1EventCancelled uint32 = 1 // ExtDataControlSourceV1Error . type ExtDataControlSourceV1Error uint32 const ( ExtDataControlSourceV1ErrorInvalidOffer ExtDataControlSourceV1Error = 1 ) // ExtDataControlSourceV1Handler handles ext_data_control_source_v1 requests. type ExtDataControlSourceV1Handler interface { Offer(self *ExtDataControlSourceV1, mimeType string) Destroy(self *ExtDataControlSourceV1) } func NewExtDataControlSourceV1(c server.Client, version int32, id uint32, h ExtDataControlSourceV1Handler) (*ExtDataControlSourceV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for ext_data_control_source_v1") } var self *ExtDataControlSourceV1 r, err := c.CreateResource(ExtDataControlSourceV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Offer(self, args[0].String()) case 1: h.Destroy(self) self.Destroy() } }) if err != nil { return nil, err } self = WrapExtDataControlSourceV1(r) r.Data = self return self, nil } // SendSend send the data. func (self *ExtDataControlSourceV1) SendSend(mimeType string, fd int) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ExtDataControlSourceV1EventSend, server.String(&p, mimeType, false), server.Fd(fd)) } // SendCancelled selection was cancelled. func (self *ExtDataControlSourceV1) SendCancelled() { self.PostEvent(ExtDataControlSourceV1EventCancelled) } func NewExtDataControlSourceV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ExtDataControlSourceV1Interface, version, bind) } // ExtDataControlOfferV1 offer to transfer data. type ExtDataControlOfferV1 struct{ *server.Resource } func WrapExtDataControlOfferV1(r *server.Resource) *ExtDataControlOfferV1 { if r == nil { return nil } return &ExtDataControlOfferV1{r} } const ExtDataControlOfferV1RequestReceive uint32 = 0 const ExtDataControlOfferV1RequestDestroy uint32 = 1 const ExtDataControlOfferV1EventOffer uint32 = 0 // ExtDataControlOfferV1Handler handles ext_data_control_offer_v1 requests. type ExtDataControlOfferV1Handler interface { Receive(self *ExtDataControlOfferV1, mimeType string, fd int) Destroy(self *ExtDataControlOfferV1) } func NewExtDataControlOfferV1(c server.Client, version int32, id uint32, h ExtDataControlOfferV1Handler) (*ExtDataControlOfferV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for ext_data_control_offer_v1") } var self *ExtDataControlOfferV1 r, err := c.CreateResource(ExtDataControlOfferV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Receive(self, args[0].String(), args[1].Fd()) case 1: h.Destroy(self) self.Destroy() } }) if err != nil { return nil, err } self = WrapExtDataControlOfferV1(r) r.Data = self return self, nil } // SendOffer advertise offered MIME type. func (self *ExtDataControlOfferV1) SendOffer(mimeType string) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ExtDataControlOfferV1EventOffer, server.String(&p, mimeType, false)) } func NewExtDataControlOfferV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ExtDataControlOfferV1Interface, version, bind) } func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource { if v == nil { return nil } return v.GetResource() } func (self *ExtDataControlManagerV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource } func (self *ExtDataControlDeviceV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource } func (self *ExtDataControlSourceV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource } func (self *ExtDataControlOfferV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource }