2012-05-06 09:06:48 +02:00
|
|
|
package xgb
|
|
|
|
|
|
|
|
/*
|
2012-05-08 06:27:00 +02:00
|
|
|
This file was generated by xfixes.xml on May 7 2012 11:34:26pm EDT.
|
2012-05-06 09:06:48 +02:00
|
|
|
This file is automatically generated. Edit at your peril!
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Imports are not necessary for XGB because everything is
|
|
|
|
// in one package. They are still listed here for reference.
|
|
|
|
// import "xproto"
|
|
|
|
// import "render"
|
|
|
|
// import "shape"
|
|
|
|
|
2012-05-07 07:00:45 +02:00
|
|
|
// XfixesInit must be called before using the XFIXES extension.
|
|
|
|
func (c *Conn) XfixesInit() error {
|
|
|
|
reply, err := c.QueryExtension(6, "XFIXES").Reply()
|
|
|
|
switch {
|
|
|
|
case err != nil:
|
|
|
|
return err
|
|
|
|
case !reply.Present:
|
2012-05-08 03:58:33 +02:00
|
|
|
return errorf("No extension named XFIXES could be found on on the server.")
|
2012-05-07 07:00:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
c.extLock.Lock()
|
|
|
|
c.extensions["XFIXES"] = reply.MajorOpcode
|
|
|
|
for evNum, fun := range newExtEventFuncs["XFIXES"] {
|
|
|
|
newEventFuncs[int(reply.FirstEvent)+evNum] = fun
|
|
|
|
}
|
2012-05-08 03:58:33 +02:00
|
|
|
for errNum, fun := range newExtErrorFuncs["XFIXES"] {
|
|
|
|
newErrorFuncs[int(reply.FirstError)+errNum] = fun
|
|
|
|
}
|
2012-05-07 07:00:45 +02:00
|
|
|
c.extLock.Unlock()
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
newExtEventFuncs["XFIXES"] = make(map[int]newEventFun)
|
2012-05-08 03:58:33 +02:00
|
|
|
newExtErrorFuncs["XFIXES"] = make(map[int]newErrorFun)
|
2012-05-07 07:00:45 +02:00
|
|
|
}
|
|
|
|
|
2012-05-08 06:27:00 +02:00
|
|
|
// Skipping definition for base type 'Void'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Byte'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Int8'
|
|
|
|
|
2012-05-06 09:06:48 +02:00
|
|
|
// Skipping definition for base type 'Card16'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Char'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Card32'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Double'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Bool'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Float'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Id'
|
|
|
|
|
2012-05-08 03:58:33 +02:00
|
|
|
// Skipping definition for base type 'Card8'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Int16'
|
|
|
|
|
|
|
|
// Skipping definition for base type 'Int32'
|
|
|
|
|
2012-05-06 09:06:48 +02:00
|
|
|
const (
|
|
|
|
XfixesSaveSetModeInsert = 0
|
|
|
|
XfixesSaveSetModeDelete = 1
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesSaveSetTargetNearest = 0
|
|
|
|
XfixesSaveSetTargetRoot = 1
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesSaveSetMappingMap = 0
|
|
|
|
XfixesSaveSetMappingUnmap = 1
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesSelectionEventSetSelectionOwner = 0
|
|
|
|
XfixesSelectionEventSelectionWindowDestroy = 1
|
|
|
|
XfixesSelectionEventSelectionClientClose = 2
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesSelectionEventMaskSetSelectionOwner = 1
|
|
|
|
XfixesSelectionEventMaskSelectionWindowDestroy = 2
|
|
|
|
XfixesSelectionEventMaskSelectionClientClose = 4
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesCursorNotifyDisplayCursor = 0
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesCursorNotifyMaskDisplayCursor = 1
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
XfixesRegionNone = 0
|
|
|
|
)
|
|
|
|
|
|
|
|
// Skipping resource definition of 'Region'
|
|
|
|
|
|
|
|
// Event definition XfixesSelectionNotify (0)
|
|
|
|
// Size: 32
|
|
|
|
|
|
|
|
const XfixesSelectionNotify = 0
|
|
|
|
|
|
|
|
type XfixesSelectionNotifyEvent struct {
|
|
|
|
Sequence uint16
|
|
|
|
Subtype byte
|
|
|
|
Window Id
|
|
|
|
Owner Id
|
|
|
|
Selection Id
|
|
|
|
Timestamp Timestamp
|
|
|
|
SelectionTimestamp Timestamp
|
|
|
|
// padding: 8 bytes
|
|
|
|
}
|
|
|
|
|
|
|
|
// Event read XfixesSelectionNotify
|
|
|
|
func NewXfixesSelectionNotifyEvent(buf []byte) Event {
|
|
|
|
v := XfixesSelectionNotifyEvent{}
|
|
|
|
b := 1 // don't read event number
|
|
|
|
|
|
|
|
v.Subtype = buf[b]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Window = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Owner = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Selection = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Timestamp = Timestamp(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.SelectionTimestamp = Timestamp(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += 8 // padding
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
// Event write XfixesSelectionNotify
|
|
|
|
func (v XfixesSelectionNotifyEvent) Bytes() []byte {
|
|
|
|
buf := make([]byte, 32)
|
|
|
|
b := 0
|
|
|
|
|
|
|
|
// write event number
|
|
|
|
buf[b] = 0
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = v.Subtype
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
b += 2 // skip sequence number
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Owner))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Selection))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Timestamp))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.SelectionTimestamp))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += 8 // padding
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
func (v XfixesSelectionNotifyEvent) ImplementsEvent() {}
|
|
|
|
|
|
|
|
func (v XfixesSelectionNotifyEvent) SequenceId() uint16 {
|
|
|
|
return v.Sequence
|
|
|
|
}
|
|
|
|
|
|
|
|
func (v XfixesSelectionNotifyEvent) String() string {
|
|
|
|
fieldVals := make([]string, 0, 7)
|
|
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", v.Sequence))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Subtype: %d", v.Subtype))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Window: %d", v.Window))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Owner: %d", v.Owner))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Selection: %d", v.Selection))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Timestamp: %d", v.Timestamp))
|
|
|
|
fieldVals = append(fieldVals, sprintf("SelectionTimestamp: %d", v.SelectionTimestamp))
|
|
|
|
return "XfixesSelectionNotify {" + stringsJoin(fieldVals, ", ") + "}"
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
2012-05-07 07:00:45 +02:00
|
|
|
newExtEventFuncs["XFIXES"][0] = NewXfixesSelectionNotifyEvent
|
2012-05-06 09:06:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Event definition XfixesCursorNotify (1)
|
|
|
|
// Size: 32
|
|
|
|
|
|
|
|
const XfixesCursorNotify = 1
|
|
|
|
|
|
|
|
type XfixesCursorNotifyEvent struct {
|
|
|
|
Sequence uint16
|
|
|
|
Subtype byte
|
|
|
|
Window Id
|
|
|
|
CursorSerial uint32
|
|
|
|
Timestamp Timestamp
|
|
|
|
Name Id
|
|
|
|
// padding: 12 bytes
|
|
|
|
}
|
|
|
|
|
|
|
|
// Event read XfixesCursorNotify
|
|
|
|
func NewXfixesCursorNotifyEvent(buf []byte) Event {
|
|
|
|
v := XfixesCursorNotifyEvent{}
|
|
|
|
b := 1 // don't read event number
|
|
|
|
|
|
|
|
v.Subtype = buf[b]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Window = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.CursorSerial = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Timestamp = Timestamp(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Name = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += 12 // padding
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
// Event write XfixesCursorNotify
|
|
|
|
func (v XfixesCursorNotifyEvent) Bytes() []byte {
|
|
|
|
buf := make([]byte, 32)
|
|
|
|
b := 0
|
|
|
|
|
|
|
|
// write event number
|
|
|
|
buf[b] = 1
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = v.Subtype
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
b += 2 // skip sequence number
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], v.CursorSerial)
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Timestamp))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(v.Name))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += 12 // padding
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
func (v XfixesCursorNotifyEvent) ImplementsEvent() {}
|
|
|
|
|
|
|
|
func (v XfixesCursorNotifyEvent) SequenceId() uint16 {
|
|
|
|
return v.Sequence
|
|
|
|
}
|
|
|
|
|
|
|
|
func (v XfixesCursorNotifyEvent) String() string {
|
|
|
|
fieldVals := make([]string, 0, 6)
|
|
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", v.Sequence))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Subtype: %d", v.Subtype))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Window: %d", v.Window))
|
|
|
|
fieldVals = append(fieldVals, sprintf("CursorSerial: %d", v.CursorSerial))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Timestamp: %d", v.Timestamp))
|
|
|
|
fieldVals = append(fieldVals, sprintf("Name: %d", v.Name))
|
|
|
|
return "XfixesCursorNotify {" + stringsJoin(fieldVals, ", ") + "}"
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
2012-05-07 07:00:45 +02:00
|
|
|
newExtEventFuncs["XFIXES"][1] = NewXfixesCursorNotifyEvent
|
2012-05-06 09:06:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Error definition XfixesBadRegion (0)
|
|
|
|
// Size: 32
|
|
|
|
|
|
|
|
const BadXfixesBadRegion = 0
|
|
|
|
|
|
|
|
type XfixesBadRegionError struct {
|
|
|
|
Sequence uint16
|
|
|
|
NiceName string
|
|
|
|
}
|
|
|
|
|
|
|
|
// Error read XfixesBadRegion
|
|
|
|
func NewXfixesBadRegionError(buf []byte) Error {
|
|
|
|
v := XfixesBadRegionError{}
|
|
|
|
v.NiceName = "XfixesBadRegion"
|
|
|
|
|
|
|
|
b := 1 // skip error determinant
|
|
|
|
b += 1 // don't read error number
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err XfixesBadRegionError) ImplementsError() {}
|
|
|
|
|
|
|
|
func (err XfixesBadRegionError) SequenceId() uint16 {
|
|
|
|
return err.Sequence
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err XfixesBadRegionError) BadId() Id {
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err XfixesBadRegionError) Error() string {
|
|
|
|
fieldVals := make([]string, 0, 0)
|
|
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
|
|
return "BadXfixesBadRegion {" + stringsJoin(fieldVals, ", ") + "}"
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
2012-05-08 03:58:33 +02:00
|
|
|
newExtErrorFuncs["XFIXES"][0] = NewXfixesBadRegionError
|
2012-05-06 09:06:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesQueryVersion
|
|
|
|
// size: 12
|
|
|
|
type XfixesQueryVersionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesQueryVersion(ClientMajorVersion uint32, ClientMinorVersion uint32) XfixesQueryVersionCookie {
|
|
|
|
cookie := c.newCookie(true, true)
|
|
|
|
c.newRequest(c.xfixesQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie)
|
|
|
|
return XfixesQueryVersionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesQueryVersionUnchecked(ClientMajorVersion uint32, ClientMinorVersion uint32) XfixesQueryVersionCookie {
|
|
|
|
cookie := c.newCookie(false, true)
|
|
|
|
c.newRequest(c.xfixesQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie)
|
|
|
|
return XfixesQueryVersionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request reply for XfixesQueryVersion
|
|
|
|
// size: 32
|
|
|
|
type XfixesQueryVersionReply struct {
|
|
|
|
Sequence uint16
|
|
|
|
Length uint32
|
|
|
|
// padding: 1 bytes
|
|
|
|
MajorVersion uint32
|
|
|
|
MinorVersion uint32
|
|
|
|
// padding: 16 bytes
|
|
|
|
}
|
|
|
|
|
|
|
|
// Waits and reads reply data from request XfixesQueryVersion
|
|
|
|
func (cook XfixesQueryVersionCookie) Reply() (*XfixesQueryVersionReply, error) {
|
|
|
|
buf, err := cook.reply()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if buf == nil {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
return xfixesQueryVersionReply(buf), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read reply into structure from buffer for XfixesQueryVersion
|
|
|
|
func xfixesQueryVersionReply(buf []byte) *XfixesQueryVersionReply {
|
|
|
|
v := new(XfixesQueryVersionReply)
|
|
|
|
b := 1 // skip reply determinant
|
|
|
|
|
|
|
|
b += 1 // padding
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.MajorVersion = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.MinorVersion = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += 16 // padding
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesQueryVersionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesQueryVersion
|
|
|
|
func (c *Conn) xfixesQueryVersionRequest(ClientMajorVersion uint32, ClientMinorVersion uint32) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 0 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], ClientMajorVersion)
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], ClientMinorVersion)
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesChangeSaveSet
|
|
|
|
// size: 12
|
|
|
|
type XfixesChangeSaveSetCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesChangeSaveSet
|
|
|
|
func (c *Conn) XfixesChangeSaveSet(Mode byte, Target byte, Map byte, Window Id) XfixesChangeSaveSetCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesChangeSaveSetRequest(Mode, Target, Map, Window), cookie)
|
|
|
|
return XfixesChangeSaveSetCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesChangeSaveSetChecked(Mode byte, Target byte, Map byte, Window Id) XfixesChangeSaveSetCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesChangeSaveSetRequest(Mode, Target, Map, Window), cookie)
|
|
|
|
return XfixesChangeSaveSetCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesChangeSaveSetCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesChangeSaveSet
|
|
|
|
func (c *Conn) xfixesChangeSaveSetRequest(Mode byte, Target byte, Map byte, Window Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 1 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
buf[b] = Mode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = Target
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = Map
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
b += 1 // padding
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSelectSelectionInput
|
|
|
|
// size: 16
|
|
|
|
type XfixesSelectSelectionInputCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSelectSelectionInput
|
|
|
|
func (c *Conn) XfixesSelectSelectionInput(Window Id, Selection Id, EventMask uint32) XfixesSelectSelectionInputCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSelectSelectionInputRequest(Window, Selection, EventMask), cookie)
|
|
|
|
return XfixesSelectSelectionInputCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSelectSelectionInputChecked(Window Id, Selection Id, EventMask uint32) XfixesSelectSelectionInputCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSelectSelectionInputRequest(Window, Selection, EventMask), cookie)
|
|
|
|
return XfixesSelectSelectionInputCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSelectSelectionInputCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSelectSelectionInput
|
|
|
|
func (c *Conn) xfixesSelectSelectionInputRequest(Window Id, Selection Id, EventMask uint32) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 2 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Selection))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], EventMask)
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSelectCursorInput
|
|
|
|
// size: 12
|
|
|
|
type XfixesSelectCursorInputCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSelectCursorInput
|
|
|
|
func (c *Conn) XfixesSelectCursorInput(Window Id, EventMask uint32) XfixesSelectCursorInputCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSelectCursorInputRequest(Window, EventMask), cookie)
|
|
|
|
return XfixesSelectCursorInputCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSelectCursorInputChecked(Window Id, EventMask uint32) XfixesSelectCursorInputCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSelectCursorInputRequest(Window, EventMask), cookie)
|
|
|
|
return XfixesSelectCursorInputCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSelectCursorInputCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSelectCursorInput
|
|
|
|
func (c *Conn) xfixesSelectCursorInputRequest(Window Id, EventMask uint32) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 3 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], EventMask)
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesGetCursorImage
|
|
|
|
// size: 4
|
|
|
|
type XfixesGetCursorImageCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesGetCursorImage() XfixesGetCursorImageCookie {
|
|
|
|
cookie := c.newCookie(true, true)
|
|
|
|
c.newRequest(c.xfixesGetCursorImageRequest(), cookie)
|
|
|
|
return XfixesGetCursorImageCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesGetCursorImageUnchecked() XfixesGetCursorImageCookie {
|
|
|
|
cookie := c.newCookie(false, true)
|
|
|
|
c.newRequest(c.xfixesGetCursorImageRequest(), cookie)
|
|
|
|
return XfixesGetCursorImageCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request reply for XfixesGetCursorImage
|
|
|
|
// size: (32 + pad(((int(Width) * int(Height)) * 4)))
|
|
|
|
type XfixesGetCursorImageReply struct {
|
|
|
|
Sequence uint16
|
|
|
|
Length uint32
|
|
|
|
// padding: 1 bytes
|
|
|
|
X int16
|
|
|
|
Y int16
|
|
|
|
Width uint16
|
|
|
|
Height uint16
|
|
|
|
Xhot uint16
|
|
|
|
Yhot uint16
|
|
|
|
CursorSerial uint32
|
|
|
|
// padding: 8 bytes
|
|
|
|
CursorImage []uint32 // size: pad(((int(Width) * int(Height)) * 4))
|
|
|
|
}
|
|
|
|
|
|
|
|
// Waits and reads reply data from request XfixesGetCursorImage
|
|
|
|
func (cook XfixesGetCursorImageCookie) Reply() (*XfixesGetCursorImageReply, error) {
|
|
|
|
buf, err := cook.reply()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if buf == nil {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
return xfixesGetCursorImageReply(buf), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read reply into structure from buffer for XfixesGetCursorImage
|
|
|
|
func xfixesGetCursorImageReply(buf []byte) *XfixesGetCursorImageReply {
|
|
|
|
v := new(XfixesGetCursorImageReply)
|
|
|
|
b := 1 // skip reply determinant
|
|
|
|
|
|
|
|
b += 1 // padding
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.X = int16(Get16(buf[b:]))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Y = int16(Get16(buf[b:]))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Width = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Height = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Xhot = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Yhot = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.CursorSerial = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += 8 // padding
|
|
|
|
|
|
|
|
v.CursorImage = make([]uint32, (int(v.Width) * int(v.Height)))
|
|
|
|
for i := 0; i < int((int(v.Width) * int(v.Height))); i++ {
|
|
|
|
v.CursorImage[i] = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
}
|
|
|
|
b = pad(b)
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesGetCursorImageCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesGetCursorImage
|
|
|
|
func (c *Conn) xfixesGetCursorImageRequest() []byte {
|
|
|
|
size := 4
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 4 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesCreateRegion
|
|
|
|
// size: pad((8 + pad((len(Rectangles) * 8))))
|
|
|
|
type XfixesCreateRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegion
|
|
|
|
func (c *Conn) XfixesCreateRegion(Region Id, Rectangles []Rectangle) XfixesCreateRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionRequest(Region, Rectangles), cookie)
|
|
|
|
return XfixesCreateRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesCreateRegionChecked(Region Id, Rectangles []Rectangle) XfixesCreateRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionRequest(Region, Rectangles), cookie)
|
|
|
|
return XfixesCreateRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesCreateRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegion
|
|
|
|
func (c *Conn) xfixesCreateRegionRequest(Region Id, Rectangles []Rectangle) []byte {
|
|
|
|
size := pad((8 + pad((len(Rectangles) * 8))))
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 5 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += RectangleListBytes(buf[b:], Rectangles)
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesCreateRegionFromBitmap
|
|
|
|
// size: 12
|
|
|
|
type XfixesCreateRegionFromBitmapCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromBitmap
|
|
|
|
func (c *Conn) XfixesCreateRegionFromBitmap(Region Id, Bitmap Id) XfixesCreateRegionFromBitmapCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromBitmapRequest(Region, Bitmap), cookie)
|
|
|
|
return XfixesCreateRegionFromBitmapCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesCreateRegionFromBitmapChecked(Region Id, Bitmap Id) XfixesCreateRegionFromBitmapCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromBitmapRequest(Region, Bitmap), cookie)
|
|
|
|
return XfixesCreateRegionFromBitmapCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesCreateRegionFromBitmapCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromBitmap
|
|
|
|
func (c *Conn) xfixesCreateRegionFromBitmapRequest(Region Id, Bitmap Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 6 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Bitmap))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesCreateRegionFromWindow
|
|
|
|
// size: 16
|
|
|
|
type XfixesCreateRegionFromWindowCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromWindow
|
|
|
|
func (c *Conn) XfixesCreateRegionFromWindow(Region Id, Window Id, Kind ShapeKind) XfixesCreateRegionFromWindowCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromWindowRequest(Region, Window, Kind), cookie)
|
|
|
|
return XfixesCreateRegionFromWindowCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesCreateRegionFromWindowChecked(Region Id, Window Id, Kind ShapeKind) XfixesCreateRegionFromWindowCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromWindowRequest(Region, Window, Kind), cookie)
|
|
|
|
return XfixesCreateRegionFromWindowCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesCreateRegionFromWindowCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromWindow
|
|
|
|
func (c *Conn) xfixesCreateRegionFromWindowRequest(Region Id, Window Id, Kind ShapeKind) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 7 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
buf[b] = byte(Kind)
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
b += 3 // padding
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesCreateRegionFromGC
|
|
|
|
// size: 12
|
|
|
|
type XfixesCreateRegionFromGCCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromGC
|
|
|
|
func (c *Conn) XfixesCreateRegionFromGC(Region Id, Gc Id) XfixesCreateRegionFromGCCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromGCRequest(Region, Gc), cookie)
|
|
|
|
return XfixesCreateRegionFromGCCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesCreateRegionFromGCChecked(Region Id, Gc Id) XfixesCreateRegionFromGCCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromGCRequest(Region, Gc), cookie)
|
|
|
|
return XfixesCreateRegionFromGCCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesCreateRegionFromGCCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromGC
|
|
|
|
func (c *Conn) xfixesCreateRegionFromGCRequest(Region Id, Gc Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 8 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Gc))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesCreateRegionFromPicture
|
|
|
|
// size: 12
|
|
|
|
type XfixesCreateRegionFromPictureCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromPicture
|
|
|
|
func (c *Conn) XfixesCreateRegionFromPicture(Region Id, Picture Id) XfixesCreateRegionFromPictureCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromPictureRequest(Region, Picture), cookie)
|
|
|
|
return XfixesCreateRegionFromPictureCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesCreateRegionFromPictureChecked(Region Id, Picture Id) XfixesCreateRegionFromPictureCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesCreateRegionFromPictureRequest(Region, Picture), cookie)
|
|
|
|
return XfixesCreateRegionFromPictureCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesCreateRegionFromPictureCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCreateRegionFromPicture
|
|
|
|
func (c *Conn) xfixesCreateRegionFromPictureRequest(Region Id, Picture Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 9 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Picture))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesDestroyRegion
|
|
|
|
// size: 8
|
|
|
|
type XfixesDestroyRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesDestroyRegion
|
|
|
|
func (c *Conn) XfixesDestroyRegion(Region Id) XfixesDestroyRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesDestroyRegionRequest(Region), cookie)
|
|
|
|
return XfixesDestroyRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesDestroyRegionChecked(Region Id) XfixesDestroyRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesDestroyRegionRequest(Region), cookie)
|
|
|
|
return XfixesDestroyRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesDestroyRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesDestroyRegion
|
|
|
|
func (c *Conn) xfixesDestroyRegionRequest(Region Id) []byte {
|
|
|
|
size := 8
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 10 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSetRegion
|
|
|
|
// size: pad((8 + pad((len(Rectangles) * 8))))
|
|
|
|
type XfixesSetRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetRegion
|
|
|
|
func (c *Conn) XfixesSetRegion(Region Id, Rectangles []Rectangle) XfixesSetRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSetRegionRequest(Region, Rectangles), cookie)
|
|
|
|
return XfixesSetRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSetRegionChecked(Region Id, Rectangles []Rectangle) XfixesSetRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSetRegionRequest(Region, Rectangles), cookie)
|
|
|
|
return XfixesSetRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSetRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetRegion
|
|
|
|
func (c *Conn) xfixesSetRegionRequest(Region Id, Rectangles []Rectangle) []byte {
|
|
|
|
size := pad((8 + pad((len(Rectangles) * 8))))
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 11 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
b += RectangleListBytes(buf[b:], Rectangles)
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesCopyRegion
|
|
|
|
// size: 12
|
|
|
|
type XfixesCopyRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCopyRegion
|
|
|
|
func (c *Conn) XfixesCopyRegion(Source Id, Destination Id) XfixesCopyRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesCopyRegionRequest(Source, Destination), cookie)
|
|
|
|
return XfixesCopyRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesCopyRegionChecked(Source Id, Destination Id) XfixesCopyRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesCopyRegionRequest(Source, Destination), cookie)
|
|
|
|
return XfixesCopyRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesCopyRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesCopyRegion
|
|
|
|
func (c *Conn) xfixesCopyRegionRequest(Source Id, Destination Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 12 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesUnionRegion
|
|
|
|
// size: 16
|
|
|
|
type XfixesUnionRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesUnionRegion
|
|
|
|
func (c *Conn) XfixesUnionRegion(Source1 Id, Source2 Id, Destination Id) XfixesUnionRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesUnionRegionRequest(Source1, Source2, Destination), cookie)
|
|
|
|
return XfixesUnionRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesUnionRegionChecked(Source1 Id, Source2 Id, Destination Id) XfixesUnionRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesUnionRegionRequest(Source1, Source2, Destination), cookie)
|
|
|
|
return XfixesUnionRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesUnionRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesUnionRegion
|
|
|
|
func (c *Conn) xfixesUnionRegionRequest(Source1 Id, Source2 Id, Destination Id) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 13 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source1))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source2))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesIntersectRegion
|
|
|
|
// size: 16
|
|
|
|
type XfixesIntersectRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesIntersectRegion
|
|
|
|
func (c *Conn) XfixesIntersectRegion(Source1 Id, Source2 Id, Destination Id) XfixesIntersectRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesIntersectRegionRequest(Source1, Source2, Destination), cookie)
|
|
|
|
return XfixesIntersectRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesIntersectRegionChecked(Source1 Id, Source2 Id, Destination Id) XfixesIntersectRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesIntersectRegionRequest(Source1, Source2, Destination), cookie)
|
|
|
|
return XfixesIntersectRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesIntersectRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesIntersectRegion
|
|
|
|
func (c *Conn) xfixesIntersectRegionRequest(Source1 Id, Source2 Id, Destination Id) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 14 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source1))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source2))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSubtractRegion
|
|
|
|
// size: 16
|
|
|
|
type XfixesSubtractRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSubtractRegion
|
|
|
|
func (c *Conn) XfixesSubtractRegion(Source1 Id, Source2 Id, Destination Id) XfixesSubtractRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSubtractRegionRequest(Source1, Source2, Destination), cookie)
|
|
|
|
return XfixesSubtractRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSubtractRegionChecked(Source1 Id, Source2 Id, Destination Id) XfixesSubtractRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSubtractRegionRequest(Source1, Source2, Destination), cookie)
|
|
|
|
return XfixesSubtractRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSubtractRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSubtractRegion
|
|
|
|
func (c *Conn) xfixesSubtractRegionRequest(Source1 Id, Source2 Id, Destination Id) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 15 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source1))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source2))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesInvertRegion
|
|
|
|
// size: 20
|
|
|
|
type XfixesInvertRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesInvertRegion
|
|
|
|
func (c *Conn) XfixesInvertRegion(Source Id, Bounds Rectangle, Destination Id) XfixesInvertRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesInvertRegionRequest(Source, Bounds, Destination), cookie)
|
|
|
|
return XfixesInvertRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesInvertRegionChecked(Source Id, Bounds Rectangle, Destination Id) XfixesInvertRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesInvertRegionRequest(Source, Bounds, Destination), cookie)
|
|
|
|
return XfixesInvertRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesInvertRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesInvertRegion
|
|
|
|
func (c *Conn) xfixesInvertRegionRequest(Source Id, Bounds Rectangle, Destination Id) []byte {
|
|
|
|
size := 20
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 16 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
{
|
|
|
|
structBytes := Bounds.Bytes()
|
|
|
|
copy(buf[b:], structBytes)
|
|
|
|
b += pad(len(structBytes))
|
|
|
|
}
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesTranslateRegion
|
|
|
|
// size: 12
|
|
|
|
type XfixesTranslateRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesTranslateRegion
|
|
|
|
func (c *Conn) XfixesTranslateRegion(Region Id, Dx int16, Dy int16) XfixesTranslateRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesTranslateRegionRequest(Region, Dx, Dy), cookie)
|
|
|
|
return XfixesTranslateRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesTranslateRegionChecked(Region Id, Dx int16, Dy int16) XfixesTranslateRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesTranslateRegionRequest(Region, Dx, Dy), cookie)
|
|
|
|
return XfixesTranslateRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesTranslateRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesTranslateRegion
|
|
|
|
func (c *Conn) xfixesTranslateRegionRequest(Region Id, Dx int16, Dy int16) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 17 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(Dx))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(Dy))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesRegionExtents
|
|
|
|
// size: 12
|
|
|
|
type XfixesRegionExtentsCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesRegionExtents
|
|
|
|
func (c *Conn) XfixesRegionExtents(Source Id, Destination Id) XfixesRegionExtentsCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesRegionExtentsRequest(Source, Destination), cookie)
|
|
|
|
return XfixesRegionExtentsCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesRegionExtentsChecked(Source Id, Destination Id) XfixesRegionExtentsCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesRegionExtentsRequest(Source, Destination), cookie)
|
|
|
|
return XfixesRegionExtentsCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesRegionExtentsCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesRegionExtents
|
|
|
|
func (c *Conn) xfixesRegionExtentsRequest(Source Id, Destination Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 18 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesFetchRegion
|
|
|
|
// size: 8
|
|
|
|
type XfixesFetchRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesFetchRegion(Region Id) XfixesFetchRegionCookie {
|
|
|
|
cookie := c.newCookie(true, true)
|
|
|
|
c.newRequest(c.xfixesFetchRegionRequest(Region), cookie)
|
|
|
|
return XfixesFetchRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesFetchRegionUnchecked(Region Id) XfixesFetchRegionCookie {
|
|
|
|
cookie := c.newCookie(false, true)
|
|
|
|
c.newRequest(c.xfixesFetchRegionRequest(Region), cookie)
|
|
|
|
return XfixesFetchRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request reply for XfixesFetchRegion
|
|
|
|
// size: (32 + pad(((int(Length) / 2) * 8)))
|
|
|
|
type XfixesFetchRegionReply struct {
|
|
|
|
Sequence uint16
|
|
|
|
Length uint32
|
|
|
|
// padding: 1 bytes
|
|
|
|
Extents Rectangle
|
|
|
|
// padding: 16 bytes
|
|
|
|
Rectangles []Rectangle // size: pad(((int(Length) / 2) * 8))
|
|
|
|
}
|
|
|
|
|
|
|
|
// Waits and reads reply data from request XfixesFetchRegion
|
|
|
|
func (cook XfixesFetchRegionCookie) Reply() (*XfixesFetchRegionReply, error) {
|
|
|
|
buf, err := cook.reply()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if buf == nil {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
return xfixesFetchRegionReply(buf), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read reply into structure from buffer for XfixesFetchRegion
|
|
|
|
func xfixesFetchRegionReply(buf []byte) *XfixesFetchRegionReply {
|
|
|
|
v := new(XfixesFetchRegionReply)
|
|
|
|
b := 1 // skip reply determinant
|
|
|
|
|
|
|
|
b += 1 // padding
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Extents = Rectangle{}
|
|
|
|
b += ReadRectangle(buf[b:], &v.Extents)
|
|
|
|
|
|
|
|
b += 16 // padding
|
|
|
|
|
|
|
|
v.Rectangles = make([]Rectangle, (int(v.Length) / 2))
|
|
|
|
b += ReadRectangleList(buf[b:], v.Rectangles)
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesFetchRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesFetchRegion
|
|
|
|
func (c *Conn) xfixesFetchRegionRequest(Region Id) []byte {
|
|
|
|
size := 8
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 19 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSetGCClipRegion
|
|
|
|
// size: 16
|
|
|
|
type XfixesSetGCClipRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetGCClipRegion
|
|
|
|
func (c *Conn) XfixesSetGCClipRegion(Gc Id, Region Id, XOrigin int16, YOrigin int16) XfixesSetGCClipRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSetGCClipRegionRequest(Gc, Region, XOrigin, YOrigin), cookie)
|
|
|
|
return XfixesSetGCClipRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSetGCClipRegionChecked(Gc Id, Region Id, XOrigin int16, YOrigin int16) XfixesSetGCClipRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSetGCClipRegionRequest(Gc, Region, XOrigin, YOrigin), cookie)
|
|
|
|
return XfixesSetGCClipRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSetGCClipRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetGCClipRegion
|
|
|
|
func (c *Conn) xfixesSetGCClipRegionRequest(Gc Id, Region Id, XOrigin int16, YOrigin int16) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 20 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Gc))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(XOrigin))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(YOrigin))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSetWindowShapeRegion
|
|
|
|
// size: 20
|
|
|
|
type XfixesSetWindowShapeRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetWindowShapeRegion
|
|
|
|
func (c *Conn) XfixesSetWindowShapeRegion(Dest Id, DestKind ShapeKind, XOffset int16, YOffset int16, Region Id) XfixesSetWindowShapeRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSetWindowShapeRegionRequest(Dest, DestKind, XOffset, YOffset, Region), cookie)
|
|
|
|
return XfixesSetWindowShapeRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSetWindowShapeRegionChecked(Dest Id, DestKind ShapeKind, XOffset int16, YOffset int16, Region Id) XfixesSetWindowShapeRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSetWindowShapeRegionRequest(Dest, DestKind, XOffset, YOffset, Region), cookie)
|
|
|
|
return XfixesSetWindowShapeRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSetWindowShapeRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetWindowShapeRegion
|
|
|
|
func (c *Conn) xfixesSetWindowShapeRegionRequest(Dest Id, DestKind ShapeKind, XOffset int16, YOffset int16, Region Id) []byte {
|
|
|
|
size := 20
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 21 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Dest))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
buf[b] = byte(DestKind)
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
b += 3 // padding
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(XOffset))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(YOffset))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSetPictureClipRegion
|
|
|
|
// size: 16
|
|
|
|
type XfixesSetPictureClipRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetPictureClipRegion
|
|
|
|
func (c *Conn) XfixesSetPictureClipRegion(Picture Id, Region Id, XOrigin int16, YOrigin int16) XfixesSetPictureClipRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSetPictureClipRegionRequest(Picture, Region, XOrigin, YOrigin), cookie)
|
|
|
|
return XfixesSetPictureClipRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSetPictureClipRegionChecked(Picture Id, Region Id, XOrigin int16, YOrigin int16) XfixesSetPictureClipRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSetPictureClipRegionRequest(Picture, Region, XOrigin, YOrigin), cookie)
|
|
|
|
return XfixesSetPictureClipRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSetPictureClipRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetPictureClipRegion
|
|
|
|
func (c *Conn) xfixesSetPictureClipRegionRequest(Picture Id, Region Id, XOrigin int16, YOrigin int16) []byte {
|
|
|
|
size := 16
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 22 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Picture))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(XOrigin))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(YOrigin))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesSetCursorName
|
|
|
|
// size: pad((12 + pad((int(Nbytes) * 1))))
|
|
|
|
type XfixesSetCursorNameCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetCursorName
|
|
|
|
func (c *Conn) XfixesSetCursorName(Cursor Id, Nbytes uint16, Name string) XfixesSetCursorNameCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesSetCursorNameRequest(Cursor, Nbytes, Name), cookie)
|
|
|
|
return XfixesSetCursorNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesSetCursorNameChecked(Cursor Id, Nbytes uint16, Name string) XfixesSetCursorNameCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesSetCursorNameRequest(Cursor, Nbytes, Name), cookie)
|
|
|
|
return XfixesSetCursorNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesSetCursorNameCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesSetCursorName
|
|
|
|
func (c *Conn) xfixesSetCursorNameRequest(Cursor Id, Nbytes uint16, Name string) []byte {
|
|
|
|
size := pad((12 + pad((int(Nbytes) * 1))))
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 23 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Cursor))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put16(buf[b:], Nbytes)
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
b += 2 // padding
|
|
|
|
|
|
|
|
copy(buf[b:], Name[:Nbytes])
|
|
|
|
b += pad(int(Nbytes))
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesGetCursorName
|
|
|
|
// size: 8
|
|
|
|
type XfixesGetCursorNameCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesGetCursorName(Cursor Id) XfixesGetCursorNameCookie {
|
|
|
|
cookie := c.newCookie(true, true)
|
|
|
|
c.newRequest(c.xfixesGetCursorNameRequest(Cursor), cookie)
|
|
|
|
return XfixesGetCursorNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesGetCursorNameUnchecked(Cursor Id) XfixesGetCursorNameCookie {
|
|
|
|
cookie := c.newCookie(false, true)
|
|
|
|
c.newRequest(c.xfixesGetCursorNameRequest(Cursor), cookie)
|
|
|
|
return XfixesGetCursorNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request reply for XfixesGetCursorName
|
|
|
|
// size: (32 + pad((int(Nbytes) * 1)))
|
|
|
|
type XfixesGetCursorNameReply struct {
|
|
|
|
Sequence uint16
|
|
|
|
Length uint32
|
|
|
|
// padding: 1 bytes
|
|
|
|
Atom Id
|
|
|
|
Nbytes uint16
|
|
|
|
// padding: 18 bytes
|
|
|
|
Name string // size: pad((int(Nbytes) * 1))
|
|
|
|
}
|
|
|
|
|
|
|
|
// Waits and reads reply data from request XfixesGetCursorName
|
|
|
|
func (cook XfixesGetCursorNameCookie) Reply() (*XfixesGetCursorNameReply, error) {
|
|
|
|
buf, err := cook.reply()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if buf == nil {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
return xfixesGetCursorNameReply(buf), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read reply into structure from buffer for XfixesGetCursorName
|
|
|
|
func xfixesGetCursorNameReply(buf []byte) *XfixesGetCursorNameReply {
|
|
|
|
v := new(XfixesGetCursorNameReply)
|
|
|
|
b := 1 // skip reply determinant
|
|
|
|
|
|
|
|
b += 1 // padding
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Atom = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Nbytes = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
b += 18 // padding
|
|
|
|
|
|
|
|
{
|
|
|
|
byteString := make([]byte, v.Nbytes)
|
|
|
|
copy(byteString[:v.Nbytes], buf[b:])
|
|
|
|
v.Name = string(byteString)
|
|
|
|
b += pad(int(v.Nbytes))
|
|
|
|
}
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesGetCursorNameCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesGetCursorName
|
|
|
|
func (c *Conn) xfixesGetCursorNameRequest(Cursor Id) []byte {
|
|
|
|
size := 8
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 24 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Cursor))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesGetCursorImageAndName
|
|
|
|
// size: 4
|
|
|
|
type XfixesGetCursorImageAndNameCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesGetCursorImageAndName() XfixesGetCursorImageAndNameCookie {
|
|
|
|
cookie := c.newCookie(true, true)
|
|
|
|
c.newRequest(c.xfixesGetCursorImageAndNameRequest(), cookie)
|
|
|
|
return XfixesGetCursorImageAndNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesGetCursorImageAndNameUnchecked() XfixesGetCursorImageAndNameCookie {
|
|
|
|
cookie := c.newCookie(false, true)
|
|
|
|
c.newRequest(c.xfixesGetCursorImageAndNameRequest(), cookie)
|
|
|
|
return XfixesGetCursorImageAndNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request reply for XfixesGetCursorImageAndName
|
|
|
|
// size: ((32 + pad((int(Nbytes) * 1))) + pad(((int(Width) * int(Height)) * 4)))
|
|
|
|
type XfixesGetCursorImageAndNameReply struct {
|
|
|
|
Sequence uint16
|
|
|
|
Length uint32
|
|
|
|
// padding: 1 bytes
|
|
|
|
X int16
|
|
|
|
Y int16
|
|
|
|
Width uint16
|
|
|
|
Height uint16
|
|
|
|
Xhot uint16
|
|
|
|
Yhot uint16
|
|
|
|
CursorSerial uint32
|
|
|
|
CursorAtom Id
|
|
|
|
Nbytes uint16
|
|
|
|
// padding: 2 bytes
|
|
|
|
Name string // size: pad((int(Nbytes) * 1))
|
|
|
|
CursorImage []uint32 // size: pad(((int(Width) * int(Height)) * 4))
|
|
|
|
}
|
|
|
|
|
|
|
|
// Waits and reads reply data from request XfixesGetCursorImageAndName
|
|
|
|
func (cook XfixesGetCursorImageAndNameCookie) Reply() (*XfixesGetCursorImageAndNameReply, error) {
|
|
|
|
buf, err := cook.reply()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if buf == nil {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
return xfixesGetCursorImageAndNameReply(buf), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read reply into structure from buffer for XfixesGetCursorImageAndName
|
|
|
|
func xfixesGetCursorImageAndNameReply(buf []byte) *XfixesGetCursorImageAndNameReply {
|
|
|
|
v := new(XfixesGetCursorImageAndNameReply)
|
|
|
|
b := 1 // skip reply determinant
|
|
|
|
|
|
|
|
b += 1 // padding
|
|
|
|
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.X = int16(Get16(buf[b:]))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Y = int16(Get16(buf[b:]))
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Width = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Height = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Xhot = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.Yhot = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
v.CursorSerial = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.CursorAtom = Id(Get32(buf[b:]))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
v.Nbytes = Get16(buf[b:])
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
b += 2 // padding
|
|
|
|
|
|
|
|
{
|
|
|
|
byteString := make([]byte, v.Nbytes)
|
|
|
|
copy(byteString[:v.Nbytes], buf[b:])
|
|
|
|
v.Name = string(byteString)
|
|
|
|
b += pad(int(v.Nbytes))
|
|
|
|
}
|
|
|
|
|
|
|
|
v.CursorImage = make([]uint32, (int(v.Width) * int(v.Height)))
|
|
|
|
for i := 0; i < int((int(v.Width) * int(v.Height))); i++ {
|
|
|
|
v.CursorImage[i] = Get32(buf[b:])
|
|
|
|
b += 4
|
|
|
|
}
|
|
|
|
b = pad(b)
|
|
|
|
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesGetCursorImageAndNameCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesGetCursorImageAndName
|
|
|
|
func (c *Conn) xfixesGetCursorImageAndNameRequest() []byte {
|
|
|
|
size := 4
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 25 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesChangeCursor
|
|
|
|
// size: 12
|
|
|
|
type XfixesChangeCursorCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesChangeCursor
|
|
|
|
func (c *Conn) XfixesChangeCursor(Source Id, Destination Id) XfixesChangeCursorCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesChangeCursorRequest(Source, Destination), cookie)
|
|
|
|
return XfixesChangeCursorCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesChangeCursorChecked(Source Id, Destination Id) XfixesChangeCursorCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesChangeCursorRequest(Source, Destination), cookie)
|
|
|
|
return XfixesChangeCursorCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesChangeCursorCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesChangeCursor
|
|
|
|
func (c *Conn) xfixesChangeCursorRequest(Source Id, Destination Id) []byte {
|
|
|
|
size := 12
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 26 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesChangeCursorByName
|
|
|
|
// size: pad((12 + pad((int(Nbytes) * 1))))
|
|
|
|
type XfixesChangeCursorByNameCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesChangeCursorByName
|
|
|
|
func (c *Conn) XfixesChangeCursorByName(Src Id, Nbytes uint16, Name string) XfixesChangeCursorByNameCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesChangeCursorByNameRequest(Src, Nbytes, Name), cookie)
|
|
|
|
return XfixesChangeCursorByNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesChangeCursorByNameChecked(Src Id, Nbytes uint16, Name string) XfixesChangeCursorByNameCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesChangeCursorByNameRequest(Src, Nbytes, Name), cookie)
|
|
|
|
return XfixesChangeCursorByNameCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesChangeCursorByNameCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesChangeCursorByName
|
|
|
|
func (c *Conn) xfixesChangeCursorByNameRequest(Src Id, Nbytes uint16, Name string) []byte {
|
|
|
|
size := pad((12 + pad((int(Nbytes) * 1))))
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 27 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Src))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put16(buf[b:], Nbytes)
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
b += 2 // padding
|
|
|
|
|
|
|
|
copy(buf[b:], Name[:Nbytes])
|
|
|
|
b += pad(int(Nbytes))
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesExpandRegion
|
|
|
|
// size: 20
|
|
|
|
type XfixesExpandRegionCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesExpandRegion
|
|
|
|
func (c *Conn) XfixesExpandRegion(Source Id, Destination Id, Left uint16, Right uint16, Top uint16, Bottom uint16) XfixesExpandRegionCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesExpandRegionRequest(Source, Destination, Left, Right, Top, Bottom), cookie)
|
|
|
|
return XfixesExpandRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesExpandRegionChecked(Source Id, Destination Id, Left uint16, Right uint16, Top uint16, Bottom uint16) XfixesExpandRegionCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesExpandRegionRequest(Source, Destination, Left, Right, Top, Bottom), cookie)
|
|
|
|
return XfixesExpandRegionCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesExpandRegionCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesExpandRegion
|
|
|
|
func (c *Conn) xfixesExpandRegionRequest(Source Id, Destination Id, Left uint16, Right uint16, Top uint16, Bottom uint16) []byte {
|
|
|
|
size := 20
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 28 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Source))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Destination))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
Put16(buf[b:], Left)
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], Right)
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], Top)
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put16(buf[b:], Bottom)
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesHideCursor
|
|
|
|
// size: 8
|
|
|
|
type XfixesHideCursorCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesHideCursor
|
|
|
|
func (c *Conn) XfixesHideCursor(Window Id) XfixesHideCursorCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesHideCursorRequest(Window), cookie)
|
|
|
|
return XfixesHideCursorCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesHideCursorChecked(Window Id) XfixesHideCursorCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesHideCursorRequest(Window), cookie)
|
|
|
|
return XfixesHideCursorCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesHideCursorCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesHideCursor
|
|
|
|
func (c *Conn) xfixesHideCursorRequest(Window Id) []byte {
|
|
|
|
size := 8
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 29 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|
|
|
|
|
|
|
|
// Request XfixesShowCursor
|
|
|
|
// size: 8
|
|
|
|
type XfixesShowCursorCookie struct {
|
|
|
|
*cookie
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesShowCursor
|
|
|
|
func (c *Conn) XfixesShowCursor(Window Id) XfixesShowCursorCookie {
|
|
|
|
cookie := c.newCookie(false, false)
|
|
|
|
c.newRequest(c.xfixesShowCursorRequest(Window), cookie)
|
|
|
|
return XfixesShowCursorCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Conn) XfixesShowCursorChecked(Window Id) XfixesShowCursorCookie {
|
|
|
|
cookie := c.newCookie(true, false)
|
|
|
|
c.newRequest(c.xfixesShowCursorRequest(Window), cookie)
|
|
|
|
return XfixesShowCursorCookie{cookie}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (cook XfixesShowCursorCookie) Check() error {
|
|
|
|
return cook.check()
|
|
|
|
}
|
|
|
|
|
|
|
|
// Write request to wire for XfixesShowCursor
|
|
|
|
func (c *Conn) xfixesShowCursorRequest(Window Id) []byte {
|
|
|
|
size := 8
|
|
|
|
b := 0
|
|
|
|
buf := make([]byte, size)
|
|
|
|
|
|
|
|
buf[b] = c.extensions["XFIXES"]
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
buf[b] = 30 // request opcode
|
|
|
|
b += 1
|
|
|
|
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
|
|
b += 2
|
|
|
|
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
|
|
b += 4
|
|
|
|
|
|
|
|
return buf
|
|
|
|
}
|