// Code generated by wlbgen; DO NOT EDIT. // Upstream protocol copyright and license: // Copyright © 2012, 2013 Intel Corporation // Copyright © 2015, 2016 Jan Arne Petersen // Copyright © 2017, 2018 Red Hat, Inc. // Copyright © 2018 Purism SPC // // Permission to use, copy, modify, distribute, and sell this // software and its documentation for any purpose is hereby granted // without fee, provided that the above copyright notice appear in // all copies and that both that copyright notice and this permission // notice appear in supporting documentation, and that the name of // the copyright holders not be used in advertising or publicity // pertaining to distribution of the software without specific, // written prior permission. The copyright holders make no // representations about the suitability of this software for any // purpose. It is provided "as is" without express or implied // warranty. // // THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS // SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND // FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY // SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN // AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF // THIS SOFTWARE. package textinput import ( "fmt" wayland "github.com/bnema/go-wayland-bindings/server/wayland" "github.com/bnema/purego-libwayland/server" "runtime" ) var ZwpTextInputV3Interface *server.Interface var ZwpTextInputManagerV3Interface *server.Interface func init() { ZwpTextInputV3Interface = &server.Interface{Name: "zwp_text_input_v3", Version: 2} ZwpTextInputManagerV3Interface = &server.Interface{Name: "zwp_text_input_manager_v3", Version: 2} ZwpTextInputV3Interface.Requests = []server.Message{ {Name: "destroy", Signature: "", Types: []*server.Interface{}}, {Name: "enable", Signature: "", Types: []*server.Interface{}}, {Name: "disable", Signature: "", Types: []*server.Interface{}}, {Name: "set_surrounding_text", Signature: "sii", Types: []*server.Interface{nil, nil, nil}}, {Name: "set_text_change_cause", Signature: "u", Types: []*server.Interface{nil}}, {Name: "set_content_type", Signature: "uu", Types: []*server.Interface{nil, nil}}, {Name: "set_cursor_rectangle", Signature: "iiii", Types: []*server.Interface{nil, nil, nil, nil}}, {Name: "commit", Signature: "", Types: []*server.Interface{}}, {Name: "set_available_actions", Signature: "2a", Types: []*server.Interface{nil}}, {Name: "show_input_panel", Signature: "2", Types: []*server.Interface{}}, {Name: "hide_input_panel", Signature: "2", Types: []*server.Interface{}}, } ZwpTextInputV3Interface.Events = []server.Message{ {Name: "enter", Signature: "o", Types: []*server.Interface{wayland.SurfaceInterface}}, {Name: "leave", Signature: "o", Types: []*server.Interface{wayland.SurfaceInterface}}, {Name: "preedit_string", Signature: "?sii", Types: []*server.Interface{nil, nil, nil}}, {Name: "commit_string", Signature: "?s", Types: []*server.Interface{nil}}, {Name: "delete_surrounding_text", Signature: "uu", Types: []*server.Interface{nil, nil}}, {Name: "done", Signature: "u", Types: []*server.Interface{nil}}, {Name: "action", Signature: "2uu", Types: []*server.Interface{nil, nil}}, {Name: "language", Signature: "2s", Types: []*server.Interface{nil}}, {Name: "preedit_hint", Signature: "2uuu", Types: []*server.Interface{nil, nil, nil}}, } ZwpTextInputManagerV3Interface.Requests = []server.Message{ {Name: "destroy", Signature: "", Types: []*server.Interface{}}, {Name: "get_text_input", Signature: "no", Types: []*server.Interface{ZwpTextInputV3Interface, wayland.SeatInterface}}, } ZwpTextInputManagerV3Interface.Events = []server.Message{} if err := server.NewInterfaces(ZwpTextInputV3Interface, ZwpTextInputManagerV3Interface); err != nil { panic(err) } } // ZwpTextInputV3 text input. type ZwpTextInputV3 struct{ *server.Resource } func WrapZwpTextInputV3(r *server.Resource) *ZwpTextInputV3 { if r == nil { return nil } return &ZwpTextInputV3{r} } const ZwpTextInputV3RequestDestroy uint32 = 0 const ZwpTextInputV3RequestEnable uint32 = 1 const ZwpTextInputV3RequestDisable uint32 = 2 const ZwpTextInputV3RequestSetSurroundingText uint32 = 3 const ZwpTextInputV3RequestSetTextChangeCause uint32 = 4 const ZwpTextInputV3RequestSetContentType uint32 = 5 const ZwpTextInputV3RequestSetCursorRectangle uint32 = 6 const ZwpTextInputV3RequestCommit uint32 = 7 const ZwpTextInputV3RequestSetAvailableActions uint32 = 8 const ZwpTextInputV3RequestShowInputPanel uint32 = 9 const ZwpTextInputV3RequestHideInputPanel uint32 = 10 const ZwpTextInputV3EventEnter uint32 = 0 const ZwpTextInputV3EventLeave uint32 = 1 const ZwpTextInputV3EventPreeditString uint32 = 2 const ZwpTextInputV3EventCommitString uint32 = 3 const ZwpTextInputV3EventDeleteSurroundingText uint32 = 4 const ZwpTextInputV3EventDone uint32 = 5 const ZwpTextInputV3EventAction uint32 = 6 const ZwpTextInputV3EventLanguage uint32 = 7 const ZwpTextInputV3EventPreeditHint uint32 = 8 // ZwpTextInputV3ChangeCause text change reason. type ZwpTextInputV3ChangeCause uint32 const ( ZwpTextInputV3ChangeCauseInputMethod ZwpTextInputV3ChangeCause = 0 ZwpTextInputV3ChangeCauseOther ZwpTextInputV3ChangeCause = 1 ) // ZwpTextInputV3ContentHint content hint (bitfield). type ZwpTextInputV3ContentHint uint32 const ( ZwpTextInputV3ContentHintNone ZwpTextInputV3ContentHint = 0x0 ZwpTextInputV3ContentHintCompletion ZwpTextInputV3ContentHint = 0x1 ZwpTextInputV3ContentHintSpellcheck ZwpTextInputV3ContentHint = 0x2 ZwpTextInputV3ContentHintAutoCapitalization ZwpTextInputV3ContentHint = 0x4 ZwpTextInputV3ContentHintLowercase ZwpTextInputV3ContentHint = 0x8 ZwpTextInputV3ContentHintUppercase ZwpTextInputV3ContentHint = 0x10 ZwpTextInputV3ContentHintTitlecase ZwpTextInputV3ContentHint = 0x20 ZwpTextInputV3ContentHintHiddenText ZwpTextInputV3ContentHint = 0x40 ZwpTextInputV3ContentHintSensitiveData ZwpTextInputV3ContentHint = 0x80 ZwpTextInputV3ContentHintLatin ZwpTextInputV3ContentHint = 0x100 ZwpTextInputV3ContentHintMultiline ZwpTextInputV3ContentHint = 0x200 ZwpTextInputV3ContentHintOnScreenInputProvided ZwpTextInputV3ContentHint = 0x400 ZwpTextInputV3ContentHintNoEmoji ZwpTextInputV3ContentHint = 0x800 ZwpTextInputV3ContentHintPreeditShown ZwpTextInputV3ContentHint = 0x1000 ) // ZwpTextInputV3ContentPurpose content purpose. type ZwpTextInputV3ContentPurpose uint32 const ( ZwpTextInputV3ContentPurposeNormal ZwpTextInputV3ContentPurpose = 0 ZwpTextInputV3ContentPurposeAlpha ZwpTextInputV3ContentPurpose = 1 ZwpTextInputV3ContentPurposeDigits ZwpTextInputV3ContentPurpose = 2 ZwpTextInputV3ContentPurposeNumber ZwpTextInputV3ContentPurpose = 3 ZwpTextInputV3ContentPurposePhone ZwpTextInputV3ContentPurpose = 4 ZwpTextInputV3ContentPurposeUrl ZwpTextInputV3ContentPurpose = 5 ZwpTextInputV3ContentPurposeEmail ZwpTextInputV3ContentPurpose = 6 ZwpTextInputV3ContentPurposeName ZwpTextInputV3ContentPurpose = 7 ZwpTextInputV3ContentPurposePassword ZwpTextInputV3ContentPurpose = 8 ZwpTextInputV3ContentPurposePin ZwpTextInputV3ContentPurpose = 9 ZwpTextInputV3ContentPurposeDate ZwpTextInputV3ContentPurpose = 10 ZwpTextInputV3ContentPurposeTime ZwpTextInputV3ContentPurpose = 11 ZwpTextInputV3ContentPurposeDatetime ZwpTextInputV3ContentPurpose = 12 ZwpTextInputV3ContentPurposeTerminal ZwpTextInputV3ContentPurpose = 13 ) // ZwpTextInputV3Error . type ZwpTextInputV3Error uint32 const ( ZwpTextInputV3ErrorInvalidAction ZwpTextInputV3Error = 0 ) // ZwpTextInputV3Action action. type ZwpTextInputV3Action uint32 const ( ZwpTextInputV3ActionNone ZwpTextInputV3Action = 0 ZwpTextInputV3ActionSubmit ZwpTextInputV3Action = 1 ) // ZwpTextInputV3PreeditHint preedit style hint. type ZwpTextInputV3PreeditHint uint32 const ( ZwpTextInputV3PreeditHintWhole ZwpTextInputV3PreeditHint = 1 ZwpTextInputV3PreeditHintSelection ZwpTextInputV3PreeditHint = 2 ZwpTextInputV3PreeditHintPrediction ZwpTextInputV3PreeditHint = 3 ZwpTextInputV3PreeditHintPrefix ZwpTextInputV3PreeditHint = 4 ZwpTextInputV3PreeditHintSuffix ZwpTextInputV3PreeditHint = 5 ZwpTextInputV3PreeditHintSpellingError ZwpTextInputV3PreeditHint = 6 ZwpTextInputV3PreeditHintComposeError ZwpTextInputV3PreeditHint = 7 ) // ZwpTextInputV3Handler handles zwp_text_input_v3 requests. type ZwpTextInputV3Handler interface { Destroy(self *ZwpTextInputV3) Enable(self *ZwpTextInputV3) Disable(self *ZwpTextInputV3) SetSurroundingText(self *ZwpTextInputV3, text string, cursor int32, anchor int32) SetTextChangeCause(self *ZwpTextInputV3, cause uint32) SetContentType(self *ZwpTextInputV3, hint uint32, purpose uint32) SetCursorRectangle(self *ZwpTextInputV3, x int32, y int32, width int32, height int32) Commit(self *ZwpTextInputV3) SetAvailableActions(self *ZwpTextInputV3, availableActions []byte) ShowInputPanel(self *ZwpTextInputV3) HideInputPanel(self *ZwpTextInputV3) } func NewZwpTextInputV3(c server.Client, version int32, id uint32, h ZwpTextInputV3Handler) (*ZwpTextInputV3, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_text_input_v3") } var self *ZwpTextInputV3 r, err := c.CreateResource(ZwpTextInputV3Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Destroy(self) self.Destroy() case 1: h.Enable(self) case 2: h.Disable(self) case 3: h.SetSurroundingText(self, args[0].String(), args[1].Int(), args[2].Int()) case 4: h.SetTextChangeCause(self, args[0].Uint()) case 5: h.SetContentType(self, args[0].Uint(), args[1].Uint()) case 6: h.SetCursorRectangle(self, args[0].Int(), args[1].Int(), args[2].Int(), args[3].Int()) case 7: h.Commit(self) case 8: h.SetAvailableActions(self, args[0].Array()) case 9: h.ShowInputPanel(self) case 10: h.HideInputPanel(self) } }) if err != nil { return nil, err } self = WrapZwpTextInputV3(r) r.Data = self return self, nil } // SendEnter enter event. func (self *ZwpTextInputV3) SendEnter(surface *wayland.Surface) { self.PostEvent(ZwpTextInputV3EventEnter, server.Object(resourceOf(surface))) } // SendLeave leave event. func (self *ZwpTextInputV3) SendLeave(surface *wayland.Surface) { self.PostEvent(ZwpTextInputV3EventLeave, server.Object(resourceOf(surface))) } // SendPreeditString pre-edit. func (self *ZwpTextInputV3) SendPreeditString(text string, cursorBegin int32, cursorEnd int32) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ZwpTextInputV3EventPreeditString, server.String(&p, text, true), server.Int(cursorBegin), server.Int(cursorEnd)) } // SendCommitString text commit. func (self *ZwpTextInputV3) SendCommitString(text string) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ZwpTextInputV3EventCommitString, server.String(&p, text, true)) } // SendDeleteSurroundingText delete surrounding text. func (self *ZwpTextInputV3) SendDeleteSurroundingText(beforeLength uint32, afterLength uint32) { self.PostEvent(ZwpTextInputV3EventDeleteSurroundingText, server.Uint(beforeLength), server.Uint(afterLength)) } // SendDone apply changes. func (self *ZwpTextInputV3) SendDone(serial uint32) { self.PostEvent(ZwpTextInputV3EventDone, server.Uint(serial)) } // SendAction action performed (since version 2). func (self *ZwpTextInputV3) SendAction(action uint32, serial uint32) { self.PostEvent(ZwpTextInputV3EventAction, server.Uint(action), server.Uint(serial)) } // SendLanguage notify of language selection (since version 2). func (self *ZwpTextInputV3) SendLanguage(language string) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ZwpTextInputV3EventLanguage, server.String(&p, language, false)) } // SendPreeditHint pre-edit (since version 2). func (self *ZwpTextInputV3) SendPreeditHint(start uint32, end uint32, hint uint32) { self.PostEvent(ZwpTextInputV3EventPreeditHint, server.Uint(start), server.Uint(end), server.Uint(hint)) } func NewZwpTextInputV3Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ZwpTextInputV3Interface, version, bind) } // ZwpTextInputManagerV3 text input manager. type ZwpTextInputManagerV3 struct{ *server.Resource } func WrapZwpTextInputManagerV3(r *server.Resource) *ZwpTextInputManagerV3 { if r == nil { return nil } return &ZwpTextInputManagerV3{r} } const ZwpTextInputManagerV3RequestDestroy uint32 = 0 const ZwpTextInputManagerV3RequestGetTextInput uint32 = 1 // ZwpTextInputManagerV3Handler handles zwp_text_input_manager_v3 requests. type ZwpTextInputManagerV3Handler interface { Destroy(self *ZwpTextInputManagerV3) GetTextInput(self *ZwpTextInputManagerV3, id uint32, seat *wayland.Seat) } func NewZwpTextInputManagerV3(c server.Client, version int32, id uint32, h ZwpTextInputManagerV3Handler) (*ZwpTextInputManagerV3, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_text_input_manager_v3") } var self *ZwpTextInputManagerV3 r, err := c.CreateResource(ZwpTextInputManagerV3Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Destroy(self) self.Destroy() case 1: h.GetTextInput(self, args[0].NewID(), wayland.WrapSeat(args[1].Resource())) } }) if err != nil { return nil, err } self = WrapZwpTextInputManagerV3(r) r.Data = self return self, nil } func NewZwpTextInputManagerV3Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ZwpTextInputManagerV3Interface, version, bind) } func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource { if v == nil { return nil } return v.GetResource() } func (self *ZwpTextInputV3) GetResource() *server.Resource { if self == nil { return nil } return self.Resource } func (self *ZwpTextInputManagerV3) GetResource() *server.Resource { if self == nil { return nil } return self.Resource }