Update to latest xproto XML.
This commit is contained in:
		
							
								
								
									
										368
									
								
								nexgb/res/res.go
									
									
									
									
									
								
							
							
						
						
									
										368
									
								
								nexgb/res/res.go
									
									
									
									
									
								
							@@ -2,7 +2,7 @@
 | 
			
		||||
package res
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
	This file was generated by res.xml on Jun 5 2012 12:11:59am EDT.
 | 
			
		||||
	This file was generated by res.xml on Aug 11 2013 8:39:43pm EDT.
 | 
			
		||||
	This file is automatically generated. Edit at your peril!
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
@@ -40,30 +40,6 @@ func init() {
 | 
			
		||||
	xgb.NewExtErrorFuncs["X-Resource"] = make(map[int]xgb.NewErrorFun)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 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 'Card8'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Int16'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Int32'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Void'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Byte'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Int8'
 | 
			
		||||
 | 
			
		||||
type Client struct {
 | 
			
		||||
	ResourceBase uint32
 | 
			
		||||
	ResourceMask uint32
 | 
			
		||||
@@ -172,44 +148,68 @@ func TypeListBytes(buf []byte, list []Type) int {
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersionCookie is a cookie used only for QueryVersion requests.
 | 
			
		||||
type QueryVersionCookie struct {
 | 
			
		||||
// Skipping definition for base type 'Bool'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Byte'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Card8'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Char'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Void'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Double'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Float'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Int16'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Int32'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Int8'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Card16'
 | 
			
		||||
 | 
			
		||||
// Skipping definition for base type 'Card32'
 | 
			
		||||
 | 
			
		||||
// QueryClientPixmapBytesCookie is a cookie used only for QueryClientPixmapBytes requests.
 | 
			
		||||
type QueryClientPixmapBytesCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersion sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling QueryVersionCookie.Reply()
 | 
			
		||||
func QueryVersion(c *xgb.Conn, ClientMajor byte, ClientMinor byte) QueryVersionCookie {
 | 
			
		||||
// QueryClientPixmapBytes sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling QueryClientPixmapBytesCookie.Reply()
 | 
			
		||||
func QueryClientPixmapBytes(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(true, true)
 | 
			
		||||
	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie)
 | 
			
		||||
	return QueryVersionCookie{cookie}
 | 
			
		||||
	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie)
 | 
			
		||||
	return QueryClientPixmapBytesCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersionUnchecked sends an unchecked request.
 | 
			
		||||
// QueryClientPixmapBytesUnchecked sends an unchecked request.
 | 
			
		||||
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
 | 
			
		||||
func QueryVersionUnchecked(c *xgb.Conn, ClientMajor byte, ClientMinor byte) QueryVersionCookie {
 | 
			
		||||
func QueryClientPixmapBytesUnchecked(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(false, true)
 | 
			
		||||
	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie)
 | 
			
		||||
	return QueryVersionCookie{cookie}
 | 
			
		||||
	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie)
 | 
			
		||||
	return QueryClientPixmapBytesCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersionReply represents the data returned from a QueryVersion request.
 | 
			
		||||
type QueryVersionReply struct {
 | 
			
		||||
// QueryClientPixmapBytesReply represents the data returned from a QueryClientPixmapBytes request.
 | 
			
		||||
type QueryClientPixmapBytesReply struct {
 | 
			
		||||
	Sequence uint16 // sequence number of the request for this reply
 | 
			
		||||
	Length   uint32 // number of bytes in this reply
 | 
			
		||||
	// padding: 1 bytes
 | 
			
		||||
	ServerMajor uint16
 | 
			
		||||
	ServerMinor uint16
 | 
			
		||||
	Bytes         uint32
 | 
			
		||||
	BytesOverflow uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reply blocks and returns the reply data for a QueryVersion request.
 | 
			
		||||
func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {
 | 
			
		||||
// Reply blocks and returns the reply data for a QueryClientPixmapBytes request.
 | 
			
		||||
func (cook QueryClientPixmapBytesCookie) Reply() (*QueryClientPixmapBytesReply, error) {
 | 
			
		||||
	buf, err := cook.Cookie.Reply()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -217,12 +217,12 @@ func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {
 | 
			
		||||
	if buf == nil {
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	}
 | 
			
		||||
	return queryVersionReply(buf), nil
 | 
			
		||||
	return queryClientPixmapBytesReply(buf), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// queryVersionReply reads a byte slice into a QueryVersionReply value.
 | 
			
		||||
func queryVersionReply(buf []byte) *QueryVersionReply {
 | 
			
		||||
	v := new(QueryVersionReply)
 | 
			
		||||
// queryClientPixmapBytesReply reads a byte slice into a QueryClientPixmapBytesReply value.
 | 
			
		||||
func queryClientPixmapBytesReply(buf []byte) *QueryClientPixmapBytesReply {
 | 
			
		||||
	v := new(QueryClientPixmapBytesReply)
 | 
			
		||||
	b := 1 // skip reply determinant
 | 
			
		||||
 | 
			
		||||
	b += 1 // padding
 | 
			
		||||
@@ -233,18 +233,18 @@ func queryVersionReply(buf []byte) *QueryVersionReply {
 | 
			
		||||
	v.Length = xgb.Get32(buf[b:]) // 4-byte units
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	v.ServerMajor = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
	v.Bytes = xgb.Get32(buf[b:])
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	v.ServerMinor = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
	v.BytesOverflow = xgb.Get32(buf[b:])
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Write request to wire for QueryVersion
 | 
			
		||||
// queryVersionRequest writes a QueryVersion request to a byte slice.
 | 
			
		||||
func queryVersionRequest(c *xgb.Conn, ClientMajor byte, ClientMinor byte) []byte {
 | 
			
		||||
// Write request to wire for QueryClientPixmapBytes
 | 
			
		||||
// queryClientPixmapBytesRequest writes a QueryClientPixmapBytes request to a byte slice.
 | 
			
		||||
func queryClientPixmapBytesRequest(c *xgb.Conn, Xid uint32) []byte {
 | 
			
		||||
	size := 8
 | 
			
		||||
	b := 0
 | 
			
		||||
	buf := make([]byte, size)
 | 
			
		||||
@@ -252,110 +252,15 @@ func queryVersionRequest(c *xgb.Conn, ClientMajor byte, ClientMinor byte) []byte
 | 
			
		||||
	buf[b] = c.Extensions["X-RESOURCE"]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = 0 // request opcode
 | 
			
		||||
	buf[b] = 3 // request opcode
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	buf[b] = ClientMajor
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = ClientMinor
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientsCookie is a cookie used only for QueryClients requests.
 | 
			
		||||
type QueryClientsCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClients sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling QueryClientsCookie.Reply()
 | 
			
		||||
func QueryClients(c *xgb.Conn) QueryClientsCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(true, true)
 | 
			
		||||
	c.NewRequest(queryClientsRequest(c), cookie)
 | 
			
		||||
	return QueryClientsCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientsUnchecked sends an unchecked request.
 | 
			
		||||
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
 | 
			
		||||
func QueryClientsUnchecked(c *xgb.Conn) QueryClientsCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(false, true)
 | 
			
		||||
	c.NewRequest(queryClientsRequest(c), cookie)
 | 
			
		||||
	return QueryClientsCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientsReply represents the data returned from a QueryClients request.
 | 
			
		||||
type QueryClientsReply struct {
 | 
			
		||||
	Sequence uint16 // sequence number of the request for this reply
 | 
			
		||||
	Length   uint32 // number of bytes in this reply
 | 
			
		||||
	// padding: 1 bytes
 | 
			
		||||
	NumClients uint32
 | 
			
		||||
	// padding: 20 bytes
 | 
			
		||||
	Clients []Client // size: xgb.Pad((int(NumClients) * 8))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reply blocks and returns the reply data for a QueryClients request.
 | 
			
		||||
func (cook QueryClientsCookie) Reply() (*QueryClientsReply, error) {
 | 
			
		||||
	buf, err := cook.Cookie.Reply()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if buf == nil {
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	}
 | 
			
		||||
	return queryClientsReply(buf), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// queryClientsReply reads a byte slice into a QueryClientsReply value.
 | 
			
		||||
func queryClientsReply(buf []byte) *QueryClientsReply {
 | 
			
		||||
	v := new(QueryClientsReply)
 | 
			
		||||
	b := 1 // skip reply determinant
 | 
			
		||||
 | 
			
		||||
	b += 1 // padding
 | 
			
		||||
 | 
			
		||||
	v.Sequence = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	v.Length = xgb.Get32(buf[b:]) // 4-byte units
 | 
			
		||||
	xgb.Put32(buf[b:], Xid)
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	v.NumClients = xgb.Get32(buf[b:])
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	b += 20 // padding
 | 
			
		||||
 | 
			
		||||
	v.Clients = make([]Client, v.NumClients)
 | 
			
		||||
	b += ClientReadList(buf[b:], v.Clients)
 | 
			
		||||
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Write request to wire for QueryClients
 | 
			
		||||
// queryClientsRequest writes a QueryClients request to a byte slice.
 | 
			
		||||
func queryClientsRequest(c *xgb.Conn) []byte {
 | 
			
		||||
	size := 4
 | 
			
		||||
	b := 0
 | 
			
		||||
	buf := make([]byte, size)
 | 
			
		||||
 | 
			
		||||
	buf[b] = c.Extensions["X-RESOURCE"]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = 1 // request opcode
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -454,44 +359,45 @@ func queryClientResourcesRequest(c *xgb.Conn, Xid uint32) []byte {
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientPixmapBytesCookie is a cookie used only for QueryClientPixmapBytes requests.
 | 
			
		||||
type QueryClientPixmapBytesCookie struct {
 | 
			
		||||
// QueryClientsCookie is a cookie used only for QueryClients requests.
 | 
			
		||||
type QueryClientsCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientPixmapBytes sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling QueryClientPixmapBytesCookie.Reply()
 | 
			
		||||
func QueryClientPixmapBytes(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie {
 | 
			
		||||
// QueryClients sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling QueryClientsCookie.Reply()
 | 
			
		||||
func QueryClients(c *xgb.Conn) QueryClientsCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(true, true)
 | 
			
		||||
	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie)
 | 
			
		||||
	return QueryClientPixmapBytesCookie{cookie}
 | 
			
		||||
	c.NewRequest(queryClientsRequest(c), cookie)
 | 
			
		||||
	return QueryClientsCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientPixmapBytesUnchecked sends an unchecked request.
 | 
			
		||||
// QueryClientsUnchecked sends an unchecked request.
 | 
			
		||||
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
 | 
			
		||||
func QueryClientPixmapBytesUnchecked(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie {
 | 
			
		||||
func QueryClientsUnchecked(c *xgb.Conn) QueryClientsCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(false, true)
 | 
			
		||||
	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie)
 | 
			
		||||
	return QueryClientPixmapBytesCookie{cookie}
 | 
			
		||||
	c.NewRequest(queryClientsRequest(c), cookie)
 | 
			
		||||
	return QueryClientsCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryClientPixmapBytesReply represents the data returned from a QueryClientPixmapBytes request.
 | 
			
		||||
type QueryClientPixmapBytesReply struct {
 | 
			
		||||
// QueryClientsReply represents the data returned from a QueryClients request.
 | 
			
		||||
type QueryClientsReply struct {
 | 
			
		||||
	Sequence uint16 // sequence number of the request for this reply
 | 
			
		||||
	Length   uint32 // number of bytes in this reply
 | 
			
		||||
	// padding: 1 bytes
 | 
			
		||||
	Bytes         uint32
 | 
			
		||||
	BytesOverflow uint32
 | 
			
		||||
	NumClients uint32
 | 
			
		||||
	// padding: 20 bytes
 | 
			
		||||
	Clients []Client // size: xgb.Pad((int(NumClients) * 8))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reply blocks and returns the reply data for a QueryClientPixmapBytes request.
 | 
			
		||||
func (cook QueryClientPixmapBytesCookie) Reply() (*QueryClientPixmapBytesReply, error) {
 | 
			
		||||
// Reply blocks and returns the reply data for a QueryClients request.
 | 
			
		||||
func (cook QueryClientsCookie) Reply() (*QueryClientsReply, error) {
 | 
			
		||||
	buf, err := cook.Cookie.Reply()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
@@ -499,12 +405,12 @@ func (cook QueryClientPixmapBytesCookie) Reply() (*QueryClientPixmapBytesReply,
 | 
			
		||||
	if buf == nil {
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	}
 | 
			
		||||
	return queryClientPixmapBytesReply(buf), nil
 | 
			
		||||
	return queryClientsReply(buf), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// queryClientPixmapBytesReply reads a byte slice into a QueryClientPixmapBytesReply value.
 | 
			
		||||
func queryClientPixmapBytesReply(buf []byte) *QueryClientPixmapBytesReply {
 | 
			
		||||
	v := new(QueryClientPixmapBytesReply)
 | 
			
		||||
// queryClientsReply reads a byte slice into a QueryClientsReply value.
 | 
			
		||||
func queryClientsReply(buf []byte) *QueryClientsReply {
 | 
			
		||||
	v := new(QueryClientsReply)
 | 
			
		||||
	b := 1 // skip reply determinant
 | 
			
		||||
 | 
			
		||||
	b += 1 // padding
 | 
			
		||||
@@ -515,18 +421,109 @@ func queryClientPixmapBytesReply(buf []byte) *QueryClientPixmapBytesReply {
 | 
			
		||||
	v.Length = xgb.Get32(buf[b:]) // 4-byte units
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	v.Bytes = xgb.Get32(buf[b:])
 | 
			
		||||
	v.NumClients = xgb.Get32(buf[b:])
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	v.BytesOverflow = xgb.Get32(buf[b:])
 | 
			
		||||
	b += 4
 | 
			
		||||
	b += 20 // padding
 | 
			
		||||
 | 
			
		||||
	v.Clients = make([]Client, v.NumClients)
 | 
			
		||||
	b += ClientReadList(buf[b:], v.Clients)
 | 
			
		||||
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Write request to wire for QueryClientPixmapBytes
 | 
			
		||||
// queryClientPixmapBytesRequest writes a QueryClientPixmapBytes request to a byte slice.
 | 
			
		||||
func queryClientPixmapBytesRequest(c *xgb.Conn, Xid uint32) []byte {
 | 
			
		||||
// Write request to wire for QueryClients
 | 
			
		||||
// queryClientsRequest writes a QueryClients request to a byte slice.
 | 
			
		||||
func queryClientsRequest(c *xgb.Conn) []byte {
 | 
			
		||||
	size := 4
 | 
			
		||||
	b := 0
 | 
			
		||||
	buf := make([]byte, size)
 | 
			
		||||
 | 
			
		||||
	buf[b] = c.Extensions["X-RESOURCE"]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = 1 // request opcode
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersionCookie is a cookie used only for QueryVersion requests.
 | 
			
		||||
type QueryVersionCookie struct {
 | 
			
		||||
	*xgb.Cookie
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersion sends a checked request.
 | 
			
		||||
// If an error occurs, it will be returned with the reply by calling QueryVersionCookie.Reply()
 | 
			
		||||
func QueryVersion(c *xgb.Conn, ClientMajor byte, ClientMinor byte) QueryVersionCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(true, true)
 | 
			
		||||
	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie)
 | 
			
		||||
	return QueryVersionCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersionUnchecked sends an unchecked request.
 | 
			
		||||
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
 | 
			
		||||
func QueryVersionUnchecked(c *xgb.Conn, ClientMajor byte, ClientMinor byte) QueryVersionCookie {
 | 
			
		||||
	if _, ok := c.Extensions["X-RESOURCE"]; !ok {
 | 
			
		||||
		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")
 | 
			
		||||
	}
 | 
			
		||||
	cookie := c.NewCookie(false, true)
 | 
			
		||||
	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie)
 | 
			
		||||
	return QueryVersionCookie{cookie}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// QueryVersionReply represents the data returned from a QueryVersion request.
 | 
			
		||||
type QueryVersionReply struct {
 | 
			
		||||
	Sequence uint16 // sequence number of the request for this reply
 | 
			
		||||
	Length   uint32 // number of bytes in this reply
 | 
			
		||||
	// padding: 1 bytes
 | 
			
		||||
	ServerMajor uint16
 | 
			
		||||
	ServerMinor uint16
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reply blocks and returns the reply data for a QueryVersion request.
 | 
			
		||||
func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {
 | 
			
		||||
	buf, err := cook.Cookie.Reply()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if buf == nil {
 | 
			
		||||
		return nil, nil
 | 
			
		||||
	}
 | 
			
		||||
	return queryVersionReply(buf), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// queryVersionReply reads a byte slice into a QueryVersionReply value.
 | 
			
		||||
func queryVersionReply(buf []byte) *QueryVersionReply {
 | 
			
		||||
	v := new(QueryVersionReply)
 | 
			
		||||
	b := 1 // skip reply determinant
 | 
			
		||||
 | 
			
		||||
	b += 1 // padding
 | 
			
		||||
 | 
			
		||||
	v.Sequence = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	v.Length = xgb.Get32(buf[b:]) // 4-byte units
 | 
			
		||||
	b += 4
 | 
			
		||||
 | 
			
		||||
	v.ServerMajor = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	v.ServerMinor = xgb.Get16(buf[b:])
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	return v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Write request to wire for QueryVersion
 | 
			
		||||
// queryVersionRequest writes a QueryVersion request to a byte slice.
 | 
			
		||||
func queryVersionRequest(c *xgb.Conn, ClientMajor byte, ClientMinor byte) []byte {
 | 
			
		||||
	size := 8
 | 
			
		||||
	b := 0
 | 
			
		||||
	buf := make([]byte, size)
 | 
			
		||||
@@ -534,14 +531,17 @@ func queryClientPixmapBytesRequest(c *xgb.Conn, Xid uint32) []byte {
 | 
			
		||||
	buf[b] = c.Extensions["X-RESOURCE"]
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = 3 // request opcode
 | 
			
		||||
	buf[b] = 0 // request opcode
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
 | 
			
		||||
	b += 2
 | 
			
		||||
 | 
			
		||||
	xgb.Put32(buf[b:], Xid)
 | 
			
		||||
	b += 4
 | 
			
		||||
	buf[b] = ClientMajor
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	buf[b] = ClientMinor
 | 
			
		||||
	b += 1
 | 
			
		||||
 | 
			
		||||
	return buf
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user