diff options
| author | Andrew Gallant (Ocelot) <[email protected]> | 2012-04-29 03:38:29 -0400 |
|---|---|---|
| committer | Andrew Gallant (Ocelot) <[email protected]> | 2012-04-29 03:38:29 -0400 |
| commit | eb4f8cde88068649a60c494168490cb66335944c (patch) | |
| tree | 128604288a938c8465c4ba8f49bbf2aabdb7c2f5 /xgb.go | |
| parent | 7d160ecc2dc688f032ef9e53a8a529821f445df9 (diff) | |
progress. still not working. this is incredibly difficult.
Diffstat (limited to 'xgb.go')
| -rw-r--r-- | xgb.go | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -87,9 +87,15 @@ func newCookie(id uint16) *Cookie { } } -// Event is an interface that can contain any of the events returned by the server. -// Use a type assertion switch to extract the Event structs. -type Event interface{} +// Event is an interface that can contain any of the events returned by the +// server. Use a type assertion switch to extract the Event structs. +type Event interface { + ImplementsEvent() +} + +// newEventFuncs is a map from event numbers to functions that create +// the corresponding event. +var newEventFuncs map[int]func(buf []byte) Event // Error contains protocol errors returned to us by the X server. type Error struct { @@ -100,6 +106,16 @@ type Error struct { Id Id } +// Error2 is an interface that can contain any of the errors returned by +// the server. Use a type assertion switch to extract the Error structs. +type Error2 interface { + ImplementsError() +} + +// newErrorFuncs is a map from error numbers to functions that create +// the corresponding error. +var newErrorFuncs map[int]func(buf []byte) Error2 + func (e *Error) Error() string { return fmt.Sprintf("Bad%s (major=%d minor=%d cookie=%d id=0x%x)", errorNames[e.Detail], e.Major, e.Minor, e.Cookie, e.Id) |
