1
2 package xproto
3
4
5
6 import (
7 "github.com/jezek/xgb"
8 )
9
10
11
12 func Setup(c *xgb.Conn) *SetupInfo {
13 setup := new(SetupInfo)
14 SetupInfoRead(c.SetupBytes, setup)
15 return setup
16 }
17
18
19 func (s *SetupInfo) DefaultScreen(c *xgb.Conn) *ScreenInfo {
20 return &s.Roots[c.DefaultScreen]
21 }
22
23
24 const BadAccess = 10
25
26 type AccessError RequestError
27
28
29 func AccessErrorNew(buf []byte) xgb.Error {
30 v := AccessError(RequestErrorNew(buf).(RequestError))
31 v.NiceName = "Access"
32 return v
33 }
34
35
36
37 func (err AccessError) SequenceId() uint16 {
38 return err.Sequence
39 }
40
41
42 func (err AccessError) BadId() uint32 {
43 return err.BadValue
44 }
45
46
47 func (err AccessError) Error() string {
48 fieldVals := make([]string, 0, 4)
49 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
50 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
51 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
52 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
53 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
54 return "BadAccess {" + xgb.StringsJoin(fieldVals, ", ") + "}"
55 }
56
57 func init() {
58 xgb.NewErrorFuncs[10] = AccessErrorNew
59 }
60
61 const (
62 AccessControlDisable = 0
63 AccessControlEnable = 1
64 )
65
66
67 const BadAlloc = 11
68
69 type AllocError RequestError
70
71
72 func AllocErrorNew(buf []byte) xgb.Error {
73 v := AllocError(RequestErrorNew(buf).(RequestError))
74 v.NiceName = "Alloc"
75 return v
76 }
77
78
79
80 func (err AllocError) SequenceId() uint16 {
81 return err.Sequence
82 }
83
84
85 func (err AllocError) BadId() uint32 {
86 return err.BadValue
87 }
88
89
90 func (err AllocError) Error() string {
91 fieldVals := make([]string, 0, 4)
92 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
93 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
94 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
95 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
96 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
97 return "BadAlloc {" + xgb.StringsJoin(fieldVals, ", ") + "}"
98 }
99
100 func init() {
101 xgb.NewErrorFuncs[11] = AllocErrorNew
102 }
103
104 const (
105 AllowAsyncPointer = 0
106 AllowSyncPointer = 1
107 AllowReplayPointer = 2
108 AllowAsyncKeyboard = 3
109 AllowSyncKeyboard = 4
110 AllowReplayKeyboard = 5
111 AllowAsyncBoth = 6
112 AllowSyncBoth = 7
113 )
114
115 type Arc struct {
116 X int16
117 Y int16
118 Width uint16
119 Height uint16
120 Angle1 int16
121 Angle2 int16
122 }
123
124
125 func ArcRead(buf []byte, v *Arc) int {
126 b := 0
127
128 v.X = int16(xgb.Get16(buf[b:]))
129 b += 2
130
131 v.Y = int16(xgb.Get16(buf[b:]))
132 b += 2
133
134 v.Width = xgb.Get16(buf[b:])
135 b += 2
136
137 v.Height = xgb.Get16(buf[b:])
138 b += 2
139
140 v.Angle1 = int16(xgb.Get16(buf[b:]))
141 b += 2
142
143 v.Angle2 = int16(xgb.Get16(buf[b:]))
144 b += 2
145
146 return b
147 }
148
149
150 func ArcReadList(buf []byte, dest []Arc) int {
151 b := 0
152 for i := 0; i < len(dest); i++ {
153 dest[i] = Arc{}
154 b += ArcRead(buf[b:], &dest[i])
155 }
156 return xgb.Pad(b)
157 }
158
159
160 func (v Arc) Bytes() []byte {
161 buf := make([]byte, 12)
162 b := 0
163
164 xgb.Put16(buf[b:], uint16(v.X))
165 b += 2
166
167 xgb.Put16(buf[b:], uint16(v.Y))
168 b += 2
169
170 xgb.Put16(buf[b:], v.Width)
171 b += 2
172
173 xgb.Put16(buf[b:], v.Height)
174 b += 2
175
176 xgb.Put16(buf[b:], uint16(v.Angle1))
177 b += 2
178
179 xgb.Put16(buf[b:], uint16(v.Angle2))
180 b += 2
181
182 return buf[:b]
183 }
184
185
186 func ArcListBytes(buf []byte, list []Arc) int {
187 b := 0
188 var structBytes []byte
189 for _, item := range list {
190 structBytes = item.Bytes()
191 copy(buf[b:], structBytes)
192 b += len(structBytes)
193 }
194 return xgb.Pad(b)
195 }
196
197 const (
198 ArcModeChord = 0
199 ArcModePieSlice = 1
200 )
201
202 type Atom uint32
203
204 func NewAtomId(c *xgb.Conn) (Atom, error) {
205 id, err := c.NewId()
206 if err != nil {
207 return 0, err
208 }
209 return Atom(id), nil
210 }
211
212 const (
213 AtomNone = 0
214 AtomAny = 0
215 AtomPrimary = 1
216 AtomSecondary = 2
217 AtomArc = 3
218 AtomAtom = 4
219 AtomBitmap = 5
220 AtomCardinal = 6
221 AtomColormap = 7
222 AtomCursor = 8
223 AtomCutBuffer0 = 9
224 AtomCutBuffer1 = 10
225 AtomCutBuffer2 = 11
226 AtomCutBuffer3 = 12
227 AtomCutBuffer4 = 13
228 AtomCutBuffer5 = 14
229 AtomCutBuffer6 = 15
230 AtomCutBuffer7 = 16
231 AtomDrawable = 17
232 AtomFont = 18
233 AtomInteger = 19
234 AtomPixmap = 20
235 AtomPoint = 21
236 AtomRectangle = 22
237 AtomResourceManager = 23
238 AtomRgbColorMap = 24
239 AtomRgbBestMap = 25
240 AtomRgbBlueMap = 26
241 AtomRgbDefaultMap = 27
242 AtomRgbGrayMap = 28
243 AtomRgbGreenMap = 29
244 AtomRgbRedMap = 30
245 AtomString = 31
246 AtomVisualid = 32
247 AtomWindow = 33
248 AtomWmCommand = 34
249 AtomWmHints = 35
250 AtomWmClientMachine = 36
251 AtomWmIconName = 37
252 AtomWmIconSize = 38
253 AtomWmName = 39
254 AtomWmNormalHints = 40
255 AtomWmSizeHints = 41
256 AtomWmZoomHints = 42
257 AtomMinSpace = 43
258 AtomNormSpace = 44
259 AtomMaxSpace = 45
260 AtomEndSpace = 46
261 AtomSuperscriptX = 47
262 AtomSuperscriptY = 48
263 AtomSubscriptX = 49
264 AtomSubscriptY = 50
265 AtomUnderlinePosition = 51
266 AtomUnderlineThickness = 52
267 AtomStrikeoutAscent = 53
268 AtomStrikeoutDescent = 54
269 AtomItalicAngle = 55
270 AtomXHeight = 56
271 AtomQuadWidth = 57
272 AtomWeight = 58
273 AtomPointSize = 59
274 AtomResolution = 60
275 AtomCopyright = 61
276 AtomNotice = 62
277 AtomFontName = 63
278 AtomFamilyName = 64
279 AtomFullName = 65
280 AtomCapHeight = 66
281 AtomWmClass = 67
282 AtomWmTransientFor = 68
283 )
284
285
286 const BadAtom = 5
287
288 type AtomError ValueError
289
290
291 func AtomErrorNew(buf []byte) xgb.Error {
292 v := AtomError(ValueErrorNew(buf).(ValueError))
293 v.NiceName = "Atom"
294 return v
295 }
296
297
298
299 func (err AtomError) SequenceId() uint16 {
300 return err.Sequence
301 }
302
303
304 func (err AtomError) BadId() uint32 {
305 return err.BadValue
306 }
307
308
309 func (err AtomError) Error() string {
310 fieldVals := make([]string, 0, 4)
311 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
312 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
313 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
314 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
315 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
316 return "BadAtom {" + xgb.StringsJoin(fieldVals, ", ") + "}"
317 }
318
319 func init() {
320 xgb.NewErrorFuncs[5] = AtomErrorNew
321 }
322
323 const (
324 AutoRepeatModeOff = 0
325 AutoRepeatModeOn = 1
326 AutoRepeatModeDefault = 2
327 )
328
329 const (
330 BackPixmapNone = 0
331 BackPixmapParentRelative = 1
332 )
333
334 const (
335 BackingStoreNotUseful = 0
336 BackingStoreWhenMapped = 1
337 BackingStoreAlways = 2
338 )
339
340 const (
341 BlankingNotPreferred = 0
342 BlankingPreferred = 1
343 BlankingDefault = 2
344 )
345
346 type Button byte
347
348 const (
349 ButtonIndexAny = 0
350 ButtonIndex1 = 1
351 ButtonIndex2 = 2
352 ButtonIndex3 = 3
353 ButtonIndex4 = 4
354 ButtonIndex5 = 5
355 )
356
357 const (
358 ButtonMask1 = 256
359 ButtonMask2 = 512
360 ButtonMask3 = 1024
361 ButtonMask4 = 2048
362 ButtonMask5 = 4096
363 ButtonMaskAny = 32768
364 )
365
366
367 const ButtonPress = 4
368
369 type ButtonPressEvent struct {
370 Sequence uint16
371 Detail Button
372 Time Timestamp
373 Root Window
374 Event Window
375 Child Window
376 RootX int16
377 RootY int16
378 EventX int16
379 EventY int16
380 State uint16
381 SameScreen bool
382
383 }
384
385
386 func ButtonPressEventNew(buf []byte) xgb.Event {
387 v := ButtonPressEvent{}
388 b := 1
389
390 v.Detail = Button(buf[b])
391 b += 1
392
393 v.Sequence = xgb.Get16(buf[b:])
394 b += 2
395
396 v.Time = Timestamp(xgb.Get32(buf[b:]))
397 b += 4
398
399 v.Root = Window(xgb.Get32(buf[b:]))
400 b += 4
401
402 v.Event = Window(xgb.Get32(buf[b:]))
403 b += 4
404
405 v.Child = Window(xgb.Get32(buf[b:]))
406 b += 4
407
408 v.RootX = int16(xgb.Get16(buf[b:]))
409 b += 2
410
411 v.RootY = int16(xgb.Get16(buf[b:]))
412 b += 2
413
414 v.EventX = int16(xgb.Get16(buf[b:]))
415 b += 2
416
417 v.EventY = int16(xgb.Get16(buf[b:]))
418 b += 2
419
420 v.State = xgb.Get16(buf[b:])
421 b += 2
422
423 if buf[b] == 1 {
424 v.SameScreen = true
425 } else {
426 v.SameScreen = false
427 }
428 b += 1
429
430 b += 1
431
432 return v
433 }
434
435
436 func (v ButtonPressEvent) Bytes() []byte {
437 buf := make([]byte, 32)
438 b := 0
439
440
441 buf[b] = 4
442 b += 1
443
444 buf[b] = byte(v.Detail)
445 b += 1
446
447 b += 2
448
449 xgb.Put32(buf[b:], uint32(v.Time))
450 b += 4
451
452 xgb.Put32(buf[b:], uint32(v.Root))
453 b += 4
454
455 xgb.Put32(buf[b:], uint32(v.Event))
456 b += 4
457
458 xgb.Put32(buf[b:], uint32(v.Child))
459 b += 4
460
461 xgb.Put16(buf[b:], uint16(v.RootX))
462 b += 2
463
464 xgb.Put16(buf[b:], uint16(v.RootY))
465 b += 2
466
467 xgb.Put16(buf[b:], uint16(v.EventX))
468 b += 2
469
470 xgb.Put16(buf[b:], uint16(v.EventY))
471 b += 2
472
473 xgb.Put16(buf[b:], v.State)
474 b += 2
475
476 if v.SameScreen {
477 buf[b] = 1
478 } else {
479 buf[b] = 0
480 }
481 b += 1
482
483 b += 1
484
485 return buf
486 }
487
488
489
490
491 func (v ButtonPressEvent) SequenceId() uint16 {
492 return v.Sequence
493 }
494
495
496 func (v ButtonPressEvent) String() string {
497 fieldVals := make([]string, 0, 12)
498 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
499 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
500 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
501 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
502 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
503 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
504 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
505 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
506 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
507 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
508 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
509 fieldVals = append(fieldVals, xgb.Sprintf("SameScreen: %t", v.SameScreen))
510 return "ButtonPress {" + xgb.StringsJoin(fieldVals, ", ") + "}"
511 }
512
513 func init() {
514 xgb.NewEventFuncs[4] = ButtonPressEventNew
515 }
516
517
518 const ButtonRelease = 5
519
520 type ButtonReleaseEvent ButtonPressEvent
521
522
523 func ButtonReleaseEventNew(buf []byte) xgb.Event {
524 return ButtonReleaseEvent(ButtonPressEventNew(buf).(ButtonPressEvent))
525 }
526
527
528 func (v ButtonReleaseEvent) Bytes() []byte {
529 return ButtonPressEvent(v).Bytes()
530 }
531
532
533
534
535 func (v ButtonReleaseEvent) SequenceId() uint16 {
536 return v.Sequence
537 }
538
539 func (v ButtonReleaseEvent) String() string {
540 fieldVals := make([]string, 0, 12)
541 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
542 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
543 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
544 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
545 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
546 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
547 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
548 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
549 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
550 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
551 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
552 fieldVals = append(fieldVals, xgb.Sprintf("SameScreen: %t", v.SameScreen))
553 return "ButtonRelease {" + xgb.StringsJoin(fieldVals, ", ") + "}"
554 }
555
556 func init() {
557 xgb.NewEventFuncs[5] = ButtonReleaseEventNew
558 }
559
560 const (
561 CapStyleNotLast = 0
562 CapStyleButt = 1
563 CapStyleRound = 2
564 CapStyleProjecting = 3
565 )
566
567 type Char2b struct {
568 Byte1 byte
569 Byte2 byte
570 }
571
572
573 func Char2bRead(buf []byte, v *Char2b) int {
574 b := 0
575
576 v.Byte1 = buf[b]
577 b += 1
578
579 v.Byte2 = buf[b]
580 b += 1
581
582 return b
583 }
584
585
586 func Char2bReadList(buf []byte, dest []Char2b) int {
587 b := 0
588 for i := 0; i < len(dest); i++ {
589 dest[i] = Char2b{}
590 b += Char2bRead(buf[b:], &dest[i])
591 }
592 return xgb.Pad(b)
593 }
594
595
596 func (v Char2b) Bytes() []byte {
597 buf := make([]byte, 2)
598 b := 0
599
600 buf[b] = v.Byte1
601 b += 1
602
603 buf[b] = v.Byte2
604 b += 1
605
606 return buf[:b]
607 }
608
609
610 func Char2bListBytes(buf []byte, list []Char2b) int {
611 b := 0
612 var structBytes []byte
613 for _, item := range list {
614 structBytes = item.Bytes()
615 copy(buf[b:], structBytes)
616 b += len(structBytes)
617 }
618 return xgb.Pad(b)
619 }
620
621 type Charinfo struct {
622 LeftSideBearing int16
623 RightSideBearing int16
624 CharacterWidth int16
625 Ascent int16
626 Descent int16
627 Attributes uint16
628 }
629
630
631 func CharinfoRead(buf []byte, v *Charinfo) int {
632 b := 0
633
634 v.LeftSideBearing = int16(xgb.Get16(buf[b:]))
635 b += 2
636
637 v.RightSideBearing = int16(xgb.Get16(buf[b:]))
638 b += 2
639
640 v.CharacterWidth = int16(xgb.Get16(buf[b:]))
641 b += 2
642
643 v.Ascent = int16(xgb.Get16(buf[b:]))
644 b += 2
645
646 v.Descent = int16(xgb.Get16(buf[b:]))
647 b += 2
648
649 v.Attributes = xgb.Get16(buf[b:])
650 b += 2
651
652 return b
653 }
654
655
656 func CharinfoReadList(buf []byte, dest []Charinfo) int {
657 b := 0
658 for i := 0; i < len(dest); i++ {
659 dest[i] = Charinfo{}
660 b += CharinfoRead(buf[b:], &dest[i])
661 }
662 return xgb.Pad(b)
663 }
664
665
666 func (v Charinfo) Bytes() []byte {
667 buf := make([]byte, 12)
668 b := 0
669
670 xgb.Put16(buf[b:], uint16(v.LeftSideBearing))
671 b += 2
672
673 xgb.Put16(buf[b:], uint16(v.RightSideBearing))
674 b += 2
675
676 xgb.Put16(buf[b:], uint16(v.CharacterWidth))
677 b += 2
678
679 xgb.Put16(buf[b:], uint16(v.Ascent))
680 b += 2
681
682 xgb.Put16(buf[b:], uint16(v.Descent))
683 b += 2
684
685 xgb.Put16(buf[b:], v.Attributes)
686 b += 2
687
688 return buf[:b]
689 }
690
691
692 func CharinfoListBytes(buf []byte, list []Charinfo) int {
693 b := 0
694 var structBytes []byte
695 for _, item := range list {
696 structBytes = item.Bytes()
697 copy(buf[b:], structBytes)
698 b += len(structBytes)
699 }
700 return xgb.Pad(b)
701 }
702
703 const (
704 CirculateRaiseLowest = 0
705 CirculateLowerHighest = 1
706 )
707
708
709 const CirculateNotify = 26
710
711 type CirculateNotifyEvent struct {
712 Sequence uint16
713
714 Event Window
715 Window Window
716
717 Place byte
718
719 }
720
721
722 func CirculateNotifyEventNew(buf []byte) xgb.Event {
723 v := CirculateNotifyEvent{}
724 b := 1
725
726 b += 1
727
728 v.Sequence = xgb.Get16(buf[b:])
729 b += 2
730
731 v.Event = Window(xgb.Get32(buf[b:]))
732 b += 4
733
734 v.Window = Window(xgb.Get32(buf[b:]))
735 b += 4
736
737 b += 4
738
739 v.Place = buf[b]
740 b += 1
741
742 b += 3
743
744 return v
745 }
746
747
748 func (v CirculateNotifyEvent) Bytes() []byte {
749 buf := make([]byte, 32)
750 b := 0
751
752
753 buf[b] = 26
754 b += 1
755
756 b += 1
757
758 b += 2
759
760 xgb.Put32(buf[b:], uint32(v.Event))
761 b += 4
762
763 xgb.Put32(buf[b:], uint32(v.Window))
764 b += 4
765
766 b += 4
767
768 buf[b] = v.Place
769 b += 1
770
771 b += 3
772
773 return buf
774 }
775
776
777
778
779 func (v CirculateNotifyEvent) SequenceId() uint16 {
780 return v.Sequence
781 }
782
783
784 func (v CirculateNotifyEvent) String() string {
785 fieldVals := make([]string, 0, 6)
786 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
787 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
788 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
789 fieldVals = append(fieldVals, xgb.Sprintf("Place: %d", v.Place))
790 return "CirculateNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
791 }
792
793 func init() {
794 xgb.NewEventFuncs[26] = CirculateNotifyEventNew
795 }
796
797
798 const CirculateRequest = 27
799
800 type CirculateRequestEvent CirculateNotifyEvent
801
802
803 func CirculateRequestEventNew(buf []byte) xgb.Event {
804 return CirculateRequestEvent(CirculateNotifyEventNew(buf).(CirculateNotifyEvent))
805 }
806
807
808 func (v CirculateRequestEvent) Bytes() []byte {
809 return CirculateNotifyEvent(v).Bytes()
810 }
811
812
813
814
815 func (v CirculateRequestEvent) SequenceId() uint16 {
816 return v.Sequence
817 }
818
819 func (v CirculateRequestEvent) String() string {
820 fieldVals := make([]string, 0, 6)
821 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
822 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
823 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
824 fieldVals = append(fieldVals, xgb.Sprintf("Place: %d", v.Place))
825 return "CirculateRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
826 }
827
828 func init() {
829 xgb.NewEventFuncs[27] = CirculateRequestEventNew
830 }
831
832
833 const ClientMessage = 33
834
835 type ClientMessageEvent struct {
836 Sequence uint16
837 Format byte
838 Window Window
839 Type Atom
840 Data ClientMessageDataUnion
841 }
842
843
844 func ClientMessageEventNew(buf []byte) xgb.Event {
845 v := ClientMessageEvent{}
846 b := 1
847
848 v.Format = buf[b]
849 b += 1
850
851 v.Sequence = xgb.Get16(buf[b:])
852 b += 2
853
854 v.Window = Window(xgb.Get32(buf[b:]))
855 b += 4
856
857 v.Type = Atom(xgb.Get32(buf[b:]))
858 b += 4
859
860 v.Data = ClientMessageDataUnion{}
861 b += ClientMessageDataUnionRead(buf[b:], &v.Data)
862
863 return v
864 }
865
866
867 func (v ClientMessageEvent) Bytes() []byte {
868 buf := make([]byte, 32)
869 b := 0
870
871
872 buf[b] = 33
873 b += 1
874
875 buf[b] = v.Format
876 b += 1
877
878 b += 2
879
880 xgb.Put32(buf[b:], uint32(v.Window))
881 b += 4
882
883 xgb.Put32(buf[b:], uint32(v.Type))
884 b += 4
885
886 {
887 unionBytes := v.Data.Bytes()
888 copy(buf[b:], unionBytes)
889 b += len(unionBytes)
890 }
891
892 return buf
893 }
894
895
896
897
898 func (v ClientMessageEvent) SequenceId() uint16 {
899 return v.Sequence
900 }
901
902
903 func (v ClientMessageEvent) String() string {
904 fieldVals := make([]string, 0, 4)
905 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
906 fieldVals = append(fieldVals, xgb.Sprintf("Format: %d", v.Format))
907 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
908 fieldVals = append(fieldVals, xgb.Sprintf("Type: %d", v.Type))
909 return "ClientMessage {" + xgb.StringsJoin(fieldVals, ", ") + "}"
910 }
911
912 func init() {
913 xgb.NewEventFuncs[33] = ClientMessageEventNew
914 }
915
916
917
918
919
920
921
922
923 type ClientMessageDataUnion struct {
924 Data8 []byte
925 Data16 []uint16
926 Data32 []uint32
927 }
928
929
930 func ClientMessageDataUnionData8New(Data8 []byte) ClientMessageDataUnion {
931 var b int
932 buf := make([]byte, 20)
933
934 copy(buf[b:], Data8[:20])
935 b += int(20)
936
937
938 v := ClientMessageDataUnion{}
939
940
941
942 b = 0
943 v.Data8 = make([]byte, 20)
944 copy(v.Data8[:20], buf[b:])
945 b += int(20)
946
947 b = 0
948 v.Data16 = make([]uint16, 10)
949 for i := 0; i < int(10); i++ {
950 v.Data16[i] = xgb.Get16(buf[b:])
951 b += 2
952 }
953
954 b = 0
955 v.Data32 = make([]uint32, 5)
956 for i := 0; i < int(5); i++ {
957 v.Data32[i] = xgb.Get32(buf[b:])
958 b += 4
959 }
960
961 return v
962 }
963
964
965 func ClientMessageDataUnionData16New(Data16 []uint16) ClientMessageDataUnion {
966 var b int
967 buf := make([]byte, 20)
968
969 for i := 0; i < int(10); i++ {
970 xgb.Put16(buf[b:], Data16[i])
971 b += 2
972 }
973
974
975 v := ClientMessageDataUnion{}
976
977
978
979 b = 0
980 v.Data8 = make([]byte, 20)
981 copy(v.Data8[:20], buf[b:])
982 b += int(20)
983
984 b = 0
985 v.Data16 = make([]uint16, 10)
986 for i := 0; i < int(10); i++ {
987 v.Data16[i] = xgb.Get16(buf[b:])
988 b += 2
989 }
990
991 b = 0
992 v.Data32 = make([]uint32, 5)
993 for i := 0; i < int(5); i++ {
994 v.Data32[i] = xgb.Get32(buf[b:])
995 b += 4
996 }
997
998 return v
999 }
1000
1001
1002 func ClientMessageDataUnionData32New(Data32 []uint32) ClientMessageDataUnion {
1003 var b int
1004 buf := make([]byte, 20)
1005
1006 for i := 0; i < int(5); i++ {
1007 xgb.Put32(buf[b:], Data32[i])
1008 b += 4
1009 }
1010
1011
1012 v := ClientMessageDataUnion{}
1013
1014
1015
1016 b = 0
1017 v.Data8 = make([]byte, 20)
1018 copy(v.Data8[:20], buf[b:])
1019 b += int(20)
1020
1021 b = 0
1022 v.Data16 = make([]uint16, 10)
1023 for i := 0; i < int(10); i++ {
1024 v.Data16[i] = xgb.Get16(buf[b:])
1025 b += 2
1026 }
1027
1028 b = 0
1029 v.Data32 = make([]uint32, 5)
1030 for i := 0; i < int(5); i++ {
1031 v.Data32[i] = xgb.Get32(buf[b:])
1032 b += 4
1033 }
1034
1035 return v
1036 }
1037
1038
1039 func ClientMessageDataUnionRead(buf []byte, v *ClientMessageDataUnion) int {
1040 var b int
1041
1042 b = 0
1043 v.Data8 = make([]byte, 20)
1044 copy(v.Data8[:20], buf[b:])
1045 b += int(20)
1046
1047 b = 0
1048 v.Data16 = make([]uint16, 10)
1049 for i := 0; i < int(10); i++ {
1050 v.Data16[i] = xgb.Get16(buf[b:])
1051 b += 2
1052 }
1053
1054 b = 0
1055 v.Data32 = make([]uint32, 5)
1056 for i := 0; i < int(5); i++ {
1057 v.Data32[i] = xgb.Get32(buf[b:])
1058 b += 4
1059 }
1060
1061 return 20
1062 }
1063
1064
1065 func ClientMessageDataUnionReadList(buf []byte, dest []ClientMessageDataUnion) int {
1066 b := 0
1067 for i := 0; i < len(dest); i++ {
1068 dest[i] = ClientMessageDataUnion{}
1069 b += ClientMessageDataUnionRead(buf[b:], &dest[i])
1070 }
1071 return xgb.Pad(b)
1072 }
1073
1074
1075
1076
1077 func (v ClientMessageDataUnion) Bytes() []byte {
1078 buf := make([]byte, 20)
1079 b := 0
1080
1081 copy(buf[b:], v.Data8[:20])
1082 b += int(20)
1083 return buf
1084 }
1085
1086
1087 func ClientMessageDataUnionListBytes(buf []byte, list []ClientMessageDataUnion) int {
1088 b := 0
1089 var unionBytes []byte
1090 for _, item := range list {
1091 unionBytes = item.Bytes()
1092 copy(buf[b:], unionBytes)
1093 b += xgb.Pad(len(unionBytes))
1094 }
1095 return b
1096 }
1097
1098 const (
1099 ClipOrderingUnsorted = 0
1100 ClipOrderingYSorted = 1
1101 ClipOrderingYXSorted = 2
1102 ClipOrderingYXBanded = 3
1103 )
1104
1105 const (
1106 CloseDownDestroyAll = 0
1107 CloseDownRetainPermanent = 1
1108 CloseDownRetainTemporary = 2
1109 )
1110
1111 const (
1112 ColorFlagRed = 1
1113 ColorFlagGreen = 2
1114 ColorFlagBlue = 4
1115 )
1116
1117 type Coloritem struct {
1118 Pixel uint32
1119 Red uint16
1120 Green uint16
1121 Blue uint16
1122 Flags byte
1123
1124 }
1125
1126
1127 func ColoritemRead(buf []byte, v *Coloritem) int {
1128 b := 0
1129
1130 v.Pixel = xgb.Get32(buf[b:])
1131 b += 4
1132
1133 v.Red = xgb.Get16(buf[b:])
1134 b += 2
1135
1136 v.Green = xgb.Get16(buf[b:])
1137 b += 2
1138
1139 v.Blue = xgb.Get16(buf[b:])
1140 b += 2
1141
1142 v.Flags = buf[b]
1143 b += 1
1144
1145 b += 1
1146
1147 return b
1148 }
1149
1150
1151 func ColoritemReadList(buf []byte, dest []Coloritem) int {
1152 b := 0
1153 for i := 0; i < len(dest); i++ {
1154 dest[i] = Coloritem{}
1155 b += ColoritemRead(buf[b:], &dest[i])
1156 }
1157 return xgb.Pad(b)
1158 }
1159
1160
1161 func (v Coloritem) Bytes() []byte {
1162 buf := make([]byte, 12)
1163 b := 0
1164
1165 xgb.Put32(buf[b:], v.Pixel)
1166 b += 4
1167
1168 xgb.Put16(buf[b:], v.Red)
1169 b += 2
1170
1171 xgb.Put16(buf[b:], v.Green)
1172 b += 2
1173
1174 xgb.Put16(buf[b:], v.Blue)
1175 b += 2
1176
1177 buf[b] = v.Flags
1178 b += 1
1179
1180 b += 1
1181
1182 return buf[:b]
1183 }
1184
1185
1186 func ColoritemListBytes(buf []byte, list []Coloritem) int {
1187 b := 0
1188 var structBytes []byte
1189 for _, item := range list {
1190 structBytes = item.Bytes()
1191 copy(buf[b:], structBytes)
1192 b += len(structBytes)
1193 }
1194 return xgb.Pad(b)
1195 }
1196
1197 type Colormap uint32
1198
1199 func NewColormapId(c *xgb.Conn) (Colormap, error) {
1200 id, err := c.NewId()
1201 if err != nil {
1202 return 0, err
1203 }
1204 return Colormap(id), nil
1205 }
1206
1207
1208 const BadColormap = 12
1209
1210 type ColormapError ValueError
1211
1212
1213 func ColormapErrorNew(buf []byte) xgb.Error {
1214 v := ColormapError(ValueErrorNew(buf).(ValueError))
1215 v.NiceName = "Colormap"
1216 return v
1217 }
1218
1219
1220
1221 func (err ColormapError) SequenceId() uint16 {
1222 return err.Sequence
1223 }
1224
1225
1226 func (err ColormapError) BadId() uint32 {
1227 return err.BadValue
1228 }
1229
1230
1231 func (err ColormapError) Error() string {
1232 fieldVals := make([]string, 0, 4)
1233 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
1234 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
1235 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
1236 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
1237 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
1238 return "BadColormap {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1239 }
1240
1241 func init() {
1242 xgb.NewErrorFuncs[12] = ColormapErrorNew
1243 }
1244
1245 const (
1246 ColormapNone = 0
1247 )
1248
1249 const (
1250 ColormapAllocNone = 0
1251 ColormapAllocAll = 1
1252 )
1253
1254
1255 const ColormapNotify = 32
1256
1257 type ColormapNotifyEvent struct {
1258 Sequence uint16
1259
1260 Window Window
1261 Colormap Colormap
1262 New bool
1263 State byte
1264
1265 }
1266
1267
1268 func ColormapNotifyEventNew(buf []byte) xgb.Event {
1269 v := ColormapNotifyEvent{}
1270 b := 1
1271
1272 b += 1
1273
1274 v.Sequence = xgb.Get16(buf[b:])
1275 b += 2
1276
1277 v.Window = Window(xgb.Get32(buf[b:]))
1278 b += 4
1279
1280 v.Colormap = Colormap(xgb.Get32(buf[b:]))
1281 b += 4
1282
1283 if buf[b] == 1 {
1284 v.New = true
1285 } else {
1286 v.New = false
1287 }
1288 b += 1
1289
1290 v.State = buf[b]
1291 b += 1
1292
1293 b += 2
1294
1295 return v
1296 }
1297
1298
1299 func (v ColormapNotifyEvent) Bytes() []byte {
1300 buf := make([]byte, 32)
1301 b := 0
1302
1303
1304 buf[b] = 32
1305 b += 1
1306
1307 b += 1
1308
1309 b += 2
1310
1311 xgb.Put32(buf[b:], uint32(v.Window))
1312 b += 4
1313
1314 xgb.Put32(buf[b:], uint32(v.Colormap))
1315 b += 4
1316
1317 if v.New {
1318 buf[b] = 1
1319 } else {
1320 buf[b] = 0
1321 }
1322 b += 1
1323
1324 buf[b] = v.State
1325 b += 1
1326
1327 b += 2
1328
1329 return buf
1330 }
1331
1332
1333
1334
1335 func (v ColormapNotifyEvent) SequenceId() uint16 {
1336 return v.Sequence
1337 }
1338
1339
1340 func (v ColormapNotifyEvent) String() string {
1341 fieldVals := make([]string, 0, 6)
1342 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
1343 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
1344 fieldVals = append(fieldVals, xgb.Sprintf("Colormap: %d", v.Colormap))
1345 fieldVals = append(fieldVals, xgb.Sprintf("New: %t", v.New))
1346 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
1347 return "ColormapNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1348 }
1349
1350 func init() {
1351 xgb.NewEventFuncs[32] = ColormapNotifyEventNew
1352 }
1353
1354 const (
1355 ColormapStateUninstalled = 0
1356 ColormapStateInstalled = 1
1357 )
1358
1359 const (
1360 ConfigWindowX = 1
1361 ConfigWindowY = 2
1362 ConfigWindowWidth = 4
1363 ConfigWindowHeight = 8
1364 ConfigWindowBorderWidth = 16
1365 ConfigWindowSibling = 32
1366 ConfigWindowStackMode = 64
1367 )
1368
1369
1370 const ConfigureNotify = 22
1371
1372 type ConfigureNotifyEvent struct {
1373 Sequence uint16
1374
1375 Event Window
1376 Window Window
1377 AboveSibling Window
1378 X int16
1379 Y int16
1380 Width uint16
1381 Height uint16
1382 BorderWidth uint16
1383 OverrideRedirect bool
1384
1385 }
1386
1387
1388 func ConfigureNotifyEventNew(buf []byte) xgb.Event {
1389 v := ConfigureNotifyEvent{}
1390 b := 1
1391
1392 b += 1
1393
1394 v.Sequence = xgb.Get16(buf[b:])
1395 b += 2
1396
1397 v.Event = Window(xgb.Get32(buf[b:]))
1398 b += 4
1399
1400 v.Window = Window(xgb.Get32(buf[b:]))
1401 b += 4
1402
1403 v.AboveSibling = Window(xgb.Get32(buf[b:]))
1404 b += 4
1405
1406 v.X = int16(xgb.Get16(buf[b:]))
1407 b += 2
1408
1409 v.Y = int16(xgb.Get16(buf[b:]))
1410 b += 2
1411
1412 v.Width = xgb.Get16(buf[b:])
1413 b += 2
1414
1415 v.Height = xgb.Get16(buf[b:])
1416 b += 2
1417
1418 v.BorderWidth = xgb.Get16(buf[b:])
1419 b += 2
1420
1421 if buf[b] == 1 {
1422 v.OverrideRedirect = true
1423 } else {
1424 v.OverrideRedirect = false
1425 }
1426 b += 1
1427
1428 b += 1
1429
1430 return v
1431 }
1432
1433
1434 func (v ConfigureNotifyEvent) Bytes() []byte {
1435 buf := make([]byte, 32)
1436 b := 0
1437
1438
1439 buf[b] = 22
1440 b += 1
1441
1442 b += 1
1443
1444 b += 2
1445
1446 xgb.Put32(buf[b:], uint32(v.Event))
1447 b += 4
1448
1449 xgb.Put32(buf[b:], uint32(v.Window))
1450 b += 4
1451
1452 xgb.Put32(buf[b:], uint32(v.AboveSibling))
1453 b += 4
1454
1455 xgb.Put16(buf[b:], uint16(v.X))
1456 b += 2
1457
1458 xgb.Put16(buf[b:], uint16(v.Y))
1459 b += 2
1460
1461 xgb.Put16(buf[b:], v.Width)
1462 b += 2
1463
1464 xgb.Put16(buf[b:], v.Height)
1465 b += 2
1466
1467 xgb.Put16(buf[b:], v.BorderWidth)
1468 b += 2
1469
1470 if v.OverrideRedirect {
1471 buf[b] = 1
1472 } else {
1473 buf[b] = 0
1474 }
1475 b += 1
1476
1477 b += 1
1478
1479 return buf
1480 }
1481
1482
1483
1484
1485 func (v ConfigureNotifyEvent) SequenceId() uint16 {
1486 return v.Sequence
1487 }
1488
1489
1490 func (v ConfigureNotifyEvent) String() string {
1491 fieldVals := make([]string, 0, 11)
1492 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
1493 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
1494 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
1495 fieldVals = append(fieldVals, xgb.Sprintf("AboveSibling: %d", v.AboveSibling))
1496 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
1497 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
1498 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
1499 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
1500 fieldVals = append(fieldVals, xgb.Sprintf("BorderWidth: %d", v.BorderWidth))
1501 fieldVals = append(fieldVals, xgb.Sprintf("OverrideRedirect: %t", v.OverrideRedirect))
1502 return "ConfigureNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1503 }
1504
1505 func init() {
1506 xgb.NewEventFuncs[22] = ConfigureNotifyEventNew
1507 }
1508
1509
1510 const ConfigureRequest = 23
1511
1512 type ConfigureRequestEvent struct {
1513 Sequence uint16
1514 StackMode byte
1515 Parent Window
1516 Window Window
1517 Sibling Window
1518 X int16
1519 Y int16
1520 Width uint16
1521 Height uint16
1522 BorderWidth uint16
1523 ValueMask uint16
1524 }
1525
1526
1527 func ConfigureRequestEventNew(buf []byte) xgb.Event {
1528 v := ConfigureRequestEvent{}
1529 b := 1
1530
1531 v.StackMode = buf[b]
1532 b += 1
1533
1534 v.Sequence = xgb.Get16(buf[b:])
1535 b += 2
1536
1537 v.Parent = Window(xgb.Get32(buf[b:]))
1538 b += 4
1539
1540 v.Window = Window(xgb.Get32(buf[b:]))
1541 b += 4
1542
1543 v.Sibling = Window(xgb.Get32(buf[b:]))
1544 b += 4
1545
1546 v.X = int16(xgb.Get16(buf[b:]))
1547 b += 2
1548
1549 v.Y = int16(xgb.Get16(buf[b:]))
1550 b += 2
1551
1552 v.Width = xgb.Get16(buf[b:])
1553 b += 2
1554
1555 v.Height = xgb.Get16(buf[b:])
1556 b += 2
1557
1558 v.BorderWidth = xgb.Get16(buf[b:])
1559 b += 2
1560
1561 v.ValueMask = xgb.Get16(buf[b:])
1562 b += 2
1563
1564 return v
1565 }
1566
1567
1568 func (v ConfigureRequestEvent) Bytes() []byte {
1569 buf := make([]byte, 32)
1570 b := 0
1571
1572
1573 buf[b] = 23
1574 b += 1
1575
1576 buf[b] = v.StackMode
1577 b += 1
1578
1579 b += 2
1580
1581 xgb.Put32(buf[b:], uint32(v.Parent))
1582 b += 4
1583
1584 xgb.Put32(buf[b:], uint32(v.Window))
1585 b += 4
1586
1587 xgb.Put32(buf[b:], uint32(v.Sibling))
1588 b += 4
1589
1590 xgb.Put16(buf[b:], uint16(v.X))
1591 b += 2
1592
1593 xgb.Put16(buf[b:], uint16(v.Y))
1594 b += 2
1595
1596 xgb.Put16(buf[b:], v.Width)
1597 b += 2
1598
1599 xgb.Put16(buf[b:], v.Height)
1600 b += 2
1601
1602 xgb.Put16(buf[b:], v.BorderWidth)
1603 b += 2
1604
1605 xgb.Put16(buf[b:], v.ValueMask)
1606 b += 2
1607
1608 return buf
1609 }
1610
1611
1612
1613
1614 func (v ConfigureRequestEvent) SequenceId() uint16 {
1615 return v.Sequence
1616 }
1617
1618
1619 func (v ConfigureRequestEvent) String() string {
1620 fieldVals := make([]string, 0, 10)
1621 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
1622 fieldVals = append(fieldVals, xgb.Sprintf("StackMode: %d", v.StackMode))
1623 fieldVals = append(fieldVals, xgb.Sprintf("Parent: %d", v.Parent))
1624 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
1625 fieldVals = append(fieldVals, xgb.Sprintf("Sibling: %d", v.Sibling))
1626 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
1627 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
1628 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
1629 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
1630 fieldVals = append(fieldVals, xgb.Sprintf("BorderWidth: %d", v.BorderWidth))
1631 fieldVals = append(fieldVals, xgb.Sprintf("ValueMask: %d", v.ValueMask))
1632 return "ConfigureRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1633 }
1634
1635 func init() {
1636 xgb.NewEventFuncs[23] = ConfigureRequestEventNew
1637 }
1638
1639 const (
1640 CoordModeOrigin = 0
1641 CoordModePrevious = 1
1642 )
1643
1644
1645 const CreateNotify = 16
1646
1647 type CreateNotifyEvent struct {
1648 Sequence uint16
1649
1650 Parent Window
1651 Window Window
1652 X int16
1653 Y int16
1654 Width uint16
1655 Height uint16
1656 BorderWidth uint16
1657 OverrideRedirect bool
1658
1659 }
1660
1661
1662 func CreateNotifyEventNew(buf []byte) xgb.Event {
1663 v := CreateNotifyEvent{}
1664 b := 1
1665
1666 b += 1
1667
1668 v.Sequence = xgb.Get16(buf[b:])
1669 b += 2
1670
1671 v.Parent = Window(xgb.Get32(buf[b:]))
1672 b += 4
1673
1674 v.Window = Window(xgb.Get32(buf[b:]))
1675 b += 4
1676
1677 v.X = int16(xgb.Get16(buf[b:]))
1678 b += 2
1679
1680 v.Y = int16(xgb.Get16(buf[b:]))
1681 b += 2
1682
1683 v.Width = xgb.Get16(buf[b:])
1684 b += 2
1685
1686 v.Height = xgb.Get16(buf[b:])
1687 b += 2
1688
1689 v.BorderWidth = xgb.Get16(buf[b:])
1690 b += 2
1691
1692 if buf[b] == 1 {
1693 v.OverrideRedirect = true
1694 } else {
1695 v.OverrideRedirect = false
1696 }
1697 b += 1
1698
1699 b += 1
1700
1701 return v
1702 }
1703
1704
1705 func (v CreateNotifyEvent) Bytes() []byte {
1706 buf := make([]byte, 32)
1707 b := 0
1708
1709
1710 buf[b] = 16
1711 b += 1
1712
1713 b += 1
1714
1715 b += 2
1716
1717 xgb.Put32(buf[b:], uint32(v.Parent))
1718 b += 4
1719
1720 xgb.Put32(buf[b:], uint32(v.Window))
1721 b += 4
1722
1723 xgb.Put16(buf[b:], uint16(v.X))
1724 b += 2
1725
1726 xgb.Put16(buf[b:], uint16(v.Y))
1727 b += 2
1728
1729 xgb.Put16(buf[b:], v.Width)
1730 b += 2
1731
1732 xgb.Put16(buf[b:], v.Height)
1733 b += 2
1734
1735 xgb.Put16(buf[b:], v.BorderWidth)
1736 b += 2
1737
1738 if v.OverrideRedirect {
1739 buf[b] = 1
1740 } else {
1741 buf[b] = 0
1742 }
1743 b += 1
1744
1745 b += 1
1746
1747 return buf
1748 }
1749
1750
1751
1752
1753 func (v CreateNotifyEvent) SequenceId() uint16 {
1754 return v.Sequence
1755 }
1756
1757
1758 func (v CreateNotifyEvent) String() string {
1759 fieldVals := make([]string, 0, 10)
1760 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
1761 fieldVals = append(fieldVals, xgb.Sprintf("Parent: %d", v.Parent))
1762 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
1763 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
1764 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
1765 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
1766 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
1767 fieldVals = append(fieldVals, xgb.Sprintf("BorderWidth: %d", v.BorderWidth))
1768 fieldVals = append(fieldVals, xgb.Sprintf("OverrideRedirect: %t", v.OverrideRedirect))
1769 return "CreateNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1770 }
1771
1772 func init() {
1773 xgb.NewEventFuncs[16] = CreateNotifyEventNew
1774 }
1775
1776 type Cursor uint32
1777
1778 func NewCursorId(c *xgb.Conn) (Cursor, error) {
1779 id, err := c.NewId()
1780 if err != nil {
1781 return 0, err
1782 }
1783 return Cursor(id), nil
1784 }
1785
1786
1787 const BadCursor = 6
1788
1789 type CursorError ValueError
1790
1791
1792 func CursorErrorNew(buf []byte) xgb.Error {
1793 v := CursorError(ValueErrorNew(buf).(ValueError))
1794 v.NiceName = "Cursor"
1795 return v
1796 }
1797
1798
1799
1800 func (err CursorError) SequenceId() uint16 {
1801 return err.Sequence
1802 }
1803
1804
1805 func (err CursorError) BadId() uint32 {
1806 return err.BadValue
1807 }
1808
1809
1810 func (err CursorError) Error() string {
1811 fieldVals := make([]string, 0, 4)
1812 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
1813 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
1814 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
1815 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
1816 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
1817 return "BadCursor {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1818 }
1819
1820 func init() {
1821 xgb.NewErrorFuncs[6] = CursorErrorNew
1822 }
1823
1824 const (
1825 CursorNone = 0
1826 )
1827
1828 const (
1829 CwBackPixmap = 1
1830 CwBackPixel = 2
1831 CwBorderPixmap = 4
1832 CwBorderPixel = 8
1833 CwBitGravity = 16
1834 CwWinGravity = 32
1835 CwBackingStore = 64
1836 CwBackingPlanes = 128
1837 CwBackingPixel = 256
1838 CwOverrideRedirect = 512
1839 CwSaveUnder = 1024
1840 CwEventMask = 2048
1841 CwDontPropagate = 4096
1842 CwColormap = 8192
1843 CwCursor = 16384
1844 )
1845
1846 type DepthInfo struct {
1847 Depth byte
1848
1849 VisualsLen uint16
1850
1851 Visuals []VisualInfo
1852 }
1853
1854
1855 func DepthInfoRead(buf []byte, v *DepthInfo) int {
1856 b := 0
1857
1858 v.Depth = buf[b]
1859 b += 1
1860
1861 b += 1
1862
1863 v.VisualsLen = xgb.Get16(buf[b:])
1864 b += 2
1865
1866 b += 4
1867
1868 v.Visuals = make([]VisualInfo, v.VisualsLen)
1869 b += VisualInfoReadList(buf[b:], v.Visuals)
1870
1871 return b
1872 }
1873
1874
1875 func DepthInfoReadList(buf []byte, dest []DepthInfo) int {
1876 b := 0
1877 for i := 0; i < len(dest); i++ {
1878 dest[i] = DepthInfo{}
1879 b += DepthInfoRead(buf[b:], &dest[i])
1880 }
1881 return xgb.Pad(b)
1882 }
1883
1884
1885 func (v DepthInfo) Bytes() []byte {
1886 buf := make([]byte, (8 + xgb.Pad((int(v.VisualsLen) * 24))))
1887 b := 0
1888
1889 buf[b] = v.Depth
1890 b += 1
1891
1892 b += 1
1893
1894 xgb.Put16(buf[b:], v.VisualsLen)
1895 b += 2
1896
1897 b += 4
1898
1899 b += VisualInfoListBytes(buf[b:], v.Visuals)
1900
1901 return buf[:b]
1902 }
1903
1904
1905 func DepthInfoListBytes(buf []byte, list []DepthInfo) int {
1906 b := 0
1907 var structBytes []byte
1908 for _, item := range list {
1909 structBytes = item.Bytes()
1910 copy(buf[b:], structBytes)
1911 b += len(structBytes)
1912 }
1913 return xgb.Pad(b)
1914 }
1915
1916
1917 func DepthInfoListSize(list []DepthInfo) int {
1918 size := 0
1919 for _, item := range list {
1920 size += (8 + xgb.Pad((int(item.VisualsLen) * 24)))
1921 }
1922 return size
1923 }
1924
1925
1926 const DestroyNotify = 17
1927
1928 type DestroyNotifyEvent struct {
1929 Sequence uint16
1930
1931 Event Window
1932 Window Window
1933 }
1934
1935
1936 func DestroyNotifyEventNew(buf []byte) xgb.Event {
1937 v := DestroyNotifyEvent{}
1938 b := 1
1939
1940 b += 1
1941
1942 v.Sequence = xgb.Get16(buf[b:])
1943 b += 2
1944
1945 v.Event = Window(xgb.Get32(buf[b:]))
1946 b += 4
1947
1948 v.Window = Window(xgb.Get32(buf[b:]))
1949 b += 4
1950
1951 return v
1952 }
1953
1954
1955 func (v DestroyNotifyEvent) Bytes() []byte {
1956 buf := make([]byte, 32)
1957 b := 0
1958
1959
1960 buf[b] = 17
1961 b += 1
1962
1963 b += 1
1964
1965 b += 2
1966
1967 xgb.Put32(buf[b:], uint32(v.Event))
1968 b += 4
1969
1970 xgb.Put32(buf[b:], uint32(v.Window))
1971 b += 4
1972
1973 return buf
1974 }
1975
1976
1977
1978
1979 func (v DestroyNotifyEvent) SequenceId() uint16 {
1980 return v.Sequence
1981 }
1982
1983
1984 func (v DestroyNotifyEvent) String() string {
1985 fieldVals := make([]string, 0, 3)
1986 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
1987 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
1988 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
1989 return "DestroyNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
1990 }
1991
1992 func init() {
1993 xgb.NewEventFuncs[17] = DestroyNotifyEventNew
1994 }
1995
1996 type Drawable uint32
1997
1998 func NewDrawableId(c *xgb.Conn) (Drawable, error) {
1999 id, err := c.NewId()
2000 if err != nil {
2001 return 0, err
2002 }
2003 return Drawable(id), nil
2004 }
2005
2006
2007 const BadDrawable = 9
2008
2009 type DrawableError ValueError
2010
2011
2012 func DrawableErrorNew(buf []byte) xgb.Error {
2013 v := DrawableError(ValueErrorNew(buf).(ValueError))
2014 v.NiceName = "Drawable"
2015 return v
2016 }
2017
2018
2019
2020 func (err DrawableError) SequenceId() uint16 {
2021 return err.Sequence
2022 }
2023
2024
2025 func (err DrawableError) BadId() uint32 {
2026 return err.BadValue
2027 }
2028
2029
2030 func (err DrawableError) Error() string {
2031 fieldVals := make([]string, 0, 4)
2032 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
2033 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
2034 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
2035 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
2036 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
2037 return "BadDrawable {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2038 }
2039
2040 func init() {
2041 xgb.NewErrorFuncs[9] = DrawableErrorNew
2042 }
2043
2044
2045 const EnterNotify = 7
2046
2047 type EnterNotifyEvent struct {
2048 Sequence uint16
2049 Detail byte
2050 Time Timestamp
2051 Root Window
2052 Event Window
2053 Child Window
2054 RootX int16
2055 RootY int16
2056 EventX int16
2057 EventY int16
2058 State uint16
2059 Mode byte
2060 SameScreenFocus byte
2061 }
2062
2063
2064 func EnterNotifyEventNew(buf []byte) xgb.Event {
2065 v := EnterNotifyEvent{}
2066 b := 1
2067
2068 v.Detail = buf[b]
2069 b += 1
2070
2071 v.Sequence = xgb.Get16(buf[b:])
2072 b += 2
2073
2074 v.Time = Timestamp(xgb.Get32(buf[b:]))
2075 b += 4
2076
2077 v.Root = Window(xgb.Get32(buf[b:]))
2078 b += 4
2079
2080 v.Event = Window(xgb.Get32(buf[b:]))
2081 b += 4
2082
2083 v.Child = Window(xgb.Get32(buf[b:]))
2084 b += 4
2085
2086 v.RootX = int16(xgb.Get16(buf[b:]))
2087 b += 2
2088
2089 v.RootY = int16(xgb.Get16(buf[b:]))
2090 b += 2
2091
2092 v.EventX = int16(xgb.Get16(buf[b:]))
2093 b += 2
2094
2095 v.EventY = int16(xgb.Get16(buf[b:]))
2096 b += 2
2097
2098 v.State = xgb.Get16(buf[b:])
2099 b += 2
2100
2101 v.Mode = buf[b]
2102 b += 1
2103
2104 v.SameScreenFocus = buf[b]
2105 b += 1
2106
2107 return v
2108 }
2109
2110
2111 func (v EnterNotifyEvent) Bytes() []byte {
2112 buf := make([]byte, 32)
2113 b := 0
2114
2115
2116 buf[b] = 7
2117 b += 1
2118
2119 buf[b] = v.Detail
2120 b += 1
2121
2122 b += 2
2123
2124 xgb.Put32(buf[b:], uint32(v.Time))
2125 b += 4
2126
2127 xgb.Put32(buf[b:], uint32(v.Root))
2128 b += 4
2129
2130 xgb.Put32(buf[b:], uint32(v.Event))
2131 b += 4
2132
2133 xgb.Put32(buf[b:], uint32(v.Child))
2134 b += 4
2135
2136 xgb.Put16(buf[b:], uint16(v.RootX))
2137 b += 2
2138
2139 xgb.Put16(buf[b:], uint16(v.RootY))
2140 b += 2
2141
2142 xgb.Put16(buf[b:], uint16(v.EventX))
2143 b += 2
2144
2145 xgb.Put16(buf[b:], uint16(v.EventY))
2146 b += 2
2147
2148 xgb.Put16(buf[b:], v.State)
2149 b += 2
2150
2151 buf[b] = v.Mode
2152 b += 1
2153
2154 buf[b] = v.SameScreenFocus
2155 b += 1
2156
2157 return buf
2158 }
2159
2160
2161
2162
2163 func (v EnterNotifyEvent) SequenceId() uint16 {
2164 return v.Sequence
2165 }
2166
2167
2168 func (v EnterNotifyEvent) String() string {
2169 fieldVals := make([]string, 0, 12)
2170 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
2171 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
2172 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
2173 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
2174 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
2175 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
2176 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
2177 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
2178 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
2179 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
2180 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
2181 fieldVals = append(fieldVals, xgb.Sprintf("Mode: %d", v.Mode))
2182 fieldVals = append(fieldVals, xgb.Sprintf("SameScreenFocus: %d", v.SameScreenFocus))
2183 return "EnterNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2184 }
2185
2186 func init() {
2187 xgb.NewEventFuncs[7] = EnterNotifyEventNew
2188 }
2189
2190 const (
2191 EventMaskNoEvent = 0
2192 EventMaskKeyPress = 1
2193 EventMaskKeyRelease = 2
2194 EventMaskButtonPress = 4
2195 EventMaskButtonRelease = 8
2196 EventMaskEnterWindow = 16
2197 EventMaskLeaveWindow = 32
2198 EventMaskPointerMotion = 64
2199 EventMaskPointerMotionHint = 128
2200 EventMaskButton1Motion = 256
2201 EventMaskButton2Motion = 512
2202 EventMaskButton3Motion = 1024
2203 EventMaskButton4Motion = 2048
2204 EventMaskButton5Motion = 4096
2205 EventMaskButtonMotion = 8192
2206 EventMaskKeymapState = 16384
2207 EventMaskExposure = 32768
2208 EventMaskVisibilityChange = 65536
2209 EventMaskStructureNotify = 131072
2210 EventMaskResizeRedirect = 262144
2211 EventMaskSubstructureNotify = 524288
2212 EventMaskSubstructureRedirect = 1048576
2213 EventMaskFocusChange = 2097152
2214 EventMaskPropertyChange = 4194304
2215 EventMaskColorMapChange = 8388608
2216 EventMaskOwnerGrabButton = 16777216
2217 )
2218
2219
2220 const Expose = 12
2221
2222 type ExposeEvent struct {
2223 Sequence uint16
2224
2225 Window Window
2226 X uint16
2227 Y uint16
2228 Width uint16
2229 Height uint16
2230 Count uint16
2231
2232 }
2233
2234
2235 func ExposeEventNew(buf []byte) xgb.Event {
2236 v := ExposeEvent{}
2237 b := 1
2238
2239 b += 1
2240
2241 v.Sequence = xgb.Get16(buf[b:])
2242 b += 2
2243
2244 v.Window = Window(xgb.Get32(buf[b:]))
2245 b += 4
2246
2247 v.X = xgb.Get16(buf[b:])
2248 b += 2
2249
2250 v.Y = xgb.Get16(buf[b:])
2251 b += 2
2252
2253 v.Width = xgb.Get16(buf[b:])
2254 b += 2
2255
2256 v.Height = xgb.Get16(buf[b:])
2257 b += 2
2258
2259 v.Count = xgb.Get16(buf[b:])
2260 b += 2
2261
2262 b += 2
2263
2264 return v
2265 }
2266
2267
2268 func (v ExposeEvent) Bytes() []byte {
2269 buf := make([]byte, 32)
2270 b := 0
2271
2272
2273 buf[b] = 12
2274 b += 1
2275
2276 b += 1
2277
2278 b += 2
2279
2280 xgb.Put32(buf[b:], uint32(v.Window))
2281 b += 4
2282
2283 xgb.Put16(buf[b:], v.X)
2284 b += 2
2285
2286 xgb.Put16(buf[b:], v.Y)
2287 b += 2
2288
2289 xgb.Put16(buf[b:], v.Width)
2290 b += 2
2291
2292 xgb.Put16(buf[b:], v.Height)
2293 b += 2
2294
2295 xgb.Put16(buf[b:], v.Count)
2296 b += 2
2297
2298 b += 2
2299
2300 return buf
2301 }
2302
2303
2304
2305
2306 func (v ExposeEvent) SequenceId() uint16 {
2307 return v.Sequence
2308 }
2309
2310
2311 func (v ExposeEvent) String() string {
2312 fieldVals := make([]string, 0, 8)
2313 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
2314 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
2315 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
2316 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
2317 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
2318 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
2319 fieldVals = append(fieldVals, xgb.Sprintf("Count: %d", v.Count))
2320 return "Expose {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2321 }
2322
2323 func init() {
2324 xgb.NewEventFuncs[12] = ExposeEventNew
2325 }
2326
2327 const (
2328 ExposuresNotAllowed = 0
2329 ExposuresAllowed = 1
2330 ExposuresDefault = 2
2331 )
2332
2333 const (
2334 FamilyInternet = 0
2335 FamilyDECnet = 1
2336 FamilyChaos = 2
2337 FamilyServerInterpreted = 5
2338 FamilyInternet6 = 6
2339 )
2340
2341 const (
2342 FillRuleEvenOdd = 0
2343 FillRuleWinding = 1
2344 )
2345
2346 const (
2347 FillStyleSolid = 0
2348 FillStyleTiled = 1
2349 FillStyleStippled = 2
2350 FillStyleOpaqueStippled = 3
2351 )
2352
2353
2354 const FocusIn = 9
2355
2356 type FocusInEvent struct {
2357 Sequence uint16
2358 Detail byte
2359 Event Window
2360 Mode byte
2361
2362 }
2363
2364
2365 func FocusInEventNew(buf []byte) xgb.Event {
2366 v := FocusInEvent{}
2367 b := 1
2368
2369 v.Detail = buf[b]
2370 b += 1
2371
2372 v.Sequence = xgb.Get16(buf[b:])
2373 b += 2
2374
2375 v.Event = Window(xgb.Get32(buf[b:]))
2376 b += 4
2377
2378 v.Mode = buf[b]
2379 b += 1
2380
2381 b += 3
2382
2383 return v
2384 }
2385
2386
2387 func (v FocusInEvent) Bytes() []byte {
2388 buf := make([]byte, 32)
2389 b := 0
2390
2391
2392 buf[b] = 9
2393 b += 1
2394
2395 buf[b] = v.Detail
2396 b += 1
2397
2398 b += 2
2399
2400 xgb.Put32(buf[b:], uint32(v.Event))
2401 b += 4
2402
2403 buf[b] = v.Mode
2404 b += 1
2405
2406 b += 3
2407
2408 return buf
2409 }
2410
2411
2412
2413
2414 func (v FocusInEvent) SequenceId() uint16 {
2415 return v.Sequence
2416 }
2417
2418
2419 func (v FocusInEvent) String() string {
2420 fieldVals := make([]string, 0, 4)
2421 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
2422 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
2423 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
2424 fieldVals = append(fieldVals, xgb.Sprintf("Mode: %d", v.Mode))
2425 return "FocusIn {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2426 }
2427
2428 func init() {
2429 xgb.NewEventFuncs[9] = FocusInEventNew
2430 }
2431
2432
2433 const FocusOut = 10
2434
2435 type FocusOutEvent FocusInEvent
2436
2437
2438 func FocusOutEventNew(buf []byte) xgb.Event {
2439 return FocusOutEvent(FocusInEventNew(buf).(FocusInEvent))
2440 }
2441
2442
2443 func (v FocusOutEvent) Bytes() []byte {
2444 return FocusInEvent(v).Bytes()
2445 }
2446
2447
2448
2449
2450 func (v FocusOutEvent) SequenceId() uint16 {
2451 return v.Sequence
2452 }
2453
2454 func (v FocusOutEvent) String() string {
2455 fieldVals := make([]string, 0, 4)
2456 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
2457 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
2458 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
2459 fieldVals = append(fieldVals, xgb.Sprintf("Mode: %d", v.Mode))
2460 return "FocusOut {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2461 }
2462
2463 func init() {
2464 xgb.NewEventFuncs[10] = FocusOutEventNew
2465 }
2466
2467 type Font uint32
2468
2469 func NewFontId(c *xgb.Conn) (Font, error) {
2470 id, err := c.NewId()
2471 if err != nil {
2472 return 0, err
2473 }
2474 return Font(id), nil
2475 }
2476
2477
2478 const BadFont = 7
2479
2480 type FontError ValueError
2481
2482
2483 func FontErrorNew(buf []byte) xgb.Error {
2484 v := FontError(ValueErrorNew(buf).(ValueError))
2485 v.NiceName = "Font"
2486 return v
2487 }
2488
2489
2490
2491 func (err FontError) SequenceId() uint16 {
2492 return err.Sequence
2493 }
2494
2495
2496 func (err FontError) BadId() uint32 {
2497 return err.BadValue
2498 }
2499
2500
2501 func (err FontError) Error() string {
2502 fieldVals := make([]string, 0, 4)
2503 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
2504 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
2505 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
2506 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
2507 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
2508 return "BadFont {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2509 }
2510
2511 func init() {
2512 xgb.NewErrorFuncs[7] = FontErrorNew
2513 }
2514
2515 const (
2516 FontNone = 0
2517 )
2518
2519 const (
2520 FontDrawLeftToRight = 0
2521 FontDrawRightToLeft = 1
2522 )
2523
2524 type Fontable uint32
2525
2526 func NewFontableId(c *xgb.Conn) (Fontable, error) {
2527 id, err := c.NewId()
2528 if err != nil {
2529 return 0, err
2530 }
2531 return Fontable(id), nil
2532 }
2533
2534 type Fontprop struct {
2535 Name Atom
2536 Value uint32
2537 }
2538
2539
2540 func FontpropRead(buf []byte, v *Fontprop) int {
2541 b := 0
2542
2543 v.Name = Atom(xgb.Get32(buf[b:]))
2544 b += 4
2545
2546 v.Value = xgb.Get32(buf[b:])
2547 b += 4
2548
2549 return b
2550 }
2551
2552
2553 func FontpropReadList(buf []byte, dest []Fontprop) int {
2554 b := 0
2555 for i := 0; i < len(dest); i++ {
2556 dest[i] = Fontprop{}
2557 b += FontpropRead(buf[b:], &dest[i])
2558 }
2559 return xgb.Pad(b)
2560 }
2561
2562
2563 func (v Fontprop) Bytes() []byte {
2564 buf := make([]byte, 8)
2565 b := 0
2566
2567 xgb.Put32(buf[b:], uint32(v.Name))
2568 b += 4
2569
2570 xgb.Put32(buf[b:], v.Value)
2571 b += 4
2572
2573 return buf[:b]
2574 }
2575
2576
2577 func FontpropListBytes(buf []byte, list []Fontprop) int {
2578 b := 0
2579 var structBytes []byte
2580 for _, item := range list {
2581 structBytes = item.Bytes()
2582 copy(buf[b:], structBytes)
2583 b += len(structBytes)
2584 }
2585 return xgb.Pad(b)
2586 }
2587
2588 type Format struct {
2589 Depth byte
2590 BitsPerPixel byte
2591 ScanlinePad byte
2592
2593 }
2594
2595
2596 func FormatRead(buf []byte, v *Format) int {
2597 b := 0
2598
2599 v.Depth = buf[b]
2600 b += 1
2601
2602 v.BitsPerPixel = buf[b]
2603 b += 1
2604
2605 v.ScanlinePad = buf[b]
2606 b += 1
2607
2608 b += 5
2609
2610 return b
2611 }
2612
2613
2614 func FormatReadList(buf []byte, dest []Format) int {
2615 b := 0
2616 for i := 0; i < len(dest); i++ {
2617 dest[i] = Format{}
2618 b += FormatRead(buf[b:], &dest[i])
2619 }
2620 return xgb.Pad(b)
2621 }
2622
2623
2624 func (v Format) Bytes() []byte {
2625 buf := make([]byte, 8)
2626 b := 0
2627
2628 buf[b] = v.Depth
2629 b += 1
2630
2631 buf[b] = v.BitsPerPixel
2632 b += 1
2633
2634 buf[b] = v.ScanlinePad
2635 b += 1
2636
2637 b += 5
2638
2639 return buf[:b]
2640 }
2641
2642
2643 func FormatListBytes(buf []byte, list []Format) int {
2644 b := 0
2645 var structBytes []byte
2646 for _, item := range list {
2647 structBytes = item.Bytes()
2648 copy(buf[b:], structBytes)
2649 b += len(structBytes)
2650 }
2651 return xgb.Pad(b)
2652 }
2653
2654
2655 const BadGContext = 13
2656
2657 type GContextError ValueError
2658
2659
2660 func GContextErrorNew(buf []byte) xgb.Error {
2661 v := GContextError(ValueErrorNew(buf).(ValueError))
2662 v.NiceName = "GContext"
2663 return v
2664 }
2665
2666
2667
2668 func (err GContextError) SequenceId() uint16 {
2669 return err.Sequence
2670 }
2671
2672
2673 func (err GContextError) BadId() uint32 {
2674 return err.BadValue
2675 }
2676
2677
2678 func (err GContextError) Error() string {
2679 fieldVals := make([]string, 0, 4)
2680 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
2681 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
2682 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
2683 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
2684 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
2685 return "BadGContext {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2686 }
2687
2688 func init() {
2689 xgb.NewErrorFuncs[13] = GContextErrorNew
2690 }
2691
2692 const (
2693 GcFunction = 1
2694 GcPlaneMask = 2
2695 GcForeground = 4
2696 GcBackground = 8
2697 GcLineWidth = 16
2698 GcLineStyle = 32
2699 GcCapStyle = 64
2700 GcJoinStyle = 128
2701 GcFillStyle = 256
2702 GcFillRule = 512
2703 GcTile = 1024
2704 GcStipple = 2048
2705 GcTileStippleOriginX = 4096
2706 GcTileStippleOriginY = 8192
2707 GcFont = 16384
2708 GcSubwindowMode = 32768
2709 GcGraphicsExposures = 65536
2710 GcClipOriginX = 131072
2711 GcClipOriginY = 262144
2712 GcClipMask = 524288
2713 GcDashOffset = 1048576
2714 GcDashList = 2097152
2715 GcArcMode = 4194304
2716 )
2717
2718 type Gcontext uint32
2719
2720 func NewGcontextId(c *xgb.Conn) (Gcontext, error) {
2721 id, err := c.NewId()
2722 if err != nil {
2723 return 0, err
2724 }
2725 return Gcontext(id), nil
2726 }
2727
2728
2729 const GeGeneric = 35
2730
2731 type GeGenericEvent struct {
2732 Sequence uint16
2733
2734 }
2735
2736
2737 func GeGenericEventNew(buf []byte) xgb.Event {
2738 v := GeGenericEvent{}
2739 b := 1
2740
2741 b += 22
2742
2743 return v
2744 }
2745
2746
2747 func (v GeGenericEvent) Bytes() []byte {
2748 buf := make([]byte, 32)
2749 b := 0
2750
2751
2752 buf[b] = 35
2753 b += 1
2754
2755 b += 22
2756
2757 return buf
2758 }
2759
2760
2761
2762
2763 func (v GeGenericEvent) SequenceId() uint16 {
2764 return v.Sequence
2765 }
2766
2767
2768 func (v GeGenericEvent) String() string {
2769 fieldVals := make([]string, 0, 1)
2770 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
2771 return "GeGeneric {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2772 }
2773
2774 func init() {
2775 xgb.NewEventFuncs[35] = GeGenericEventNew
2776 }
2777
2778 const (
2779 GetPropertyTypeAny = 0
2780 )
2781
2782 const (
2783 GrabAny = 0
2784 )
2785
2786 const (
2787 GrabModeSync = 0
2788 GrabModeAsync = 1
2789 )
2790
2791 const (
2792 GrabStatusSuccess = 0
2793 GrabStatusAlreadyGrabbed = 1
2794 GrabStatusInvalidTime = 2
2795 GrabStatusNotViewable = 3
2796 GrabStatusFrozen = 4
2797 )
2798
2799
2800 const GraphicsExposure = 13
2801
2802 type GraphicsExposureEvent struct {
2803 Sequence uint16
2804
2805 Drawable Drawable
2806 X uint16
2807 Y uint16
2808 Width uint16
2809 Height uint16
2810 MinorOpcode uint16
2811 Count uint16
2812 MajorOpcode byte
2813
2814 }
2815
2816
2817 func GraphicsExposureEventNew(buf []byte) xgb.Event {
2818 v := GraphicsExposureEvent{}
2819 b := 1
2820
2821 b += 1
2822
2823 v.Sequence = xgb.Get16(buf[b:])
2824 b += 2
2825
2826 v.Drawable = Drawable(xgb.Get32(buf[b:]))
2827 b += 4
2828
2829 v.X = xgb.Get16(buf[b:])
2830 b += 2
2831
2832 v.Y = xgb.Get16(buf[b:])
2833 b += 2
2834
2835 v.Width = xgb.Get16(buf[b:])
2836 b += 2
2837
2838 v.Height = xgb.Get16(buf[b:])
2839 b += 2
2840
2841 v.MinorOpcode = xgb.Get16(buf[b:])
2842 b += 2
2843
2844 v.Count = xgb.Get16(buf[b:])
2845 b += 2
2846
2847 v.MajorOpcode = buf[b]
2848 b += 1
2849
2850 b += 3
2851
2852 return v
2853 }
2854
2855
2856 func (v GraphicsExposureEvent) Bytes() []byte {
2857 buf := make([]byte, 32)
2858 b := 0
2859
2860
2861 buf[b] = 13
2862 b += 1
2863
2864 b += 1
2865
2866 b += 2
2867
2868 xgb.Put32(buf[b:], uint32(v.Drawable))
2869 b += 4
2870
2871 xgb.Put16(buf[b:], v.X)
2872 b += 2
2873
2874 xgb.Put16(buf[b:], v.Y)
2875 b += 2
2876
2877 xgb.Put16(buf[b:], v.Width)
2878 b += 2
2879
2880 xgb.Put16(buf[b:], v.Height)
2881 b += 2
2882
2883 xgb.Put16(buf[b:], v.MinorOpcode)
2884 b += 2
2885
2886 xgb.Put16(buf[b:], v.Count)
2887 b += 2
2888
2889 buf[b] = v.MajorOpcode
2890 b += 1
2891
2892 b += 3
2893
2894 return buf
2895 }
2896
2897
2898
2899
2900 func (v GraphicsExposureEvent) SequenceId() uint16 {
2901 return v.Sequence
2902 }
2903
2904
2905 func (v GraphicsExposureEvent) String() string {
2906 fieldVals := make([]string, 0, 10)
2907 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
2908 fieldVals = append(fieldVals, xgb.Sprintf("Drawable: %d", v.Drawable))
2909 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
2910 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
2911 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
2912 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
2913 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", v.MinorOpcode))
2914 fieldVals = append(fieldVals, xgb.Sprintf("Count: %d", v.Count))
2915 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", v.MajorOpcode))
2916 return "GraphicsExposure {" + xgb.StringsJoin(fieldVals, ", ") + "}"
2917 }
2918
2919 func init() {
2920 xgb.NewEventFuncs[13] = GraphicsExposureEventNew
2921 }
2922
2923 const (
2924 GravityBitForget = 0
2925 GravityWinUnmap = 0
2926 GravityNorthWest = 1
2927 GravityNorth = 2
2928 GravityNorthEast = 3
2929 GravityWest = 4
2930 GravityCenter = 5
2931 GravityEast = 6
2932 GravitySouthWest = 7
2933 GravitySouth = 8
2934 GravitySouthEast = 9
2935 GravityStatic = 10
2936 )
2937
2938
2939 const GravityNotify = 24
2940
2941 type GravityNotifyEvent struct {
2942 Sequence uint16
2943
2944 Event Window
2945 Window Window
2946 X int16
2947 Y int16
2948 }
2949
2950
2951 func GravityNotifyEventNew(buf []byte) xgb.Event {
2952 v := GravityNotifyEvent{}
2953 b := 1
2954
2955 b += 1
2956
2957 v.Sequence = xgb.Get16(buf[b:])
2958 b += 2
2959
2960 v.Event = Window(xgb.Get32(buf[b:]))
2961 b += 4
2962
2963 v.Window = Window(xgb.Get32(buf[b:]))
2964 b += 4
2965
2966 v.X = int16(xgb.Get16(buf[b:]))
2967 b += 2
2968
2969 v.Y = int16(xgb.Get16(buf[b:]))
2970 b += 2
2971
2972 return v
2973 }
2974
2975
2976 func (v GravityNotifyEvent) Bytes() []byte {
2977 buf := make([]byte, 32)
2978 b := 0
2979
2980
2981 buf[b] = 24
2982 b += 1
2983
2984 b += 1
2985
2986 b += 2
2987
2988 xgb.Put32(buf[b:], uint32(v.Event))
2989 b += 4
2990
2991 xgb.Put32(buf[b:], uint32(v.Window))
2992 b += 4
2993
2994 xgb.Put16(buf[b:], uint16(v.X))
2995 b += 2
2996
2997 xgb.Put16(buf[b:], uint16(v.Y))
2998 b += 2
2999
3000 return buf
3001 }
3002
3003
3004
3005
3006 func (v GravityNotifyEvent) SequenceId() uint16 {
3007 return v.Sequence
3008 }
3009
3010
3011 func (v GravityNotifyEvent) String() string {
3012 fieldVals := make([]string, 0, 5)
3013 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3014 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
3015 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
3016 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
3017 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
3018 return "GravityNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3019 }
3020
3021 func init() {
3022 xgb.NewEventFuncs[24] = GravityNotifyEventNew
3023 }
3024
3025 const (
3026 GxClear = 0
3027 GxAnd = 1
3028 GxAndReverse = 2
3029 GxCopy = 3
3030 GxAndInverted = 4
3031 GxNoop = 5
3032 GxXor = 6
3033 GxOr = 7
3034 GxNor = 8
3035 GxEquiv = 9
3036 GxInvert = 10
3037 GxOrReverse = 11
3038 GxCopyInverted = 12
3039 GxOrInverted = 13
3040 GxNand = 14
3041 GxSet = 15
3042 )
3043
3044 type Host struct {
3045 Family byte
3046
3047 AddressLen uint16
3048 Address []byte
3049 }
3050
3051
3052 func HostRead(buf []byte, v *Host) int {
3053 b := 0
3054
3055 v.Family = buf[b]
3056 b += 1
3057
3058 b += 1
3059
3060 v.AddressLen = xgb.Get16(buf[b:])
3061 b += 2
3062
3063 v.Address = make([]byte, v.AddressLen)
3064 copy(v.Address[:v.AddressLen], buf[b:])
3065 b += int(v.AddressLen)
3066
3067 return b
3068 }
3069
3070
3071 func HostReadList(buf []byte, dest []Host) int {
3072 b := 0
3073 for i := 0; i < len(dest); i++ {
3074 dest[i] = Host{}
3075 b += HostRead(buf[b:], &dest[i])
3076 }
3077 return xgb.Pad(b)
3078 }
3079
3080
3081 func (v Host) Bytes() []byte {
3082 buf := make([]byte, (4 + xgb.Pad((int(v.AddressLen) * 1))))
3083 b := 0
3084
3085 buf[b] = v.Family
3086 b += 1
3087
3088 b += 1
3089
3090 xgb.Put16(buf[b:], v.AddressLen)
3091 b += 2
3092
3093 copy(buf[b:], v.Address[:v.AddressLen])
3094 b += int(v.AddressLen)
3095
3096 return buf[:b]
3097 }
3098
3099
3100 func HostListBytes(buf []byte, list []Host) int {
3101 b := 0
3102 var structBytes []byte
3103 for _, item := range list {
3104 structBytes = item.Bytes()
3105 copy(buf[b:], structBytes)
3106 b += len(structBytes)
3107 }
3108 return xgb.Pad(b)
3109 }
3110
3111
3112 func HostListSize(list []Host) int {
3113 size := 0
3114 for _, item := range list {
3115 size += (4 + xgb.Pad((int(item.AddressLen) * 1)))
3116 }
3117 return size
3118 }
3119
3120 const (
3121 HostModeInsert = 0
3122 HostModeDelete = 1
3123 )
3124
3125
3126 const BadIDChoice = 14
3127
3128 type IDChoiceError ValueError
3129
3130
3131 func IDChoiceErrorNew(buf []byte) xgb.Error {
3132 v := IDChoiceError(ValueErrorNew(buf).(ValueError))
3133 v.NiceName = "IDChoice"
3134 return v
3135 }
3136
3137
3138
3139 func (err IDChoiceError) SequenceId() uint16 {
3140 return err.Sequence
3141 }
3142
3143
3144 func (err IDChoiceError) BadId() uint32 {
3145 return err.BadValue
3146 }
3147
3148
3149 func (err IDChoiceError) Error() string {
3150 fieldVals := make([]string, 0, 4)
3151 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
3152 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
3153 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
3154 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
3155 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
3156 return "BadIDChoice {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3157 }
3158
3159 func init() {
3160 xgb.NewErrorFuncs[14] = IDChoiceErrorNew
3161 }
3162
3163 const (
3164 ImageFormatXYBitmap = 0
3165 ImageFormatXYPixmap = 1
3166 ImageFormatZPixmap = 2
3167 )
3168
3169 const (
3170 ImageOrderLSBFirst = 0
3171 ImageOrderMSBFirst = 1
3172 )
3173
3174
3175 const BadImplementation = 17
3176
3177 type ImplementationError RequestError
3178
3179
3180 func ImplementationErrorNew(buf []byte) xgb.Error {
3181 v := ImplementationError(RequestErrorNew(buf).(RequestError))
3182 v.NiceName = "Implementation"
3183 return v
3184 }
3185
3186
3187
3188 func (err ImplementationError) SequenceId() uint16 {
3189 return err.Sequence
3190 }
3191
3192
3193 func (err ImplementationError) BadId() uint32 {
3194 return err.BadValue
3195 }
3196
3197
3198 func (err ImplementationError) Error() string {
3199 fieldVals := make([]string, 0, 4)
3200 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
3201 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
3202 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
3203 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
3204 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
3205 return "BadImplementation {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3206 }
3207
3208 func init() {
3209 xgb.NewErrorFuncs[17] = ImplementationErrorNew
3210 }
3211
3212 const (
3213 InputFocusNone = 0
3214 InputFocusPointerRoot = 1
3215 InputFocusParent = 2
3216 InputFocusFollowKeyboard = 3
3217 )
3218
3219 const (
3220 JoinStyleMiter = 0
3221 JoinStyleRound = 1
3222 JoinStyleBevel = 2
3223 )
3224
3225 const (
3226 KbKeyClickPercent = 1
3227 KbBellPercent = 2
3228 KbBellPitch = 4
3229 KbBellDuration = 8
3230 KbLed = 16
3231 KbLedMode = 32
3232 KbKey = 64
3233 KbAutoRepeatMode = 128
3234 )
3235
3236 const (
3237 KeyButMaskShift = 1
3238 KeyButMaskLock = 2
3239 KeyButMaskControl = 4
3240 KeyButMaskMod1 = 8
3241 KeyButMaskMod2 = 16
3242 KeyButMaskMod3 = 32
3243 KeyButMaskMod4 = 64
3244 KeyButMaskMod5 = 128
3245 KeyButMaskButton1 = 256
3246 KeyButMaskButton2 = 512
3247 KeyButMaskButton3 = 1024
3248 KeyButMaskButton4 = 2048
3249 KeyButMaskButton5 = 4096
3250 )
3251
3252
3253 const KeyPress = 2
3254
3255 type KeyPressEvent struct {
3256 Sequence uint16
3257 Detail Keycode
3258 Time Timestamp
3259 Root Window
3260 Event Window
3261 Child Window
3262 RootX int16
3263 RootY int16
3264 EventX int16
3265 EventY int16
3266 State uint16
3267 SameScreen bool
3268
3269 }
3270
3271
3272 func KeyPressEventNew(buf []byte) xgb.Event {
3273 v := KeyPressEvent{}
3274 b := 1
3275
3276 v.Detail = Keycode(buf[b])
3277 b += 1
3278
3279 v.Sequence = xgb.Get16(buf[b:])
3280 b += 2
3281
3282 v.Time = Timestamp(xgb.Get32(buf[b:]))
3283 b += 4
3284
3285 v.Root = Window(xgb.Get32(buf[b:]))
3286 b += 4
3287
3288 v.Event = Window(xgb.Get32(buf[b:]))
3289 b += 4
3290
3291 v.Child = Window(xgb.Get32(buf[b:]))
3292 b += 4
3293
3294 v.RootX = int16(xgb.Get16(buf[b:]))
3295 b += 2
3296
3297 v.RootY = int16(xgb.Get16(buf[b:]))
3298 b += 2
3299
3300 v.EventX = int16(xgb.Get16(buf[b:]))
3301 b += 2
3302
3303 v.EventY = int16(xgb.Get16(buf[b:]))
3304 b += 2
3305
3306 v.State = xgb.Get16(buf[b:])
3307 b += 2
3308
3309 if buf[b] == 1 {
3310 v.SameScreen = true
3311 } else {
3312 v.SameScreen = false
3313 }
3314 b += 1
3315
3316 b += 1
3317
3318 return v
3319 }
3320
3321
3322 func (v KeyPressEvent) Bytes() []byte {
3323 buf := make([]byte, 32)
3324 b := 0
3325
3326
3327 buf[b] = 2
3328 b += 1
3329
3330 buf[b] = byte(v.Detail)
3331 b += 1
3332
3333 b += 2
3334
3335 xgb.Put32(buf[b:], uint32(v.Time))
3336 b += 4
3337
3338 xgb.Put32(buf[b:], uint32(v.Root))
3339 b += 4
3340
3341 xgb.Put32(buf[b:], uint32(v.Event))
3342 b += 4
3343
3344 xgb.Put32(buf[b:], uint32(v.Child))
3345 b += 4
3346
3347 xgb.Put16(buf[b:], uint16(v.RootX))
3348 b += 2
3349
3350 xgb.Put16(buf[b:], uint16(v.RootY))
3351 b += 2
3352
3353 xgb.Put16(buf[b:], uint16(v.EventX))
3354 b += 2
3355
3356 xgb.Put16(buf[b:], uint16(v.EventY))
3357 b += 2
3358
3359 xgb.Put16(buf[b:], v.State)
3360 b += 2
3361
3362 if v.SameScreen {
3363 buf[b] = 1
3364 } else {
3365 buf[b] = 0
3366 }
3367 b += 1
3368
3369 b += 1
3370
3371 return buf
3372 }
3373
3374
3375
3376
3377 func (v KeyPressEvent) SequenceId() uint16 {
3378 return v.Sequence
3379 }
3380
3381
3382 func (v KeyPressEvent) String() string {
3383 fieldVals := make([]string, 0, 12)
3384 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3385 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
3386 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
3387 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
3388 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
3389 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
3390 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
3391 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
3392 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
3393 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
3394 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
3395 fieldVals = append(fieldVals, xgb.Sprintf("SameScreen: %t", v.SameScreen))
3396 return "KeyPress {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3397 }
3398
3399 func init() {
3400 xgb.NewEventFuncs[2] = KeyPressEventNew
3401 }
3402
3403
3404 const KeyRelease = 3
3405
3406 type KeyReleaseEvent KeyPressEvent
3407
3408
3409 func KeyReleaseEventNew(buf []byte) xgb.Event {
3410 return KeyReleaseEvent(KeyPressEventNew(buf).(KeyPressEvent))
3411 }
3412
3413
3414 func (v KeyReleaseEvent) Bytes() []byte {
3415 return KeyPressEvent(v).Bytes()
3416 }
3417
3418
3419
3420
3421 func (v KeyReleaseEvent) SequenceId() uint16 {
3422 return v.Sequence
3423 }
3424
3425 func (v KeyReleaseEvent) String() string {
3426 fieldVals := make([]string, 0, 12)
3427 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3428 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
3429 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
3430 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
3431 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
3432 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
3433 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
3434 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
3435 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
3436 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
3437 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
3438 fieldVals = append(fieldVals, xgb.Sprintf("SameScreen: %t", v.SameScreen))
3439 return "KeyRelease {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3440 }
3441
3442 func init() {
3443 xgb.NewEventFuncs[3] = KeyReleaseEventNew
3444 }
3445
3446 type Keycode byte
3447
3448
3449 const KeymapNotify = 11
3450
3451 type KeymapNotifyEvent struct {
3452 Keys []byte
3453 }
3454
3455
3456 func KeymapNotifyEventNew(buf []byte) xgb.Event {
3457 v := KeymapNotifyEvent{}
3458 b := 1
3459
3460 v.Keys = make([]byte, 31)
3461 copy(v.Keys[:31], buf[b:])
3462 b += int(31)
3463
3464 return v
3465 }
3466
3467
3468 func (v KeymapNotifyEvent) Bytes() []byte {
3469 buf := make([]byte, 32)
3470 b := 0
3471
3472
3473 buf[b] = 11
3474 b += 1
3475
3476 copy(buf[b:], v.Keys[:31])
3477 b += int(31)
3478
3479 return buf
3480 }
3481
3482
3483
3484
3485 func (v KeymapNotifyEvent) SequenceId() uint16 {
3486 return uint16(0)
3487 }
3488
3489
3490 func (v KeymapNotifyEvent) String() string {
3491 fieldVals := make([]string, 0, 1)
3492 return "KeymapNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3493 }
3494
3495 func init() {
3496 xgb.NewEventFuncs[11] = KeymapNotifyEventNew
3497 }
3498
3499 type Keysym uint32
3500
3501 const (
3502 KillAllTemporary = 0
3503 )
3504
3505
3506 const LeaveNotify = 8
3507
3508 type LeaveNotifyEvent EnterNotifyEvent
3509
3510
3511 func LeaveNotifyEventNew(buf []byte) xgb.Event {
3512 return LeaveNotifyEvent(EnterNotifyEventNew(buf).(EnterNotifyEvent))
3513 }
3514
3515
3516 func (v LeaveNotifyEvent) Bytes() []byte {
3517 return EnterNotifyEvent(v).Bytes()
3518 }
3519
3520
3521
3522
3523 func (v LeaveNotifyEvent) SequenceId() uint16 {
3524 return v.Sequence
3525 }
3526
3527 func (v LeaveNotifyEvent) String() string {
3528 fieldVals := make([]string, 0, 12)
3529 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3530 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
3531 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
3532 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
3533 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
3534 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
3535 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
3536 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
3537 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
3538 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
3539 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
3540 fieldVals = append(fieldVals, xgb.Sprintf("Mode: %d", v.Mode))
3541 fieldVals = append(fieldVals, xgb.Sprintf("SameScreenFocus: %d", v.SameScreenFocus))
3542 return "LeaveNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3543 }
3544
3545 func init() {
3546 xgb.NewEventFuncs[8] = LeaveNotifyEventNew
3547 }
3548
3549 const (
3550 LedModeOff = 0
3551 LedModeOn = 1
3552 )
3553
3554
3555 const BadLength = 16
3556
3557 type LengthError RequestError
3558
3559
3560 func LengthErrorNew(buf []byte) xgb.Error {
3561 v := LengthError(RequestErrorNew(buf).(RequestError))
3562 v.NiceName = "Length"
3563 return v
3564 }
3565
3566
3567
3568 func (err LengthError) SequenceId() uint16 {
3569 return err.Sequence
3570 }
3571
3572
3573 func (err LengthError) BadId() uint32 {
3574 return err.BadValue
3575 }
3576
3577
3578 func (err LengthError) Error() string {
3579 fieldVals := make([]string, 0, 4)
3580 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
3581 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
3582 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
3583 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
3584 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
3585 return "BadLength {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3586 }
3587
3588 func init() {
3589 xgb.NewErrorFuncs[16] = LengthErrorNew
3590 }
3591
3592 const (
3593 LineStyleSolid = 0
3594 LineStyleOnOffDash = 1
3595 LineStyleDoubleDash = 2
3596 )
3597
3598 const (
3599 MapIndexShift = 0
3600 MapIndexLock = 1
3601 MapIndexControl = 2
3602 MapIndex1 = 3
3603 MapIndex2 = 4
3604 MapIndex3 = 5
3605 MapIndex4 = 6
3606 MapIndex5 = 7
3607 )
3608
3609
3610 const MapNotify = 19
3611
3612 type MapNotifyEvent struct {
3613 Sequence uint16
3614
3615 Event Window
3616 Window Window
3617 OverrideRedirect bool
3618
3619 }
3620
3621
3622 func MapNotifyEventNew(buf []byte) xgb.Event {
3623 v := MapNotifyEvent{}
3624 b := 1
3625
3626 b += 1
3627
3628 v.Sequence = xgb.Get16(buf[b:])
3629 b += 2
3630
3631 v.Event = Window(xgb.Get32(buf[b:]))
3632 b += 4
3633
3634 v.Window = Window(xgb.Get32(buf[b:]))
3635 b += 4
3636
3637 if buf[b] == 1 {
3638 v.OverrideRedirect = true
3639 } else {
3640 v.OverrideRedirect = false
3641 }
3642 b += 1
3643
3644 b += 3
3645
3646 return v
3647 }
3648
3649
3650 func (v MapNotifyEvent) Bytes() []byte {
3651 buf := make([]byte, 32)
3652 b := 0
3653
3654
3655 buf[b] = 19
3656 b += 1
3657
3658 b += 1
3659
3660 b += 2
3661
3662 xgb.Put32(buf[b:], uint32(v.Event))
3663 b += 4
3664
3665 xgb.Put32(buf[b:], uint32(v.Window))
3666 b += 4
3667
3668 if v.OverrideRedirect {
3669 buf[b] = 1
3670 } else {
3671 buf[b] = 0
3672 }
3673 b += 1
3674
3675 b += 3
3676
3677 return buf
3678 }
3679
3680
3681
3682
3683 func (v MapNotifyEvent) SequenceId() uint16 {
3684 return v.Sequence
3685 }
3686
3687
3688 func (v MapNotifyEvent) String() string {
3689 fieldVals := make([]string, 0, 5)
3690 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3691 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
3692 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
3693 fieldVals = append(fieldVals, xgb.Sprintf("OverrideRedirect: %t", v.OverrideRedirect))
3694 return "MapNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3695 }
3696
3697 func init() {
3698 xgb.NewEventFuncs[19] = MapNotifyEventNew
3699 }
3700
3701
3702 const MapRequest = 20
3703
3704 type MapRequestEvent struct {
3705 Sequence uint16
3706
3707 Parent Window
3708 Window Window
3709 }
3710
3711
3712 func MapRequestEventNew(buf []byte) xgb.Event {
3713 v := MapRequestEvent{}
3714 b := 1
3715
3716 b += 1
3717
3718 v.Sequence = xgb.Get16(buf[b:])
3719 b += 2
3720
3721 v.Parent = Window(xgb.Get32(buf[b:]))
3722 b += 4
3723
3724 v.Window = Window(xgb.Get32(buf[b:]))
3725 b += 4
3726
3727 return v
3728 }
3729
3730
3731 func (v MapRequestEvent) Bytes() []byte {
3732 buf := make([]byte, 32)
3733 b := 0
3734
3735
3736 buf[b] = 20
3737 b += 1
3738
3739 b += 1
3740
3741 b += 2
3742
3743 xgb.Put32(buf[b:], uint32(v.Parent))
3744 b += 4
3745
3746 xgb.Put32(buf[b:], uint32(v.Window))
3747 b += 4
3748
3749 return buf
3750 }
3751
3752
3753
3754
3755 func (v MapRequestEvent) SequenceId() uint16 {
3756 return v.Sequence
3757 }
3758
3759
3760 func (v MapRequestEvent) String() string {
3761 fieldVals := make([]string, 0, 3)
3762 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3763 fieldVals = append(fieldVals, xgb.Sprintf("Parent: %d", v.Parent))
3764 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
3765 return "MapRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3766 }
3767
3768 func init() {
3769 xgb.NewEventFuncs[20] = MapRequestEventNew
3770 }
3771
3772 const (
3773 MapStateUnmapped = 0
3774 MapStateUnviewable = 1
3775 MapStateViewable = 2
3776 )
3777
3778 const (
3779 MappingModifier = 0
3780 MappingKeyboard = 1
3781 MappingPointer = 2
3782 )
3783
3784
3785 const MappingNotify = 34
3786
3787 type MappingNotifyEvent struct {
3788 Sequence uint16
3789
3790 Request byte
3791 FirstKeycode Keycode
3792 Count byte
3793
3794 }
3795
3796
3797 func MappingNotifyEventNew(buf []byte) xgb.Event {
3798 v := MappingNotifyEvent{}
3799 b := 1
3800
3801 b += 1
3802
3803 v.Sequence = xgb.Get16(buf[b:])
3804 b += 2
3805
3806 v.Request = buf[b]
3807 b += 1
3808
3809 v.FirstKeycode = Keycode(buf[b])
3810 b += 1
3811
3812 v.Count = buf[b]
3813 b += 1
3814
3815 b += 1
3816
3817 return v
3818 }
3819
3820
3821 func (v MappingNotifyEvent) Bytes() []byte {
3822 buf := make([]byte, 32)
3823 b := 0
3824
3825
3826 buf[b] = 34
3827 b += 1
3828
3829 b += 1
3830
3831 b += 2
3832
3833 buf[b] = v.Request
3834 b += 1
3835
3836 buf[b] = byte(v.FirstKeycode)
3837 b += 1
3838
3839 buf[b] = v.Count
3840 b += 1
3841
3842 b += 1
3843
3844 return buf
3845 }
3846
3847
3848
3849
3850 func (v MappingNotifyEvent) SequenceId() uint16 {
3851 return v.Sequence
3852 }
3853
3854
3855 func (v MappingNotifyEvent) String() string {
3856 fieldVals := make([]string, 0, 5)
3857 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
3858 fieldVals = append(fieldVals, xgb.Sprintf("Request: %d", v.Request))
3859 fieldVals = append(fieldVals, xgb.Sprintf("FirstKeycode: %d", v.FirstKeycode))
3860 fieldVals = append(fieldVals, xgb.Sprintf("Count: %d", v.Count))
3861 return "MappingNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3862 }
3863
3864 func init() {
3865 xgb.NewEventFuncs[34] = MappingNotifyEventNew
3866 }
3867
3868 const (
3869 MappingStatusSuccess = 0
3870 MappingStatusBusy = 1
3871 MappingStatusFailure = 2
3872 )
3873
3874
3875 const BadMatch = 8
3876
3877 type MatchError RequestError
3878
3879
3880 func MatchErrorNew(buf []byte) xgb.Error {
3881 v := MatchError(RequestErrorNew(buf).(RequestError))
3882 v.NiceName = "Match"
3883 return v
3884 }
3885
3886
3887
3888 func (err MatchError) SequenceId() uint16 {
3889 return err.Sequence
3890 }
3891
3892
3893 func (err MatchError) BadId() uint32 {
3894 return err.BadValue
3895 }
3896
3897
3898 func (err MatchError) Error() string {
3899 fieldVals := make([]string, 0, 4)
3900 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
3901 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
3902 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
3903 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
3904 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
3905 return "BadMatch {" + xgb.StringsJoin(fieldVals, ", ") + "}"
3906 }
3907
3908 func init() {
3909 xgb.NewErrorFuncs[8] = MatchErrorNew
3910 }
3911
3912 const (
3913 ModMaskShift = 1
3914 ModMaskLock = 2
3915 ModMaskControl = 4
3916 ModMask1 = 8
3917 ModMask2 = 16
3918 ModMask3 = 32
3919 ModMask4 = 64
3920 ModMask5 = 128
3921 ModMaskAny = 32768
3922 )
3923
3924 const (
3925 MotionNormal = 0
3926 MotionHint = 1
3927 )
3928
3929
3930 const MotionNotify = 6
3931
3932 type MotionNotifyEvent struct {
3933 Sequence uint16
3934 Detail byte
3935 Time Timestamp
3936 Root Window
3937 Event Window
3938 Child Window
3939 RootX int16
3940 RootY int16
3941 EventX int16
3942 EventY int16
3943 State uint16
3944 SameScreen bool
3945
3946 }
3947
3948
3949 func MotionNotifyEventNew(buf []byte) xgb.Event {
3950 v := MotionNotifyEvent{}
3951 b := 1
3952
3953 v.Detail = buf[b]
3954 b += 1
3955
3956 v.Sequence = xgb.Get16(buf[b:])
3957 b += 2
3958
3959 v.Time = Timestamp(xgb.Get32(buf[b:]))
3960 b += 4
3961
3962 v.Root = Window(xgb.Get32(buf[b:]))
3963 b += 4
3964
3965 v.Event = Window(xgb.Get32(buf[b:]))
3966 b += 4
3967
3968 v.Child = Window(xgb.Get32(buf[b:]))
3969 b += 4
3970
3971 v.RootX = int16(xgb.Get16(buf[b:]))
3972 b += 2
3973
3974 v.RootY = int16(xgb.Get16(buf[b:]))
3975 b += 2
3976
3977 v.EventX = int16(xgb.Get16(buf[b:]))
3978 b += 2
3979
3980 v.EventY = int16(xgb.Get16(buf[b:]))
3981 b += 2
3982
3983 v.State = xgb.Get16(buf[b:])
3984 b += 2
3985
3986 if buf[b] == 1 {
3987 v.SameScreen = true
3988 } else {
3989 v.SameScreen = false
3990 }
3991 b += 1
3992
3993 b += 1
3994
3995 return v
3996 }
3997
3998
3999 func (v MotionNotifyEvent) Bytes() []byte {
4000 buf := make([]byte, 32)
4001 b := 0
4002
4003
4004 buf[b] = 6
4005 b += 1
4006
4007 buf[b] = v.Detail
4008 b += 1
4009
4010 b += 2
4011
4012 xgb.Put32(buf[b:], uint32(v.Time))
4013 b += 4
4014
4015 xgb.Put32(buf[b:], uint32(v.Root))
4016 b += 4
4017
4018 xgb.Put32(buf[b:], uint32(v.Event))
4019 b += 4
4020
4021 xgb.Put32(buf[b:], uint32(v.Child))
4022 b += 4
4023
4024 xgb.Put16(buf[b:], uint16(v.RootX))
4025 b += 2
4026
4027 xgb.Put16(buf[b:], uint16(v.RootY))
4028 b += 2
4029
4030 xgb.Put16(buf[b:], uint16(v.EventX))
4031 b += 2
4032
4033 xgb.Put16(buf[b:], uint16(v.EventY))
4034 b += 2
4035
4036 xgb.Put16(buf[b:], v.State)
4037 b += 2
4038
4039 if v.SameScreen {
4040 buf[b] = 1
4041 } else {
4042 buf[b] = 0
4043 }
4044 b += 1
4045
4046 b += 1
4047
4048 return buf
4049 }
4050
4051
4052
4053
4054 func (v MotionNotifyEvent) SequenceId() uint16 {
4055 return v.Sequence
4056 }
4057
4058
4059 func (v MotionNotifyEvent) String() string {
4060 fieldVals := make([]string, 0, 12)
4061 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
4062 fieldVals = append(fieldVals, xgb.Sprintf("Detail: %d", v.Detail))
4063 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
4064 fieldVals = append(fieldVals, xgb.Sprintf("Root: %d", v.Root))
4065 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
4066 fieldVals = append(fieldVals, xgb.Sprintf("Child: %d", v.Child))
4067 fieldVals = append(fieldVals, xgb.Sprintf("RootX: %d", v.RootX))
4068 fieldVals = append(fieldVals, xgb.Sprintf("RootY: %d", v.RootY))
4069 fieldVals = append(fieldVals, xgb.Sprintf("EventX: %d", v.EventX))
4070 fieldVals = append(fieldVals, xgb.Sprintf("EventY: %d", v.EventY))
4071 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
4072 fieldVals = append(fieldVals, xgb.Sprintf("SameScreen: %t", v.SameScreen))
4073 return "MotionNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4074 }
4075
4076 func init() {
4077 xgb.NewEventFuncs[6] = MotionNotifyEventNew
4078 }
4079
4080
4081 const BadName = 15
4082
4083 type NameError RequestError
4084
4085
4086 func NameErrorNew(buf []byte) xgb.Error {
4087 v := NameError(RequestErrorNew(buf).(RequestError))
4088 v.NiceName = "Name"
4089 return v
4090 }
4091
4092
4093
4094 func (err NameError) SequenceId() uint16 {
4095 return err.Sequence
4096 }
4097
4098
4099 func (err NameError) BadId() uint32 {
4100 return err.BadValue
4101 }
4102
4103
4104 func (err NameError) Error() string {
4105 fieldVals := make([]string, 0, 4)
4106 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
4107 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
4108 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
4109 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
4110 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
4111 return "BadName {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4112 }
4113
4114 func init() {
4115 xgb.NewErrorFuncs[15] = NameErrorNew
4116 }
4117
4118
4119 const NoExposure = 14
4120
4121 type NoExposureEvent struct {
4122 Sequence uint16
4123
4124 Drawable Drawable
4125 MinorOpcode uint16
4126 MajorOpcode byte
4127
4128 }
4129
4130
4131 func NoExposureEventNew(buf []byte) xgb.Event {
4132 v := NoExposureEvent{}
4133 b := 1
4134
4135 b += 1
4136
4137 v.Sequence = xgb.Get16(buf[b:])
4138 b += 2
4139
4140 v.Drawable = Drawable(xgb.Get32(buf[b:]))
4141 b += 4
4142
4143 v.MinorOpcode = xgb.Get16(buf[b:])
4144 b += 2
4145
4146 v.MajorOpcode = buf[b]
4147 b += 1
4148
4149 b += 1
4150
4151 return v
4152 }
4153
4154
4155 func (v NoExposureEvent) Bytes() []byte {
4156 buf := make([]byte, 32)
4157 b := 0
4158
4159
4160 buf[b] = 14
4161 b += 1
4162
4163 b += 1
4164
4165 b += 2
4166
4167 xgb.Put32(buf[b:], uint32(v.Drawable))
4168 b += 4
4169
4170 xgb.Put16(buf[b:], v.MinorOpcode)
4171 b += 2
4172
4173 buf[b] = v.MajorOpcode
4174 b += 1
4175
4176 b += 1
4177
4178 return buf
4179 }
4180
4181
4182
4183
4184 func (v NoExposureEvent) SequenceId() uint16 {
4185 return v.Sequence
4186 }
4187
4188
4189 func (v NoExposureEvent) String() string {
4190 fieldVals := make([]string, 0, 5)
4191 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
4192 fieldVals = append(fieldVals, xgb.Sprintf("Drawable: %d", v.Drawable))
4193 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", v.MinorOpcode))
4194 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", v.MajorOpcode))
4195 return "NoExposure {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4196 }
4197
4198 func init() {
4199 xgb.NewEventFuncs[14] = NoExposureEventNew
4200 }
4201
4202 const (
4203 NotifyDetailAncestor = 0
4204 NotifyDetailVirtual = 1
4205 NotifyDetailInferior = 2
4206 NotifyDetailNonlinear = 3
4207 NotifyDetailNonlinearVirtual = 4
4208 NotifyDetailPointer = 5
4209 NotifyDetailPointerRoot = 6
4210 NotifyDetailNone = 7
4211 )
4212
4213 const (
4214 NotifyModeNormal = 0
4215 NotifyModeGrab = 1
4216 NotifyModeUngrab = 2
4217 NotifyModeWhileGrabbed = 3
4218 )
4219
4220 type Pixmap uint32
4221
4222 func NewPixmapId(c *xgb.Conn) (Pixmap, error) {
4223 id, err := c.NewId()
4224 if err != nil {
4225 return 0, err
4226 }
4227 return Pixmap(id), nil
4228 }
4229
4230 const (
4231 PixmapNone = 0
4232 )
4233
4234
4235 const BadPixmap = 4
4236
4237 type PixmapError ValueError
4238
4239
4240 func PixmapErrorNew(buf []byte) xgb.Error {
4241 v := PixmapError(ValueErrorNew(buf).(ValueError))
4242 v.NiceName = "Pixmap"
4243 return v
4244 }
4245
4246
4247
4248 func (err PixmapError) SequenceId() uint16 {
4249 return err.Sequence
4250 }
4251
4252
4253 func (err PixmapError) BadId() uint32 {
4254 return err.BadValue
4255 }
4256
4257
4258 func (err PixmapError) Error() string {
4259 fieldVals := make([]string, 0, 4)
4260 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
4261 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
4262 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
4263 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
4264 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
4265 return "BadPixmap {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4266 }
4267
4268 func init() {
4269 xgb.NewErrorFuncs[4] = PixmapErrorNew
4270 }
4271
4272 const (
4273 PlaceOnTop = 0
4274 PlaceOnBottom = 1
4275 )
4276
4277 type Point struct {
4278 X int16
4279 Y int16
4280 }
4281
4282
4283 func PointRead(buf []byte, v *Point) int {
4284 b := 0
4285
4286 v.X = int16(xgb.Get16(buf[b:]))
4287 b += 2
4288
4289 v.Y = int16(xgb.Get16(buf[b:]))
4290 b += 2
4291
4292 return b
4293 }
4294
4295
4296 func PointReadList(buf []byte, dest []Point) int {
4297 b := 0
4298 for i := 0; i < len(dest); i++ {
4299 dest[i] = Point{}
4300 b += PointRead(buf[b:], &dest[i])
4301 }
4302 return xgb.Pad(b)
4303 }
4304
4305
4306 func (v Point) Bytes() []byte {
4307 buf := make([]byte, 4)
4308 b := 0
4309
4310 xgb.Put16(buf[b:], uint16(v.X))
4311 b += 2
4312
4313 xgb.Put16(buf[b:], uint16(v.Y))
4314 b += 2
4315
4316 return buf[:b]
4317 }
4318
4319
4320 func PointListBytes(buf []byte, list []Point) int {
4321 b := 0
4322 var structBytes []byte
4323 for _, item := range list {
4324 structBytes = item.Bytes()
4325 copy(buf[b:], structBytes)
4326 b += len(structBytes)
4327 }
4328 return xgb.Pad(b)
4329 }
4330
4331 const (
4332 PolyShapeComplex = 0
4333 PolyShapeNonconvex = 1
4334 PolyShapeConvex = 2
4335 )
4336
4337 const (
4338 PropModeReplace = 0
4339 PropModePrepend = 1
4340 PropModeAppend = 2
4341 )
4342
4343 const (
4344 PropertyNewValue = 0
4345 PropertyDelete = 1
4346 )
4347
4348
4349 const PropertyNotify = 28
4350
4351 type PropertyNotifyEvent struct {
4352 Sequence uint16
4353
4354 Window Window
4355 Atom Atom
4356 Time Timestamp
4357 State byte
4358
4359 }
4360
4361
4362 func PropertyNotifyEventNew(buf []byte) xgb.Event {
4363 v := PropertyNotifyEvent{}
4364 b := 1
4365
4366 b += 1
4367
4368 v.Sequence = xgb.Get16(buf[b:])
4369 b += 2
4370
4371 v.Window = Window(xgb.Get32(buf[b:]))
4372 b += 4
4373
4374 v.Atom = Atom(xgb.Get32(buf[b:]))
4375 b += 4
4376
4377 v.Time = Timestamp(xgb.Get32(buf[b:]))
4378 b += 4
4379
4380 v.State = buf[b]
4381 b += 1
4382
4383 b += 3
4384
4385 return v
4386 }
4387
4388
4389 func (v PropertyNotifyEvent) Bytes() []byte {
4390 buf := make([]byte, 32)
4391 b := 0
4392
4393
4394 buf[b] = 28
4395 b += 1
4396
4397 b += 1
4398
4399 b += 2
4400
4401 xgb.Put32(buf[b:], uint32(v.Window))
4402 b += 4
4403
4404 xgb.Put32(buf[b:], uint32(v.Atom))
4405 b += 4
4406
4407 xgb.Put32(buf[b:], uint32(v.Time))
4408 b += 4
4409
4410 buf[b] = v.State
4411 b += 1
4412
4413 b += 3
4414
4415 return buf
4416 }
4417
4418
4419
4420
4421 func (v PropertyNotifyEvent) SequenceId() uint16 {
4422 return v.Sequence
4423 }
4424
4425
4426 func (v PropertyNotifyEvent) String() string {
4427 fieldVals := make([]string, 0, 6)
4428 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
4429 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
4430 fieldVals = append(fieldVals, xgb.Sprintf("Atom: %d", v.Atom))
4431 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
4432 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
4433 return "PropertyNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4434 }
4435
4436 func init() {
4437 xgb.NewEventFuncs[28] = PropertyNotifyEventNew
4438 }
4439
4440 const (
4441 QueryShapeOfLargestCursor = 0
4442 QueryShapeOfFastestTile = 1
4443 QueryShapeOfFastestStipple = 2
4444 )
4445
4446 type Rectangle struct {
4447 X int16
4448 Y int16
4449 Width uint16
4450 Height uint16
4451 }
4452
4453
4454 func RectangleRead(buf []byte, v *Rectangle) int {
4455 b := 0
4456
4457 v.X = int16(xgb.Get16(buf[b:]))
4458 b += 2
4459
4460 v.Y = int16(xgb.Get16(buf[b:]))
4461 b += 2
4462
4463 v.Width = xgb.Get16(buf[b:])
4464 b += 2
4465
4466 v.Height = xgb.Get16(buf[b:])
4467 b += 2
4468
4469 return b
4470 }
4471
4472
4473 func RectangleReadList(buf []byte, dest []Rectangle) int {
4474 b := 0
4475 for i := 0; i < len(dest); i++ {
4476 dest[i] = Rectangle{}
4477 b += RectangleRead(buf[b:], &dest[i])
4478 }
4479 return xgb.Pad(b)
4480 }
4481
4482
4483 func (v Rectangle) Bytes() []byte {
4484 buf := make([]byte, 8)
4485 b := 0
4486
4487 xgb.Put16(buf[b:], uint16(v.X))
4488 b += 2
4489
4490 xgb.Put16(buf[b:], uint16(v.Y))
4491 b += 2
4492
4493 xgb.Put16(buf[b:], v.Width)
4494 b += 2
4495
4496 xgb.Put16(buf[b:], v.Height)
4497 b += 2
4498
4499 return buf[:b]
4500 }
4501
4502
4503 func RectangleListBytes(buf []byte, list []Rectangle) int {
4504 b := 0
4505 var structBytes []byte
4506 for _, item := range list {
4507 structBytes = item.Bytes()
4508 copy(buf[b:], structBytes)
4509 b += len(structBytes)
4510 }
4511 return xgb.Pad(b)
4512 }
4513
4514
4515 const ReparentNotify = 21
4516
4517 type ReparentNotifyEvent struct {
4518 Sequence uint16
4519
4520 Event Window
4521 Window Window
4522 Parent Window
4523 X int16
4524 Y int16
4525 OverrideRedirect bool
4526
4527 }
4528
4529
4530 func ReparentNotifyEventNew(buf []byte) xgb.Event {
4531 v := ReparentNotifyEvent{}
4532 b := 1
4533
4534 b += 1
4535
4536 v.Sequence = xgb.Get16(buf[b:])
4537 b += 2
4538
4539 v.Event = Window(xgb.Get32(buf[b:]))
4540 b += 4
4541
4542 v.Window = Window(xgb.Get32(buf[b:]))
4543 b += 4
4544
4545 v.Parent = Window(xgb.Get32(buf[b:]))
4546 b += 4
4547
4548 v.X = int16(xgb.Get16(buf[b:]))
4549 b += 2
4550
4551 v.Y = int16(xgb.Get16(buf[b:]))
4552 b += 2
4553
4554 if buf[b] == 1 {
4555 v.OverrideRedirect = true
4556 } else {
4557 v.OverrideRedirect = false
4558 }
4559 b += 1
4560
4561 b += 3
4562
4563 return v
4564 }
4565
4566
4567 func (v ReparentNotifyEvent) Bytes() []byte {
4568 buf := make([]byte, 32)
4569 b := 0
4570
4571
4572 buf[b] = 21
4573 b += 1
4574
4575 b += 1
4576
4577 b += 2
4578
4579 xgb.Put32(buf[b:], uint32(v.Event))
4580 b += 4
4581
4582 xgb.Put32(buf[b:], uint32(v.Window))
4583 b += 4
4584
4585 xgb.Put32(buf[b:], uint32(v.Parent))
4586 b += 4
4587
4588 xgb.Put16(buf[b:], uint16(v.X))
4589 b += 2
4590
4591 xgb.Put16(buf[b:], uint16(v.Y))
4592 b += 2
4593
4594 if v.OverrideRedirect {
4595 buf[b] = 1
4596 } else {
4597 buf[b] = 0
4598 }
4599 b += 1
4600
4601 b += 3
4602
4603 return buf
4604 }
4605
4606
4607
4608
4609 func (v ReparentNotifyEvent) SequenceId() uint16 {
4610 return v.Sequence
4611 }
4612
4613
4614 func (v ReparentNotifyEvent) String() string {
4615 fieldVals := make([]string, 0, 8)
4616 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
4617 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
4618 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
4619 fieldVals = append(fieldVals, xgb.Sprintf("Parent: %d", v.Parent))
4620 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
4621 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
4622 fieldVals = append(fieldVals, xgb.Sprintf("OverrideRedirect: %t", v.OverrideRedirect))
4623 return "ReparentNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4624 }
4625
4626 func init() {
4627 xgb.NewEventFuncs[21] = ReparentNotifyEventNew
4628 }
4629
4630
4631 const BadRequest = 1
4632
4633 type RequestError struct {
4634 Sequence uint16
4635 NiceName string
4636 BadValue uint32
4637 MinorOpcode uint16
4638 MajorOpcode byte
4639
4640 }
4641
4642
4643 func RequestErrorNew(buf []byte) xgb.Error {
4644 v := RequestError{}
4645 v.NiceName = "Request"
4646
4647 b := 1
4648 b += 1
4649
4650 v.Sequence = xgb.Get16(buf[b:])
4651 b += 2
4652
4653 v.BadValue = xgb.Get32(buf[b:])
4654 b += 4
4655
4656 v.MinorOpcode = xgb.Get16(buf[b:])
4657 b += 2
4658
4659 v.MajorOpcode = buf[b]
4660 b += 1
4661
4662 b += 1
4663
4664 return v
4665 }
4666
4667
4668
4669 func (err RequestError) SequenceId() uint16 {
4670 return err.Sequence
4671 }
4672
4673
4674 func (err RequestError) BadId() uint32 {
4675 return err.BadValue
4676 }
4677
4678
4679
4680 func (err RequestError) Error() string {
4681 fieldVals := make([]string, 0, 4)
4682 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
4683 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
4684 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
4685 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
4686 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
4687 return "BadRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4688 }
4689
4690 func init() {
4691 xgb.NewErrorFuncs[1] = RequestErrorNew
4692 }
4693
4694
4695 const ResizeRequest = 25
4696
4697 type ResizeRequestEvent struct {
4698 Sequence uint16
4699
4700 Window Window
4701 Width uint16
4702 Height uint16
4703 }
4704
4705
4706 func ResizeRequestEventNew(buf []byte) xgb.Event {
4707 v := ResizeRequestEvent{}
4708 b := 1
4709
4710 b += 1
4711
4712 v.Sequence = xgb.Get16(buf[b:])
4713 b += 2
4714
4715 v.Window = Window(xgb.Get32(buf[b:]))
4716 b += 4
4717
4718 v.Width = xgb.Get16(buf[b:])
4719 b += 2
4720
4721 v.Height = xgb.Get16(buf[b:])
4722 b += 2
4723
4724 return v
4725 }
4726
4727
4728 func (v ResizeRequestEvent) Bytes() []byte {
4729 buf := make([]byte, 32)
4730 b := 0
4731
4732
4733 buf[b] = 25
4734 b += 1
4735
4736 b += 1
4737
4738 b += 2
4739
4740 xgb.Put32(buf[b:], uint32(v.Window))
4741 b += 4
4742
4743 xgb.Put16(buf[b:], v.Width)
4744 b += 2
4745
4746 xgb.Put16(buf[b:], v.Height)
4747 b += 2
4748
4749 return buf
4750 }
4751
4752
4753
4754
4755 func (v ResizeRequestEvent) SequenceId() uint16 {
4756 return v.Sequence
4757 }
4758
4759
4760 func (v ResizeRequestEvent) String() string {
4761 fieldVals := make([]string, 0, 4)
4762 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
4763 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
4764 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
4765 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
4766 return "ResizeRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
4767 }
4768
4769 func init() {
4770 xgb.NewEventFuncs[25] = ResizeRequestEventNew
4771 }
4772
4773 type Rgb struct {
4774 Red uint16
4775 Green uint16
4776 Blue uint16
4777
4778 }
4779
4780
4781 func RgbRead(buf []byte, v *Rgb) int {
4782 b := 0
4783
4784 v.Red = xgb.Get16(buf[b:])
4785 b += 2
4786
4787 v.Green = xgb.Get16(buf[b:])
4788 b += 2
4789
4790 v.Blue = xgb.Get16(buf[b:])
4791 b += 2
4792
4793 b += 2
4794
4795 return b
4796 }
4797
4798
4799 func RgbReadList(buf []byte, dest []Rgb) int {
4800 b := 0
4801 for i := 0; i < len(dest); i++ {
4802 dest[i] = Rgb{}
4803 b += RgbRead(buf[b:], &dest[i])
4804 }
4805 return xgb.Pad(b)
4806 }
4807
4808
4809 func (v Rgb) Bytes() []byte {
4810 buf := make([]byte, 8)
4811 b := 0
4812
4813 xgb.Put16(buf[b:], v.Red)
4814 b += 2
4815
4816 xgb.Put16(buf[b:], v.Green)
4817 b += 2
4818
4819 xgb.Put16(buf[b:], v.Blue)
4820 b += 2
4821
4822 b += 2
4823
4824 return buf[:b]
4825 }
4826
4827
4828 func RgbListBytes(buf []byte, list []Rgb) int {
4829 b := 0
4830 var structBytes []byte
4831 for _, item := range list {
4832 structBytes = item.Bytes()
4833 copy(buf[b:], structBytes)
4834 b += len(structBytes)
4835 }
4836 return xgb.Pad(b)
4837 }
4838
4839 type ScreenInfo struct {
4840 Root Window
4841 DefaultColormap Colormap
4842 WhitePixel uint32
4843 BlackPixel uint32
4844 CurrentInputMasks uint32
4845 WidthInPixels uint16
4846 HeightInPixels uint16
4847 WidthInMillimeters uint16
4848 HeightInMillimeters uint16
4849 MinInstalledMaps uint16
4850 MaxInstalledMaps uint16
4851 RootVisual Visualid
4852 BackingStores byte
4853 SaveUnders bool
4854 RootDepth byte
4855 AllowedDepthsLen byte
4856 AllowedDepths []DepthInfo
4857 }
4858
4859
4860 func ScreenInfoRead(buf []byte, v *ScreenInfo) int {
4861 b := 0
4862
4863 v.Root = Window(xgb.Get32(buf[b:]))
4864 b += 4
4865
4866 v.DefaultColormap = Colormap(xgb.Get32(buf[b:]))
4867 b += 4
4868
4869 v.WhitePixel = xgb.Get32(buf[b:])
4870 b += 4
4871
4872 v.BlackPixel = xgb.Get32(buf[b:])
4873 b += 4
4874
4875 v.CurrentInputMasks = xgb.Get32(buf[b:])
4876 b += 4
4877
4878 v.WidthInPixels = xgb.Get16(buf[b:])
4879 b += 2
4880
4881 v.HeightInPixels = xgb.Get16(buf[b:])
4882 b += 2
4883
4884 v.WidthInMillimeters = xgb.Get16(buf[b:])
4885 b += 2
4886
4887 v.HeightInMillimeters = xgb.Get16(buf[b:])
4888 b += 2
4889
4890 v.MinInstalledMaps = xgb.Get16(buf[b:])
4891 b += 2
4892
4893 v.MaxInstalledMaps = xgb.Get16(buf[b:])
4894 b += 2
4895
4896 v.RootVisual = Visualid(xgb.Get32(buf[b:]))
4897 b += 4
4898
4899 v.BackingStores = buf[b]
4900 b += 1
4901
4902 if buf[b] == 1 {
4903 v.SaveUnders = true
4904 } else {
4905 v.SaveUnders = false
4906 }
4907 b += 1
4908
4909 v.RootDepth = buf[b]
4910 b += 1
4911
4912 v.AllowedDepthsLen = buf[b]
4913 b += 1
4914
4915 v.AllowedDepths = make([]DepthInfo, v.AllowedDepthsLen)
4916 b += DepthInfoReadList(buf[b:], v.AllowedDepths)
4917
4918 return b
4919 }
4920
4921
4922 func ScreenInfoReadList(buf []byte, dest []ScreenInfo) int {
4923 b := 0
4924 for i := 0; i < len(dest); i++ {
4925 dest[i] = ScreenInfo{}
4926 b += ScreenInfoRead(buf[b:], &dest[i])
4927 }
4928 return xgb.Pad(b)
4929 }
4930
4931
4932 func (v ScreenInfo) Bytes() []byte {
4933 buf := make([]byte, (40 + DepthInfoListSize(v.AllowedDepths)))
4934 b := 0
4935
4936 xgb.Put32(buf[b:], uint32(v.Root))
4937 b += 4
4938
4939 xgb.Put32(buf[b:], uint32(v.DefaultColormap))
4940 b += 4
4941
4942 xgb.Put32(buf[b:], v.WhitePixel)
4943 b += 4
4944
4945 xgb.Put32(buf[b:], v.BlackPixel)
4946 b += 4
4947
4948 xgb.Put32(buf[b:], v.CurrentInputMasks)
4949 b += 4
4950
4951 xgb.Put16(buf[b:], v.WidthInPixels)
4952 b += 2
4953
4954 xgb.Put16(buf[b:], v.HeightInPixels)
4955 b += 2
4956
4957 xgb.Put16(buf[b:], v.WidthInMillimeters)
4958 b += 2
4959
4960 xgb.Put16(buf[b:], v.HeightInMillimeters)
4961 b += 2
4962
4963 xgb.Put16(buf[b:], v.MinInstalledMaps)
4964 b += 2
4965
4966 xgb.Put16(buf[b:], v.MaxInstalledMaps)
4967 b += 2
4968
4969 xgb.Put32(buf[b:], uint32(v.RootVisual))
4970 b += 4
4971
4972 buf[b] = v.BackingStores
4973 b += 1
4974
4975 if v.SaveUnders {
4976 buf[b] = 1
4977 } else {
4978 buf[b] = 0
4979 }
4980 b += 1
4981
4982 buf[b] = v.RootDepth
4983 b += 1
4984
4985 buf[b] = v.AllowedDepthsLen
4986 b += 1
4987
4988 b += DepthInfoListBytes(buf[b:], v.AllowedDepths)
4989
4990 return buf[:b]
4991 }
4992
4993
4994 func ScreenInfoListBytes(buf []byte, list []ScreenInfo) int {
4995 b := 0
4996 var structBytes []byte
4997 for _, item := range list {
4998 structBytes = item.Bytes()
4999 copy(buf[b:], structBytes)
5000 b += len(structBytes)
5001 }
5002 return xgb.Pad(b)
5003 }
5004
5005
5006 func ScreenInfoListSize(list []ScreenInfo) int {
5007 size := 0
5008 for _, item := range list {
5009 size += (40 + DepthInfoListSize(item.AllowedDepths))
5010 }
5011 return size
5012 }
5013
5014 const (
5015 ScreenSaverReset = 0
5016 ScreenSaverActive = 1
5017 )
5018
5019 type Segment struct {
5020 X1 int16
5021 Y1 int16
5022 X2 int16
5023 Y2 int16
5024 }
5025
5026
5027 func SegmentRead(buf []byte, v *Segment) int {
5028 b := 0
5029
5030 v.X1 = int16(xgb.Get16(buf[b:]))
5031 b += 2
5032
5033 v.Y1 = int16(xgb.Get16(buf[b:]))
5034 b += 2
5035
5036 v.X2 = int16(xgb.Get16(buf[b:]))
5037 b += 2
5038
5039 v.Y2 = int16(xgb.Get16(buf[b:]))
5040 b += 2
5041
5042 return b
5043 }
5044
5045
5046 func SegmentReadList(buf []byte, dest []Segment) int {
5047 b := 0
5048 for i := 0; i < len(dest); i++ {
5049 dest[i] = Segment{}
5050 b += SegmentRead(buf[b:], &dest[i])
5051 }
5052 return xgb.Pad(b)
5053 }
5054
5055
5056 func (v Segment) Bytes() []byte {
5057 buf := make([]byte, 8)
5058 b := 0
5059
5060 xgb.Put16(buf[b:], uint16(v.X1))
5061 b += 2
5062
5063 xgb.Put16(buf[b:], uint16(v.Y1))
5064 b += 2
5065
5066 xgb.Put16(buf[b:], uint16(v.X2))
5067 b += 2
5068
5069 xgb.Put16(buf[b:], uint16(v.Y2))
5070 b += 2
5071
5072 return buf[:b]
5073 }
5074
5075
5076 func SegmentListBytes(buf []byte, list []Segment) int {
5077 b := 0
5078 var structBytes []byte
5079 for _, item := range list {
5080 structBytes = item.Bytes()
5081 copy(buf[b:], structBytes)
5082 b += len(structBytes)
5083 }
5084 return xgb.Pad(b)
5085 }
5086
5087
5088 const SelectionClear = 29
5089
5090 type SelectionClearEvent struct {
5091 Sequence uint16
5092
5093 Time Timestamp
5094 Owner Window
5095 Selection Atom
5096 }
5097
5098
5099 func SelectionClearEventNew(buf []byte) xgb.Event {
5100 v := SelectionClearEvent{}
5101 b := 1
5102
5103 b += 1
5104
5105 v.Sequence = xgb.Get16(buf[b:])
5106 b += 2
5107
5108 v.Time = Timestamp(xgb.Get32(buf[b:]))
5109 b += 4
5110
5111 v.Owner = Window(xgb.Get32(buf[b:]))
5112 b += 4
5113
5114 v.Selection = Atom(xgb.Get32(buf[b:]))
5115 b += 4
5116
5117 return v
5118 }
5119
5120
5121 func (v SelectionClearEvent) Bytes() []byte {
5122 buf := make([]byte, 32)
5123 b := 0
5124
5125
5126 buf[b] = 29
5127 b += 1
5128
5129 b += 1
5130
5131 b += 2
5132
5133 xgb.Put32(buf[b:], uint32(v.Time))
5134 b += 4
5135
5136 xgb.Put32(buf[b:], uint32(v.Owner))
5137 b += 4
5138
5139 xgb.Put32(buf[b:], uint32(v.Selection))
5140 b += 4
5141
5142 return buf
5143 }
5144
5145
5146
5147
5148 func (v SelectionClearEvent) SequenceId() uint16 {
5149 return v.Sequence
5150 }
5151
5152
5153 func (v SelectionClearEvent) String() string {
5154 fieldVals := make([]string, 0, 4)
5155 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
5156 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
5157 fieldVals = append(fieldVals, xgb.Sprintf("Owner: %d", v.Owner))
5158 fieldVals = append(fieldVals, xgb.Sprintf("Selection: %d", v.Selection))
5159 return "SelectionClear {" + xgb.StringsJoin(fieldVals, ", ") + "}"
5160 }
5161
5162 func init() {
5163 xgb.NewEventFuncs[29] = SelectionClearEventNew
5164 }
5165
5166
5167 const SelectionNotify = 31
5168
5169 type SelectionNotifyEvent struct {
5170 Sequence uint16
5171
5172 Time Timestamp
5173 Requestor Window
5174 Selection Atom
5175 Target Atom
5176 Property Atom
5177 }
5178
5179
5180 func SelectionNotifyEventNew(buf []byte) xgb.Event {
5181 v := SelectionNotifyEvent{}
5182 b := 1
5183
5184 b += 1
5185
5186 v.Sequence = xgb.Get16(buf[b:])
5187 b += 2
5188
5189 v.Time = Timestamp(xgb.Get32(buf[b:]))
5190 b += 4
5191
5192 v.Requestor = Window(xgb.Get32(buf[b:]))
5193 b += 4
5194
5195 v.Selection = Atom(xgb.Get32(buf[b:]))
5196 b += 4
5197
5198 v.Target = Atom(xgb.Get32(buf[b:]))
5199 b += 4
5200
5201 v.Property = Atom(xgb.Get32(buf[b:]))
5202 b += 4
5203
5204 return v
5205 }
5206
5207
5208 func (v SelectionNotifyEvent) Bytes() []byte {
5209 buf := make([]byte, 32)
5210 b := 0
5211
5212
5213 buf[b] = 31
5214 b += 1
5215
5216 b += 1
5217
5218 b += 2
5219
5220 xgb.Put32(buf[b:], uint32(v.Time))
5221 b += 4
5222
5223 xgb.Put32(buf[b:], uint32(v.Requestor))
5224 b += 4
5225
5226 xgb.Put32(buf[b:], uint32(v.Selection))
5227 b += 4
5228
5229 xgb.Put32(buf[b:], uint32(v.Target))
5230 b += 4
5231
5232 xgb.Put32(buf[b:], uint32(v.Property))
5233 b += 4
5234
5235 return buf
5236 }
5237
5238
5239
5240
5241 func (v SelectionNotifyEvent) SequenceId() uint16 {
5242 return v.Sequence
5243 }
5244
5245
5246 func (v SelectionNotifyEvent) String() string {
5247 fieldVals := make([]string, 0, 6)
5248 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
5249 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
5250 fieldVals = append(fieldVals, xgb.Sprintf("Requestor: %d", v.Requestor))
5251 fieldVals = append(fieldVals, xgb.Sprintf("Selection: %d", v.Selection))
5252 fieldVals = append(fieldVals, xgb.Sprintf("Target: %d", v.Target))
5253 fieldVals = append(fieldVals, xgb.Sprintf("Property: %d", v.Property))
5254 return "SelectionNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
5255 }
5256
5257 func init() {
5258 xgb.NewEventFuncs[31] = SelectionNotifyEventNew
5259 }
5260
5261
5262 const SelectionRequest = 30
5263
5264 type SelectionRequestEvent struct {
5265 Sequence uint16
5266
5267 Time Timestamp
5268 Owner Window
5269 Requestor Window
5270 Selection Atom
5271 Target Atom
5272 Property Atom
5273 }
5274
5275
5276 func SelectionRequestEventNew(buf []byte) xgb.Event {
5277 v := SelectionRequestEvent{}
5278 b := 1
5279
5280 b += 1
5281
5282 v.Sequence = xgb.Get16(buf[b:])
5283 b += 2
5284
5285 v.Time = Timestamp(xgb.Get32(buf[b:]))
5286 b += 4
5287
5288 v.Owner = Window(xgb.Get32(buf[b:]))
5289 b += 4
5290
5291 v.Requestor = Window(xgb.Get32(buf[b:]))
5292 b += 4
5293
5294 v.Selection = Atom(xgb.Get32(buf[b:]))
5295 b += 4
5296
5297 v.Target = Atom(xgb.Get32(buf[b:]))
5298 b += 4
5299
5300 v.Property = Atom(xgb.Get32(buf[b:]))
5301 b += 4
5302
5303 return v
5304 }
5305
5306
5307 func (v SelectionRequestEvent) Bytes() []byte {
5308 buf := make([]byte, 32)
5309 b := 0
5310
5311
5312 buf[b] = 30
5313 b += 1
5314
5315 b += 1
5316
5317 b += 2
5318
5319 xgb.Put32(buf[b:], uint32(v.Time))
5320 b += 4
5321
5322 xgb.Put32(buf[b:], uint32(v.Owner))
5323 b += 4
5324
5325 xgb.Put32(buf[b:], uint32(v.Requestor))
5326 b += 4
5327
5328 xgb.Put32(buf[b:], uint32(v.Selection))
5329 b += 4
5330
5331 xgb.Put32(buf[b:], uint32(v.Target))
5332 b += 4
5333
5334 xgb.Put32(buf[b:], uint32(v.Property))
5335 b += 4
5336
5337 return buf
5338 }
5339
5340
5341
5342
5343 func (v SelectionRequestEvent) SequenceId() uint16 {
5344 return v.Sequence
5345 }
5346
5347
5348 func (v SelectionRequestEvent) String() string {
5349 fieldVals := make([]string, 0, 7)
5350 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
5351 fieldVals = append(fieldVals, xgb.Sprintf("Time: %d", v.Time))
5352 fieldVals = append(fieldVals, xgb.Sprintf("Owner: %d", v.Owner))
5353 fieldVals = append(fieldVals, xgb.Sprintf("Requestor: %d", v.Requestor))
5354 fieldVals = append(fieldVals, xgb.Sprintf("Selection: %d", v.Selection))
5355 fieldVals = append(fieldVals, xgb.Sprintf("Target: %d", v.Target))
5356 fieldVals = append(fieldVals, xgb.Sprintf("Property: %d", v.Property))
5357 return "SelectionRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
5358 }
5359
5360 func init() {
5361 xgb.NewEventFuncs[30] = SelectionRequestEventNew
5362 }
5363
5364 const (
5365 SendEventDestPointerWindow = 0
5366 SendEventDestItemFocus = 1
5367 )
5368
5369 const (
5370 SetModeInsert = 0
5371 SetModeDelete = 1
5372 )
5373
5374 type SetupAuthenticate struct {
5375 Status byte
5376
5377 Length uint16
5378 Reason string
5379 }
5380
5381
5382 func SetupAuthenticateRead(buf []byte, v *SetupAuthenticate) int {
5383 b := 0
5384
5385 v.Status = buf[b]
5386 b += 1
5387
5388 b += 5
5389
5390 v.Length = xgb.Get16(buf[b:])
5391 b += 2
5392
5393 {
5394 byteString := make([]byte, (int(v.Length) * 4))
5395 copy(byteString[:(int(v.Length)*4)], buf[b:])
5396 v.Reason = string(byteString)
5397 b += int((int(v.Length) * 4))
5398 }
5399
5400 return b
5401 }
5402
5403
5404 func SetupAuthenticateReadList(buf []byte, dest []SetupAuthenticate) int {
5405 b := 0
5406 for i := 0; i < len(dest); i++ {
5407 dest[i] = SetupAuthenticate{}
5408 b += SetupAuthenticateRead(buf[b:], &dest[i])
5409 }
5410 return xgb.Pad(b)
5411 }
5412
5413
5414 func (v SetupAuthenticate) Bytes() []byte {
5415 buf := make([]byte, (8 + xgb.Pad(((int(v.Length) * 4) * 1))))
5416 b := 0
5417
5418 buf[b] = v.Status
5419 b += 1
5420
5421 b += 5
5422
5423 xgb.Put16(buf[b:], v.Length)
5424 b += 2
5425
5426 copy(buf[b:], v.Reason[:(int(v.Length)*4)])
5427 b += int((int(v.Length) * 4))
5428
5429 return buf[:b]
5430 }
5431
5432
5433 func SetupAuthenticateListBytes(buf []byte, list []SetupAuthenticate) int {
5434 b := 0
5435 var structBytes []byte
5436 for _, item := range list {
5437 structBytes = item.Bytes()
5438 copy(buf[b:], structBytes)
5439 b += len(structBytes)
5440 }
5441 return xgb.Pad(b)
5442 }
5443
5444
5445 func SetupAuthenticateListSize(list []SetupAuthenticate) int {
5446 size := 0
5447 for _, item := range list {
5448 size += (8 + xgb.Pad(((int(item.Length) * 4) * 1)))
5449 }
5450 return size
5451 }
5452
5453 type SetupFailed struct {
5454 Status byte
5455 ReasonLen byte
5456 ProtocolMajorVersion uint16
5457 ProtocolMinorVersion uint16
5458 Length uint16
5459 Reason string
5460 }
5461
5462
5463 func SetupFailedRead(buf []byte, v *SetupFailed) int {
5464 b := 0
5465
5466 v.Status = buf[b]
5467 b += 1
5468
5469 v.ReasonLen = buf[b]
5470 b += 1
5471
5472 v.ProtocolMajorVersion = xgb.Get16(buf[b:])
5473 b += 2
5474
5475 v.ProtocolMinorVersion = xgb.Get16(buf[b:])
5476 b += 2
5477
5478 v.Length = xgb.Get16(buf[b:])
5479 b += 2
5480
5481 {
5482 byteString := make([]byte, v.ReasonLen)
5483 copy(byteString[:v.ReasonLen], buf[b:])
5484 v.Reason = string(byteString)
5485 b += int(v.ReasonLen)
5486 }
5487
5488 return b
5489 }
5490
5491
5492 func SetupFailedReadList(buf []byte, dest []SetupFailed) int {
5493 b := 0
5494 for i := 0; i < len(dest); i++ {
5495 dest[i] = SetupFailed{}
5496 b += SetupFailedRead(buf[b:], &dest[i])
5497 }
5498 return xgb.Pad(b)
5499 }
5500
5501
5502 func (v SetupFailed) Bytes() []byte {
5503 buf := make([]byte, (8 + xgb.Pad((int(v.ReasonLen) * 1))))
5504 b := 0
5505
5506 buf[b] = v.Status
5507 b += 1
5508
5509 buf[b] = v.ReasonLen
5510 b += 1
5511
5512 xgb.Put16(buf[b:], v.ProtocolMajorVersion)
5513 b += 2
5514
5515 xgb.Put16(buf[b:], v.ProtocolMinorVersion)
5516 b += 2
5517
5518 xgb.Put16(buf[b:], v.Length)
5519 b += 2
5520
5521 copy(buf[b:], v.Reason[:v.ReasonLen])
5522 b += int(v.ReasonLen)
5523
5524 return buf[:b]
5525 }
5526
5527
5528 func SetupFailedListBytes(buf []byte, list []SetupFailed) int {
5529 b := 0
5530 var structBytes []byte
5531 for _, item := range list {
5532 structBytes = item.Bytes()
5533 copy(buf[b:], structBytes)
5534 b += len(structBytes)
5535 }
5536 return xgb.Pad(b)
5537 }
5538
5539
5540 func SetupFailedListSize(list []SetupFailed) int {
5541 size := 0
5542 for _, item := range list {
5543 size += (8 + xgb.Pad((int(item.ReasonLen) * 1)))
5544 }
5545 return size
5546 }
5547
5548 type SetupInfo struct {
5549 Status byte
5550
5551 ProtocolMajorVersion uint16
5552 ProtocolMinorVersion uint16
5553 Length uint16
5554 ReleaseNumber uint32
5555 ResourceIdBase uint32
5556 ResourceIdMask uint32
5557 MotionBufferSize uint32
5558 VendorLen uint16
5559 MaximumRequestLength uint16
5560 RootsLen byte
5561 PixmapFormatsLen byte
5562 ImageByteOrder byte
5563 BitmapFormatBitOrder byte
5564 BitmapFormatScanlineUnit byte
5565 BitmapFormatScanlinePad byte
5566 MinKeycode Keycode
5567 MaxKeycode Keycode
5568
5569 Vendor string
5570
5571 PixmapFormats []Format
5572
5573 Roots []ScreenInfo
5574 }
5575
5576
5577 func SetupInfoRead(buf []byte, v *SetupInfo) int {
5578 b := 0
5579
5580 v.Status = buf[b]
5581 b += 1
5582
5583 b += 1
5584
5585 v.ProtocolMajorVersion = xgb.Get16(buf[b:])
5586 b += 2
5587
5588 v.ProtocolMinorVersion = xgb.Get16(buf[b:])
5589 b += 2
5590
5591 v.Length = xgb.Get16(buf[b:])
5592 b += 2
5593
5594 v.ReleaseNumber = xgb.Get32(buf[b:])
5595 b += 4
5596
5597 v.ResourceIdBase = xgb.Get32(buf[b:])
5598 b += 4
5599
5600 v.ResourceIdMask = xgb.Get32(buf[b:])
5601 b += 4
5602
5603 v.MotionBufferSize = xgb.Get32(buf[b:])
5604 b += 4
5605
5606 v.VendorLen = xgb.Get16(buf[b:])
5607 b += 2
5608
5609 v.MaximumRequestLength = xgb.Get16(buf[b:])
5610 b += 2
5611
5612 v.RootsLen = buf[b]
5613 b += 1
5614
5615 v.PixmapFormatsLen = buf[b]
5616 b += 1
5617
5618 v.ImageByteOrder = buf[b]
5619 b += 1
5620
5621 v.BitmapFormatBitOrder = buf[b]
5622 b += 1
5623
5624 v.BitmapFormatScanlineUnit = buf[b]
5625 b += 1
5626
5627 v.BitmapFormatScanlinePad = buf[b]
5628 b += 1
5629
5630 v.MinKeycode = Keycode(buf[b])
5631 b += 1
5632
5633 v.MaxKeycode = Keycode(buf[b])
5634 b += 1
5635
5636 b += 4
5637
5638 {
5639 byteString := make([]byte, v.VendorLen)
5640 copy(byteString[:v.VendorLen], buf[b:])
5641 v.Vendor = string(byteString)
5642 b += int(v.VendorLen)
5643 }
5644
5645 b = (b + 3) & ^3
5646
5647 v.PixmapFormats = make([]Format, v.PixmapFormatsLen)
5648 b += FormatReadList(buf[b:], v.PixmapFormats)
5649
5650 b = (b + 3) & ^3
5651
5652 v.Roots = make([]ScreenInfo, v.RootsLen)
5653 b += ScreenInfoReadList(buf[b:], v.Roots)
5654
5655 return b
5656 }
5657
5658
5659 func SetupInfoReadList(buf []byte, dest []SetupInfo) int {
5660 b := 0
5661 for i := 0; i < len(dest); i++ {
5662 dest[i] = SetupInfo{}
5663 b += SetupInfoRead(buf[b:], &dest[i])
5664 }
5665 return xgb.Pad(b)
5666 }
5667
5668
5669 func (v SetupInfo) Bytes() []byte {
5670 buf := make([]byte, (((((40 + xgb.Pad((int(v.VendorLen) * 1))) + 4) + xgb.Pad((int(v.PixmapFormatsLen) * 8))) + 4) + ScreenInfoListSize(v.Roots)))
5671 b := 0
5672
5673 buf[b] = v.Status
5674 b += 1
5675
5676 b += 1
5677
5678 xgb.Put16(buf[b:], v.ProtocolMajorVersion)
5679 b += 2
5680
5681 xgb.Put16(buf[b:], v.ProtocolMinorVersion)
5682 b += 2
5683
5684 xgb.Put16(buf[b:], v.Length)
5685 b += 2
5686
5687 xgb.Put32(buf[b:], v.ReleaseNumber)
5688 b += 4
5689
5690 xgb.Put32(buf[b:], v.ResourceIdBase)
5691 b += 4
5692
5693 xgb.Put32(buf[b:], v.ResourceIdMask)
5694 b += 4
5695
5696 xgb.Put32(buf[b:], v.MotionBufferSize)
5697 b += 4
5698
5699 xgb.Put16(buf[b:], v.VendorLen)
5700 b += 2
5701
5702 xgb.Put16(buf[b:], v.MaximumRequestLength)
5703 b += 2
5704
5705 buf[b] = v.RootsLen
5706 b += 1
5707
5708 buf[b] = v.PixmapFormatsLen
5709 b += 1
5710
5711 buf[b] = v.ImageByteOrder
5712 b += 1
5713
5714 buf[b] = v.BitmapFormatBitOrder
5715 b += 1
5716
5717 buf[b] = v.BitmapFormatScanlineUnit
5718 b += 1
5719
5720 buf[b] = v.BitmapFormatScanlinePad
5721 b += 1
5722
5723 buf[b] = byte(v.MinKeycode)
5724 b += 1
5725
5726 buf[b] = byte(v.MaxKeycode)
5727 b += 1
5728
5729 b += 4
5730
5731 copy(buf[b:], v.Vendor[:v.VendorLen])
5732 b += int(v.VendorLen)
5733
5734 b = (b + 3) & ^3
5735
5736 b += FormatListBytes(buf[b:], v.PixmapFormats)
5737
5738 b = (b + 3) & ^3
5739
5740 b += ScreenInfoListBytes(buf[b:], v.Roots)
5741
5742 return buf[:b]
5743 }
5744
5745
5746 func SetupInfoListBytes(buf []byte, list []SetupInfo) int {
5747 b := 0
5748 var structBytes []byte
5749 for _, item := range list {
5750 structBytes = item.Bytes()
5751 copy(buf[b:], structBytes)
5752 b += len(structBytes)
5753 }
5754 return xgb.Pad(b)
5755 }
5756
5757
5758 func SetupInfoListSize(list []SetupInfo) int {
5759 size := 0
5760 for _, item := range list {
5761 size += (((((40 + xgb.Pad((int(item.VendorLen) * 1))) + 4) + xgb.Pad((int(item.PixmapFormatsLen) * 8))) + 4) + ScreenInfoListSize(item.Roots))
5762 }
5763 return size
5764 }
5765
5766 type SetupRequest struct {
5767 ByteOrder byte
5768
5769 ProtocolMajorVersion uint16
5770 ProtocolMinorVersion uint16
5771 AuthorizationProtocolNameLen uint16
5772 AuthorizationProtocolDataLen uint16
5773
5774 AuthorizationProtocolName string
5775 AuthorizationProtocolData string
5776 }
5777
5778
5779 func SetupRequestRead(buf []byte, v *SetupRequest) int {
5780 b := 0
5781
5782 v.ByteOrder = buf[b]
5783 b += 1
5784
5785 b += 1
5786
5787 v.ProtocolMajorVersion = xgb.Get16(buf[b:])
5788 b += 2
5789
5790 v.ProtocolMinorVersion = xgb.Get16(buf[b:])
5791 b += 2
5792
5793 v.AuthorizationProtocolNameLen = xgb.Get16(buf[b:])
5794 b += 2
5795
5796 v.AuthorizationProtocolDataLen = xgb.Get16(buf[b:])
5797 b += 2
5798
5799 b += 2
5800
5801 {
5802 byteString := make([]byte, v.AuthorizationProtocolNameLen)
5803 copy(byteString[:v.AuthorizationProtocolNameLen], buf[b:])
5804 v.AuthorizationProtocolName = string(byteString)
5805 b += int(v.AuthorizationProtocolNameLen)
5806 }
5807
5808 {
5809 byteString := make([]byte, v.AuthorizationProtocolDataLen)
5810 copy(byteString[:v.AuthorizationProtocolDataLen], buf[b:])
5811 v.AuthorizationProtocolData = string(byteString)
5812 b += int(v.AuthorizationProtocolDataLen)
5813 }
5814
5815 return b
5816 }
5817
5818
5819 func SetupRequestReadList(buf []byte, dest []SetupRequest) int {
5820 b := 0
5821 for i := 0; i < len(dest); i++ {
5822 dest[i] = SetupRequest{}
5823 b += SetupRequestRead(buf[b:], &dest[i])
5824 }
5825 return xgb.Pad(b)
5826 }
5827
5828
5829 func (v SetupRequest) Bytes() []byte {
5830 buf := make([]byte, ((12 + xgb.Pad((int(v.AuthorizationProtocolNameLen) * 1))) + xgb.Pad((int(v.AuthorizationProtocolDataLen) * 1))))
5831 b := 0
5832
5833 buf[b] = v.ByteOrder
5834 b += 1
5835
5836 b += 1
5837
5838 xgb.Put16(buf[b:], v.ProtocolMajorVersion)
5839 b += 2
5840
5841 xgb.Put16(buf[b:], v.ProtocolMinorVersion)
5842 b += 2
5843
5844 xgb.Put16(buf[b:], v.AuthorizationProtocolNameLen)
5845 b += 2
5846
5847 xgb.Put16(buf[b:], v.AuthorizationProtocolDataLen)
5848 b += 2
5849
5850 b += 2
5851
5852 copy(buf[b:], v.AuthorizationProtocolName[:v.AuthorizationProtocolNameLen])
5853 b += int(v.AuthorizationProtocolNameLen)
5854
5855 copy(buf[b:], v.AuthorizationProtocolData[:v.AuthorizationProtocolDataLen])
5856 b += int(v.AuthorizationProtocolDataLen)
5857
5858 return buf[:b]
5859 }
5860
5861
5862 func SetupRequestListBytes(buf []byte, list []SetupRequest) int {
5863 b := 0
5864 var structBytes []byte
5865 for _, item := range list {
5866 structBytes = item.Bytes()
5867 copy(buf[b:], structBytes)
5868 b += len(structBytes)
5869 }
5870 return xgb.Pad(b)
5871 }
5872
5873
5874 func SetupRequestListSize(list []SetupRequest) int {
5875 size := 0
5876 for _, item := range list {
5877 size += ((12 + xgb.Pad((int(item.AuthorizationProtocolNameLen) * 1))) + xgb.Pad((int(item.AuthorizationProtocolDataLen) * 1)))
5878 }
5879 return size
5880 }
5881
5882 const (
5883 StackModeAbove = 0
5884 StackModeBelow = 1
5885 StackModeTopIf = 2
5886 StackModeBottomIf = 3
5887 StackModeOpposite = 4
5888 )
5889
5890 type Str struct {
5891 NameLen byte
5892 Name string
5893 }
5894
5895
5896 func StrRead(buf []byte, v *Str) int {
5897 b := 0
5898
5899 v.NameLen = buf[b]
5900 b += 1
5901
5902 {
5903 byteString := make([]byte, v.NameLen)
5904 copy(byteString[:v.NameLen], buf[b:])
5905 v.Name = string(byteString)
5906 b += int(v.NameLen)
5907 }
5908
5909 return b
5910 }
5911
5912
5913 func StrReadList(buf []byte, dest []Str) int {
5914 b := 0
5915 for i := 0; i < len(dest); i++ {
5916 dest[i] = Str{}
5917 b += StrRead(buf[b:], &dest[i])
5918 }
5919 return xgb.Pad(b)
5920 }
5921
5922
5923 func (v Str) Bytes() []byte {
5924 buf := make([]byte, (1 + xgb.Pad((int(v.NameLen) * 1))))
5925 b := 0
5926
5927 buf[b] = v.NameLen
5928 b += 1
5929
5930 copy(buf[b:], v.Name[:v.NameLen])
5931 b += int(v.NameLen)
5932
5933 return buf[:b]
5934 }
5935
5936
5937 func StrListBytes(buf []byte, list []Str) int {
5938 b := 0
5939 var structBytes []byte
5940 for _, item := range list {
5941 structBytes = item.Bytes()
5942 copy(buf[b:], structBytes)
5943 b += len(structBytes)
5944 }
5945 return xgb.Pad(b)
5946 }
5947
5948
5949 func StrListSize(list []Str) int {
5950 size := 0
5951 for _, item := range list {
5952 size += (1 + xgb.Pad((int(item.NameLen) * 1)))
5953 }
5954 return size
5955 }
5956
5957 const (
5958 SubwindowModeClipByChildren = 0
5959 SubwindowModeIncludeInferiors = 1
5960 )
5961
5962 const (
5963 TimeCurrentTime = 0
5964 )
5965
5966 type Timecoord struct {
5967 Time Timestamp
5968 X int16
5969 Y int16
5970 }
5971
5972
5973 func TimecoordRead(buf []byte, v *Timecoord) int {
5974 b := 0
5975
5976 v.Time = Timestamp(xgb.Get32(buf[b:]))
5977 b += 4
5978
5979 v.X = int16(xgb.Get16(buf[b:]))
5980 b += 2
5981
5982 v.Y = int16(xgb.Get16(buf[b:]))
5983 b += 2
5984
5985 return b
5986 }
5987
5988
5989 func TimecoordReadList(buf []byte, dest []Timecoord) int {
5990 b := 0
5991 for i := 0; i < len(dest); i++ {
5992 dest[i] = Timecoord{}
5993 b += TimecoordRead(buf[b:], &dest[i])
5994 }
5995 return xgb.Pad(b)
5996 }
5997
5998
5999 func (v Timecoord) Bytes() []byte {
6000 buf := make([]byte, 8)
6001 b := 0
6002
6003 xgb.Put32(buf[b:], uint32(v.Time))
6004 b += 4
6005
6006 xgb.Put16(buf[b:], uint16(v.X))
6007 b += 2
6008
6009 xgb.Put16(buf[b:], uint16(v.Y))
6010 b += 2
6011
6012 return buf[:b]
6013 }
6014
6015
6016 func TimecoordListBytes(buf []byte, list []Timecoord) int {
6017 b := 0
6018 var structBytes []byte
6019 for _, item := range list {
6020 structBytes = item.Bytes()
6021 copy(buf[b:], structBytes)
6022 b += len(structBytes)
6023 }
6024 return xgb.Pad(b)
6025 }
6026
6027 type Timestamp uint32
6028
6029
6030 const UnmapNotify = 18
6031
6032 type UnmapNotifyEvent struct {
6033 Sequence uint16
6034
6035 Event Window
6036 Window Window
6037 FromConfigure bool
6038
6039 }
6040
6041
6042 func UnmapNotifyEventNew(buf []byte) xgb.Event {
6043 v := UnmapNotifyEvent{}
6044 b := 1
6045
6046 b += 1
6047
6048 v.Sequence = xgb.Get16(buf[b:])
6049 b += 2
6050
6051 v.Event = Window(xgb.Get32(buf[b:]))
6052 b += 4
6053
6054 v.Window = Window(xgb.Get32(buf[b:]))
6055 b += 4
6056
6057 if buf[b] == 1 {
6058 v.FromConfigure = true
6059 } else {
6060 v.FromConfigure = false
6061 }
6062 b += 1
6063
6064 b += 3
6065
6066 return v
6067 }
6068
6069
6070 func (v UnmapNotifyEvent) Bytes() []byte {
6071 buf := make([]byte, 32)
6072 b := 0
6073
6074
6075 buf[b] = 18
6076 b += 1
6077
6078 b += 1
6079
6080 b += 2
6081
6082 xgb.Put32(buf[b:], uint32(v.Event))
6083 b += 4
6084
6085 xgb.Put32(buf[b:], uint32(v.Window))
6086 b += 4
6087
6088 if v.FromConfigure {
6089 buf[b] = 1
6090 } else {
6091 buf[b] = 0
6092 }
6093 b += 1
6094
6095 b += 3
6096
6097 return buf
6098 }
6099
6100
6101
6102
6103 func (v UnmapNotifyEvent) SequenceId() uint16 {
6104 return v.Sequence
6105 }
6106
6107
6108 func (v UnmapNotifyEvent) String() string {
6109 fieldVals := make([]string, 0, 5)
6110 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
6111 fieldVals = append(fieldVals, xgb.Sprintf("Event: %d", v.Event))
6112 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
6113 fieldVals = append(fieldVals, xgb.Sprintf("FromConfigure: %t", v.FromConfigure))
6114 return "UnmapNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
6115 }
6116
6117 func init() {
6118 xgb.NewEventFuncs[18] = UnmapNotifyEventNew
6119 }
6120
6121
6122 const BadValue = 2
6123
6124 type ValueError struct {
6125 Sequence uint16
6126 NiceName string
6127 BadValue uint32
6128 MinorOpcode uint16
6129 MajorOpcode byte
6130
6131 }
6132
6133
6134 func ValueErrorNew(buf []byte) xgb.Error {
6135 v := ValueError{}
6136 v.NiceName = "Value"
6137
6138 b := 1
6139 b += 1
6140
6141 v.Sequence = xgb.Get16(buf[b:])
6142 b += 2
6143
6144 v.BadValue = xgb.Get32(buf[b:])
6145 b += 4
6146
6147 v.MinorOpcode = xgb.Get16(buf[b:])
6148 b += 2
6149
6150 v.MajorOpcode = buf[b]
6151 b += 1
6152
6153 b += 1
6154
6155 return v
6156 }
6157
6158
6159
6160 func (err ValueError) SequenceId() uint16 {
6161 return err.Sequence
6162 }
6163
6164
6165 func (err ValueError) BadId() uint32 {
6166 return err.BadValue
6167 }
6168
6169
6170
6171 func (err ValueError) Error() string {
6172 fieldVals := make([]string, 0, 4)
6173 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
6174 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
6175 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
6176 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
6177 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
6178 return "BadValue {" + xgb.StringsJoin(fieldVals, ", ") + "}"
6179 }
6180
6181 func init() {
6182 xgb.NewErrorFuncs[2] = ValueErrorNew
6183 }
6184
6185 const (
6186 VisibilityUnobscured = 0
6187 VisibilityPartiallyObscured = 1
6188 VisibilityFullyObscured = 2
6189 )
6190
6191
6192 const VisibilityNotify = 15
6193
6194 type VisibilityNotifyEvent struct {
6195 Sequence uint16
6196
6197 Window Window
6198 State byte
6199
6200 }
6201
6202
6203 func VisibilityNotifyEventNew(buf []byte) xgb.Event {
6204 v := VisibilityNotifyEvent{}
6205 b := 1
6206
6207 b += 1
6208
6209 v.Sequence = xgb.Get16(buf[b:])
6210 b += 2
6211
6212 v.Window = Window(xgb.Get32(buf[b:]))
6213 b += 4
6214
6215 v.State = buf[b]
6216 b += 1
6217
6218 b += 3
6219
6220 return v
6221 }
6222
6223
6224 func (v VisibilityNotifyEvent) Bytes() []byte {
6225 buf := make([]byte, 32)
6226 b := 0
6227
6228
6229 buf[b] = 15
6230 b += 1
6231
6232 b += 1
6233
6234 b += 2
6235
6236 xgb.Put32(buf[b:], uint32(v.Window))
6237 b += 4
6238
6239 buf[b] = v.State
6240 b += 1
6241
6242 b += 3
6243
6244 return buf
6245 }
6246
6247
6248
6249
6250 func (v VisibilityNotifyEvent) SequenceId() uint16 {
6251 return v.Sequence
6252 }
6253
6254
6255 func (v VisibilityNotifyEvent) String() string {
6256 fieldVals := make([]string, 0, 4)
6257 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
6258 fieldVals = append(fieldVals, xgb.Sprintf("Window: %d", v.Window))
6259 fieldVals = append(fieldVals, xgb.Sprintf("State: %d", v.State))
6260 return "VisibilityNotify {" + xgb.StringsJoin(fieldVals, ", ") + "}"
6261 }
6262
6263 func init() {
6264 xgb.NewEventFuncs[15] = VisibilityNotifyEventNew
6265 }
6266
6267 const (
6268 VisualClassStaticGray = 0
6269 VisualClassGrayScale = 1
6270 VisualClassStaticColor = 2
6271 VisualClassPseudoColor = 3
6272 VisualClassTrueColor = 4
6273 VisualClassDirectColor = 5
6274 )
6275
6276 type VisualInfo struct {
6277 VisualId Visualid
6278 Class byte
6279 BitsPerRgbValue byte
6280 ColormapEntries uint16
6281 RedMask uint32
6282 GreenMask uint32
6283 BlueMask uint32
6284
6285 }
6286
6287
6288 func VisualInfoRead(buf []byte, v *VisualInfo) int {
6289 b := 0
6290
6291 v.VisualId = Visualid(xgb.Get32(buf[b:]))
6292 b += 4
6293
6294 v.Class = buf[b]
6295 b += 1
6296
6297 v.BitsPerRgbValue = buf[b]
6298 b += 1
6299
6300 v.ColormapEntries = xgb.Get16(buf[b:])
6301 b += 2
6302
6303 v.RedMask = xgb.Get32(buf[b:])
6304 b += 4
6305
6306 v.GreenMask = xgb.Get32(buf[b:])
6307 b += 4
6308
6309 v.BlueMask = xgb.Get32(buf[b:])
6310 b += 4
6311
6312 b += 4
6313
6314 return b
6315 }
6316
6317
6318 func VisualInfoReadList(buf []byte, dest []VisualInfo) int {
6319 b := 0
6320 for i := 0; i < len(dest); i++ {
6321 dest[i] = VisualInfo{}
6322 b += VisualInfoRead(buf[b:], &dest[i])
6323 }
6324 return xgb.Pad(b)
6325 }
6326
6327
6328 func (v VisualInfo) Bytes() []byte {
6329 buf := make([]byte, 24)
6330 b := 0
6331
6332 xgb.Put32(buf[b:], uint32(v.VisualId))
6333 b += 4
6334
6335 buf[b] = v.Class
6336 b += 1
6337
6338 buf[b] = v.BitsPerRgbValue
6339 b += 1
6340
6341 xgb.Put16(buf[b:], v.ColormapEntries)
6342 b += 2
6343
6344 xgb.Put32(buf[b:], v.RedMask)
6345 b += 4
6346
6347 xgb.Put32(buf[b:], v.GreenMask)
6348 b += 4
6349
6350 xgb.Put32(buf[b:], v.BlueMask)
6351 b += 4
6352
6353 b += 4
6354
6355 return buf[:b]
6356 }
6357
6358
6359 func VisualInfoListBytes(buf []byte, list []VisualInfo) int {
6360 b := 0
6361 var structBytes []byte
6362 for _, item := range list {
6363 structBytes = item.Bytes()
6364 copy(buf[b:], structBytes)
6365 b += len(structBytes)
6366 }
6367 return xgb.Pad(b)
6368 }
6369
6370 type Visualid uint32
6371
6372 type Window uint32
6373
6374 func NewWindowId(c *xgb.Conn) (Window, error) {
6375 id, err := c.NewId()
6376 if err != nil {
6377 return 0, err
6378 }
6379 return Window(id), nil
6380 }
6381
6382
6383 const BadWindow = 3
6384
6385 type WindowError ValueError
6386
6387
6388 func WindowErrorNew(buf []byte) xgb.Error {
6389 v := WindowError(ValueErrorNew(buf).(ValueError))
6390 v.NiceName = "Window"
6391 return v
6392 }
6393
6394
6395
6396 func (err WindowError) SequenceId() uint16 {
6397 return err.Sequence
6398 }
6399
6400
6401 func (err WindowError) BadId() uint32 {
6402 return err.BadValue
6403 }
6404
6405
6406 func (err WindowError) Error() string {
6407 fieldVals := make([]string, 0, 4)
6408 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
6409 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
6410 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
6411 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
6412 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
6413 return "BadWindow {" + xgb.StringsJoin(fieldVals, ", ") + "}"
6414 }
6415
6416 func init() {
6417 xgb.NewErrorFuncs[3] = WindowErrorNew
6418 }
6419
6420 const (
6421 WindowNone = 0
6422 )
6423
6424 const (
6425 WindowClassCopyFromParent = 0
6426 WindowClassInputOutput = 1
6427 WindowClassInputOnly = 2
6428 )
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455 type AllocColorCookie struct {
6456 *xgb.Cookie
6457 }
6458
6459
6460
6461 func AllocColor(c *xgb.Conn, Cmap Colormap, Red uint16, Green uint16, Blue uint16) AllocColorCookie {
6462 cookie := c.NewCookie(true, true)
6463 c.NewRequest(allocColorRequest(c, Cmap, Red, Green, Blue), cookie)
6464 return AllocColorCookie{cookie}
6465 }
6466
6467
6468
6469 func AllocColorUnchecked(c *xgb.Conn, Cmap Colormap, Red uint16, Green uint16, Blue uint16) AllocColorCookie {
6470 cookie := c.NewCookie(false, true)
6471 c.NewRequest(allocColorRequest(c, Cmap, Red, Green, Blue), cookie)
6472 return AllocColorCookie{cookie}
6473 }
6474
6475
6476 type AllocColorReply struct {
6477 Sequence uint16
6478 Length uint32
6479
6480 Red uint16
6481 Green uint16
6482 Blue uint16
6483
6484 Pixel uint32
6485 }
6486
6487
6488 func (cook AllocColorCookie) Reply() (*AllocColorReply, error) {
6489 buf, err := cook.Cookie.Reply()
6490 if err != nil {
6491 return nil, err
6492 }
6493 if buf == nil {
6494 return nil, nil
6495 }
6496 return allocColorReply(buf), nil
6497 }
6498
6499
6500 func allocColorReply(buf []byte) *AllocColorReply {
6501 v := new(AllocColorReply)
6502 b := 1
6503
6504 b += 1
6505
6506 v.Sequence = xgb.Get16(buf[b:])
6507 b += 2
6508
6509 v.Length = xgb.Get32(buf[b:])
6510 b += 4
6511
6512 v.Red = xgb.Get16(buf[b:])
6513 b += 2
6514
6515 v.Green = xgb.Get16(buf[b:])
6516 b += 2
6517
6518 v.Blue = xgb.Get16(buf[b:])
6519 b += 2
6520
6521 b += 2
6522
6523 v.Pixel = xgb.Get32(buf[b:])
6524 b += 4
6525
6526 return v
6527 }
6528
6529
6530
6531 func allocColorRequest(c *xgb.Conn, Cmap Colormap, Red uint16, Green uint16, Blue uint16) []byte {
6532 size := 16
6533 b := 0
6534 buf := make([]byte, size)
6535
6536 buf[b] = 84
6537 b += 1
6538
6539 b += 1
6540
6541 xgb.Put16(buf[b:], uint16(size/4))
6542 b += 2
6543
6544 xgb.Put32(buf[b:], uint32(Cmap))
6545 b += 4
6546
6547 xgb.Put16(buf[b:], Red)
6548 b += 2
6549
6550 xgb.Put16(buf[b:], Green)
6551 b += 2
6552
6553 xgb.Put16(buf[b:], Blue)
6554 b += 2
6555
6556 b += 2
6557
6558 return buf
6559 }
6560
6561
6562 type AllocColorCellsCookie struct {
6563 *xgb.Cookie
6564 }
6565
6566
6567
6568 func AllocColorCells(c *xgb.Conn, Contiguous bool, Cmap Colormap, Colors uint16, Planes uint16) AllocColorCellsCookie {
6569 cookie := c.NewCookie(true, true)
6570 c.NewRequest(allocColorCellsRequest(c, Contiguous, Cmap, Colors, Planes), cookie)
6571 return AllocColorCellsCookie{cookie}
6572 }
6573
6574
6575
6576 func AllocColorCellsUnchecked(c *xgb.Conn, Contiguous bool, Cmap Colormap, Colors uint16, Planes uint16) AllocColorCellsCookie {
6577 cookie := c.NewCookie(false, true)
6578 c.NewRequest(allocColorCellsRequest(c, Contiguous, Cmap, Colors, Planes), cookie)
6579 return AllocColorCellsCookie{cookie}
6580 }
6581
6582
6583 type AllocColorCellsReply struct {
6584 Sequence uint16
6585 Length uint32
6586
6587 PixelsLen uint16
6588 MasksLen uint16
6589
6590 Pixels []uint32
6591
6592 Masks []uint32
6593 }
6594
6595
6596 func (cook AllocColorCellsCookie) Reply() (*AllocColorCellsReply, error) {
6597 buf, err := cook.Cookie.Reply()
6598 if err != nil {
6599 return nil, err
6600 }
6601 if buf == nil {
6602 return nil, nil
6603 }
6604 return allocColorCellsReply(buf), nil
6605 }
6606
6607
6608 func allocColorCellsReply(buf []byte) *AllocColorCellsReply {
6609 v := new(AllocColorCellsReply)
6610 b := 1
6611
6612 b += 1
6613
6614 v.Sequence = xgb.Get16(buf[b:])
6615 b += 2
6616
6617 v.Length = xgb.Get32(buf[b:])
6618 b += 4
6619
6620 v.PixelsLen = xgb.Get16(buf[b:])
6621 b += 2
6622
6623 v.MasksLen = xgb.Get16(buf[b:])
6624 b += 2
6625
6626 b += 20
6627
6628 v.Pixels = make([]uint32, v.PixelsLen)
6629 for i := 0; i < int(v.PixelsLen); i++ {
6630 v.Pixels[i] = xgb.Get32(buf[b:])
6631 b += 4
6632 }
6633
6634 b = (b + 3) & ^3
6635
6636 v.Masks = make([]uint32, v.MasksLen)
6637 for i := 0; i < int(v.MasksLen); i++ {
6638 v.Masks[i] = xgb.Get32(buf[b:])
6639 b += 4
6640 }
6641
6642 return v
6643 }
6644
6645
6646
6647 func allocColorCellsRequest(c *xgb.Conn, Contiguous bool, Cmap Colormap, Colors uint16, Planes uint16) []byte {
6648 size := 12
6649 b := 0
6650 buf := make([]byte, size)
6651
6652 buf[b] = 86
6653 b += 1
6654
6655 if Contiguous {
6656 buf[b] = 1
6657 } else {
6658 buf[b] = 0
6659 }
6660 b += 1
6661
6662 xgb.Put16(buf[b:], uint16(size/4))
6663 b += 2
6664
6665 xgb.Put32(buf[b:], uint32(Cmap))
6666 b += 4
6667
6668 xgb.Put16(buf[b:], Colors)
6669 b += 2
6670
6671 xgb.Put16(buf[b:], Planes)
6672 b += 2
6673
6674 return buf
6675 }
6676
6677
6678 type AllocColorPlanesCookie struct {
6679 *xgb.Cookie
6680 }
6681
6682
6683
6684 func AllocColorPlanes(c *xgb.Conn, Contiguous bool, Cmap Colormap, Colors uint16, Reds uint16, Greens uint16, Blues uint16) AllocColorPlanesCookie {
6685 cookie := c.NewCookie(true, true)
6686 c.NewRequest(allocColorPlanesRequest(c, Contiguous, Cmap, Colors, Reds, Greens, Blues), cookie)
6687 return AllocColorPlanesCookie{cookie}
6688 }
6689
6690
6691
6692 func AllocColorPlanesUnchecked(c *xgb.Conn, Contiguous bool, Cmap Colormap, Colors uint16, Reds uint16, Greens uint16, Blues uint16) AllocColorPlanesCookie {
6693 cookie := c.NewCookie(false, true)
6694 c.NewRequest(allocColorPlanesRequest(c, Contiguous, Cmap, Colors, Reds, Greens, Blues), cookie)
6695 return AllocColorPlanesCookie{cookie}
6696 }
6697
6698
6699 type AllocColorPlanesReply struct {
6700 Sequence uint16
6701 Length uint32
6702
6703 PixelsLen uint16
6704
6705 RedMask uint32
6706 GreenMask uint32
6707 BlueMask uint32
6708
6709 Pixels []uint32
6710 }
6711
6712
6713 func (cook AllocColorPlanesCookie) Reply() (*AllocColorPlanesReply, error) {
6714 buf, err := cook.Cookie.Reply()
6715 if err != nil {
6716 return nil, err
6717 }
6718 if buf == nil {
6719 return nil, nil
6720 }
6721 return allocColorPlanesReply(buf), nil
6722 }
6723
6724
6725 func allocColorPlanesReply(buf []byte) *AllocColorPlanesReply {
6726 v := new(AllocColorPlanesReply)
6727 b := 1
6728
6729 b += 1
6730
6731 v.Sequence = xgb.Get16(buf[b:])
6732 b += 2
6733
6734 v.Length = xgb.Get32(buf[b:])
6735 b += 4
6736
6737 v.PixelsLen = xgb.Get16(buf[b:])
6738 b += 2
6739
6740 b += 2
6741
6742 v.RedMask = xgb.Get32(buf[b:])
6743 b += 4
6744
6745 v.GreenMask = xgb.Get32(buf[b:])
6746 b += 4
6747
6748 v.BlueMask = xgb.Get32(buf[b:])
6749 b += 4
6750
6751 b += 8
6752
6753 v.Pixels = make([]uint32, v.PixelsLen)
6754 for i := 0; i < int(v.PixelsLen); i++ {
6755 v.Pixels[i] = xgb.Get32(buf[b:])
6756 b += 4
6757 }
6758
6759 return v
6760 }
6761
6762
6763
6764 func allocColorPlanesRequest(c *xgb.Conn, Contiguous bool, Cmap Colormap, Colors uint16, Reds uint16, Greens uint16, Blues uint16) []byte {
6765 size := 16
6766 b := 0
6767 buf := make([]byte, size)
6768
6769 buf[b] = 87
6770 b += 1
6771
6772 if Contiguous {
6773 buf[b] = 1
6774 } else {
6775 buf[b] = 0
6776 }
6777 b += 1
6778
6779 xgb.Put16(buf[b:], uint16(size/4))
6780 b += 2
6781
6782 xgb.Put32(buf[b:], uint32(Cmap))
6783 b += 4
6784
6785 xgb.Put16(buf[b:], Colors)
6786 b += 2
6787
6788 xgb.Put16(buf[b:], Reds)
6789 b += 2
6790
6791 xgb.Put16(buf[b:], Greens)
6792 b += 2
6793
6794 xgb.Put16(buf[b:], Blues)
6795 b += 2
6796
6797 return buf
6798 }
6799
6800
6801 type AllocNamedColorCookie struct {
6802 *xgb.Cookie
6803 }
6804
6805
6806
6807 func AllocNamedColor(c *xgb.Conn, Cmap Colormap, NameLen uint16, Name string) AllocNamedColorCookie {
6808 cookie := c.NewCookie(true, true)
6809 c.NewRequest(allocNamedColorRequest(c, Cmap, NameLen, Name), cookie)
6810 return AllocNamedColorCookie{cookie}
6811 }
6812
6813
6814
6815 func AllocNamedColorUnchecked(c *xgb.Conn, Cmap Colormap, NameLen uint16, Name string) AllocNamedColorCookie {
6816 cookie := c.NewCookie(false, true)
6817 c.NewRequest(allocNamedColorRequest(c, Cmap, NameLen, Name), cookie)
6818 return AllocNamedColorCookie{cookie}
6819 }
6820
6821
6822 type AllocNamedColorReply struct {
6823 Sequence uint16
6824 Length uint32
6825
6826 Pixel uint32
6827 ExactRed uint16
6828 ExactGreen uint16
6829 ExactBlue uint16
6830 VisualRed uint16
6831 VisualGreen uint16
6832 VisualBlue uint16
6833 }
6834
6835
6836 func (cook AllocNamedColorCookie) Reply() (*AllocNamedColorReply, error) {
6837 buf, err := cook.Cookie.Reply()
6838 if err != nil {
6839 return nil, err
6840 }
6841 if buf == nil {
6842 return nil, nil
6843 }
6844 return allocNamedColorReply(buf), nil
6845 }
6846
6847
6848 func allocNamedColorReply(buf []byte) *AllocNamedColorReply {
6849 v := new(AllocNamedColorReply)
6850 b := 1
6851
6852 b += 1
6853
6854 v.Sequence = xgb.Get16(buf[b:])
6855 b += 2
6856
6857 v.Length = xgb.Get32(buf[b:])
6858 b += 4
6859
6860 v.Pixel = xgb.Get32(buf[b:])
6861 b += 4
6862
6863 v.ExactRed = xgb.Get16(buf[b:])
6864 b += 2
6865
6866 v.ExactGreen = xgb.Get16(buf[b:])
6867 b += 2
6868
6869 v.ExactBlue = xgb.Get16(buf[b:])
6870 b += 2
6871
6872 v.VisualRed = xgb.Get16(buf[b:])
6873 b += 2
6874
6875 v.VisualGreen = xgb.Get16(buf[b:])
6876 b += 2
6877
6878 v.VisualBlue = xgb.Get16(buf[b:])
6879 b += 2
6880
6881 return v
6882 }
6883
6884
6885
6886 func allocNamedColorRequest(c *xgb.Conn, Cmap Colormap, NameLen uint16, Name string) []byte {
6887 size := xgb.Pad((12 + xgb.Pad((int(NameLen) * 1))))
6888 b := 0
6889 buf := make([]byte, size)
6890
6891 buf[b] = 85
6892 b += 1
6893
6894 b += 1
6895
6896 xgb.Put16(buf[b:], uint16(size/4))
6897 b += 2
6898
6899 xgb.Put32(buf[b:], uint32(Cmap))
6900 b += 4
6901
6902 xgb.Put16(buf[b:], NameLen)
6903 b += 2
6904
6905 b += 2
6906
6907 copy(buf[b:], Name[:NameLen])
6908 b += int(NameLen)
6909
6910 return buf
6911 }
6912
6913
6914 type AllowEventsCookie struct {
6915 *xgb.Cookie
6916 }
6917
6918
6919
6920 func AllowEvents(c *xgb.Conn, Mode byte, Time Timestamp) AllowEventsCookie {
6921 cookie := c.NewCookie(false, false)
6922 c.NewRequest(allowEventsRequest(c, Mode, Time), cookie)
6923 return AllowEventsCookie{cookie}
6924 }
6925
6926
6927
6928 func AllowEventsChecked(c *xgb.Conn, Mode byte, Time Timestamp) AllowEventsCookie {
6929 cookie := c.NewCookie(true, false)
6930 c.NewRequest(allowEventsRequest(c, Mode, Time), cookie)
6931 return AllowEventsCookie{cookie}
6932 }
6933
6934
6935
6936 func (cook AllowEventsCookie) Check() error {
6937 return cook.Cookie.Check()
6938 }
6939
6940
6941
6942 func allowEventsRequest(c *xgb.Conn, Mode byte, Time Timestamp) []byte {
6943 size := 8
6944 b := 0
6945 buf := make([]byte, size)
6946
6947 buf[b] = 35
6948 b += 1
6949
6950 buf[b] = Mode
6951 b += 1
6952
6953 xgb.Put16(buf[b:], uint16(size/4))
6954 b += 2
6955
6956 xgb.Put32(buf[b:], uint32(Time))
6957 b += 4
6958
6959 return buf
6960 }
6961
6962
6963 type BellCookie struct {
6964 *xgb.Cookie
6965 }
6966
6967
6968
6969 func Bell(c *xgb.Conn, Percent int8) BellCookie {
6970 cookie := c.NewCookie(false, false)
6971 c.NewRequest(bellRequest(c, Percent), cookie)
6972 return BellCookie{cookie}
6973 }
6974
6975
6976
6977 func BellChecked(c *xgb.Conn, Percent int8) BellCookie {
6978 cookie := c.NewCookie(true, false)
6979 c.NewRequest(bellRequest(c, Percent), cookie)
6980 return BellCookie{cookie}
6981 }
6982
6983
6984
6985 func (cook BellCookie) Check() error {
6986 return cook.Cookie.Check()
6987 }
6988
6989
6990
6991 func bellRequest(c *xgb.Conn, Percent int8) []byte {
6992 size := 4
6993 b := 0
6994 buf := make([]byte, size)
6995
6996 buf[b] = 104
6997 b += 1
6998
6999 buf[b] = byte(Percent)
7000 b += 1
7001
7002 xgb.Put16(buf[b:], uint16(size/4))
7003 b += 2
7004
7005 return buf
7006 }
7007
7008
7009 type ChangeActivePointerGrabCookie struct {
7010 *xgb.Cookie
7011 }
7012
7013
7014
7015 func ChangeActivePointerGrab(c *xgb.Conn, Cursor Cursor, Time Timestamp, EventMask uint16) ChangeActivePointerGrabCookie {
7016 cookie := c.NewCookie(false, false)
7017 c.NewRequest(changeActivePointerGrabRequest(c, Cursor, Time, EventMask), cookie)
7018 return ChangeActivePointerGrabCookie{cookie}
7019 }
7020
7021
7022
7023 func ChangeActivePointerGrabChecked(c *xgb.Conn, Cursor Cursor, Time Timestamp, EventMask uint16) ChangeActivePointerGrabCookie {
7024 cookie := c.NewCookie(true, false)
7025 c.NewRequest(changeActivePointerGrabRequest(c, Cursor, Time, EventMask), cookie)
7026 return ChangeActivePointerGrabCookie{cookie}
7027 }
7028
7029
7030
7031 func (cook ChangeActivePointerGrabCookie) Check() error {
7032 return cook.Cookie.Check()
7033 }
7034
7035
7036
7037 func changeActivePointerGrabRequest(c *xgb.Conn, Cursor Cursor, Time Timestamp, EventMask uint16) []byte {
7038 size := 16
7039 b := 0
7040 buf := make([]byte, size)
7041
7042 buf[b] = 30
7043 b += 1
7044
7045 b += 1
7046
7047 xgb.Put16(buf[b:], uint16(size/4))
7048 b += 2
7049
7050 xgb.Put32(buf[b:], uint32(Cursor))
7051 b += 4
7052
7053 xgb.Put32(buf[b:], uint32(Time))
7054 b += 4
7055
7056 xgb.Put16(buf[b:], EventMask)
7057 b += 2
7058
7059 b += 2
7060
7061 return buf
7062 }
7063
7064
7065 type ChangeGCCookie struct {
7066 *xgb.Cookie
7067 }
7068
7069
7070
7071 func ChangeGC(c *xgb.Conn, Gc Gcontext, ValueMask uint32, ValueList []uint32) ChangeGCCookie {
7072 cookie := c.NewCookie(false, false)
7073 c.NewRequest(changeGCRequest(c, Gc, ValueMask, ValueList), cookie)
7074 return ChangeGCCookie{cookie}
7075 }
7076
7077
7078
7079 func ChangeGCChecked(c *xgb.Conn, Gc Gcontext, ValueMask uint32, ValueList []uint32) ChangeGCCookie {
7080 cookie := c.NewCookie(true, false)
7081 c.NewRequest(changeGCRequest(c, Gc, ValueMask, ValueList), cookie)
7082 return ChangeGCCookie{cookie}
7083 }
7084
7085
7086
7087 func (cook ChangeGCCookie) Check() error {
7088 return cook.Cookie.Check()
7089 }
7090
7091
7092
7093 func changeGCRequest(c *xgb.Conn, Gc Gcontext, ValueMask uint32, ValueList []uint32) []byte {
7094 size := xgb.Pad((8 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
7095 b := 0
7096 buf := make([]byte, size)
7097
7098 buf[b] = 56
7099 b += 1
7100
7101 b += 1
7102
7103 xgb.Put16(buf[b:], uint16(size/4))
7104 b += 2
7105
7106 xgb.Put32(buf[b:], uint32(Gc))
7107 b += 4
7108
7109 xgb.Put32(buf[b:], ValueMask)
7110 b += 4
7111 for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
7112 xgb.Put32(buf[b:], ValueList[i])
7113 b += 4
7114 }
7115 b = xgb.Pad(b)
7116
7117 return buf
7118 }
7119
7120
7121 type ChangeHostsCookie struct {
7122 *xgb.Cookie
7123 }
7124
7125
7126
7127 func ChangeHosts(c *xgb.Conn, Mode byte, Family byte, AddressLen uint16, Address []byte) ChangeHostsCookie {
7128 cookie := c.NewCookie(false, false)
7129 c.NewRequest(changeHostsRequest(c, Mode, Family, AddressLen, Address), cookie)
7130 return ChangeHostsCookie{cookie}
7131 }
7132
7133
7134
7135 func ChangeHostsChecked(c *xgb.Conn, Mode byte, Family byte, AddressLen uint16, Address []byte) ChangeHostsCookie {
7136 cookie := c.NewCookie(true, false)
7137 c.NewRequest(changeHostsRequest(c, Mode, Family, AddressLen, Address), cookie)
7138 return ChangeHostsCookie{cookie}
7139 }
7140
7141
7142
7143 func (cook ChangeHostsCookie) Check() error {
7144 return cook.Cookie.Check()
7145 }
7146
7147
7148
7149 func changeHostsRequest(c *xgb.Conn, Mode byte, Family byte, AddressLen uint16, Address []byte) []byte {
7150 size := xgb.Pad((8 + xgb.Pad((int(AddressLen) * 1))))
7151 b := 0
7152 buf := make([]byte, size)
7153
7154 buf[b] = 109
7155 b += 1
7156
7157 buf[b] = Mode
7158 b += 1
7159
7160 xgb.Put16(buf[b:], uint16(size/4))
7161 b += 2
7162
7163 buf[b] = Family
7164 b += 1
7165
7166 b += 1
7167
7168 xgb.Put16(buf[b:], AddressLen)
7169 b += 2
7170
7171 copy(buf[b:], Address[:AddressLen])
7172 b += int(AddressLen)
7173
7174 return buf
7175 }
7176
7177
7178 type ChangeKeyboardControlCookie struct {
7179 *xgb.Cookie
7180 }
7181
7182
7183
7184 func ChangeKeyboardControl(c *xgb.Conn, ValueMask uint32, ValueList []uint32) ChangeKeyboardControlCookie {
7185 cookie := c.NewCookie(false, false)
7186 c.NewRequest(changeKeyboardControlRequest(c, ValueMask, ValueList), cookie)
7187 return ChangeKeyboardControlCookie{cookie}
7188 }
7189
7190
7191
7192 func ChangeKeyboardControlChecked(c *xgb.Conn, ValueMask uint32, ValueList []uint32) ChangeKeyboardControlCookie {
7193 cookie := c.NewCookie(true, false)
7194 c.NewRequest(changeKeyboardControlRequest(c, ValueMask, ValueList), cookie)
7195 return ChangeKeyboardControlCookie{cookie}
7196 }
7197
7198
7199
7200 func (cook ChangeKeyboardControlCookie) Check() error {
7201 return cook.Cookie.Check()
7202 }
7203
7204
7205
7206 func changeKeyboardControlRequest(c *xgb.Conn, ValueMask uint32, ValueList []uint32) []byte {
7207 size := xgb.Pad((4 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
7208 b := 0
7209 buf := make([]byte, size)
7210
7211 buf[b] = 102
7212 b += 1
7213
7214 b += 1
7215
7216 xgb.Put16(buf[b:], uint16(size/4))
7217 b += 2
7218
7219 xgb.Put32(buf[b:], ValueMask)
7220 b += 4
7221 for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
7222 xgb.Put32(buf[b:], ValueList[i])
7223 b += 4
7224 }
7225 b = xgb.Pad(b)
7226
7227 return buf
7228 }
7229
7230
7231 type ChangeKeyboardMappingCookie struct {
7232 *xgb.Cookie
7233 }
7234
7235
7236
7237 func ChangeKeyboardMapping(c *xgb.Conn, KeycodeCount byte, FirstKeycode Keycode, KeysymsPerKeycode byte, Keysyms []Keysym) ChangeKeyboardMappingCookie {
7238 cookie := c.NewCookie(false, false)
7239 c.NewRequest(changeKeyboardMappingRequest(c, KeycodeCount, FirstKeycode, KeysymsPerKeycode, Keysyms), cookie)
7240 return ChangeKeyboardMappingCookie{cookie}
7241 }
7242
7243
7244
7245 func ChangeKeyboardMappingChecked(c *xgb.Conn, KeycodeCount byte, FirstKeycode Keycode, KeysymsPerKeycode byte, Keysyms []Keysym) ChangeKeyboardMappingCookie {
7246 cookie := c.NewCookie(true, false)
7247 c.NewRequest(changeKeyboardMappingRequest(c, KeycodeCount, FirstKeycode, KeysymsPerKeycode, Keysyms), cookie)
7248 return ChangeKeyboardMappingCookie{cookie}
7249 }
7250
7251
7252
7253 func (cook ChangeKeyboardMappingCookie) Check() error {
7254 return cook.Cookie.Check()
7255 }
7256
7257
7258
7259 func changeKeyboardMappingRequest(c *xgb.Conn, KeycodeCount byte, FirstKeycode Keycode, KeysymsPerKeycode byte, Keysyms []Keysym) []byte {
7260 size := xgb.Pad((8 + xgb.Pad(((int(KeycodeCount) * int(KeysymsPerKeycode)) * 4))))
7261 b := 0
7262 buf := make([]byte, size)
7263
7264 buf[b] = 100
7265 b += 1
7266
7267 buf[b] = KeycodeCount
7268 b += 1
7269
7270 xgb.Put16(buf[b:], uint16(size/4))
7271 b += 2
7272
7273 buf[b] = byte(FirstKeycode)
7274 b += 1
7275
7276 buf[b] = KeysymsPerKeycode
7277 b += 1
7278
7279 b += 2
7280
7281 for i := 0; i < int((int(KeycodeCount) * int(KeysymsPerKeycode))); i++ {
7282 xgb.Put32(buf[b:], uint32(Keysyms[i]))
7283 b += 4
7284 }
7285
7286 return buf
7287 }
7288
7289
7290 type ChangePointerControlCookie struct {
7291 *xgb.Cookie
7292 }
7293
7294
7295
7296 func ChangePointerControl(c *xgb.Conn, AccelerationNumerator int16, AccelerationDenominator int16, Threshold int16, DoAcceleration bool, DoThreshold bool) ChangePointerControlCookie {
7297 cookie := c.NewCookie(false, false)
7298 c.NewRequest(changePointerControlRequest(c, AccelerationNumerator, AccelerationDenominator, Threshold, DoAcceleration, DoThreshold), cookie)
7299 return ChangePointerControlCookie{cookie}
7300 }
7301
7302
7303
7304 func ChangePointerControlChecked(c *xgb.Conn, AccelerationNumerator int16, AccelerationDenominator int16, Threshold int16, DoAcceleration bool, DoThreshold bool) ChangePointerControlCookie {
7305 cookie := c.NewCookie(true, false)
7306 c.NewRequest(changePointerControlRequest(c, AccelerationNumerator, AccelerationDenominator, Threshold, DoAcceleration, DoThreshold), cookie)
7307 return ChangePointerControlCookie{cookie}
7308 }
7309
7310
7311
7312 func (cook ChangePointerControlCookie) Check() error {
7313 return cook.Cookie.Check()
7314 }
7315
7316
7317
7318 func changePointerControlRequest(c *xgb.Conn, AccelerationNumerator int16, AccelerationDenominator int16, Threshold int16, DoAcceleration bool, DoThreshold bool) []byte {
7319 size := 12
7320 b := 0
7321 buf := make([]byte, size)
7322
7323 buf[b] = 105
7324 b += 1
7325
7326 b += 1
7327
7328 xgb.Put16(buf[b:], uint16(size/4))
7329 b += 2
7330
7331 xgb.Put16(buf[b:], uint16(AccelerationNumerator))
7332 b += 2
7333
7334 xgb.Put16(buf[b:], uint16(AccelerationDenominator))
7335 b += 2
7336
7337 xgb.Put16(buf[b:], uint16(Threshold))
7338 b += 2
7339
7340 if DoAcceleration {
7341 buf[b] = 1
7342 } else {
7343 buf[b] = 0
7344 }
7345 b += 1
7346
7347 if DoThreshold {
7348 buf[b] = 1
7349 } else {
7350 buf[b] = 0
7351 }
7352 b += 1
7353
7354 return buf
7355 }
7356
7357
7358 type ChangePropertyCookie struct {
7359 *xgb.Cookie
7360 }
7361
7362
7363
7364 func ChangeProperty(c *xgb.Conn, Mode byte, Window Window, Property Atom, Type Atom, Format byte, DataLen uint32, Data []byte) ChangePropertyCookie {
7365 cookie := c.NewCookie(false, false)
7366 c.NewRequest(changePropertyRequest(c, Mode, Window, Property, Type, Format, DataLen, Data), cookie)
7367 return ChangePropertyCookie{cookie}
7368 }
7369
7370
7371
7372 func ChangePropertyChecked(c *xgb.Conn, Mode byte, Window Window, Property Atom, Type Atom, Format byte, DataLen uint32, Data []byte) ChangePropertyCookie {
7373 cookie := c.NewCookie(true, false)
7374 c.NewRequest(changePropertyRequest(c, Mode, Window, Property, Type, Format, DataLen, Data), cookie)
7375 return ChangePropertyCookie{cookie}
7376 }
7377
7378
7379
7380 func (cook ChangePropertyCookie) Check() error {
7381 return cook.Cookie.Check()
7382 }
7383
7384
7385
7386 func changePropertyRequest(c *xgb.Conn, Mode byte, Window Window, Property Atom, Type Atom, Format byte, DataLen uint32, Data []byte) []byte {
7387 size := xgb.Pad((24 + xgb.Pad((((int(DataLen) * int(Format)) / 8) * 1))))
7388 b := 0
7389 buf := make([]byte, size)
7390
7391 buf[b] = 18
7392 b += 1
7393
7394 buf[b] = Mode
7395 b += 1
7396
7397 xgb.Put16(buf[b:], uint16(size/4))
7398 b += 2
7399
7400 xgb.Put32(buf[b:], uint32(Window))
7401 b += 4
7402
7403 xgb.Put32(buf[b:], uint32(Property))
7404 b += 4
7405
7406 xgb.Put32(buf[b:], uint32(Type))
7407 b += 4
7408
7409 buf[b] = Format
7410 b += 1
7411
7412 b += 3
7413
7414 xgb.Put32(buf[b:], DataLen)
7415 b += 4
7416
7417 copy(buf[b:], Data[:((int(DataLen)*int(Format))/8)])
7418 b += int(((int(DataLen) * int(Format)) / 8))
7419
7420 return buf
7421 }
7422
7423
7424 type ChangeSaveSetCookie struct {
7425 *xgb.Cookie
7426 }
7427
7428
7429
7430 func ChangeSaveSet(c *xgb.Conn, Mode byte, Window Window) ChangeSaveSetCookie {
7431 cookie := c.NewCookie(false, false)
7432 c.NewRequest(changeSaveSetRequest(c, Mode, Window), cookie)
7433 return ChangeSaveSetCookie{cookie}
7434 }
7435
7436
7437
7438 func ChangeSaveSetChecked(c *xgb.Conn, Mode byte, Window Window) ChangeSaveSetCookie {
7439 cookie := c.NewCookie(true, false)
7440 c.NewRequest(changeSaveSetRequest(c, Mode, Window), cookie)
7441 return ChangeSaveSetCookie{cookie}
7442 }
7443
7444
7445
7446 func (cook ChangeSaveSetCookie) Check() error {
7447 return cook.Cookie.Check()
7448 }
7449
7450
7451
7452 func changeSaveSetRequest(c *xgb.Conn, Mode byte, Window Window) []byte {
7453 size := 8
7454 b := 0
7455 buf := make([]byte, size)
7456
7457 buf[b] = 6
7458 b += 1
7459
7460 buf[b] = Mode
7461 b += 1
7462
7463 xgb.Put16(buf[b:], uint16(size/4))
7464 b += 2
7465
7466 xgb.Put32(buf[b:], uint32(Window))
7467 b += 4
7468
7469 return buf
7470 }
7471
7472
7473 type ChangeWindowAttributesCookie struct {
7474 *xgb.Cookie
7475 }
7476
7477
7478
7479 func ChangeWindowAttributes(c *xgb.Conn, Window Window, ValueMask uint32, ValueList []uint32) ChangeWindowAttributesCookie {
7480 cookie := c.NewCookie(false, false)
7481 c.NewRequest(changeWindowAttributesRequest(c, Window, ValueMask, ValueList), cookie)
7482 return ChangeWindowAttributesCookie{cookie}
7483 }
7484
7485
7486
7487 func ChangeWindowAttributesChecked(c *xgb.Conn, Window Window, ValueMask uint32, ValueList []uint32) ChangeWindowAttributesCookie {
7488 cookie := c.NewCookie(true, false)
7489 c.NewRequest(changeWindowAttributesRequest(c, Window, ValueMask, ValueList), cookie)
7490 return ChangeWindowAttributesCookie{cookie}
7491 }
7492
7493
7494
7495 func (cook ChangeWindowAttributesCookie) Check() error {
7496 return cook.Cookie.Check()
7497 }
7498
7499
7500
7501 func changeWindowAttributesRequest(c *xgb.Conn, Window Window, ValueMask uint32, ValueList []uint32) []byte {
7502 size := xgb.Pad((8 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
7503 b := 0
7504 buf := make([]byte, size)
7505
7506 buf[b] = 2
7507 b += 1
7508
7509 b += 1
7510
7511 xgb.Put16(buf[b:], uint16(size/4))
7512 b += 2
7513
7514 xgb.Put32(buf[b:], uint32(Window))
7515 b += 4
7516
7517 xgb.Put32(buf[b:], ValueMask)
7518 b += 4
7519 for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
7520 xgb.Put32(buf[b:], ValueList[i])
7521 b += 4
7522 }
7523 b = xgb.Pad(b)
7524
7525 return buf
7526 }
7527
7528
7529 type CirculateWindowCookie struct {
7530 *xgb.Cookie
7531 }
7532
7533
7534
7535 func CirculateWindow(c *xgb.Conn, Direction byte, Window Window) CirculateWindowCookie {
7536 cookie := c.NewCookie(false, false)
7537 c.NewRequest(circulateWindowRequest(c, Direction, Window), cookie)
7538 return CirculateWindowCookie{cookie}
7539 }
7540
7541
7542
7543 func CirculateWindowChecked(c *xgb.Conn, Direction byte, Window Window) CirculateWindowCookie {
7544 cookie := c.NewCookie(true, false)
7545 c.NewRequest(circulateWindowRequest(c, Direction, Window), cookie)
7546 return CirculateWindowCookie{cookie}
7547 }
7548
7549
7550
7551 func (cook CirculateWindowCookie) Check() error {
7552 return cook.Cookie.Check()
7553 }
7554
7555
7556
7557 func circulateWindowRequest(c *xgb.Conn, Direction byte, Window Window) []byte {
7558 size := 8
7559 b := 0
7560 buf := make([]byte, size)
7561
7562 buf[b] = 13
7563 b += 1
7564
7565 buf[b] = Direction
7566 b += 1
7567
7568 xgb.Put16(buf[b:], uint16(size/4))
7569 b += 2
7570
7571 xgb.Put32(buf[b:], uint32(Window))
7572 b += 4
7573
7574 return buf
7575 }
7576
7577
7578 type ClearAreaCookie struct {
7579 *xgb.Cookie
7580 }
7581
7582
7583
7584 func ClearArea(c *xgb.Conn, Exposures bool, Window Window, X int16, Y int16, Width uint16, Height uint16) ClearAreaCookie {
7585 cookie := c.NewCookie(false, false)
7586 c.NewRequest(clearAreaRequest(c, Exposures, Window, X, Y, Width, Height), cookie)
7587 return ClearAreaCookie{cookie}
7588 }
7589
7590
7591
7592 func ClearAreaChecked(c *xgb.Conn, Exposures bool, Window Window, X int16, Y int16, Width uint16, Height uint16) ClearAreaCookie {
7593 cookie := c.NewCookie(true, false)
7594 c.NewRequest(clearAreaRequest(c, Exposures, Window, X, Y, Width, Height), cookie)
7595 return ClearAreaCookie{cookie}
7596 }
7597
7598
7599
7600 func (cook ClearAreaCookie) Check() error {
7601 return cook.Cookie.Check()
7602 }
7603
7604
7605
7606 func clearAreaRequest(c *xgb.Conn, Exposures bool, Window Window, X int16, Y int16, Width uint16, Height uint16) []byte {
7607 size := 16
7608 b := 0
7609 buf := make([]byte, size)
7610
7611 buf[b] = 61
7612 b += 1
7613
7614 if Exposures {
7615 buf[b] = 1
7616 } else {
7617 buf[b] = 0
7618 }
7619 b += 1
7620
7621 xgb.Put16(buf[b:], uint16(size/4))
7622 b += 2
7623
7624 xgb.Put32(buf[b:], uint32(Window))
7625 b += 4
7626
7627 xgb.Put16(buf[b:], uint16(X))
7628 b += 2
7629
7630 xgb.Put16(buf[b:], uint16(Y))
7631 b += 2
7632
7633 xgb.Put16(buf[b:], Width)
7634 b += 2
7635
7636 xgb.Put16(buf[b:], Height)
7637 b += 2
7638
7639 return buf
7640 }
7641
7642
7643 type CloseFontCookie struct {
7644 *xgb.Cookie
7645 }
7646
7647
7648
7649 func CloseFont(c *xgb.Conn, Font Font) CloseFontCookie {
7650 cookie := c.NewCookie(false, false)
7651 c.NewRequest(closeFontRequest(c, Font), cookie)
7652 return CloseFontCookie{cookie}
7653 }
7654
7655
7656
7657 func CloseFontChecked(c *xgb.Conn, Font Font) CloseFontCookie {
7658 cookie := c.NewCookie(true, false)
7659 c.NewRequest(closeFontRequest(c, Font), cookie)
7660 return CloseFontCookie{cookie}
7661 }
7662
7663
7664
7665 func (cook CloseFontCookie) Check() error {
7666 return cook.Cookie.Check()
7667 }
7668
7669
7670
7671 func closeFontRequest(c *xgb.Conn, Font Font) []byte {
7672 size := 8
7673 b := 0
7674 buf := make([]byte, size)
7675
7676 buf[b] = 46
7677 b += 1
7678
7679 b += 1
7680
7681 xgb.Put16(buf[b:], uint16(size/4))
7682 b += 2
7683
7684 xgb.Put32(buf[b:], uint32(Font))
7685 b += 4
7686
7687 return buf
7688 }
7689
7690
7691 type ConfigureWindowCookie struct {
7692 *xgb.Cookie
7693 }
7694
7695
7696
7697 func ConfigureWindow(c *xgb.Conn, Window Window, ValueMask uint16, ValueList []uint32) ConfigureWindowCookie {
7698 cookie := c.NewCookie(false, false)
7699 c.NewRequest(configureWindowRequest(c, Window, ValueMask, ValueList), cookie)
7700 return ConfigureWindowCookie{cookie}
7701 }
7702
7703
7704
7705 func ConfigureWindowChecked(c *xgb.Conn, Window Window, ValueMask uint16, ValueList []uint32) ConfigureWindowCookie {
7706 cookie := c.NewCookie(true, false)
7707 c.NewRequest(configureWindowRequest(c, Window, ValueMask, ValueList), cookie)
7708 return ConfigureWindowCookie{cookie}
7709 }
7710
7711
7712
7713 func (cook ConfigureWindowCookie) Check() error {
7714 return cook.Cookie.Check()
7715 }
7716
7717
7718
7719 func configureWindowRequest(c *xgb.Conn, Window Window, ValueMask uint16, ValueList []uint32) []byte {
7720 size := xgb.Pad((10 + (2 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
7721 b := 0
7722 buf := make([]byte, size)
7723
7724 buf[b] = 12
7725 b += 1
7726
7727 b += 1
7728
7729 xgb.Put16(buf[b:], uint16(size/4))
7730 b += 2
7731
7732 xgb.Put32(buf[b:], uint32(Window))
7733 b += 4
7734
7735 xgb.Put16(buf[b:], ValueMask)
7736 b += 2
7737
7738 b += 2
7739
7740 for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
7741 xgb.Put32(buf[b:], ValueList[i])
7742 b += 4
7743 }
7744 b = xgb.Pad(b)
7745
7746 return buf
7747 }
7748
7749
7750 type ConvertSelectionCookie struct {
7751 *xgb.Cookie
7752 }
7753
7754
7755
7756 func ConvertSelection(c *xgb.Conn, Requestor Window, Selection Atom, Target Atom, Property Atom, Time Timestamp) ConvertSelectionCookie {
7757 cookie := c.NewCookie(false, false)
7758 c.NewRequest(convertSelectionRequest(c, Requestor, Selection, Target, Property, Time), cookie)
7759 return ConvertSelectionCookie{cookie}
7760 }
7761
7762
7763
7764 func ConvertSelectionChecked(c *xgb.Conn, Requestor Window, Selection Atom, Target Atom, Property Atom, Time Timestamp) ConvertSelectionCookie {
7765 cookie := c.NewCookie(true, false)
7766 c.NewRequest(convertSelectionRequest(c, Requestor, Selection, Target, Property, Time), cookie)
7767 return ConvertSelectionCookie{cookie}
7768 }
7769
7770
7771
7772 func (cook ConvertSelectionCookie) Check() error {
7773 return cook.Cookie.Check()
7774 }
7775
7776
7777
7778 func convertSelectionRequest(c *xgb.Conn, Requestor Window, Selection Atom, Target Atom, Property Atom, Time Timestamp) []byte {
7779 size := 24
7780 b := 0
7781 buf := make([]byte, size)
7782
7783 buf[b] = 24
7784 b += 1
7785
7786 b += 1
7787
7788 xgb.Put16(buf[b:], uint16(size/4))
7789 b += 2
7790
7791 xgb.Put32(buf[b:], uint32(Requestor))
7792 b += 4
7793
7794 xgb.Put32(buf[b:], uint32(Selection))
7795 b += 4
7796
7797 xgb.Put32(buf[b:], uint32(Target))
7798 b += 4
7799
7800 xgb.Put32(buf[b:], uint32(Property))
7801 b += 4
7802
7803 xgb.Put32(buf[b:], uint32(Time))
7804 b += 4
7805
7806 return buf
7807 }
7808
7809
7810 type CopyAreaCookie struct {
7811 *xgb.Cookie
7812 }
7813
7814
7815
7816 func CopyArea(c *xgb.Conn, SrcDrawable Drawable, DstDrawable Drawable, Gc Gcontext, SrcX int16, SrcY int16, DstX int16, DstY int16, Width uint16, Height uint16) CopyAreaCookie {
7817 cookie := c.NewCookie(false, false)
7818 c.NewRequest(copyAreaRequest(c, SrcDrawable, DstDrawable, Gc, SrcX, SrcY, DstX, DstY, Width, Height), cookie)
7819 return CopyAreaCookie{cookie}
7820 }
7821
7822
7823
7824 func CopyAreaChecked(c *xgb.Conn, SrcDrawable Drawable, DstDrawable Drawable, Gc Gcontext, SrcX int16, SrcY int16, DstX int16, DstY int16, Width uint16, Height uint16) CopyAreaCookie {
7825 cookie := c.NewCookie(true, false)
7826 c.NewRequest(copyAreaRequest(c, SrcDrawable, DstDrawable, Gc, SrcX, SrcY, DstX, DstY, Width, Height), cookie)
7827 return CopyAreaCookie{cookie}
7828 }
7829
7830
7831
7832 func (cook CopyAreaCookie) Check() error {
7833 return cook.Cookie.Check()
7834 }
7835
7836
7837
7838 func copyAreaRequest(c *xgb.Conn, SrcDrawable Drawable, DstDrawable Drawable, Gc Gcontext, SrcX int16, SrcY int16, DstX int16, DstY int16, Width uint16, Height uint16) []byte {
7839 size := 28
7840 b := 0
7841 buf := make([]byte, size)
7842
7843 buf[b] = 62
7844 b += 1
7845
7846 b += 1
7847
7848 xgb.Put16(buf[b:], uint16(size/4))
7849 b += 2
7850
7851 xgb.Put32(buf[b:], uint32(SrcDrawable))
7852 b += 4
7853
7854 xgb.Put32(buf[b:], uint32(DstDrawable))
7855 b += 4
7856
7857 xgb.Put32(buf[b:], uint32(Gc))
7858 b += 4
7859
7860 xgb.Put16(buf[b:], uint16(SrcX))
7861 b += 2
7862
7863 xgb.Put16(buf[b:], uint16(SrcY))
7864 b += 2
7865
7866 xgb.Put16(buf[b:], uint16(DstX))
7867 b += 2
7868
7869 xgb.Put16(buf[b:], uint16(DstY))
7870 b += 2
7871
7872 xgb.Put16(buf[b:], Width)
7873 b += 2
7874
7875 xgb.Put16(buf[b:], Height)
7876 b += 2
7877
7878 return buf
7879 }
7880
7881
7882 type CopyColormapAndFreeCookie struct {
7883 *xgb.Cookie
7884 }
7885
7886
7887
7888 func CopyColormapAndFree(c *xgb.Conn, Mid Colormap, SrcCmap Colormap) CopyColormapAndFreeCookie {
7889 cookie := c.NewCookie(false, false)
7890 c.NewRequest(copyColormapAndFreeRequest(c, Mid, SrcCmap), cookie)
7891 return CopyColormapAndFreeCookie{cookie}
7892 }
7893
7894
7895
7896 func CopyColormapAndFreeChecked(c *xgb.Conn, Mid Colormap, SrcCmap Colormap) CopyColormapAndFreeCookie {
7897 cookie := c.NewCookie(true, false)
7898 c.NewRequest(copyColormapAndFreeRequest(c, Mid, SrcCmap), cookie)
7899 return CopyColormapAndFreeCookie{cookie}
7900 }
7901
7902
7903
7904 func (cook CopyColormapAndFreeCookie) Check() error {
7905 return cook.Cookie.Check()
7906 }
7907
7908
7909
7910 func copyColormapAndFreeRequest(c *xgb.Conn, Mid Colormap, SrcCmap Colormap) []byte {
7911 size := 12
7912 b := 0
7913 buf := make([]byte, size)
7914
7915 buf[b] = 80
7916 b += 1
7917
7918 b += 1
7919
7920 xgb.Put16(buf[b:], uint16(size/4))
7921 b += 2
7922
7923 xgb.Put32(buf[b:], uint32(Mid))
7924 b += 4
7925
7926 xgb.Put32(buf[b:], uint32(SrcCmap))
7927 b += 4
7928
7929 return buf
7930 }
7931
7932
7933 type CopyGCCookie struct {
7934 *xgb.Cookie
7935 }
7936
7937
7938
7939 func CopyGC(c *xgb.Conn, SrcGc Gcontext, DstGc Gcontext, ValueMask uint32) CopyGCCookie {
7940 cookie := c.NewCookie(false, false)
7941 c.NewRequest(copyGCRequest(c, SrcGc, DstGc, ValueMask), cookie)
7942 return CopyGCCookie{cookie}
7943 }
7944
7945
7946
7947 func CopyGCChecked(c *xgb.Conn, SrcGc Gcontext, DstGc Gcontext, ValueMask uint32) CopyGCCookie {
7948 cookie := c.NewCookie(true, false)
7949 c.NewRequest(copyGCRequest(c, SrcGc, DstGc, ValueMask), cookie)
7950 return CopyGCCookie{cookie}
7951 }
7952
7953
7954
7955 func (cook CopyGCCookie) Check() error {
7956 return cook.Cookie.Check()
7957 }
7958
7959
7960
7961 func copyGCRequest(c *xgb.Conn, SrcGc Gcontext, DstGc Gcontext, ValueMask uint32) []byte {
7962 size := 16
7963 b := 0
7964 buf := make([]byte, size)
7965
7966 buf[b] = 57
7967 b += 1
7968
7969 b += 1
7970
7971 xgb.Put16(buf[b:], uint16(size/4))
7972 b += 2
7973
7974 xgb.Put32(buf[b:], uint32(SrcGc))
7975 b += 4
7976
7977 xgb.Put32(buf[b:], uint32(DstGc))
7978 b += 4
7979
7980 xgb.Put32(buf[b:], ValueMask)
7981 b += 4
7982
7983 return buf
7984 }
7985
7986
7987 type CopyPlaneCookie struct {
7988 *xgb.Cookie
7989 }
7990
7991
7992
7993 func CopyPlane(c *xgb.Conn, SrcDrawable Drawable, DstDrawable Drawable, Gc Gcontext, SrcX int16, SrcY int16, DstX int16, DstY int16, Width uint16, Height uint16, BitPlane uint32) CopyPlaneCookie {
7994 cookie := c.NewCookie(false, false)
7995 c.NewRequest(copyPlaneRequest(c, SrcDrawable, DstDrawable, Gc, SrcX, SrcY, DstX, DstY, Width, Height, BitPlane), cookie)
7996 return CopyPlaneCookie{cookie}
7997 }
7998
7999
8000
8001 func CopyPlaneChecked(c *xgb.Conn, SrcDrawable Drawable, DstDrawable Drawable, Gc Gcontext, SrcX int16, SrcY int16, DstX int16, DstY int16, Width uint16, Height uint16, BitPlane uint32) CopyPlaneCookie {
8002 cookie := c.NewCookie(true, false)
8003 c.NewRequest(copyPlaneRequest(c, SrcDrawable, DstDrawable, Gc, SrcX, SrcY, DstX, DstY, Width, Height, BitPlane), cookie)
8004 return CopyPlaneCookie{cookie}
8005 }
8006
8007
8008
8009 func (cook CopyPlaneCookie) Check() error {
8010 return cook.Cookie.Check()
8011 }
8012
8013
8014
8015 func copyPlaneRequest(c *xgb.Conn, SrcDrawable Drawable, DstDrawable Drawable, Gc Gcontext, SrcX int16, SrcY int16, DstX int16, DstY int16, Width uint16, Height uint16, BitPlane uint32) []byte {
8016 size := 32
8017 b := 0
8018 buf := make([]byte, size)
8019
8020 buf[b] = 63
8021 b += 1
8022
8023 b += 1
8024
8025 xgb.Put16(buf[b:], uint16(size/4))
8026 b += 2
8027
8028 xgb.Put32(buf[b:], uint32(SrcDrawable))
8029 b += 4
8030
8031 xgb.Put32(buf[b:], uint32(DstDrawable))
8032 b += 4
8033
8034 xgb.Put32(buf[b:], uint32(Gc))
8035 b += 4
8036
8037 xgb.Put16(buf[b:], uint16(SrcX))
8038 b += 2
8039
8040 xgb.Put16(buf[b:], uint16(SrcY))
8041 b += 2
8042
8043 xgb.Put16(buf[b:], uint16(DstX))
8044 b += 2
8045
8046 xgb.Put16(buf[b:], uint16(DstY))
8047 b += 2
8048
8049 xgb.Put16(buf[b:], Width)
8050 b += 2
8051
8052 xgb.Put16(buf[b:], Height)
8053 b += 2
8054
8055 xgb.Put32(buf[b:], BitPlane)
8056 b += 4
8057
8058 return buf
8059 }
8060
8061
8062 type CreateColormapCookie struct {
8063 *xgb.Cookie
8064 }
8065
8066
8067
8068 func CreateColormap(c *xgb.Conn, Alloc byte, Mid Colormap, Window Window, Visual Visualid) CreateColormapCookie {
8069 cookie := c.NewCookie(false, false)
8070 c.NewRequest(createColormapRequest(c, Alloc, Mid, Window, Visual), cookie)
8071 return CreateColormapCookie{cookie}
8072 }
8073
8074
8075
8076 func CreateColormapChecked(c *xgb.Conn, Alloc byte, Mid Colormap, Window Window, Visual Visualid) CreateColormapCookie {
8077 cookie := c.NewCookie(true, false)
8078 c.NewRequest(createColormapRequest(c, Alloc, Mid, Window, Visual), cookie)
8079 return CreateColormapCookie{cookie}
8080 }
8081
8082
8083
8084 func (cook CreateColormapCookie) Check() error {
8085 return cook.Cookie.Check()
8086 }
8087
8088
8089
8090 func createColormapRequest(c *xgb.Conn, Alloc byte, Mid Colormap, Window Window, Visual Visualid) []byte {
8091 size := 16
8092 b := 0
8093 buf := make([]byte, size)
8094
8095 buf[b] = 78
8096 b += 1
8097
8098 buf[b] = Alloc
8099 b += 1
8100
8101 xgb.Put16(buf[b:], uint16(size/4))
8102 b += 2
8103
8104 xgb.Put32(buf[b:], uint32(Mid))
8105 b += 4
8106
8107 xgb.Put32(buf[b:], uint32(Window))
8108 b += 4
8109
8110 xgb.Put32(buf[b:], uint32(Visual))
8111 b += 4
8112
8113 return buf
8114 }
8115
8116
8117 type CreateCursorCookie struct {
8118 *xgb.Cookie
8119 }
8120
8121
8122
8123 func CreateCursor(c *xgb.Conn, Cid Cursor, Source Pixmap, Mask Pixmap, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16, X uint16, Y uint16) CreateCursorCookie {
8124 cookie := c.NewCookie(false, false)
8125 c.NewRequest(createCursorRequest(c, Cid, Source, Mask, ForeRed, ForeGreen, ForeBlue, BackRed, BackGreen, BackBlue, X, Y), cookie)
8126 return CreateCursorCookie{cookie}
8127 }
8128
8129
8130
8131 func CreateCursorChecked(c *xgb.Conn, Cid Cursor, Source Pixmap, Mask Pixmap, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16, X uint16, Y uint16) CreateCursorCookie {
8132 cookie := c.NewCookie(true, false)
8133 c.NewRequest(createCursorRequest(c, Cid, Source, Mask, ForeRed, ForeGreen, ForeBlue, BackRed, BackGreen, BackBlue, X, Y), cookie)
8134 return CreateCursorCookie{cookie}
8135 }
8136
8137
8138
8139 func (cook CreateCursorCookie) Check() error {
8140 return cook.Cookie.Check()
8141 }
8142
8143
8144
8145 func createCursorRequest(c *xgb.Conn, Cid Cursor, Source Pixmap, Mask Pixmap, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16, X uint16, Y uint16) []byte {
8146 size := 32
8147 b := 0
8148 buf := make([]byte, size)
8149
8150 buf[b] = 93
8151 b += 1
8152
8153 b += 1
8154
8155 xgb.Put16(buf[b:], uint16(size/4))
8156 b += 2
8157
8158 xgb.Put32(buf[b:], uint32(Cid))
8159 b += 4
8160
8161 xgb.Put32(buf[b:], uint32(Source))
8162 b += 4
8163
8164 xgb.Put32(buf[b:], uint32(Mask))
8165 b += 4
8166
8167 xgb.Put16(buf[b:], ForeRed)
8168 b += 2
8169
8170 xgb.Put16(buf[b:], ForeGreen)
8171 b += 2
8172
8173 xgb.Put16(buf[b:], ForeBlue)
8174 b += 2
8175
8176 xgb.Put16(buf[b:], BackRed)
8177 b += 2
8178
8179 xgb.Put16(buf[b:], BackGreen)
8180 b += 2
8181
8182 xgb.Put16(buf[b:], BackBlue)
8183 b += 2
8184
8185 xgb.Put16(buf[b:], X)
8186 b += 2
8187
8188 xgb.Put16(buf[b:], Y)
8189 b += 2
8190
8191 return buf
8192 }
8193
8194
8195 type CreateGCCookie struct {
8196 *xgb.Cookie
8197 }
8198
8199
8200
8201 func CreateGC(c *xgb.Conn, Cid Gcontext, Drawable Drawable, ValueMask uint32, ValueList []uint32) CreateGCCookie {
8202 cookie := c.NewCookie(false, false)
8203 c.NewRequest(createGCRequest(c, Cid, Drawable, ValueMask, ValueList), cookie)
8204 return CreateGCCookie{cookie}
8205 }
8206
8207
8208
8209 func CreateGCChecked(c *xgb.Conn, Cid Gcontext, Drawable Drawable, ValueMask uint32, ValueList []uint32) CreateGCCookie {
8210 cookie := c.NewCookie(true, false)
8211 c.NewRequest(createGCRequest(c, Cid, Drawable, ValueMask, ValueList), cookie)
8212 return CreateGCCookie{cookie}
8213 }
8214
8215
8216
8217 func (cook CreateGCCookie) Check() error {
8218 return cook.Cookie.Check()
8219 }
8220
8221
8222
8223 func createGCRequest(c *xgb.Conn, Cid Gcontext, Drawable Drawable, ValueMask uint32, ValueList []uint32) []byte {
8224 size := xgb.Pad((12 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
8225 b := 0
8226 buf := make([]byte, size)
8227
8228 buf[b] = 55
8229 b += 1
8230
8231 b += 1
8232
8233 xgb.Put16(buf[b:], uint16(size/4))
8234 b += 2
8235
8236 xgb.Put32(buf[b:], uint32(Cid))
8237 b += 4
8238
8239 xgb.Put32(buf[b:], uint32(Drawable))
8240 b += 4
8241
8242 xgb.Put32(buf[b:], ValueMask)
8243 b += 4
8244 for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
8245 xgb.Put32(buf[b:], ValueList[i])
8246 b += 4
8247 }
8248 b = xgb.Pad(b)
8249
8250 return buf
8251 }
8252
8253
8254 type CreateGlyphCursorCookie struct {
8255 *xgb.Cookie
8256 }
8257
8258
8259
8260 func CreateGlyphCursor(c *xgb.Conn, Cid Cursor, SourceFont Font, MaskFont Font, SourceChar uint16, MaskChar uint16, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16) CreateGlyphCursorCookie {
8261 cookie := c.NewCookie(false, false)
8262 c.NewRequest(createGlyphCursorRequest(c, Cid, SourceFont, MaskFont, SourceChar, MaskChar, ForeRed, ForeGreen, ForeBlue, BackRed, BackGreen, BackBlue), cookie)
8263 return CreateGlyphCursorCookie{cookie}
8264 }
8265
8266
8267
8268 func CreateGlyphCursorChecked(c *xgb.Conn, Cid Cursor, SourceFont Font, MaskFont Font, SourceChar uint16, MaskChar uint16, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16) CreateGlyphCursorCookie {
8269 cookie := c.NewCookie(true, false)
8270 c.NewRequest(createGlyphCursorRequest(c, Cid, SourceFont, MaskFont, SourceChar, MaskChar, ForeRed, ForeGreen, ForeBlue, BackRed, BackGreen, BackBlue), cookie)
8271 return CreateGlyphCursorCookie{cookie}
8272 }
8273
8274
8275
8276 func (cook CreateGlyphCursorCookie) Check() error {
8277 return cook.Cookie.Check()
8278 }
8279
8280
8281
8282 func createGlyphCursorRequest(c *xgb.Conn, Cid Cursor, SourceFont Font, MaskFont Font, SourceChar uint16, MaskChar uint16, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16) []byte {
8283 size := 32
8284 b := 0
8285 buf := make([]byte, size)
8286
8287 buf[b] = 94
8288 b += 1
8289
8290 b += 1
8291
8292 xgb.Put16(buf[b:], uint16(size/4))
8293 b += 2
8294
8295 xgb.Put32(buf[b:], uint32(Cid))
8296 b += 4
8297
8298 xgb.Put32(buf[b:], uint32(SourceFont))
8299 b += 4
8300
8301 xgb.Put32(buf[b:], uint32(MaskFont))
8302 b += 4
8303
8304 xgb.Put16(buf[b:], SourceChar)
8305 b += 2
8306
8307 xgb.Put16(buf[b:], MaskChar)
8308 b += 2
8309
8310 xgb.Put16(buf[b:], ForeRed)
8311 b += 2
8312
8313 xgb.Put16(buf[b:], ForeGreen)
8314 b += 2
8315
8316 xgb.Put16(buf[b:], ForeBlue)
8317 b += 2
8318
8319 xgb.Put16(buf[b:], BackRed)
8320 b += 2
8321
8322 xgb.Put16(buf[b:], BackGreen)
8323 b += 2
8324
8325 xgb.Put16(buf[b:], BackBlue)
8326 b += 2
8327
8328 return buf
8329 }
8330
8331
8332 type CreatePixmapCookie struct {
8333 *xgb.Cookie
8334 }
8335
8336
8337
8338 func CreatePixmap(c *xgb.Conn, Depth byte, Pid Pixmap, Drawable Drawable, Width uint16, Height uint16) CreatePixmapCookie {
8339 cookie := c.NewCookie(false, false)
8340 c.NewRequest(createPixmapRequest(c, Depth, Pid, Drawable, Width, Height), cookie)
8341 return CreatePixmapCookie{cookie}
8342 }
8343
8344
8345
8346 func CreatePixmapChecked(c *xgb.Conn, Depth byte, Pid Pixmap, Drawable Drawable, Width uint16, Height uint16) CreatePixmapCookie {
8347 cookie := c.NewCookie(true, false)
8348 c.NewRequest(createPixmapRequest(c, Depth, Pid, Drawable, Width, Height), cookie)
8349 return CreatePixmapCookie{cookie}
8350 }
8351
8352
8353
8354 func (cook CreatePixmapCookie) Check() error {
8355 return cook.Cookie.Check()
8356 }
8357
8358
8359
8360 func createPixmapRequest(c *xgb.Conn, Depth byte, Pid Pixmap, Drawable Drawable, Width uint16, Height uint16) []byte {
8361 size := 16
8362 b := 0
8363 buf := make([]byte, size)
8364
8365 buf[b] = 53
8366 b += 1
8367
8368 buf[b] = Depth
8369 b += 1
8370
8371 xgb.Put16(buf[b:], uint16(size/4))
8372 b += 2
8373
8374 xgb.Put32(buf[b:], uint32(Pid))
8375 b += 4
8376
8377 xgb.Put32(buf[b:], uint32(Drawable))
8378 b += 4
8379
8380 xgb.Put16(buf[b:], Width)
8381 b += 2
8382
8383 xgb.Put16(buf[b:], Height)
8384 b += 2
8385
8386 return buf
8387 }
8388
8389
8390 type CreateWindowCookie struct {
8391 *xgb.Cookie
8392 }
8393
8394
8395
8396 func CreateWindow(c *xgb.Conn, Depth byte, Wid Window, Parent Window, X int16, Y int16, Width uint16, Height uint16, BorderWidth uint16, Class uint16, Visual Visualid, ValueMask uint32, ValueList []uint32) CreateWindowCookie {
8397 cookie := c.NewCookie(false, false)
8398 c.NewRequest(createWindowRequest(c, Depth, Wid, Parent, X, Y, Width, Height, BorderWidth, Class, Visual, ValueMask, ValueList), cookie)
8399 return CreateWindowCookie{cookie}
8400 }
8401
8402
8403
8404 func CreateWindowChecked(c *xgb.Conn, Depth byte, Wid Window, Parent Window, X int16, Y int16, Width uint16, Height uint16, BorderWidth uint16, Class uint16, Visual Visualid, ValueMask uint32, ValueList []uint32) CreateWindowCookie {
8405 cookie := c.NewCookie(true, false)
8406 c.NewRequest(createWindowRequest(c, Depth, Wid, Parent, X, Y, Width, Height, BorderWidth, Class, Visual, ValueMask, ValueList), cookie)
8407 return CreateWindowCookie{cookie}
8408 }
8409
8410
8411
8412 func (cook CreateWindowCookie) Check() error {
8413 return cook.Cookie.Check()
8414 }
8415
8416
8417
8418 func createWindowRequest(c *xgb.Conn, Depth byte, Wid Window, Parent Window, X int16, Y int16, Width uint16, Height uint16, BorderWidth uint16, Class uint16, Visual Visualid, ValueMask uint32, ValueList []uint32) []byte {
8419 size := xgb.Pad((28 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
8420 b := 0
8421 buf := make([]byte, size)
8422
8423 buf[b] = 1
8424 b += 1
8425
8426 buf[b] = Depth
8427 b += 1
8428
8429 xgb.Put16(buf[b:], uint16(size/4))
8430 b += 2
8431
8432 xgb.Put32(buf[b:], uint32(Wid))
8433 b += 4
8434
8435 xgb.Put32(buf[b:], uint32(Parent))
8436 b += 4
8437
8438 xgb.Put16(buf[b:], uint16(X))
8439 b += 2
8440
8441 xgb.Put16(buf[b:], uint16(Y))
8442 b += 2
8443
8444 xgb.Put16(buf[b:], Width)
8445 b += 2
8446
8447 xgb.Put16(buf[b:], Height)
8448 b += 2
8449
8450 xgb.Put16(buf[b:], BorderWidth)
8451 b += 2
8452
8453 xgb.Put16(buf[b:], Class)
8454 b += 2
8455
8456 xgb.Put32(buf[b:], uint32(Visual))
8457 b += 4
8458
8459 xgb.Put32(buf[b:], ValueMask)
8460 b += 4
8461 for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
8462 xgb.Put32(buf[b:], ValueList[i])
8463 b += 4
8464 }
8465 b = xgb.Pad(b)
8466
8467 return buf
8468 }
8469
8470
8471 type DeletePropertyCookie struct {
8472 *xgb.Cookie
8473 }
8474
8475
8476
8477 func DeleteProperty(c *xgb.Conn, Window Window, Property Atom) DeletePropertyCookie {
8478 cookie := c.NewCookie(false, false)
8479 c.NewRequest(deletePropertyRequest(c, Window, Property), cookie)
8480 return DeletePropertyCookie{cookie}
8481 }
8482
8483
8484
8485 func DeletePropertyChecked(c *xgb.Conn, Window Window, Property Atom) DeletePropertyCookie {
8486 cookie := c.NewCookie(true, false)
8487 c.NewRequest(deletePropertyRequest(c, Window, Property), cookie)
8488 return DeletePropertyCookie{cookie}
8489 }
8490
8491
8492
8493 func (cook DeletePropertyCookie) Check() error {
8494 return cook.Cookie.Check()
8495 }
8496
8497
8498
8499 func deletePropertyRequest(c *xgb.Conn, Window Window, Property Atom) []byte {
8500 size := 12
8501 b := 0
8502 buf := make([]byte, size)
8503
8504 buf[b] = 19
8505 b += 1
8506
8507 b += 1
8508
8509 xgb.Put16(buf[b:], uint16(size/4))
8510 b += 2
8511
8512 xgb.Put32(buf[b:], uint32(Window))
8513 b += 4
8514
8515 xgb.Put32(buf[b:], uint32(Property))
8516 b += 4
8517
8518 return buf
8519 }
8520
8521
8522 type DestroySubwindowsCookie struct {
8523 *xgb.Cookie
8524 }
8525
8526
8527
8528 func DestroySubwindows(c *xgb.Conn, Window Window) DestroySubwindowsCookie {
8529 cookie := c.NewCookie(false, false)
8530 c.NewRequest(destroySubwindowsRequest(c, Window), cookie)
8531 return DestroySubwindowsCookie{cookie}
8532 }
8533
8534
8535
8536 func DestroySubwindowsChecked(c *xgb.Conn, Window Window) DestroySubwindowsCookie {
8537 cookie := c.NewCookie(true, false)
8538 c.NewRequest(destroySubwindowsRequest(c, Window), cookie)
8539 return DestroySubwindowsCookie{cookie}
8540 }
8541
8542
8543
8544 func (cook DestroySubwindowsCookie) Check() error {
8545 return cook.Cookie.Check()
8546 }
8547
8548
8549
8550 func destroySubwindowsRequest(c *xgb.Conn, Window Window) []byte {
8551 size := 8
8552 b := 0
8553 buf := make([]byte, size)
8554
8555 buf[b] = 5
8556 b += 1
8557
8558 b += 1
8559
8560 xgb.Put16(buf[b:], uint16(size/4))
8561 b += 2
8562
8563 xgb.Put32(buf[b:], uint32(Window))
8564 b += 4
8565
8566 return buf
8567 }
8568
8569
8570 type DestroyWindowCookie struct {
8571 *xgb.Cookie
8572 }
8573
8574
8575
8576 func DestroyWindow(c *xgb.Conn, Window Window) DestroyWindowCookie {
8577 cookie := c.NewCookie(false, false)
8578 c.NewRequest(destroyWindowRequest(c, Window), cookie)
8579 return DestroyWindowCookie{cookie}
8580 }
8581
8582
8583
8584 func DestroyWindowChecked(c *xgb.Conn, Window Window) DestroyWindowCookie {
8585 cookie := c.NewCookie(true, false)
8586 c.NewRequest(destroyWindowRequest(c, Window), cookie)
8587 return DestroyWindowCookie{cookie}
8588 }
8589
8590
8591
8592 func (cook DestroyWindowCookie) Check() error {
8593 return cook.Cookie.Check()
8594 }
8595
8596
8597
8598 func destroyWindowRequest(c *xgb.Conn, Window Window) []byte {
8599 size := 8
8600 b := 0
8601 buf := make([]byte, size)
8602
8603 buf[b] = 4
8604 b += 1
8605
8606 b += 1
8607
8608 xgb.Put16(buf[b:], uint16(size/4))
8609 b += 2
8610
8611 xgb.Put32(buf[b:], uint32(Window))
8612 b += 4
8613
8614 return buf
8615 }
8616
8617
8618 type FillPolyCookie struct {
8619 *xgb.Cookie
8620 }
8621
8622
8623
8624 func FillPoly(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Shape byte, CoordinateMode byte, Points []Point) FillPolyCookie {
8625 cookie := c.NewCookie(false, false)
8626 c.NewRequest(fillPolyRequest(c, Drawable, Gc, Shape, CoordinateMode, Points), cookie)
8627 return FillPolyCookie{cookie}
8628 }
8629
8630
8631
8632 func FillPolyChecked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Shape byte, CoordinateMode byte, Points []Point) FillPolyCookie {
8633 cookie := c.NewCookie(true, false)
8634 c.NewRequest(fillPolyRequest(c, Drawable, Gc, Shape, CoordinateMode, Points), cookie)
8635 return FillPolyCookie{cookie}
8636 }
8637
8638
8639
8640 func (cook FillPolyCookie) Check() error {
8641 return cook.Cookie.Check()
8642 }
8643
8644
8645
8646 func fillPolyRequest(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Shape byte, CoordinateMode byte, Points []Point) []byte {
8647 size := xgb.Pad((16 + xgb.Pad((len(Points) * 4))))
8648 b := 0
8649 buf := make([]byte, size)
8650
8651 buf[b] = 69
8652 b += 1
8653
8654 b += 1
8655
8656 xgb.Put16(buf[b:], uint16(size/4))
8657 b += 2
8658
8659 xgb.Put32(buf[b:], uint32(Drawable))
8660 b += 4
8661
8662 xgb.Put32(buf[b:], uint32(Gc))
8663 b += 4
8664
8665 buf[b] = Shape
8666 b += 1
8667
8668 buf[b] = CoordinateMode
8669 b += 1
8670
8671 b += 2
8672
8673 b += PointListBytes(buf[b:], Points)
8674
8675 return buf
8676 }
8677
8678
8679 type ForceScreenSaverCookie struct {
8680 *xgb.Cookie
8681 }
8682
8683
8684
8685 func ForceScreenSaver(c *xgb.Conn, Mode byte) ForceScreenSaverCookie {
8686 cookie := c.NewCookie(false, false)
8687 c.NewRequest(forceScreenSaverRequest(c, Mode), cookie)
8688 return ForceScreenSaverCookie{cookie}
8689 }
8690
8691
8692
8693 func ForceScreenSaverChecked(c *xgb.Conn, Mode byte) ForceScreenSaverCookie {
8694 cookie := c.NewCookie(true, false)
8695 c.NewRequest(forceScreenSaverRequest(c, Mode), cookie)
8696 return ForceScreenSaverCookie{cookie}
8697 }
8698
8699
8700
8701 func (cook ForceScreenSaverCookie) Check() error {
8702 return cook.Cookie.Check()
8703 }
8704
8705
8706
8707 func forceScreenSaverRequest(c *xgb.Conn, Mode byte) []byte {
8708 size := 4
8709 b := 0
8710 buf := make([]byte, size)
8711
8712 buf[b] = 115
8713 b += 1
8714
8715 buf[b] = Mode
8716 b += 1
8717
8718 xgb.Put16(buf[b:], uint16(size/4))
8719 b += 2
8720
8721 return buf
8722 }
8723
8724
8725 type FreeColormapCookie struct {
8726 *xgb.Cookie
8727 }
8728
8729
8730
8731 func FreeColormap(c *xgb.Conn, Cmap Colormap) FreeColormapCookie {
8732 cookie := c.NewCookie(false, false)
8733 c.NewRequest(freeColormapRequest(c, Cmap), cookie)
8734 return FreeColormapCookie{cookie}
8735 }
8736
8737
8738
8739 func FreeColormapChecked(c *xgb.Conn, Cmap Colormap) FreeColormapCookie {
8740 cookie := c.NewCookie(true, false)
8741 c.NewRequest(freeColormapRequest(c, Cmap), cookie)
8742 return FreeColormapCookie{cookie}
8743 }
8744
8745
8746
8747 func (cook FreeColormapCookie) Check() error {
8748 return cook.Cookie.Check()
8749 }
8750
8751
8752
8753 func freeColormapRequest(c *xgb.Conn, Cmap Colormap) []byte {
8754 size := 8
8755 b := 0
8756 buf := make([]byte, size)
8757
8758 buf[b] = 79
8759 b += 1
8760
8761 b += 1
8762
8763 xgb.Put16(buf[b:], uint16(size/4))
8764 b += 2
8765
8766 xgb.Put32(buf[b:], uint32(Cmap))
8767 b += 4
8768
8769 return buf
8770 }
8771
8772
8773 type FreeColorsCookie struct {
8774 *xgb.Cookie
8775 }
8776
8777
8778
8779 func FreeColors(c *xgb.Conn, Cmap Colormap, PlaneMask uint32, Pixels []uint32) FreeColorsCookie {
8780 cookie := c.NewCookie(false, false)
8781 c.NewRequest(freeColorsRequest(c, Cmap, PlaneMask, Pixels), cookie)
8782 return FreeColorsCookie{cookie}
8783 }
8784
8785
8786
8787 func FreeColorsChecked(c *xgb.Conn, Cmap Colormap, PlaneMask uint32, Pixels []uint32) FreeColorsCookie {
8788 cookie := c.NewCookie(true, false)
8789 c.NewRequest(freeColorsRequest(c, Cmap, PlaneMask, Pixels), cookie)
8790 return FreeColorsCookie{cookie}
8791 }
8792
8793
8794
8795 func (cook FreeColorsCookie) Check() error {
8796 return cook.Cookie.Check()
8797 }
8798
8799
8800
8801 func freeColorsRequest(c *xgb.Conn, Cmap Colormap, PlaneMask uint32, Pixels []uint32) []byte {
8802 size := xgb.Pad((12 + xgb.Pad((len(Pixels) * 4))))
8803 b := 0
8804 buf := make([]byte, size)
8805
8806 buf[b] = 88
8807 b += 1
8808
8809 b += 1
8810
8811 xgb.Put16(buf[b:], uint16(size/4))
8812 b += 2
8813
8814 xgb.Put32(buf[b:], uint32(Cmap))
8815 b += 4
8816
8817 xgb.Put32(buf[b:], PlaneMask)
8818 b += 4
8819
8820 for i := 0; i < int(len(Pixels)); i++ {
8821 xgb.Put32(buf[b:], Pixels[i])
8822 b += 4
8823 }
8824
8825 return buf
8826 }
8827
8828
8829 type FreeCursorCookie struct {
8830 *xgb.Cookie
8831 }
8832
8833
8834
8835 func FreeCursor(c *xgb.Conn, Cursor Cursor) FreeCursorCookie {
8836 cookie := c.NewCookie(false, false)
8837 c.NewRequest(freeCursorRequest(c, Cursor), cookie)
8838 return FreeCursorCookie{cookie}
8839 }
8840
8841
8842
8843 func FreeCursorChecked(c *xgb.Conn, Cursor Cursor) FreeCursorCookie {
8844 cookie := c.NewCookie(true, false)
8845 c.NewRequest(freeCursorRequest(c, Cursor), cookie)
8846 return FreeCursorCookie{cookie}
8847 }
8848
8849
8850
8851 func (cook FreeCursorCookie) Check() error {
8852 return cook.Cookie.Check()
8853 }
8854
8855
8856
8857 func freeCursorRequest(c *xgb.Conn, Cursor Cursor) []byte {
8858 size := 8
8859 b := 0
8860 buf := make([]byte, size)
8861
8862 buf[b] = 95
8863 b += 1
8864
8865 b += 1
8866
8867 xgb.Put16(buf[b:], uint16(size/4))
8868 b += 2
8869
8870 xgb.Put32(buf[b:], uint32(Cursor))
8871 b += 4
8872
8873 return buf
8874 }
8875
8876
8877 type FreeGCCookie struct {
8878 *xgb.Cookie
8879 }
8880
8881
8882
8883 func FreeGC(c *xgb.Conn, Gc Gcontext) FreeGCCookie {
8884 cookie := c.NewCookie(false, false)
8885 c.NewRequest(freeGCRequest(c, Gc), cookie)
8886 return FreeGCCookie{cookie}
8887 }
8888
8889
8890
8891 func FreeGCChecked(c *xgb.Conn, Gc Gcontext) FreeGCCookie {
8892 cookie := c.NewCookie(true, false)
8893 c.NewRequest(freeGCRequest(c, Gc), cookie)
8894 return FreeGCCookie{cookie}
8895 }
8896
8897
8898
8899 func (cook FreeGCCookie) Check() error {
8900 return cook.Cookie.Check()
8901 }
8902
8903
8904
8905 func freeGCRequest(c *xgb.Conn, Gc Gcontext) []byte {
8906 size := 8
8907 b := 0
8908 buf := make([]byte, size)
8909
8910 buf[b] = 60
8911 b += 1
8912
8913 b += 1
8914
8915 xgb.Put16(buf[b:], uint16(size/4))
8916 b += 2
8917
8918 xgb.Put32(buf[b:], uint32(Gc))
8919 b += 4
8920
8921 return buf
8922 }
8923
8924
8925 type FreePixmapCookie struct {
8926 *xgb.Cookie
8927 }
8928
8929
8930
8931 func FreePixmap(c *xgb.Conn, Pixmap Pixmap) FreePixmapCookie {
8932 cookie := c.NewCookie(false, false)
8933 c.NewRequest(freePixmapRequest(c, Pixmap), cookie)
8934 return FreePixmapCookie{cookie}
8935 }
8936
8937
8938
8939 func FreePixmapChecked(c *xgb.Conn, Pixmap Pixmap) FreePixmapCookie {
8940 cookie := c.NewCookie(true, false)
8941 c.NewRequest(freePixmapRequest(c, Pixmap), cookie)
8942 return FreePixmapCookie{cookie}
8943 }
8944
8945
8946
8947 func (cook FreePixmapCookie) Check() error {
8948 return cook.Cookie.Check()
8949 }
8950
8951
8952
8953 func freePixmapRequest(c *xgb.Conn, Pixmap Pixmap) []byte {
8954 size := 8
8955 b := 0
8956 buf := make([]byte, size)
8957
8958 buf[b] = 54
8959 b += 1
8960
8961 b += 1
8962
8963 xgb.Put16(buf[b:], uint16(size/4))
8964 b += 2
8965
8966 xgb.Put32(buf[b:], uint32(Pixmap))
8967 b += 4
8968
8969 return buf
8970 }
8971
8972
8973 type GetAtomNameCookie struct {
8974 *xgb.Cookie
8975 }
8976
8977
8978
8979 func GetAtomName(c *xgb.Conn, Atom Atom) GetAtomNameCookie {
8980 cookie := c.NewCookie(true, true)
8981 c.NewRequest(getAtomNameRequest(c, Atom), cookie)
8982 return GetAtomNameCookie{cookie}
8983 }
8984
8985
8986
8987 func GetAtomNameUnchecked(c *xgb.Conn, Atom Atom) GetAtomNameCookie {
8988 cookie := c.NewCookie(false, true)
8989 c.NewRequest(getAtomNameRequest(c, Atom), cookie)
8990 return GetAtomNameCookie{cookie}
8991 }
8992
8993
8994 type GetAtomNameReply struct {
8995 Sequence uint16
8996 Length uint32
8997
8998 NameLen uint16
8999
9000 Name string
9001 }
9002
9003
9004 func (cook GetAtomNameCookie) Reply() (*GetAtomNameReply, error) {
9005 buf, err := cook.Cookie.Reply()
9006 if err != nil {
9007 return nil, err
9008 }
9009 if buf == nil {
9010 return nil, nil
9011 }
9012 return getAtomNameReply(buf), nil
9013 }
9014
9015
9016 func getAtomNameReply(buf []byte) *GetAtomNameReply {
9017 v := new(GetAtomNameReply)
9018 b := 1
9019
9020 b += 1
9021
9022 v.Sequence = xgb.Get16(buf[b:])
9023 b += 2
9024
9025 v.Length = xgb.Get32(buf[b:])
9026 b += 4
9027
9028 v.NameLen = xgb.Get16(buf[b:])
9029 b += 2
9030
9031 b += 22
9032
9033 {
9034 byteString := make([]byte, v.NameLen)
9035 copy(byteString[:v.NameLen], buf[b:])
9036 v.Name = string(byteString)
9037 b += int(v.NameLen)
9038 }
9039
9040 return v
9041 }
9042
9043
9044
9045 func getAtomNameRequest(c *xgb.Conn, Atom Atom) []byte {
9046 size := 8
9047 b := 0
9048 buf := make([]byte, size)
9049
9050 buf[b] = 17
9051 b += 1
9052
9053 b += 1
9054
9055 xgb.Put16(buf[b:], uint16(size/4))
9056 b += 2
9057
9058 xgb.Put32(buf[b:], uint32(Atom))
9059 b += 4
9060
9061 return buf
9062 }
9063
9064
9065 type GetFontPathCookie struct {
9066 *xgb.Cookie
9067 }
9068
9069
9070
9071 func GetFontPath(c *xgb.Conn) GetFontPathCookie {
9072 cookie := c.NewCookie(true, true)
9073 c.NewRequest(getFontPathRequest(c), cookie)
9074 return GetFontPathCookie{cookie}
9075 }
9076
9077
9078
9079 func GetFontPathUnchecked(c *xgb.Conn) GetFontPathCookie {
9080 cookie := c.NewCookie(false, true)
9081 c.NewRequest(getFontPathRequest(c), cookie)
9082 return GetFontPathCookie{cookie}
9083 }
9084
9085
9086 type GetFontPathReply struct {
9087 Sequence uint16
9088 Length uint32
9089
9090 PathLen uint16
9091
9092 Path []Str
9093 }
9094
9095
9096 func (cook GetFontPathCookie) Reply() (*GetFontPathReply, error) {
9097 buf, err := cook.Cookie.Reply()
9098 if err != nil {
9099 return nil, err
9100 }
9101 if buf == nil {
9102 return nil, nil
9103 }
9104 return getFontPathReply(buf), nil
9105 }
9106
9107
9108 func getFontPathReply(buf []byte) *GetFontPathReply {
9109 v := new(GetFontPathReply)
9110 b := 1
9111
9112 b += 1
9113
9114 v.Sequence = xgb.Get16(buf[b:])
9115 b += 2
9116
9117 v.Length = xgb.Get32(buf[b:])
9118 b += 4
9119
9120 v.PathLen = xgb.Get16(buf[b:])
9121 b += 2
9122
9123 b += 22
9124
9125 v.Path = make([]Str, v.PathLen)
9126 b += StrReadList(buf[b:], v.Path)
9127
9128 return v
9129 }
9130
9131
9132
9133 func getFontPathRequest(c *xgb.Conn) []byte {
9134 size := 4
9135 b := 0
9136 buf := make([]byte, size)
9137
9138 buf[b] = 52
9139 b += 1
9140
9141 b += 1
9142 xgb.Put16(buf[b:], uint16(size/4))
9143 b += 2
9144
9145 return buf
9146 }
9147
9148
9149 type GetGeometryCookie struct {
9150 *xgb.Cookie
9151 }
9152
9153
9154
9155 func GetGeometry(c *xgb.Conn, Drawable Drawable) GetGeometryCookie {
9156 cookie := c.NewCookie(true, true)
9157 c.NewRequest(getGeometryRequest(c, Drawable), cookie)
9158 return GetGeometryCookie{cookie}
9159 }
9160
9161
9162
9163 func GetGeometryUnchecked(c *xgb.Conn, Drawable Drawable) GetGeometryCookie {
9164 cookie := c.NewCookie(false, true)
9165 c.NewRequest(getGeometryRequest(c, Drawable), cookie)
9166 return GetGeometryCookie{cookie}
9167 }
9168
9169
9170 type GetGeometryReply struct {
9171 Sequence uint16
9172 Length uint32
9173 Depth byte
9174 Root Window
9175 X int16
9176 Y int16
9177 Width uint16
9178 Height uint16
9179 BorderWidth uint16
9180
9181 }
9182
9183
9184 func (cook GetGeometryCookie) Reply() (*GetGeometryReply, error) {
9185 buf, err := cook.Cookie.Reply()
9186 if err != nil {
9187 return nil, err
9188 }
9189 if buf == nil {
9190 return nil, nil
9191 }
9192 return getGeometryReply(buf), nil
9193 }
9194
9195
9196 func getGeometryReply(buf []byte) *GetGeometryReply {
9197 v := new(GetGeometryReply)
9198 b := 1
9199
9200 v.Depth = buf[b]
9201 b += 1
9202
9203 v.Sequence = xgb.Get16(buf[b:])
9204 b += 2
9205
9206 v.Length = xgb.Get32(buf[b:])
9207 b += 4
9208
9209 v.Root = Window(xgb.Get32(buf[b:]))
9210 b += 4
9211
9212 v.X = int16(xgb.Get16(buf[b:]))
9213 b += 2
9214
9215 v.Y = int16(xgb.Get16(buf[b:]))
9216 b += 2
9217
9218 v.Width = xgb.Get16(buf[b:])
9219 b += 2
9220
9221 v.Height = xgb.Get16(buf[b:])
9222 b += 2
9223
9224 v.BorderWidth = xgb.Get16(buf[b:])
9225 b += 2
9226
9227 b += 2
9228
9229 return v
9230 }
9231
9232
9233
9234 func getGeometryRequest(c *xgb.Conn, Drawable Drawable) []byte {
9235 size := 8
9236 b := 0
9237 buf := make([]byte, size)
9238
9239 buf[b] = 14
9240 b += 1
9241
9242 b += 1
9243
9244 xgb.Put16(buf[b:], uint16(size/4))
9245 b += 2
9246
9247 xgb.Put32(buf[b:], uint32(Drawable))
9248 b += 4
9249
9250 return buf
9251 }
9252
9253
9254 type GetImageCookie struct {
9255 *xgb.Cookie
9256 }
9257
9258
9259
9260 func GetImage(c *xgb.Conn, Format byte, Drawable Drawable, X int16, Y int16, Width uint16, Height uint16, PlaneMask uint32) GetImageCookie {
9261 cookie := c.NewCookie(true, true)
9262 c.NewRequest(getImageRequest(c, Format, Drawable, X, Y, Width, Height, PlaneMask), cookie)
9263 return GetImageCookie{cookie}
9264 }
9265
9266
9267
9268 func GetImageUnchecked(c *xgb.Conn, Format byte, Drawable Drawable, X int16, Y int16, Width uint16, Height uint16, PlaneMask uint32) GetImageCookie {
9269 cookie := c.NewCookie(false, true)
9270 c.NewRequest(getImageRequest(c, Format, Drawable, X, Y, Width, Height, PlaneMask), cookie)
9271 return GetImageCookie{cookie}
9272 }
9273
9274
9275 type GetImageReply struct {
9276 Sequence uint16
9277 Length uint32
9278 Depth byte
9279 Visual Visualid
9280
9281 Data []byte
9282 }
9283
9284
9285 func (cook GetImageCookie) Reply() (*GetImageReply, error) {
9286 buf, err := cook.Cookie.Reply()
9287 if err != nil {
9288 return nil, err
9289 }
9290 if buf == nil {
9291 return nil, nil
9292 }
9293 return getImageReply(buf), nil
9294 }
9295
9296
9297 func getImageReply(buf []byte) *GetImageReply {
9298 v := new(GetImageReply)
9299 b := 1
9300
9301 v.Depth = buf[b]
9302 b += 1
9303
9304 v.Sequence = xgb.Get16(buf[b:])
9305 b += 2
9306
9307 v.Length = xgb.Get32(buf[b:])
9308 b += 4
9309
9310 v.Visual = Visualid(xgb.Get32(buf[b:]))
9311 b += 4
9312
9313 b += 20
9314
9315 v.Data = make([]byte, (int(v.Length) * 4))
9316 copy(v.Data[:(int(v.Length)*4)], buf[b:])
9317 b += int((int(v.Length) * 4))
9318
9319 return v
9320 }
9321
9322
9323
9324 func getImageRequest(c *xgb.Conn, Format byte, Drawable Drawable, X int16, Y int16, Width uint16, Height uint16, PlaneMask uint32) []byte {
9325 size := 20
9326 b := 0
9327 buf := make([]byte, size)
9328
9329 buf[b] = 73
9330 b += 1
9331
9332 buf[b] = Format
9333 b += 1
9334
9335 xgb.Put16(buf[b:], uint16(size/4))
9336 b += 2
9337
9338 xgb.Put32(buf[b:], uint32(Drawable))
9339 b += 4
9340
9341 xgb.Put16(buf[b:], uint16(X))
9342 b += 2
9343
9344 xgb.Put16(buf[b:], uint16(Y))
9345 b += 2
9346
9347 xgb.Put16(buf[b:], Width)
9348 b += 2
9349
9350 xgb.Put16(buf[b:], Height)
9351 b += 2
9352
9353 xgb.Put32(buf[b:], PlaneMask)
9354 b += 4
9355
9356 return buf
9357 }
9358
9359
9360 type GetInputFocusCookie struct {
9361 *xgb.Cookie
9362 }
9363
9364
9365
9366 func GetInputFocus(c *xgb.Conn) GetInputFocusCookie {
9367 cookie := c.NewCookie(true, true)
9368 c.NewRequest(getInputFocusRequest(c), cookie)
9369 return GetInputFocusCookie{cookie}
9370 }
9371
9372
9373
9374 func GetInputFocusUnchecked(c *xgb.Conn) GetInputFocusCookie {
9375 cookie := c.NewCookie(false, true)
9376 c.NewRequest(getInputFocusRequest(c), cookie)
9377 return GetInputFocusCookie{cookie}
9378 }
9379
9380
9381 type GetInputFocusReply struct {
9382 Sequence uint16
9383 Length uint32
9384 RevertTo byte
9385 Focus Window
9386 }
9387
9388
9389 func (cook GetInputFocusCookie) Reply() (*GetInputFocusReply, error) {
9390 buf, err := cook.Cookie.Reply()
9391 if err != nil {
9392 return nil, err
9393 }
9394 if buf == nil {
9395 return nil, nil
9396 }
9397 return getInputFocusReply(buf), nil
9398 }
9399
9400
9401 func getInputFocusReply(buf []byte) *GetInputFocusReply {
9402 v := new(GetInputFocusReply)
9403 b := 1
9404
9405 v.RevertTo = buf[b]
9406 b += 1
9407
9408 v.Sequence = xgb.Get16(buf[b:])
9409 b += 2
9410
9411 v.Length = xgb.Get32(buf[b:])
9412 b += 4
9413
9414 v.Focus = Window(xgb.Get32(buf[b:]))
9415 b += 4
9416
9417 return v
9418 }
9419
9420
9421
9422 func getInputFocusRequest(c *xgb.Conn) []byte {
9423 size := 4
9424 b := 0
9425 buf := make([]byte, size)
9426
9427 buf[b] = 43
9428 b += 1
9429
9430 b += 1
9431 xgb.Put16(buf[b:], uint16(size/4))
9432 b += 2
9433
9434 return buf
9435 }
9436
9437
9438 type GetKeyboardControlCookie struct {
9439 *xgb.Cookie
9440 }
9441
9442
9443
9444 func GetKeyboardControl(c *xgb.Conn) GetKeyboardControlCookie {
9445 cookie := c.NewCookie(true, true)
9446 c.NewRequest(getKeyboardControlRequest(c), cookie)
9447 return GetKeyboardControlCookie{cookie}
9448 }
9449
9450
9451
9452 func GetKeyboardControlUnchecked(c *xgb.Conn) GetKeyboardControlCookie {
9453 cookie := c.NewCookie(false, true)
9454 c.NewRequest(getKeyboardControlRequest(c), cookie)
9455 return GetKeyboardControlCookie{cookie}
9456 }
9457
9458
9459 type GetKeyboardControlReply struct {
9460 Sequence uint16
9461 Length uint32
9462 GlobalAutoRepeat byte
9463 LedMask uint32
9464 KeyClickPercent byte
9465 BellPercent byte
9466 BellPitch uint16
9467 BellDuration uint16
9468
9469 AutoRepeats []byte
9470 }
9471
9472
9473 func (cook GetKeyboardControlCookie) Reply() (*GetKeyboardControlReply, error) {
9474 buf, err := cook.Cookie.Reply()
9475 if err != nil {
9476 return nil, err
9477 }
9478 if buf == nil {
9479 return nil, nil
9480 }
9481 return getKeyboardControlReply(buf), nil
9482 }
9483
9484
9485 func getKeyboardControlReply(buf []byte) *GetKeyboardControlReply {
9486 v := new(GetKeyboardControlReply)
9487 b := 1
9488
9489 v.GlobalAutoRepeat = buf[b]
9490 b += 1
9491
9492 v.Sequence = xgb.Get16(buf[b:])
9493 b += 2
9494
9495 v.Length = xgb.Get32(buf[b:])
9496 b += 4
9497
9498 v.LedMask = xgb.Get32(buf[b:])
9499 b += 4
9500
9501 v.KeyClickPercent = buf[b]
9502 b += 1
9503
9504 v.BellPercent = buf[b]
9505 b += 1
9506
9507 v.BellPitch = xgb.Get16(buf[b:])
9508 b += 2
9509
9510 v.BellDuration = xgb.Get16(buf[b:])
9511 b += 2
9512
9513 b += 2
9514
9515 v.AutoRepeats = make([]byte, 32)
9516 copy(v.AutoRepeats[:32], buf[b:])
9517 b += int(32)
9518
9519 return v
9520 }
9521
9522
9523
9524 func getKeyboardControlRequest(c *xgb.Conn) []byte {
9525 size := 4
9526 b := 0
9527 buf := make([]byte, size)
9528
9529 buf[b] = 103
9530 b += 1
9531
9532 b += 1
9533 xgb.Put16(buf[b:], uint16(size/4))
9534 b += 2
9535
9536 return buf
9537 }
9538
9539
9540 type GetKeyboardMappingCookie struct {
9541 *xgb.Cookie
9542 }
9543
9544
9545
9546 func GetKeyboardMapping(c *xgb.Conn, FirstKeycode Keycode, Count byte) GetKeyboardMappingCookie {
9547 cookie := c.NewCookie(true, true)
9548 c.NewRequest(getKeyboardMappingRequest(c, FirstKeycode, Count), cookie)
9549 return GetKeyboardMappingCookie{cookie}
9550 }
9551
9552
9553
9554 func GetKeyboardMappingUnchecked(c *xgb.Conn, FirstKeycode Keycode, Count byte) GetKeyboardMappingCookie {
9555 cookie := c.NewCookie(false, true)
9556 c.NewRequest(getKeyboardMappingRequest(c, FirstKeycode, Count), cookie)
9557 return GetKeyboardMappingCookie{cookie}
9558 }
9559
9560
9561 type GetKeyboardMappingReply struct {
9562 Sequence uint16
9563 Length uint32
9564 KeysymsPerKeycode byte
9565
9566 Keysyms []Keysym
9567 }
9568
9569
9570 func (cook GetKeyboardMappingCookie) Reply() (*GetKeyboardMappingReply, error) {
9571 buf, err := cook.Cookie.Reply()
9572 if err != nil {
9573 return nil, err
9574 }
9575 if buf == nil {
9576 return nil, nil
9577 }
9578 return getKeyboardMappingReply(buf), nil
9579 }
9580
9581
9582 func getKeyboardMappingReply(buf []byte) *GetKeyboardMappingReply {
9583 v := new(GetKeyboardMappingReply)
9584 b := 1
9585
9586 v.KeysymsPerKeycode = buf[b]
9587 b += 1
9588
9589 v.Sequence = xgb.Get16(buf[b:])
9590 b += 2
9591
9592 v.Length = xgb.Get32(buf[b:])
9593 b += 4
9594
9595 b += 24
9596
9597 v.Keysyms = make([]Keysym, v.Length)
9598 for i := 0; i < int(v.Length); i++ {
9599 v.Keysyms[i] = Keysym(xgb.Get32(buf[b:]))
9600 b += 4
9601 }
9602
9603 return v
9604 }
9605
9606
9607
9608 func getKeyboardMappingRequest(c *xgb.Conn, FirstKeycode Keycode, Count byte) []byte {
9609 size := 8
9610 b := 0
9611 buf := make([]byte, size)
9612
9613 buf[b] = 101
9614 b += 1
9615
9616 b += 1
9617
9618 xgb.Put16(buf[b:], uint16(size/4))
9619 b += 2
9620
9621 buf[b] = byte(FirstKeycode)
9622 b += 1
9623
9624 buf[b] = Count
9625 b += 1
9626
9627 return buf
9628 }
9629
9630
9631 type GetModifierMappingCookie struct {
9632 *xgb.Cookie
9633 }
9634
9635
9636
9637 func GetModifierMapping(c *xgb.Conn) GetModifierMappingCookie {
9638 cookie := c.NewCookie(true, true)
9639 c.NewRequest(getModifierMappingRequest(c), cookie)
9640 return GetModifierMappingCookie{cookie}
9641 }
9642
9643
9644
9645 func GetModifierMappingUnchecked(c *xgb.Conn) GetModifierMappingCookie {
9646 cookie := c.NewCookie(false, true)
9647 c.NewRequest(getModifierMappingRequest(c), cookie)
9648 return GetModifierMappingCookie{cookie}
9649 }
9650
9651
9652 type GetModifierMappingReply struct {
9653 Sequence uint16
9654 Length uint32
9655 KeycodesPerModifier byte
9656
9657 Keycodes []Keycode
9658 }
9659
9660
9661 func (cook GetModifierMappingCookie) Reply() (*GetModifierMappingReply, error) {
9662 buf, err := cook.Cookie.Reply()
9663 if err != nil {
9664 return nil, err
9665 }
9666 if buf == nil {
9667 return nil, nil
9668 }
9669 return getModifierMappingReply(buf), nil
9670 }
9671
9672
9673 func getModifierMappingReply(buf []byte) *GetModifierMappingReply {
9674 v := new(GetModifierMappingReply)
9675 b := 1
9676
9677 v.KeycodesPerModifier = buf[b]
9678 b += 1
9679
9680 v.Sequence = xgb.Get16(buf[b:])
9681 b += 2
9682
9683 v.Length = xgb.Get32(buf[b:])
9684 b += 4
9685
9686 b += 24
9687
9688 v.Keycodes = make([]Keycode, (int(v.KeycodesPerModifier) * 8))
9689 for i := 0; i < int((int(v.KeycodesPerModifier) * 8)); i++ {
9690 v.Keycodes[i] = Keycode(buf[b])
9691 b += 1
9692 }
9693
9694 return v
9695 }
9696
9697
9698
9699 func getModifierMappingRequest(c *xgb.Conn) []byte {
9700 size := 4
9701 b := 0
9702 buf := make([]byte, size)
9703
9704 buf[b] = 119
9705 b += 1
9706
9707 b += 1
9708 xgb.Put16(buf[b:], uint16(size/4))
9709 b += 2
9710
9711 return buf
9712 }
9713
9714
9715 type GetMotionEventsCookie struct {
9716 *xgb.Cookie
9717 }
9718
9719
9720
9721 func GetMotionEvents(c *xgb.Conn, Window Window, Start Timestamp, Stop Timestamp) GetMotionEventsCookie {
9722 cookie := c.NewCookie(true, true)
9723 c.NewRequest(getMotionEventsRequest(c, Window, Start, Stop), cookie)
9724 return GetMotionEventsCookie{cookie}
9725 }
9726
9727
9728
9729 func GetMotionEventsUnchecked(c *xgb.Conn, Window Window, Start Timestamp, Stop Timestamp) GetMotionEventsCookie {
9730 cookie := c.NewCookie(false, true)
9731 c.NewRequest(getMotionEventsRequest(c, Window, Start, Stop), cookie)
9732 return GetMotionEventsCookie{cookie}
9733 }
9734
9735
9736 type GetMotionEventsReply struct {
9737 Sequence uint16
9738 Length uint32
9739
9740 EventsLen uint32
9741
9742 Events []Timecoord
9743 }
9744
9745
9746 func (cook GetMotionEventsCookie) Reply() (*GetMotionEventsReply, error) {
9747 buf, err := cook.Cookie.Reply()
9748 if err != nil {
9749 return nil, err
9750 }
9751 if buf == nil {
9752 return nil, nil
9753 }
9754 return getMotionEventsReply(buf), nil
9755 }
9756
9757
9758 func getMotionEventsReply(buf []byte) *GetMotionEventsReply {
9759 v := new(GetMotionEventsReply)
9760 b := 1
9761
9762 b += 1
9763
9764 v.Sequence = xgb.Get16(buf[b:])
9765 b += 2
9766
9767 v.Length = xgb.Get32(buf[b:])
9768 b += 4
9769
9770 v.EventsLen = xgb.Get32(buf[b:])
9771 b += 4
9772
9773 b += 20
9774
9775 v.Events = make([]Timecoord, v.EventsLen)
9776 b += TimecoordReadList(buf[b:], v.Events)
9777
9778 return v
9779 }
9780
9781
9782
9783 func getMotionEventsRequest(c *xgb.Conn, Window Window, Start Timestamp, Stop Timestamp) []byte {
9784 size := 16
9785 b := 0
9786 buf := make([]byte, size)
9787
9788 buf[b] = 39
9789 b += 1
9790
9791 b += 1
9792
9793 xgb.Put16(buf[b:], uint16(size/4))
9794 b += 2
9795
9796 xgb.Put32(buf[b:], uint32(Window))
9797 b += 4
9798
9799 xgb.Put32(buf[b:], uint32(Start))
9800 b += 4
9801
9802 xgb.Put32(buf[b:], uint32(Stop))
9803 b += 4
9804
9805 return buf
9806 }
9807
9808
9809 type GetPointerControlCookie struct {
9810 *xgb.Cookie
9811 }
9812
9813
9814
9815 func GetPointerControl(c *xgb.Conn) GetPointerControlCookie {
9816 cookie := c.NewCookie(true, true)
9817 c.NewRequest(getPointerControlRequest(c), cookie)
9818 return GetPointerControlCookie{cookie}
9819 }
9820
9821
9822
9823 func GetPointerControlUnchecked(c *xgb.Conn) GetPointerControlCookie {
9824 cookie := c.NewCookie(false, true)
9825 c.NewRequest(getPointerControlRequest(c), cookie)
9826 return GetPointerControlCookie{cookie}
9827 }
9828
9829
9830 type GetPointerControlReply struct {
9831 Sequence uint16
9832 Length uint32
9833
9834 AccelerationNumerator uint16
9835 AccelerationDenominator uint16
9836 Threshold uint16
9837
9838 }
9839
9840
9841 func (cook GetPointerControlCookie) Reply() (*GetPointerControlReply, error) {
9842 buf, err := cook.Cookie.Reply()
9843 if err != nil {
9844 return nil, err
9845 }
9846 if buf == nil {
9847 return nil, nil
9848 }
9849 return getPointerControlReply(buf), nil
9850 }
9851
9852
9853 func getPointerControlReply(buf []byte) *GetPointerControlReply {
9854 v := new(GetPointerControlReply)
9855 b := 1
9856
9857 b += 1
9858
9859 v.Sequence = xgb.Get16(buf[b:])
9860 b += 2
9861
9862 v.Length = xgb.Get32(buf[b:])
9863 b += 4
9864
9865 v.AccelerationNumerator = xgb.Get16(buf[b:])
9866 b += 2
9867
9868 v.AccelerationDenominator = xgb.Get16(buf[b:])
9869 b += 2
9870
9871 v.Threshold = xgb.Get16(buf[b:])
9872 b += 2
9873
9874 b += 18
9875
9876 return v
9877 }
9878
9879
9880
9881 func getPointerControlRequest(c *xgb.Conn) []byte {
9882 size := 4
9883 b := 0
9884 buf := make([]byte, size)
9885
9886 buf[b] = 106
9887 b += 1
9888
9889 b += 1
9890 xgb.Put16(buf[b:], uint16(size/4))
9891 b += 2
9892
9893 return buf
9894 }
9895
9896
9897 type GetPointerMappingCookie struct {
9898 *xgb.Cookie
9899 }
9900
9901
9902
9903 func GetPointerMapping(c *xgb.Conn) GetPointerMappingCookie {
9904 cookie := c.NewCookie(true, true)
9905 c.NewRequest(getPointerMappingRequest(c), cookie)
9906 return GetPointerMappingCookie{cookie}
9907 }
9908
9909
9910
9911 func GetPointerMappingUnchecked(c *xgb.Conn) GetPointerMappingCookie {
9912 cookie := c.NewCookie(false, true)
9913 c.NewRequest(getPointerMappingRequest(c), cookie)
9914 return GetPointerMappingCookie{cookie}
9915 }
9916
9917
9918 type GetPointerMappingReply struct {
9919 Sequence uint16
9920 Length uint32
9921 MapLen byte
9922
9923 Map []byte
9924 }
9925
9926
9927 func (cook GetPointerMappingCookie) Reply() (*GetPointerMappingReply, error) {
9928 buf, err := cook.Cookie.Reply()
9929 if err != nil {
9930 return nil, err
9931 }
9932 if buf == nil {
9933 return nil, nil
9934 }
9935 return getPointerMappingReply(buf), nil
9936 }
9937
9938
9939 func getPointerMappingReply(buf []byte) *GetPointerMappingReply {
9940 v := new(GetPointerMappingReply)
9941 b := 1
9942
9943 v.MapLen = buf[b]
9944 b += 1
9945
9946 v.Sequence = xgb.Get16(buf[b:])
9947 b += 2
9948
9949 v.Length = xgb.Get32(buf[b:])
9950 b += 4
9951
9952 b += 24
9953
9954 v.Map = make([]byte, v.MapLen)
9955 copy(v.Map[:v.MapLen], buf[b:])
9956 b += int(v.MapLen)
9957
9958 return v
9959 }
9960
9961
9962
9963 func getPointerMappingRequest(c *xgb.Conn) []byte {
9964 size := 4
9965 b := 0
9966 buf := make([]byte, size)
9967
9968 buf[b] = 117
9969 b += 1
9970
9971 b += 1
9972 xgb.Put16(buf[b:], uint16(size/4))
9973 b += 2
9974
9975 return buf
9976 }
9977
9978
9979 type GetPropertyCookie struct {
9980 *xgb.Cookie
9981 }
9982
9983
9984
9985 func GetProperty(c *xgb.Conn, Delete bool, Window Window, Property Atom, Type Atom, LongOffset uint32, LongLength uint32) GetPropertyCookie {
9986 cookie := c.NewCookie(true, true)
9987 c.NewRequest(getPropertyRequest(c, Delete, Window, Property, Type, LongOffset, LongLength), cookie)
9988 return GetPropertyCookie{cookie}
9989 }
9990
9991
9992
9993 func GetPropertyUnchecked(c *xgb.Conn, Delete bool, Window Window, Property Atom, Type Atom, LongOffset uint32, LongLength uint32) GetPropertyCookie {
9994 cookie := c.NewCookie(false, true)
9995 c.NewRequest(getPropertyRequest(c, Delete, Window, Property, Type, LongOffset, LongLength), cookie)
9996 return GetPropertyCookie{cookie}
9997 }
9998
9999
10000 type GetPropertyReply struct {
10001 Sequence uint16
10002 Length uint32
10003 Format byte
10004 Type Atom
10005 BytesAfter uint32
10006 ValueLen uint32
10007
10008 Value []byte
10009 }
10010
10011
10012 func (cook GetPropertyCookie) Reply() (*GetPropertyReply, error) {
10013 buf, err := cook.Cookie.Reply()
10014 if err != nil {
10015 return nil, err
10016 }
10017 if buf == nil {
10018 return nil, nil
10019 }
10020 return getPropertyReply(buf), nil
10021 }
10022
10023
10024 func getPropertyReply(buf []byte) *GetPropertyReply {
10025 v := new(GetPropertyReply)
10026 b := 1
10027
10028 v.Format = buf[b]
10029 b += 1
10030
10031 v.Sequence = xgb.Get16(buf[b:])
10032 b += 2
10033
10034 v.Length = xgb.Get32(buf[b:])
10035 b += 4
10036
10037 v.Type = Atom(xgb.Get32(buf[b:]))
10038 b += 4
10039
10040 v.BytesAfter = xgb.Get32(buf[b:])
10041 b += 4
10042
10043 v.ValueLen = xgb.Get32(buf[b:])
10044 b += 4
10045
10046 b += 12
10047
10048 v.Value = make([]byte, (int(v.ValueLen) * (int(v.Format) / 8)))
10049 copy(v.Value[:(int(v.ValueLen)*(int(v.Format)/8))], buf[b:])
10050 b += int((int(v.ValueLen) * (int(v.Format) / 8)))
10051
10052 return v
10053 }
10054
10055
10056
10057 func getPropertyRequest(c *xgb.Conn, Delete bool, Window Window, Property Atom, Type Atom, LongOffset uint32, LongLength uint32) []byte {
10058 size := 24
10059 b := 0
10060 buf := make([]byte, size)
10061
10062 buf[b] = 20
10063 b += 1
10064
10065 if Delete {
10066 buf[b] = 1
10067 } else {
10068 buf[b] = 0
10069 }
10070 b += 1
10071
10072 xgb.Put16(buf[b:], uint16(size/4))
10073 b += 2
10074
10075 xgb.Put32(buf[b:], uint32(Window))
10076 b += 4
10077
10078 xgb.Put32(buf[b:], uint32(Property))
10079 b += 4
10080
10081 xgb.Put32(buf[b:], uint32(Type))
10082 b += 4
10083
10084 xgb.Put32(buf[b:], LongOffset)
10085 b += 4
10086
10087 xgb.Put32(buf[b:], LongLength)
10088 b += 4
10089
10090 return buf
10091 }
10092
10093
10094 type GetScreenSaverCookie struct {
10095 *xgb.Cookie
10096 }
10097
10098
10099
10100 func GetScreenSaver(c *xgb.Conn) GetScreenSaverCookie {
10101 cookie := c.NewCookie(true, true)
10102 c.NewRequest(getScreenSaverRequest(c), cookie)
10103 return GetScreenSaverCookie{cookie}
10104 }
10105
10106
10107
10108 func GetScreenSaverUnchecked(c *xgb.Conn) GetScreenSaverCookie {
10109 cookie := c.NewCookie(false, true)
10110 c.NewRequest(getScreenSaverRequest(c), cookie)
10111 return GetScreenSaverCookie{cookie}
10112 }
10113
10114
10115 type GetScreenSaverReply struct {
10116 Sequence uint16
10117 Length uint32
10118
10119 Timeout uint16
10120 Interval uint16
10121 PreferBlanking byte
10122 AllowExposures byte
10123
10124 }
10125
10126
10127 func (cook GetScreenSaverCookie) Reply() (*GetScreenSaverReply, error) {
10128 buf, err := cook.Cookie.Reply()
10129 if err != nil {
10130 return nil, err
10131 }
10132 if buf == nil {
10133 return nil, nil
10134 }
10135 return getScreenSaverReply(buf), nil
10136 }
10137
10138
10139 func getScreenSaverReply(buf []byte) *GetScreenSaverReply {
10140 v := new(GetScreenSaverReply)
10141 b := 1
10142
10143 b += 1
10144
10145 v.Sequence = xgb.Get16(buf[b:])
10146 b += 2
10147
10148 v.Length = xgb.Get32(buf[b:])
10149 b += 4
10150
10151 v.Timeout = xgb.Get16(buf[b:])
10152 b += 2
10153
10154 v.Interval = xgb.Get16(buf[b:])
10155 b += 2
10156
10157 v.PreferBlanking = buf[b]
10158 b += 1
10159
10160 v.AllowExposures = buf[b]
10161 b += 1
10162
10163 b += 18
10164
10165 return v
10166 }
10167
10168
10169
10170 func getScreenSaverRequest(c *xgb.Conn) []byte {
10171 size := 4
10172 b := 0
10173 buf := make([]byte, size)
10174
10175 buf[b] = 108
10176 b += 1
10177
10178 b += 1
10179 xgb.Put16(buf[b:], uint16(size/4))
10180 b += 2
10181
10182 return buf
10183 }
10184
10185
10186 type GetSelectionOwnerCookie struct {
10187 *xgb.Cookie
10188 }
10189
10190
10191
10192 func GetSelectionOwner(c *xgb.Conn, Selection Atom) GetSelectionOwnerCookie {
10193 cookie := c.NewCookie(true, true)
10194 c.NewRequest(getSelectionOwnerRequest(c, Selection), cookie)
10195 return GetSelectionOwnerCookie{cookie}
10196 }
10197
10198
10199
10200 func GetSelectionOwnerUnchecked(c *xgb.Conn, Selection Atom) GetSelectionOwnerCookie {
10201 cookie := c.NewCookie(false, true)
10202 c.NewRequest(getSelectionOwnerRequest(c, Selection), cookie)
10203 return GetSelectionOwnerCookie{cookie}
10204 }
10205
10206
10207 type GetSelectionOwnerReply struct {
10208 Sequence uint16
10209 Length uint32
10210
10211 Owner Window
10212 }
10213
10214
10215 func (cook GetSelectionOwnerCookie) Reply() (*GetSelectionOwnerReply, error) {
10216 buf, err := cook.Cookie.Reply()
10217 if err != nil {
10218 return nil, err
10219 }
10220 if buf == nil {
10221 return nil, nil
10222 }
10223 return getSelectionOwnerReply(buf), nil
10224 }
10225
10226
10227 func getSelectionOwnerReply(buf []byte) *GetSelectionOwnerReply {
10228 v := new(GetSelectionOwnerReply)
10229 b := 1
10230
10231 b += 1
10232
10233 v.Sequence = xgb.Get16(buf[b:])
10234 b += 2
10235
10236 v.Length = xgb.Get32(buf[b:])
10237 b += 4
10238
10239 v.Owner = Window(xgb.Get32(buf[b:]))
10240 b += 4
10241
10242 return v
10243 }
10244
10245
10246
10247 func getSelectionOwnerRequest(c *xgb.Conn, Selection Atom) []byte {
10248 size := 8
10249 b := 0
10250 buf := make([]byte, size)
10251
10252 buf[b] = 23
10253 b += 1
10254
10255 b += 1
10256
10257 xgb.Put16(buf[b:], uint16(size/4))
10258 b += 2
10259
10260 xgb.Put32(buf[b:], uint32(Selection))
10261 b += 4
10262
10263 return buf
10264 }
10265
10266
10267 type GetWindowAttributesCookie struct {
10268 *xgb.Cookie
10269 }
10270
10271
10272
10273 func GetWindowAttributes(c *xgb.Conn, Window Window) GetWindowAttributesCookie {
10274 cookie := c.NewCookie(true, true)
10275 c.NewRequest(getWindowAttributesRequest(c, Window), cookie)
10276 return GetWindowAttributesCookie{cookie}
10277 }
10278
10279
10280
10281 func GetWindowAttributesUnchecked(c *xgb.Conn, Window Window) GetWindowAttributesCookie {
10282 cookie := c.NewCookie(false, true)
10283 c.NewRequest(getWindowAttributesRequest(c, Window), cookie)
10284 return GetWindowAttributesCookie{cookie}
10285 }
10286
10287
10288 type GetWindowAttributesReply struct {
10289 Sequence uint16
10290 Length uint32
10291 BackingStore byte
10292 Visual Visualid
10293 Class uint16
10294 BitGravity byte
10295 WinGravity byte
10296 BackingPlanes uint32
10297 BackingPixel uint32
10298 SaveUnder bool
10299 MapIsInstalled bool
10300 MapState byte
10301 OverrideRedirect bool
10302 Colormap Colormap
10303 AllEventMasks uint32
10304 YourEventMask uint32
10305 DoNotPropagateMask uint16
10306
10307 }
10308
10309
10310 func (cook GetWindowAttributesCookie) Reply() (*GetWindowAttributesReply, error) {
10311 buf, err := cook.Cookie.Reply()
10312 if err != nil {
10313 return nil, err
10314 }
10315 if buf == nil {
10316 return nil, nil
10317 }
10318 return getWindowAttributesReply(buf), nil
10319 }
10320
10321
10322 func getWindowAttributesReply(buf []byte) *GetWindowAttributesReply {
10323 v := new(GetWindowAttributesReply)
10324 b := 1
10325
10326 v.BackingStore = buf[b]
10327 b += 1
10328
10329 v.Sequence = xgb.Get16(buf[b:])
10330 b += 2
10331
10332 v.Length = xgb.Get32(buf[b:])
10333 b += 4
10334
10335 v.Visual = Visualid(xgb.Get32(buf[b:]))
10336 b += 4
10337
10338 v.Class = xgb.Get16(buf[b:])
10339 b += 2
10340
10341 v.BitGravity = buf[b]
10342 b += 1
10343
10344 v.WinGravity = buf[b]
10345 b += 1
10346
10347 v.BackingPlanes = xgb.Get32(buf[b:])
10348 b += 4
10349
10350 v.BackingPixel = xgb.Get32(buf[b:])
10351 b += 4
10352
10353 if buf[b] == 1 {
10354 v.SaveUnder = true
10355 } else {
10356 v.SaveUnder = false
10357 }
10358 b += 1
10359
10360 if buf[b] == 1 {
10361 v.MapIsInstalled = true
10362 } else {
10363 v.MapIsInstalled = false
10364 }
10365 b += 1
10366
10367 v.MapState = buf[b]
10368 b += 1
10369
10370 if buf[b] == 1 {
10371 v.OverrideRedirect = true
10372 } else {
10373 v.OverrideRedirect = false
10374 }
10375 b += 1
10376
10377 v.Colormap = Colormap(xgb.Get32(buf[b:]))
10378 b += 4
10379
10380 v.AllEventMasks = xgb.Get32(buf[b:])
10381 b += 4
10382
10383 v.YourEventMask = xgb.Get32(buf[b:])
10384 b += 4
10385
10386 v.DoNotPropagateMask = xgb.Get16(buf[b:])
10387 b += 2
10388
10389 b += 2
10390
10391 return v
10392 }
10393
10394
10395
10396 func getWindowAttributesRequest(c *xgb.Conn, Window Window) []byte {
10397 size := 8
10398 b := 0
10399 buf := make([]byte, size)
10400
10401 buf[b] = 3
10402 b += 1
10403
10404 b += 1
10405
10406 xgb.Put16(buf[b:], uint16(size/4))
10407 b += 2
10408
10409 xgb.Put32(buf[b:], uint32(Window))
10410 b += 4
10411
10412 return buf
10413 }
10414
10415
10416 type GrabButtonCookie struct {
10417 *xgb.Cookie
10418 }
10419
10420
10421
10422 func GrabButton(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, EventMask uint16, PointerMode byte, KeyboardMode byte, ConfineTo Window, Cursor Cursor, Button byte, Modifiers uint16) GrabButtonCookie {
10423 cookie := c.NewCookie(false, false)
10424 c.NewRequest(grabButtonRequest(c, OwnerEvents, GrabWindow, EventMask, PointerMode, KeyboardMode, ConfineTo, Cursor, Button, Modifiers), cookie)
10425 return GrabButtonCookie{cookie}
10426 }
10427
10428
10429
10430 func GrabButtonChecked(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, EventMask uint16, PointerMode byte, KeyboardMode byte, ConfineTo Window, Cursor Cursor, Button byte, Modifiers uint16) GrabButtonCookie {
10431 cookie := c.NewCookie(true, false)
10432 c.NewRequest(grabButtonRequest(c, OwnerEvents, GrabWindow, EventMask, PointerMode, KeyboardMode, ConfineTo, Cursor, Button, Modifiers), cookie)
10433 return GrabButtonCookie{cookie}
10434 }
10435
10436
10437
10438 func (cook GrabButtonCookie) Check() error {
10439 return cook.Cookie.Check()
10440 }
10441
10442
10443
10444 func grabButtonRequest(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, EventMask uint16, PointerMode byte, KeyboardMode byte, ConfineTo Window, Cursor Cursor, Button byte, Modifiers uint16) []byte {
10445 size := 24
10446 b := 0
10447 buf := make([]byte, size)
10448
10449 buf[b] = 28
10450 b += 1
10451
10452 if OwnerEvents {
10453 buf[b] = 1
10454 } else {
10455 buf[b] = 0
10456 }
10457 b += 1
10458
10459 xgb.Put16(buf[b:], uint16(size/4))
10460 b += 2
10461
10462 xgb.Put32(buf[b:], uint32(GrabWindow))
10463 b += 4
10464
10465 xgb.Put16(buf[b:], EventMask)
10466 b += 2
10467
10468 buf[b] = PointerMode
10469 b += 1
10470
10471 buf[b] = KeyboardMode
10472 b += 1
10473
10474 xgb.Put32(buf[b:], uint32(ConfineTo))
10475 b += 4
10476
10477 xgb.Put32(buf[b:], uint32(Cursor))
10478 b += 4
10479
10480 buf[b] = Button
10481 b += 1
10482
10483 b += 1
10484
10485 xgb.Put16(buf[b:], Modifiers)
10486 b += 2
10487
10488 return buf
10489 }
10490
10491
10492 type GrabKeyCookie struct {
10493 *xgb.Cookie
10494 }
10495
10496
10497
10498 func GrabKey(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, Modifiers uint16, Key Keycode, PointerMode byte, KeyboardMode byte) GrabKeyCookie {
10499 cookie := c.NewCookie(false, false)
10500 c.NewRequest(grabKeyRequest(c, OwnerEvents, GrabWindow, Modifiers, Key, PointerMode, KeyboardMode), cookie)
10501 return GrabKeyCookie{cookie}
10502 }
10503
10504
10505
10506 func GrabKeyChecked(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, Modifiers uint16, Key Keycode, PointerMode byte, KeyboardMode byte) GrabKeyCookie {
10507 cookie := c.NewCookie(true, false)
10508 c.NewRequest(grabKeyRequest(c, OwnerEvents, GrabWindow, Modifiers, Key, PointerMode, KeyboardMode), cookie)
10509 return GrabKeyCookie{cookie}
10510 }
10511
10512
10513
10514 func (cook GrabKeyCookie) Check() error {
10515 return cook.Cookie.Check()
10516 }
10517
10518
10519
10520 func grabKeyRequest(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, Modifiers uint16, Key Keycode, PointerMode byte, KeyboardMode byte) []byte {
10521 size := 16
10522 b := 0
10523 buf := make([]byte, size)
10524
10525 buf[b] = 33
10526 b += 1
10527
10528 if OwnerEvents {
10529 buf[b] = 1
10530 } else {
10531 buf[b] = 0
10532 }
10533 b += 1
10534
10535 xgb.Put16(buf[b:], uint16(size/4))
10536 b += 2
10537
10538 xgb.Put32(buf[b:], uint32(GrabWindow))
10539 b += 4
10540
10541 xgb.Put16(buf[b:], Modifiers)
10542 b += 2
10543
10544 buf[b] = byte(Key)
10545 b += 1
10546
10547 buf[b] = PointerMode
10548 b += 1
10549
10550 buf[b] = KeyboardMode
10551 b += 1
10552
10553 b += 3
10554
10555 return buf
10556 }
10557
10558
10559 type GrabKeyboardCookie struct {
10560 *xgb.Cookie
10561 }
10562
10563
10564
10565 func GrabKeyboard(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, Time Timestamp, PointerMode byte, KeyboardMode byte) GrabKeyboardCookie {
10566 cookie := c.NewCookie(true, true)
10567 c.NewRequest(grabKeyboardRequest(c, OwnerEvents, GrabWindow, Time, PointerMode, KeyboardMode), cookie)
10568 return GrabKeyboardCookie{cookie}
10569 }
10570
10571
10572
10573 func GrabKeyboardUnchecked(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, Time Timestamp, PointerMode byte, KeyboardMode byte) GrabKeyboardCookie {
10574 cookie := c.NewCookie(false, true)
10575 c.NewRequest(grabKeyboardRequest(c, OwnerEvents, GrabWindow, Time, PointerMode, KeyboardMode), cookie)
10576 return GrabKeyboardCookie{cookie}
10577 }
10578
10579
10580 type GrabKeyboardReply struct {
10581 Sequence uint16
10582 Length uint32
10583 Status byte
10584 }
10585
10586
10587 func (cook GrabKeyboardCookie) Reply() (*GrabKeyboardReply, error) {
10588 buf, err := cook.Cookie.Reply()
10589 if err != nil {
10590 return nil, err
10591 }
10592 if buf == nil {
10593 return nil, nil
10594 }
10595 return grabKeyboardReply(buf), nil
10596 }
10597
10598
10599 func grabKeyboardReply(buf []byte) *GrabKeyboardReply {
10600 v := new(GrabKeyboardReply)
10601 b := 1
10602
10603 v.Status = buf[b]
10604 b += 1
10605
10606 v.Sequence = xgb.Get16(buf[b:])
10607 b += 2
10608
10609 v.Length = xgb.Get32(buf[b:])
10610 b += 4
10611
10612 return v
10613 }
10614
10615
10616
10617 func grabKeyboardRequest(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, Time Timestamp, PointerMode byte, KeyboardMode byte) []byte {
10618 size := 16
10619 b := 0
10620 buf := make([]byte, size)
10621
10622 buf[b] = 31
10623 b += 1
10624
10625 if OwnerEvents {
10626 buf[b] = 1
10627 } else {
10628 buf[b] = 0
10629 }
10630 b += 1
10631
10632 xgb.Put16(buf[b:], uint16(size/4))
10633 b += 2
10634
10635 xgb.Put32(buf[b:], uint32(GrabWindow))
10636 b += 4
10637
10638 xgb.Put32(buf[b:], uint32(Time))
10639 b += 4
10640
10641 buf[b] = PointerMode
10642 b += 1
10643
10644 buf[b] = KeyboardMode
10645 b += 1
10646
10647 b += 2
10648
10649 return buf
10650 }
10651
10652
10653 type GrabPointerCookie struct {
10654 *xgb.Cookie
10655 }
10656
10657
10658
10659 func GrabPointer(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, EventMask uint16, PointerMode byte, KeyboardMode byte, ConfineTo Window, Cursor Cursor, Time Timestamp) GrabPointerCookie {
10660 cookie := c.NewCookie(true, true)
10661 c.NewRequest(grabPointerRequest(c, OwnerEvents, GrabWindow, EventMask, PointerMode, KeyboardMode, ConfineTo, Cursor, Time), cookie)
10662 return GrabPointerCookie{cookie}
10663 }
10664
10665
10666
10667 func GrabPointerUnchecked(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, EventMask uint16, PointerMode byte, KeyboardMode byte, ConfineTo Window, Cursor Cursor, Time Timestamp) GrabPointerCookie {
10668 cookie := c.NewCookie(false, true)
10669 c.NewRequest(grabPointerRequest(c, OwnerEvents, GrabWindow, EventMask, PointerMode, KeyboardMode, ConfineTo, Cursor, Time), cookie)
10670 return GrabPointerCookie{cookie}
10671 }
10672
10673
10674 type GrabPointerReply struct {
10675 Sequence uint16
10676 Length uint32
10677 Status byte
10678 }
10679
10680
10681 func (cook GrabPointerCookie) Reply() (*GrabPointerReply, error) {
10682 buf, err := cook.Cookie.Reply()
10683 if err != nil {
10684 return nil, err
10685 }
10686 if buf == nil {
10687 return nil, nil
10688 }
10689 return grabPointerReply(buf), nil
10690 }
10691
10692
10693 func grabPointerReply(buf []byte) *GrabPointerReply {
10694 v := new(GrabPointerReply)
10695 b := 1
10696
10697 v.Status = buf[b]
10698 b += 1
10699
10700 v.Sequence = xgb.Get16(buf[b:])
10701 b += 2
10702
10703 v.Length = xgb.Get32(buf[b:])
10704 b += 4
10705
10706 return v
10707 }
10708
10709
10710
10711 func grabPointerRequest(c *xgb.Conn, OwnerEvents bool, GrabWindow Window, EventMask uint16, PointerMode byte, KeyboardMode byte, ConfineTo Window, Cursor Cursor, Time Timestamp) []byte {
10712 size := 24
10713 b := 0
10714 buf := make([]byte, size)
10715
10716 buf[b] = 26
10717 b += 1
10718
10719 if OwnerEvents {
10720 buf[b] = 1
10721 } else {
10722 buf[b] = 0
10723 }
10724 b += 1
10725
10726 xgb.Put16(buf[b:], uint16(size/4))
10727 b += 2
10728
10729 xgb.Put32(buf[b:], uint32(GrabWindow))
10730 b += 4
10731
10732 xgb.Put16(buf[b:], EventMask)
10733 b += 2
10734
10735 buf[b] = PointerMode
10736 b += 1
10737
10738 buf[b] = KeyboardMode
10739 b += 1
10740
10741 xgb.Put32(buf[b:], uint32(ConfineTo))
10742 b += 4
10743
10744 xgb.Put32(buf[b:], uint32(Cursor))
10745 b += 4
10746
10747 xgb.Put32(buf[b:], uint32(Time))
10748 b += 4
10749
10750 return buf
10751 }
10752
10753
10754 type GrabServerCookie struct {
10755 *xgb.Cookie
10756 }
10757
10758
10759
10760 func GrabServer(c *xgb.Conn) GrabServerCookie {
10761 cookie := c.NewCookie(false, false)
10762 c.NewRequest(grabServerRequest(c), cookie)
10763 return GrabServerCookie{cookie}
10764 }
10765
10766
10767
10768 func GrabServerChecked(c *xgb.Conn) GrabServerCookie {
10769 cookie := c.NewCookie(true, false)
10770 c.NewRequest(grabServerRequest(c), cookie)
10771 return GrabServerCookie{cookie}
10772 }
10773
10774
10775
10776 func (cook GrabServerCookie) Check() error {
10777 return cook.Cookie.Check()
10778 }
10779
10780
10781
10782 func grabServerRequest(c *xgb.Conn) []byte {
10783 size := 4
10784 b := 0
10785 buf := make([]byte, size)
10786
10787 buf[b] = 36
10788 b += 1
10789
10790 b += 1
10791 xgb.Put16(buf[b:], uint16(size/4))
10792 b += 2
10793
10794 return buf
10795 }
10796
10797
10798 type ImageText16Cookie struct {
10799 *xgb.Cookie
10800 }
10801
10802
10803
10804 func ImageText16(c *xgb.Conn, StringLen byte, Drawable Drawable, Gc Gcontext, X int16, Y int16, String []Char2b) ImageText16Cookie {
10805 cookie := c.NewCookie(false, false)
10806 c.NewRequest(imageText16Request(c, StringLen, Drawable, Gc, X, Y, String), cookie)
10807 return ImageText16Cookie{cookie}
10808 }
10809
10810
10811
10812 func ImageText16Checked(c *xgb.Conn, StringLen byte, Drawable Drawable, Gc Gcontext, X int16, Y int16, String []Char2b) ImageText16Cookie {
10813 cookie := c.NewCookie(true, false)
10814 c.NewRequest(imageText16Request(c, StringLen, Drawable, Gc, X, Y, String), cookie)
10815 return ImageText16Cookie{cookie}
10816 }
10817
10818
10819
10820 func (cook ImageText16Cookie) Check() error {
10821 return cook.Cookie.Check()
10822 }
10823
10824
10825
10826 func imageText16Request(c *xgb.Conn, StringLen byte, Drawable Drawable, Gc Gcontext, X int16, Y int16, String []Char2b) []byte {
10827 size := xgb.Pad((16 + xgb.Pad((int(StringLen) * 2))))
10828 b := 0
10829 buf := make([]byte, size)
10830
10831 buf[b] = 77
10832 b += 1
10833
10834 buf[b] = StringLen
10835 b += 1
10836
10837 xgb.Put16(buf[b:], uint16(size/4))
10838 b += 2
10839
10840 xgb.Put32(buf[b:], uint32(Drawable))
10841 b += 4
10842
10843 xgb.Put32(buf[b:], uint32(Gc))
10844 b += 4
10845
10846 xgb.Put16(buf[b:], uint16(X))
10847 b += 2
10848
10849 xgb.Put16(buf[b:], uint16(Y))
10850 b += 2
10851
10852 b += Char2bListBytes(buf[b:], String)
10853
10854 return buf
10855 }
10856
10857
10858 type ImageText8Cookie struct {
10859 *xgb.Cookie
10860 }
10861
10862
10863
10864 func ImageText8(c *xgb.Conn, StringLen byte, Drawable Drawable, Gc Gcontext, X int16, Y int16, String string) ImageText8Cookie {
10865 cookie := c.NewCookie(false, false)
10866 c.NewRequest(imageText8Request(c, StringLen, Drawable, Gc, X, Y, String), cookie)
10867 return ImageText8Cookie{cookie}
10868 }
10869
10870
10871
10872 func ImageText8Checked(c *xgb.Conn, StringLen byte, Drawable Drawable, Gc Gcontext, X int16, Y int16, String string) ImageText8Cookie {
10873 cookie := c.NewCookie(true, false)
10874 c.NewRequest(imageText8Request(c, StringLen, Drawable, Gc, X, Y, String), cookie)
10875 return ImageText8Cookie{cookie}
10876 }
10877
10878
10879
10880 func (cook ImageText8Cookie) Check() error {
10881 return cook.Cookie.Check()
10882 }
10883
10884
10885
10886 func imageText8Request(c *xgb.Conn, StringLen byte, Drawable Drawable, Gc Gcontext, X int16, Y int16, String string) []byte {
10887 size := xgb.Pad((16 + xgb.Pad((int(StringLen) * 1))))
10888 b := 0
10889 buf := make([]byte, size)
10890
10891 buf[b] = 76
10892 b += 1
10893
10894 buf[b] = StringLen
10895 b += 1
10896
10897 xgb.Put16(buf[b:], uint16(size/4))
10898 b += 2
10899
10900 xgb.Put32(buf[b:], uint32(Drawable))
10901 b += 4
10902
10903 xgb.Put32(buf[b:], uint32(Gc))
10904 b += 4
10905
10906 xgb.Put16(buf[b:], uint16(X))
10907 b += 2
10908
10909 xgb.Put16(buf[b:], uint16(Y))
10910 b += 2
10911
10912 copy(buf[b:], String[:StringLen])
10913 b += int(StringLen)
10914
10915 return buf
10916 }
10917
10918
10919 type InstallColormapCookie struct {
10920 *xgb.Cookie
10921 }
10922
10923
10924
10925 func InstallColormap(c *xgb.Conn, Cmap Colormap) InstallColormapCookie {
10926 cookie := c.NewCookie(false, false)
10927 c.NewRequest(installColormapRequest(c, Cmap), cookie)
10928 return InstallColormapCookie{cookie}
10929 }
10930
10931
10932
10933 func InstallColormapChecked(c *xgb.Conn, Cmap Colormap) InstallColormapCookie {
10934 cookie := c.NewCookie(true, false)
10935 c.NewRequest(installColormapRequest(c, Cmap), cookie)
10936 return InstallColormapCookie{cookie}
10937 }
10938
10939
10940
10941 func (cook InstallColormapCookie) Check() error {
10942 return cook.Cookie.Check()
10943 }
10944
10945
10946
10947 func installColormapRequest(c *xgb.Conn, Cmap Colormap) []byte {
10948 size := 8
10949 b := 0
10950 buf := make([]byte, size)
10951
10952 buf[b] = 81
10953 b += 1
10954
10955 b += 1
10956
10957 xgb.Put16(buf[b:], uint16(size/4))
10958 b += 2
10959
10960 xgb.Put32(buf[b:], uint32(Cmap))
10961 b += 4
10962
10963 return buf
10964 }
10965
10966
10967 type InternAtomCookie struct {
10968 *xgb.Cookie
10969 }
10970
10971
10972
10973 func InternAtom(c *xgb.Conn, OnlyIfExists bool, NameLen uint16, Name string) InternAtomCookie {
10974 cookie := c.NewCookie(true, true)
10975 c.NewRequest(internAtomRequest(c, OnlyIfExists, NameLen, Name), cookie)
10976 return InternAtomCookie{cookie}
10977 }
10978
10979
10980
10981 func InternAtomUnchecked(c *xgb.Conn, OnlyIfExists bool, NameLen uint16, Name string) InternAtomCookie {
10982 cookie := c.NewCookie(false, true)
10983 c.NewRequest(internAtomRequest(c, OnlyIfExists, NameLen, Name), cookie)
10984 return InternAtomCookie{cookie}
10985 }
10986
10987
10988 type InternAtomReply struct {
10989 Sequence uint16
10990 Length uint32
10991
10992 Atom Atom
10993 }
10994
10995
10996 func (cook InternAtomCookie) Reply() (*InternAtomReply, error) {
10997 buf, err := cook.Cookie.Reply()
10998 if err != nil {
10999 return nil, err
11000 }
11001 if buf == nil {
11002 return nil, nil
11003 }
11004 return internAtomReply(buf), nil
11005 }
11006
11007
11008 func internAtomReply(buf []byte) *InternAtomReply {
11009 v := new(InternAtomReply)
11010 b := 1
11011
11012 b += 1
11013
11014 v.Sequence = xgb.Get16(buf[b:])
11015 b += 2
11016
11017 v.Length = xgb.Get32(buf[b:])
11018 b += 4
11019
11020 v.Atom = Atom(xgb.Get32(buf[b:]))
11021 b += 4
11022
11023 return v
11024 }
11025
11026
11027
11028 func internAtomRequest(c *xgb.Conn, OnlyIfExists bool, NameLen uint16, Name string) []byte {
11029 size := xgb.Pad((8 + xgb.Pad((int(NameLen) * 1))))
11030 b := 0
11031 buf := make([]byte, size)
11032
11033 buf[b] = 16
11034 b += 1
11035
11036 if OnlyIfExists {
11037 buf[b] = 1
11038 } else {
11039 buf[b] = 0
11040 }
11041 b += 1
11042
11043 xgb.Put16(buf[b:], uint16(size/4))
11044 b += 2
11045
11046 xgb.Put16(buf[b:], NameLen)
11047 b += 2
11048
11049 b += 2
11050
11051 copy(buf[b:], Name[:NameLen])
11052 b += int(NameLen)
11053
11054 return buf
11055 }
11056
11057
11058 type KillClientCookie struct {
11059 *xgb.Cookie
11060 }
11061
11062
11063
11064 func KillClient(c *xgb.Conn, Resource uint32) KillClientCookie {
11065 cookie := c.NewCookie(false, false)
11066 c.NewRequest(killClientRequest(c, Resource), cookie)
11067 return KillClientCookie{cookie}
11068 }
11069
11070
11071
11072 func KillClientChecked(c *xgb.Conn, Resource uint32) KillClientCookie {
11073 cookie := c.NewCookie(true, false)
11074 c.NewRequest(killClientRequest(c, Resource), cookie)
11075 return KillClientCookie{cookie}
11076 }
11077
11078
11079
11080 func (cook KillClientCookie) Check() error {
11081 return cook.Cookie.Check()
11082 }
11083
11084
11085
11086 func killClientRequest(c *xgb.Conn, Resource uint32) []byte {
11087 size := 8
11088 b := 0
11089 buf := make([]byte, size)
11090
11091 buf[b] = 113
11092 b += 1
11093
11094 b += 1
11095
11096 xgb.Put16(buf[b:], uint16(size/4))
11097 b += 2
11098
11099 xgb.Put32(buf[b:], Resource)
11100 b += 4
11101
11102 return buf
11103 }
11104
11105
11106 type ListExtensionsCookie struct {
11107 *xgb.Cookie
11108 }
11109
11110
11111
11112 func ListExtensions(c *xgb.Conn) ListExtensionsCookie {
11113 cookie := c.NewCookie(true, true)
11114 c.NewRequest(listExtensionsRequest(c), cookie)
11115 return ListExtensionsCookie{cookie}
11116 }
11117
11118
11119
11120 func ListExtensionsUnchecked(c *xgb.Conn) ListExtensionsCookie {
11121 cookie := c.NewCookie(false, true)
11122 c.NewRequest(listExtensionsRequest(c), cookie)
11123 return ListExtensionsCookie{cookie}
11124 }
11125
11126
11127 type ListExtensionsReply struct {
11128 Sequence uint16
11129 Length uint32
11130 NamesLen byte
11131
11132 Names []Str
11133 }
11134
11135
11136 func (cook ListExtensionsCookie) Reply() (*ListExtensionsReply, error) {
11137 buf, err := cook.Cookie.Reply()
11138 if err != nil {
11139 return nil, err
11140 }
11141 if buf == nil {
11142 return nil, nil
11143 }
11144 return listExtensionsReply(buf), nil
11145 }
11146
11147
11148 func listExtensionsReply(buf []byte) *ListExtensionsReply {
11149 v := new(ListExtensionsReply)
11150 b := 1
11151
11152 v.NamesLen = buf[b]
11153 b += 1
11154
11155 v.Sequence = xgb.Get16(buf[b:])
11156 b += 2
11157
11158 v.Length = xgb.Get32(buf[b:])
11159 b += 4
11160
11161 b += 24
11162
11163 v.Names = make([]Str, v.NamesLen)
11164 b += StrReadList(buf[b:], v.Names)
11165
11166 return v
11167 }
11168
11169
11170
11171 func listExtensionsRequest(c *xgb.Conn) []byte {
11172 size := 4
11173 b := 0
11174 buf := make([]byte, size)
11175
11176 buf[b] = 99
11177 b += 1
11178
11179 b += 1
11180 xgb.Put16(buf[b:], uint16(size/4))
11181 b += 2
11182
11183 return buf
11184 }
11185
11186
11187 type ListFontsCookie struct {
11188 *xgb.Cookie
11189 }
11190
11191
11192
11193 func ListFonts(c *xgb.Conn, MaxNames uint16, PatternLen uint16, Pattern string) ListFontsCookie {
11194 cookie := c.NewCookie(true, true)
11195 c.NewRequest(listFontsRequest(c, MaxNames, PatternLen, Pattern), cookie)
11196 return ListFontsCookie{cookie}
11197 }
11198
11199
11200
11201 func ListFontsUnchecked(c *xgb.Conn, MaxNames uint16, PatternLen uint16, Pattern string) ListFontsCookie {
11202 cookie := c.NewCookie(false, true)
11203 c.NewRequest(listFontsRequest(c, MaxNames, PatternLen, Pattern), cookie)
11204 return ListFontsCookie{cookie}
11205 }
11206
11207
11208 type ListFontsReply struct {
11209 Sequence uint16
11210 Length uint32
11211
11212 NamesLen uint16
11213
11214 Names []Str
11215 }
11216
11217
11218 func (cook ListFontsCookie) Reply() (*ListFontsReply, error) {
11219 buf, err := cook.Cookie.Reply()
11220 if err != nil {
11221 return nil, err
11222 }
11223 if buf == nil {
11224 return nil, nil
11225 }
11226 return listFontsReply(buf), nil
11227 }
11228
11229
11230 func listFontsReply(buf []byte) *ListFontsReply {
11231 v := new(ListFontsReply)
11232 b := 1
11233
11234 b += 1
11235
11236 v.Sequence = xgb.Get16(buf[b:])
11237 b += 2
11238
11239 v.Length = xgb.Get32(buf[b:])
11240 b += 4
11241
11242 v.NamesLen = xgb.Get16(buf[b:])
11243 b += 2
11244
11245 b += 22
11246
11247 v.Names = make([]Str, v.NamesLen)
11248 b += StrReadList(buf[b:], v.Names)
11249
11250 return v
11251 }
11252
11253
11254
11255 func listFontsRequest(c *xgb.Conn, MaxNames uint16, PatternLen uint16, Pattern string) []byte {
11256 size := xgb.Pad((8 + xgb.Pad((int(PatternLen) * 1))))
11257 b := 0
11258 buf := make([]byte, size)
11259
11260 buf[b] = 49
11261 b += 1
11262
11263 b += 1
11264
11265 xgb.Put16(buf[b:], uint16(size/4))
11266 b += 2
11267
11268 xgb.Put16(buf[b:], MaxNames)
11269 b += 2
11270
11271 xgb.Put16(buf[b:], PatternLen)
11272 b += 2
11273
11274 copy(buf[b:], Pattern[:PatternLen])
11275 b += int(PatternLen)
11276
11277 return buf
11278 }
11279
11280
11281 type ListFontsWithInfoCookie struct {
11282 *xgb.Cookie
11283 }
11284
11285
11286
11287 func ListFontsWithInfo(c *xgb.Conn, MaxNames uint16, PatternLen uint16, Pattern string) ListFontsWithInfoCookie {
11288 cookie := c.NewCookie(true, true)
11289 c.NewRequest(listFontsWithInfoRequest(c, MaxNames, PatternLen, Pattern), cookie)
11290 return ListFontsWithInfoCookie{cookie}
11291 }
11292
11293
11294
11295 func ListFontsWithInfoUnchecked(c *xgb.Conn, MaxNames uint16, PatternLen uint16, Pattern string) ListFontsWithInfoCookie {
11296 cookie := c.NewCookie(false, true)
11297 c.NewRequest(listFontsWithInfoRequest(c, MaxNames, PatternLen, Pattern), cookie)
11298 return ListFontsWithInfoCookie{cookie}
11299 }
11300
11301
11302 type ListFontsWithInfoReply struct {
11303 Sequence uint16
11304 Length uint32
11305 NameLen byte
11306 MinBounds Charinfo
11307
11308 MaxBounds Charinfo
11309
11310 MinCharOrByte2 uint16
11311 MaxCharOrByte2 uint16
11312 DefaultChar uint16
11313 PropertiesLen uint16
11314 DrawDirection byte
11315 MinByte1 byte
11316 MaxByte1 byte
11317 AllCharsExist bool
11318 FontAscent int16
11319 FontDescent int16
11320 RepliesHint uint32
11321 Properties []Fontprop
11322 Name string
11323 }
11324
11325
11326 func (cook ListFontsWithInfoCookie) Reply() (*ListFontsWithInfoReply, error) {
11327 buf, err := cook.Cookie.Reply()
11328 if err != nil {
11329 return nil, err
11330 }
11331 if buf == nil {
11332 return nil, nil
11333 }
11334 return listFontsWithInfoReply(buf), nil
11335 }
11336
11337
11338 func listFontsWithInfoReply(buf []byte) *ListFontsWithInfoReply {
11339 v := new(ListFontsWithInfoReply)
11340 b := 1
11341
11342 v.NameLen = buf[b]
11343 b += 1
11344
11345 v.Sequence = xgb.Get16(buf[b:])
11346 b += 2
11347
11348 v.Length = xgb.Get32(buf[b:])
11349 b += 4
11350
11351 v.MinBounds = Charinfo{}
11352 b += CharinfoRead(buf[b:], &v.MinBounds)
11353
11354 b += 4
11355
11356 v.MaxBounds = Charinfo{}
11357 b += CharinfoRead(buf[b:], &v.MaxBounds)
11358
11359 b += 4
11360
11361 v.MinCharOrByte2 = xgb.Get16(buf[b:])
11362 b += 2
11363
11364 v.MaxCharOrByte2 = xgb.Get16(buf[b:])
11365 b += 2
11366
11367 v.DefaultChar = xgb.Get16(buf[b:])
11368 b += 2
11369
11370 v.PropertiesLen = xgb.Get16(buf[b:])
11371 b += 2
11372
11373 v.DrawDirection = buf[b]
11374 b += 1
11375
11376 v.MinByte1 = buf[b]
11377 b += 1
11378
11379 v.MaxByte1 = buf[b]
11380 b += 1
11381
11382 if buf[b] == 1 {
11383 v.AllCharsExist = true
11384 } else {
11385 v.AllCharsExist = false
11386 }
11387 b += 1
11388
11389 v.FontAscent = int16(xgb.Get16(buf[b:]))
11390 b += 2
11391
11392 v.FontDescent = int16(xgb.Get16(buf[b:]))
11393 b += 2
11394
11395 v.RepliesHint = xgb.Get32(buf[b:])
11396 b += 4
11397
11398 v.Properties = make([]Fontprop, v.PropertiesLen)
11399 b += FontpropReadList(buf[b:], v.Properties)
11400
11401 {
11402 byteString := make([]byte, v.NameLen)
11403 copy(byteString[:v.NameLen], buf[b:])
11404 v.Name = string(byteString)
11405 b += int(v.NameLen)
11406 }
11407
11408 return v
11409 }
11410
11411
11412
11413 func listFontsWithInfoRequest(c *xgb.Conn, MaxNames uint16, PatternLen uint16, Pattern string) []byte {
11414 size := xgb.Pad((8 + xgb.Pad((int(PatternLen) * 1))))
11415 b := 0
11416 buf := make([]byte, size)
11417
11418 buf[b] = 50
11419 b += 1
11420
11421 b += 1
11422
11423 xgb.Put16(buf[b:], uint16(size/4))
11424 b += 2
11425
11426 xgb.Put16(buf[b:], MaxNames)
11427 b += 2
11428
11429 xgb.Put16(buf[b:], PatternLen)
11430 b += 2
11431
11432 copy(buf[b:], Pattern[:PatternLen])
11433 b += int(PatternLen)
11434
11435 return buf
11436 }
11437
11438
11439 type ListHostsCookie struct {
11440 *xgb.Cookie
11441 }
11442
11443
11444
11445 func ListHosts(c *xgb.Conn) ListHostsCookie {
11446 cookie := c.NewCookie(true, true)
11447 c.NewRequest(listHostsRequest(c), cookie)
11448 return ListHostsCookie{cookie}
11449 }
11450
11451
11452
11453 func ListHostsUnchecked(c *xgb.Conn) ListHostsCookie {
11454 cookie := c.NewCookie(false, true)
11455 c.NewRequest(listHostsRequest(c), cookie)
11456 return ListHostsCookie{cookie}
11457 }
11458
11459
11460 type ListHostsReply struct {
11461 Sequence uint16
11462 Length uint32
11463 Mode byte
11464 HostsLen uint16
11465
11466 Hosts []Host
11467 }
11468
11469
11470 func (cook ListHostsCookie) Reply() (*ListHostsReply, error) {
11471 buf, err := cook.Cookie.Reply()
11472 if err != nil {
11473 return nil, err
11474 }
11475 if buf == nil {
11476 return nil, nil
11477 }
11478 return listHostsReply(buf), nil
11479 }
11480
11481
11482 func listHostsReply(buf []byte) *ListHostsReply {
11483 v := new(ListHostsReply)
11484 b := 1
11485
11486 v.Mode = buf[b]
11487 b += 1
11488
11489 v.Sequence = xgb.Get16(buf[b:])
11490 b += 2
11491
11492 v.Length = xgb.Get32(buf[b:])
11493 b += 4
11494
11495 v.HostsLen = xgb.Get16(buf[b:])
11496 b += 2
11497
11498 b += 22
11499
11500 v.Hosts = make([]Host, v.HostsLen)
11501 b += HostReadList(buf[b:], v.Hosts)
11502
11503 return v
11504 }
11505
11506
11507
11508 func listHostsRequest(c *xgb.Conn) []byte {
11509 size := 4
11510 b := 0
11511 buf := make([]byte, size)
11512
11513 buf[b] = 110
11514 b += 1
11515
11516 b += 1
11517 xgb.Put16(buf[b:], uint16(size/4))
11518 b += 2
11519
11520 return buf
11521 }
11522
11523
11524 type ListInstalledColormapsCookie struct {
11525 *xgb.Cookie
11526 }
11527
11528
11529
11530 func ListInstalledColormaps(c *xgb.Conn, Window Window) ListInstalledColormapsCookie {
11531 cookie := c.NewCookie(true, true)
11532 c.NewRequest(listInstalledColormapsRequest(c, Window), cookie)
11533 return ListInstalledColormapsCookie{cookie}
11534 }
11535
11536
11537
11538 func ListInstalledColormapsUnchecked(c *xgb.Conn, Window Window) ListInstalledColormapsCookie {
11539 cookie := c.NewCookie(false, true)
11540 c.NewRequest(listInstalledColormapsRequest(c, Window), cookie)
11541 return ListInstalledColormapsCookie{cookie}
11542 }
11543
11544
11545 type ListInstalledColormapsReply struct {
11546 Sequence uint16
11547 Length uint32
11548
11549 CmapsLen uint16
11550
11551 Cmaps []Colormap
11552 }
11553
11554
11555 func (cook ListInstalledColormapsCookie) Reply() (*ListInstalledColormapsReply, error) {
11556 buf, err := cook.Cookie.Reply()
11557 if err != nil {
11558 return nil, err
11559 }
11560 if buf == nil {
11561 return nil, nil
11562 }
11563 return listInstalledColormapsReply(buf), nil
11564 }
11565
11566
11567 func listInstalledColormapsReply(buf []byte) *ListInstalledColormapsReply {
11568 v := new(ListInstalledColormapsReply)
11569 b := 1
11570
11571 b += 1
11572
11573 v.Sequence = xgb.Get16(buf[b:])
11574 b += 2
11575
11576 v.Length = xgb.Get32(buf[b:])
11577 b += 4
11578
11579 v.CmapsLen = xgb.Get16(buf[b:])
11580 b += 2
11581
11582 b += 22
11583
11584 v.Cmaps = make([]Colormap, v.CmapsLen)
11585 for i := 0; i < int(v.CmapsLen); i++ {
11586 v.Cmaps[i] = Colormap(xgb.Get32(buf[b:]))
11587 b += 4
11588 }
11589
11590 return v
11591 }
11592
11593
11594
11595 func listInstalledColormapsRequest(c *xgb.Conn, Window Window) []byte {
11596 size := 8
11597 b := 0
11598 buf := make([]byte, size)
11599
11600 buf[b] = 83
11601 b += 1
11602
11603 b += 1
11604
11605 xgb.Put16(buf[b:], uint16(size/4))
11606 b += 2
11607
11608 xgb.Put32(buf[b:], uint32(Window))
11609 b += 4
11610
11611 return buf
11612 }
11613
11614
11615 type ListPropertiesCookie struct {
11616 *xgb.Cookie
11617 }
11618
11619
11620
11621 func ListProperties(c *xgb.Conn, Window Window) ListPropertiesCookie {
11622 cookie := c.NewCookie(true, true)
11623 c.NewRequest(listPropertiesRequest(c, Window), cookie)
11624 return ListPropertiesCookie{cookie}
11625 }
11626
11627
11628
11629 func ListPropertiesUnchecked(c *xgb.Conn, Window Window) ListPropertiesCookie {
11630 cookie := c.NewCookie(false, true)
11631 c.NewRequest(listPropertiesRequest(c, Window), cookie)
11632 return ListPropertiesCookie{cookie}
11633 }
11634
11635
11636 type ListPropertiesReply struct {
11637 Sequence uint16
11638 Length uint32
11639
11640 AtomsLen uint16
11641
11642 Atoms []Atom
11643 }
11644
11645
11646 func (cook ListPropertiesCookie) Reply() (*ListPropertiesReply, error) {
11647 buf, err := cook.Cookie.Reply()
11648 if err != nil {
11649 return nil, err
11650 }
11651 if buf == nil {
11652 return nil, nil
11653 }
11654 return listPropertiesReply(buf), nil
11655 }
11656
11657
11658 func listPropertiesReply(buf []byte) *ListPropertiesReply {
11659 v := new(ListPropertiesReply)
11660 b := 1
11661
11662 b += 1
11663
11664 v.Sequence = xgb.Get16(buf[b:])
11665 b += 2
11666
11667 v.Length = xgb.Get32(buf[b:])
11668 b += 4
11669
11670 v.AtomsLen = xgb.Get16(buf[b:])
11671 b += 2
11672
11673 b += 22
11674
11675 v.Atoms = make([]Atom, v.AtomsLen)
11676 for i := 0; i < int(v.AtomsLen); i++ {
11677 v.Atoms[i] = Atom(xgb.Get32(buf[b:]))
11678 b += 4
11679 }
11680
11681 return v
11682 }
11683
11684
11685
11686 func listPropertiesRequest(c *xgb.Conn, Window Window) []byte {
11687 size := 8
11688 b := 0
11689 buf := make([]byte, size)
11690
11691 buf[b] = 21
11692 b += 1
11693
11694 b += 1
11695
11696 xgb.Put16(buf[b:], uint16(size/4))
11697 b += 2
11698
11699 xgb.Put32(buf[b:], uint32(Window))
11700 b += 4
11701
11702 return buf
11703 }
11704
11705
11706 type LookupColorCookie struct {
11707 *xgb.Cookie
11708 }
11709
11710
11711
11712 func LookupColor(c *xgb.Conn, Cmap Colormap, NameLen uint16, Name string) LookupColorCookie {
11713 cookie := c.NewCookie(true, true)
11714 c.NewRequest(lookupColorRequest(c, Cmap, NameLen, Name), cookie)
11715 return LookupColorCookie{cookie}
11716 }
11717
11718
11719
11720 func LookupColorUnchecked(c *xgb.Conn, Cmap Colormap, NameLen uint16, Name string) LookupColorCookie {
11721 cookie := c.NewCookie(false, true)
11722 c.NewRequest(lookupColorRequest(c, Cmap, NameLen, Name), cookie)
11723 return LookupColorCookie{cookie}
11724 }
11725
11726
11727 type LookupColorReply struct {
11728 Sequence uint16
11729 Length uint32
11730
11731 ExactRed uint16
11732 ExactGreen uint16
11733 ExactBlue uint16
11734 VisualRed uint16
11735 VisualGreen uint16
11736 VisualBlue uint16
11737 }
11738
11739
11740 func (cook LookupColorCookie) Reply() (*LookupColorReply, error) {
11741 buf, err := cook.Cookie.Reply()
11742 if err != nil {
11743 return nil, err
11744 }
11745 if buf == nil {
11746 return nil, nil
11747 }
11748 return lookupColorReply(buf), nil
11749 }
11750
11751
11752 func lookupColorReply(buf []byte) *LookupColorReply {
11753 v := new(LookupColorReply)
11754 b := 1
11755
11756 b += 1
11757
11758 v.Sequence = xgb.Get16(buf[b:])
11759 b += 2
11760
11761 v.Length = xgb.Get32(buf[b:])
11762 b += 4
11763
11764 v.ExactRed = xgb.Get16(buf[b:])
11765 b += 2
11766
11767 v.ExactGreen = xgb.Get16(buf[b:])
11768 b += 2
11769
11770 v.ExactBlue = xgb.Get16(buf[b:])
11771 b += 2
11772
11773 v.VisualRed = xgb.Get16(buf[b:])
11774 b += 2
11775
11776 v.VisualGreen = xgb.Get16(buf[b:])
11777 b += 2
11778
11779 v.VisualBlue = xgb.Get16(buf[b:])
11780 b += 2
11781
11782 return v
11783 }
11784
11785
11786
11787 func lookupColorRequest(c *xgb.Conn, Cmap Colormap, NameLen uint16, Name string) []byte {
11788 size := xgb.Pad((12 + xgb.Pad((int(NameLen) * 1))))
11789 b := 0
11790 buf := make([]byte, size)
11791
11792 buf[b] = 92
11793 b += 1
11794
11795 b += 1
11796
11797 xgb.Put16(buf[b:], uint16(size/4))
11798 b += 2
11799
11800 xgb.Put32(buf[b:], uint32(Cmap))
11801 b += 4
11802
11803 xgb.Put16(buf[b:], NameLen)
11804 b += 2
11805
11806 b += 2
11807
11808 copy(buf[b:], Name[:NameLen])
11809 b += int(NameLen)
11810
11811 return buf
11812 }
11813
11814
11815 type MapSubwindowsCookie struct {
11816 *xgb.Cookie
11817 }
11818
11819
11820
11821 func MapSubwindows(c *xgb.Conn, Window Window) MapSubwindowsCookie {
11822 cookie := c.NewCookie(false, false)
11823 c.NewRequest(mapSubwindowsRequest(c, Window), cookie)
11824 return MapSubwindowsCookie{cookie}
11825 }
11826
11827
11828
11829 func MapSubwindowsChecked(c *xgb.Conn, Window Window) MapSubwindowsCookie {
11830 cookie := c.NewCookie(true, false)
11831 c.NewRequest(mapSubwindowsRequest(c, Window), cookie)
11832 return MapSubwindowsCookie{cookie}
11833 }
11834
11835
11836
11837 func (cook MapSubwindowsCookie) Check() error {
11838 return cook.Cookie.Check()
11839 }
11840
11841
11842
11843 func mapSubwindowsRequest(c *xgb.Conn, Window Window) []byte {
11844 size := 8
11845 b := 0
11846 buf := make([]byte, size)
11847
11848 buf[b] = 9
11849 b += 1
11850
11851 b += 1
11852
11853 xgb.Put16(buf[b:], uint16(size/4))
11854 b += 2
11855
11856 xgb.Put32(buf[b:], uint32(Window))
11857 b += 4
11858
11859 return buf
11860 }
11861
11862
11863 type MapWindowCookie struct {
11864 *xgb.Cookie
11865 }
11866
11867
11868
11869 func MapWindow(c *xgb.Conn, Window Window) MapWindowCookie {
11870 cookie := c.NewCookie(false, false)
11871 c.NewRequest(mapWindowRequest(c, Window), cookie)
11872 return MapWindowCookie{cookie}
11873 }
11874
11875
11876
11877 func MapWindowChecked(c *xgb.Conn, Window Window) MapWindowCookie {
11878 cookie := c.NewCookie(true, false)
11879 c.NewRequest(mapWindowRequest(c, Window), cookie)
11880 return MapWindowCookie{cookie}
11881 }
11882
11883
11884
11885 func (cook MapWindowCookie) Check() error {
11886 return cook.Cookie.Check()
11887 }
11888
11889
11890
11891 func mapWindowRequest(c *xgb.Conn, Window Window) []byte {
11892 size := 8
11893 b := 0
11894 buf := make([]byte, size)
11895
11896 buf[b] = 8
11897 b += 1
11898
11899 b += 1
11900
11901 xgb.Put16(buf[b:], uint16(size/4))
11902 b += 2
11903
11904 xgb.Put32(buf[b:], uint32(Window))
11905 b += 4
11906
11907 return buf
11908 }
11909
11910
11911 type NoOperationCookie struct {
11912 *xgb.Cookie
11913 }
11914
11915
11916
11917 func NoOperation(c *xgb.Conn) NoOperationCookie {
11918 cookie := c.NewCookie(false, false)
11919 c.NewRequest(noOperationRequest(c), cookie)
11920 return NoOperationCookie{cookie}
11921 }
11922
11923
11924
11925 func NoOperationChecked(c *xgb.Conn) NoOperationCookie {
11926 cookie := c.NewCookie(true, false)
11927 c.NewRequest(noOperationRequest(c), cookie)
11928 return NoOperationCookie{cookie}
11929 }
11930
11931
11932
11933 func (cook NoOperationCookie) Check() error {
11934 return cook.Cookie.Check()
11935 }
11936
11937
11938
11939 func noOperationRequest(c *xgb.Conn) []byte {
11940 size := 4
11941 b := 0
11942 buf := make([]byte, size)
11943
11944 buf[b] = 127
11945 b += 1
11946
11947 b += 1
11948 xgb.Put16(buf[b:], uint16(size/4))
11949 b += 2
11950
11951 return buf
11952 }
11953
11954
11955 type OpenFontCookie struct {
11956 *xgb.Cookie
11957 }
11958
11959
11960
11961 func OpenFont(c *xgb.Conn, Fid Font, NameLen uint16, Name string) OpenFontCookie {
11962 cookie := c.NewCookie(false, false)
11963 c.NewRequest(openFontRequest(c, Fid, NameLen, Name), cookie)
11964 return OpenFontCookie{cookie}
11965 }
11966
11967
11968
11969 func OpenFontChecked(c *xgb.Conn, Fid Font, NameLen uint16, Name string) OpenFontCookie {
11970 cookie := c.NewCookie(true, false)
11971 c.NewRequest(openFontRequest(c, Fid, NameLen, Name), cookie)
11972 return OpenFontCookie{cookie}
11973 }
11974
11975
11976
11977 func (cook OpenFontCookie) Check() error {
11978 return cook.Cookie.Check()
11979 }
11980
11981
11982
11983 func openFontRequest(c *xgb.Conn, Fid Font, NameLen uint16, Name string) []byte {
11984 size := xgb.Pad((12 + xgb.Pad((int(NameLen) * 1))))
11985 b := 0
11986 buf := make([]byte, size)
11987
11988 buf[b] = 45
11989 b += 1
11990
11991 b += 1
11992
11993 xgb.Put16(buf[b:], uint16(size/4))
11994 b += 2
11995
11996 xgb.Put32(buf[b:], uint32(Fid))
11997 b += 4
11998
11999 xgb.Put16(buf[b:], NameLen)
12000 b += 2
12001
12002 b += 2
12003
12004 copy(buf[b:], Name[:NameLen])
12005 b += int(NameLen)
12006
12007 return buf
12008 }
12009
12010
12011 type PolyArcCookie struct {
12012 *xgb.Cookie
12013 }
12014
12015
12016
12017 func PolyArc(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Arcs []Arc) PolyArcCookie {
12018 cookie := c.NewCookie(false, false)
12019 c.NewRequest(polyArcRequest(c, Drawable, Gc, Arcs), cookie)
12020 return PolyArcCookie{cookie}
12021 }
12022
12023
12024
12025 func PolyArcChecked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Arcs []Arc) PolyArcCookie {
12026 cookie := c.NewCookie(true, false)
12027 c.NewRequest(polyArcRequest(c, Drawable, Gc, Arcs), cookie)
12028 return PolyArcCookie{cookie}
12029 }
12030
12031
12032
12033 func (cook PolyArcCookie) Check() error {
12034 return cook.Cookie.Check()
12035 }
12036
12037
12038
12039 func polyArcRequest(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Arcs []Arc) []byte {
12040 size := xgb.Pad((12 + xgb.Pad((len(Arcs) * 12))))
12041 b := 0
12042 buf := make([]byte, size)
12043
12044 buf[b] = 68
12045 b += 1
12046
12047 b += 1
12048
12049 xgb.Put16(buf[b:], uint16(size/4))
12050 b += 2
12051
12052 xgb.Put32(buf[b:], uint32(Drawable))
12053 b += 4
12054
12055 xgb.Put32(buf[b:], uint32(Gc))
12056 b += 4
12057
12058 b += ArcListBytes(buf[b:], Arcs)
12059
12060 return buf
12061 }
12062
12063
12064 type PolyFillArcCookie struct {
12065 *xgb.Cookie
12066 }
12067
12068
12069
12070 func PolyFillArc(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Arcs []Arc) PolyFillArcCookie {
12071 cookie := c.NewCookie(false, false)
12072 c.NewRequest(polyFillArcRequest(c, Drawable, Gc, Arcs), cookie)
12073 return PolyFillArcCookie{cookie}
12074 }
12075
12076
12077
12078 func PolyFillArcChecked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Arcs []Arc) PolyFillArcCookie {
12079 cookie := c.NewCookie(true, false)
12080 c.NewRequest(polyFillArcRequest(c, Drawable, Gc, Arcs), cookie)
12081 return PolyFillArcCookie{cookie}
12082 }
12083
12084
12085
12086 func (cook PolyFillArcCookie) Check() error {
12087 return cook.Cookie.Check()
12088 }
12089
12090
12091
12092 func polyFillArcRequest(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Arcs []Arc) []byte {
12093 size := xgb.Pad((12 + xgb.Pad((len(Arcs) * 12))))
12094 b := 0
12095 buf := make([]byte, size)
12096
12097 buf[b] = 71
12098 b += 1
12099
12100 b += 1
12101
12102 xgb.Put16(buf[b:], uint16(size/4))
12103 b += 2
12104
12105 xgb.Put32(buf[b:], uint32(Drawable))
12106 b += 4
12107
12108 xgb.Put32(buf[b:], uint32(Gc))
12109 b += 4
12110
12111 b += ArcListBytes(buf[b:], Arcs)
12112
12113 return buf
12114 }
12115
12116
12117 type PolyFillRectangleCookie struct {
12118 *xgb.Cookie
12119 }
12120
12121
12122
12123 func PolyFillRectangle(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Rectangles []Rectangle) PolyFillRectangleCookie {
12124 cookie := c.NewCookie(false, false)
12125 c.NewRequest(polyFillRectangleRequest(c, Drawable, Gc, Rectangles), cookie)
12126 return PolyFillRectangleCookie{cookie}
12127 }
12128
12129
12130
12131 func PolyFillRectangleChecked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Rectangles []Rectangle) PolyFillRectangleCookie {
12132 cookie := c.NewCookie(true, false)
12133 c.NewRequest(polyFillRectangleRequest(c, Drawable, Gc, Rectangles), cookie)
12134 return PolyFillRectangleCookie{cookie}
12135 }
12136
12137
12138
12139 func (cook PolyFillRectangleCookie) Check() error {
12140 return cook.Cookie.Check()
12141 }
12142
12143
12144
12145 func polyFillRectangleRequest(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Rectangles []Rectangle) []byte {
12146 size := xgb.Pad((12 + xgb.Pad((len(Rectangles) * 8))))
12147 b := 0
12148 buf := make([]byte, size)
12149
12150 buf[b] = 70
12151 b += 1
12152
12153 b += 1
12154
12155 xgb.Put16(buf[b:], uint16(size/4))
12156 b += 2
12157
12158 xgb.Put32(buf[b:], uint32(Drawable))
12159 b += 4
12160
12161 xgb.Put32(buf[b:], uint32(Gc))
12162 b += 4
12163
12164 b += RectangleListBytes(buf[b:], Rectangles)
12165
12166 return buf
12167 }
12168
12169
12170 type PolyLineCookie struct {
12171 *xgb.Cookie
12172 }
12173
12174
12175
12176 func PolyLine(c *xgb.Conn, CoordinateMode byte, Drawable Drawable, Gc Gcontext, Points []Point) PolyLineCookie {
12177 cookie := c.NewCookie(false, false)
12178 c.NewRequest(polyLineRequest(c, CoordinateMode, Drawable, Gc, Points), cookie)
12179 return PolyLineCookie{cookie}
12180 }
12181
12182
12183
12184 func PolyLineChecked(c *xgb.Conn, CoordinateMode byte, Drawable Drawable, Gc Gcontext, Points []Point) PolyLineCookie {
12185 cookie := c.NewCookie(true, false)
12186 c.NewRequest(polyLineRequest(c, CoordinateMode, Drawable, Gc, Points), cookie)
12187 return PolyLineCookie{cookie}
12188 }
12189
12190
12191
12192 func (cook PolyLineCookie) Check() error {
12193 return cook.Cookie.Check()
12194 }
12195
12196
12197
12198 func polyLineRequest(c *xgb.Conn, CoordinateMode byte, Drawable Drawable, Gc Gcontext, Points []Point) []byte {
12199 size := xgb.Pad((12 + xgb.Pad((len(Points) * 4))))
12200 b := 0
12201 buf := make([]byte, size)
12202
12203 buf[b] = 65
12204 b += 1
12205
12206 buf[b] = CoordinateMode
12207 b += 1
12208
12209 xgb.Put16(buf[b:], uint16(size/4))
12210 b += 2
12211
12212 xgb.Put32(buf[b:], uint32(Drawable))
12213 b += 4
12214
12215 xgb.Put32(buf[b:], uint32(Gc))
12216 b += 4
12217
12218 b += PointListBytes(buf[b:], Points)
12219
12220 return buf
12221 }
12222
12223
12224 type PolyPointCookie struct {
12225 *xgb.Cookie
12226 }
12227
12228
12229
12230 func PolyPoint(c *xgb.Conn, CoordinateMode byte, Drawable Drawable, Gc Gcontext, Points []Point) PolyPointCookie {
12231 cookie := c.NewCookie(false, false)
12232 c.NewRequest(polyPointRequest(c, CoordinateMode, Drawable, Gc, Points), cookie)
12233 return PolyPointCookie{cookie}
12234 }
12235
12236
12237
12238 func PolyPointChecked(c *xgb.Conn, CoordinateMode byte, Drawable Drawable, Gc Gcontext, Points []Point) PolyPointCookie {
12239 cookie := c.NewCookie(true, false)
12240 c.NewRequest(polyPointRequest(c, CoordinateMode, Drawable, Gc, Points), cookie)
12241 return PolyPointCookie{cookie}
12242 }
12243
12244
12245
12246 func (cook PolyPointCookie) Check() error {
12247 return cook.Cookie.Check()
12248 }
12249
12250
12251
12252 func polyPointRequest(c *xgb.Conn, CoordinateMode byte, Drawable Drawable, Gc Gcontext, Points []Point) []byte {
12253 size := xgb.Pad((12 + xgb.Pad((len(Points) * 4))))
12254 b := 0
12255 buf := make([]byte, size)
12256
12257 buf[b] = 64
12258 b += 1
12259
12260 buf[b] = CoordinateMode
12261 b += 1
12262
12263 xgb.Put16(buf[b:], uint16(size/4))
12264 b += 2
12265
12266 xgb.Put32(buf[b:], uint32(Drawable))
12267 b += 4
12268
12269 xgb.Put32(buf[b:], uint32(Gc))
12270 b += 4
12271
12272 b += PointListBytes(buf[b:], Points)
12273
12274 return buf
12275 }
12276
12277
12278 type PolyRectangleCookie struct {
12279 *xgb.Cookie
12280 }
12281
12282
12283
12284 func PolyRectangle(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Rectangles []Rectangle) PolyRectangleCookie {
12285 cookie := c.NewCookie(false, false)
12286 c.NewRequest(polyRectangleRequest(c, Drawable, Gc, Rectangles), cookie)
12287 return PolyRectangleCookie{cookie}
12288 }
12289
12290
12291
12292 func PolyRectangleChecked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Rectangles []Rectangle) PolyRectangleCookie {
12293 cookie := c.NewCookie(true, false)
12294 c.NewRequest(polyRectangleRequest(c, Drawable, Gc, Rectangles), cookie)
12295 return PolyRectangleCookie{cookie}
12296 }
12297
12298
12299
12300 func (cook PolyRectangleCookie) Check() error {
12301 return cook.Cookie.Check()
12302 }
12303
12304
12305
12306 func polyRectangleRequest(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Rectangles []Rectangle) []byte {
12307 size := xgb.Pad((12 + xgb.Pad((len(Rectangles) * 8))))
12308 b := 0
12309 buf := make([]byte, size)
12310
12311 buf[b] = 67
12312 b += 1
12313
12314 b += 1
12315
12316 xgb.Put16(buf[b:], uint16(size/4))
12317 b += 2
12318
12319 xgb.Put32(buf[b:], uint32(Drawable))
12320 b += 4
12321
12322 xgb.Put32(buf[b:], uint32(Gc))
12323 b += 4
12324
12325 b += RectangleListBytes(buf[b:], Rectangles)
12326
12327 return buf
12328 }
12329
12330
12331 type PolySegmentCookie struct {
12332 *xgb.Cookie
12333 }
12334
12335
12336
12337 func PolySegment(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Segments []Segment) PolySegmentCookie {
12338 cookie := c.NewCookie(false, false)
12339 c.NewRequest(polySegmentRequest(c, Drawable, Gc, Segments), cookie)
12340 return PolySegmentCookie{cookie}
12341 }
12342
12343
12344
12345 func PolySegmentChecked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Segments []Segment) PolySegmentCookie {
12346 cookie := c.NewCookie(true, false)
12347 c.NewRequest(polySegmentRequest(c, Drawable, Gc, Segments), cookie)
12348 return PolySegmentCookie{cookie}
12349 }
12350
12351
12352
12353 func (cook PolySegmentCookie) Check() error {
12354 return cook.Cookie.Check()
12355 }
12356
12357
12358
12359 func polySegmentRequest(c *xgb.Conn, Drawable Drawable, Gc Gcontext, Segments []Segment) []byte {
12360 size := xgb.Pad((12 + xgb.Pad((len(Segments) * 8))))
12361 b := 0
12362 buf := make([]byte, size)
12363
12364 buf[b] = 66
12365 b += 1
12366
12367 b += 1
12368
12369 xgb.Put16(buf[b:], uint16(size/4))
12370 b += 2
12371
12372 xgb.Put32(buf[b:], uint32(Drawable))
12373 b += 4
12374
12375 xgb.Put32(buf[b:], uint32(Gc))
12376 b += 4
12377
12378 b += SegmentListBytes(buf[b:], Segments)
12379
12380 return buf
12381 }
12382
12383
12384 type PolyText16Cookie struct {
12385 *xgb.Cookie
12386 }
12387
12388
12389
12390 func PolyText16(c *xgb.Conn, Drawable Drawable, Gc Gcontext, X int16, Y int16, Items []byte) PolyText16Cookie {
12391 cookie := c.NewCookie(false, false)
12392 c.NewRequest(polyText16Request(c, Drawable, Gc, X, Y, Items), cookie)
12393 return PolyText16Cookie{cookie}
12394 }
12395
12396
12397
12398 func PolyText16Checked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, X int16, Y int16, Items []byte) PolyText16Cookie {
12399 cookie := c.NewCookie(true, false)
12400 c.NewRequest(polyText16Request(c, Drawable, Gc, X, Y, Items), cookie)
12401 return PolyText16Cookie{cookie}
12402 }
12403
12404
12405
12406 func (cook PolyText16Cookie) Check() error {
12407 return cook.Cookie.Check()
12408 }
12409
12410
12411
12412 func polyText16Request(c *xgb.Conn, Drawable Drawable, Gc Gcontext, X int16, Y int16, Items []byte) []byte {
12413 size := xgb.Pad((16 + xgb.Pad((len(Items) * 1))))
12414 b := 0
12415 buf := make([]byte, size)
12416
12417 buf[b] = 75
12418 b += 1
12419
12420 b += 1
12421
12422 xgb.Put16(buf[b:], uint16(size/4))
12423 b += 2
12424
12425 xgb.Put32(buf[b:], uint32(Drawable))
12426 b += 4
12427
12428 xgb.Put32(buf[b:], uint32(Gc))
12429 b += 4
12430
12431 xgb.Put16(buf[b:], uint16(X))
12432 b += 2
12433
12434 xgb.Put16(buf[b:], uint16(Y))
12435 b += 2
12436
12437 copy(buf[b:], Items[:len(Items)])
12438 b += int(len(Items))
12439
12440 return buf
12441 }
12442
12443
12444 type PolyText8Cookie struct {
12445 *xgb.Cookie
12446 }
12447
12448
12449
12450 func PolyText8(c *xgb.Conn, Drawable Drawable, Gc Gcontext, X int16, Y int16, Items []byte) PolyText8Cookie {
12451 cookie := c.NewCookie(false, false)
12452 c.NewRequest(polyText8Request(c, Drawable, Gc, X, Y, Items), cookie)
12453 return PolyText8Cookie{cookie}
12454 }
12455
12456
12457
12458 func PolyText8Checked(c *xgb.Conn, Drawable Drawable, Gc Gcontext, X int16, Y int16, Items []byte) PolyText8Cookie {
12459 cookie := c.NewCookie(true, false)
12460 c.NewRequest(polyText8Request(c, Drawable, Gc, X, Y, Items), cookie)
12461 return PolyText8Cookie{cookie}
12462 }
12463
12464
12465
12466 func (cook PolyText8Cookie) Check() error {
12467 return cook.Cookie.Check()
12468 }
12469
12470
12471
12472 func polyText8Request(c *xgb.Conn, Drawable Drawable, Gc Gcontext, X int16, Y int16, Items []byte) []byte {
12473 size := xgb.Pad((16 + xgb.Pad((len(Items) * 1))))
12474 b := 0
12475 buf := make([]byte, size)
12476
12477 buf[b] = 74
12478 b += 1
12479
12480 b += 1
12481
12482 xgb.Put16(buf[b:], uint16(size/4))
12483 b += 2
12484
12485 xgb.Put32(buf[b:], uint32(Drawable))
12486 b += 4
12487
12488 xgb.Put32(buf[b:], uint32(Gc))
12489 b += 4
12490
12491 xgb.Put16(buf[b:], uint16(X))
12492 b += 2
12493
12494 xgb.Put16(buf[b:], uint16(Y))
12495 b += 2
12496
12497 copy(buf[b:], Items[:len(Items)])
12498 b += int(len(Items))
12499
12500 return buf
12501 }
12502
12503
12504 type PutImageCookie struct {
12505 *xgb.Cookie
12506 }
12507
12508
12509
12510 func PutImage(c *xgb.Conn, Format byte, Drawable Drawable, Gc Gcontext, Width uint16, Height uint16, DstX int16, DstY int16, LeftPad byte, Depth byte, Data []byte) PutImageCookie {
12511 cookie := c.NewCookie(false, false)
12512 c.NewRequest(putImageRequest(c, Format, Drawable, Gc, Width, Height, DstX, DstY, LeftPad, Depth, Data), cookie)
12513 return PutImageCookie{cookie}
12514 }
12515
12516
12517
12518 func PutImageChecked(c *xgb.Conn, Format byte, Drawable Drawable, Gc Gcontext, Width uint16, Height uint16, DstX int16, DstY int16, LeftPad byte, Depth byte, Data []byte) PutImageCookie {
12519 cookie := c.NewCookie(true, false)
12520 c.NewRequest(putImageRequest(c, Format, Drawable, Gc, Width, Height, DstX, DstY, LeftPad, Depth, Data), cookie)
12521 return PutImageCookie{cookie}
12522 }
12523
12524
12525
12526 func (cook PutImageCookie) Check() error {
12527 return cook.Cookie.Check()
12528 }
12529
12530
12531
12532 func putImageRequest(c *xgb.Conn, Format byte, Drawable Drawable, Gc Gcontext, Width uint16, Height uint16, DstX int16, DstY int16, LeftPad byte, Depth byte, Data []byte) []byte {
12533 size := xgb.Pad((24 + xgb.Pad((len(Data) * 1))))
12534 b := 0
12535 buf := make([]byte, size)
12536
12537 buf[b] = 72
12538 b += 1
12539
12540 buf[b] = Format
12541 b += 1
12542
12543 xgb.Put16(buf[b:], uint16(size/4))
12544 b += 2
12545
12546 xgb.Put32(buf[b:], uint32(Drawable))
12547 b += 4
12548
12549 xgb.Put32(buf[b:], uint32(Gc))
12550 b += 4
12551
12552 xgb.Put16(buf[b:], Width)
12553 b += 2
12554
12555 xgb.Put16(buf[b:], Height)
12556 b += 2
12557
12558 xgb.Put16(buf[b:], uint16(DstX))
12559 b += 2
12560
12561 xgb.Put16(buf[b:], uint16(DstY))
12562 b += 2
12563
12564 buf[b] = LeftPad
12565 b += 1
12566
12567 buf[b] = Depth
12568 b += 1
12569
12570 b += 2
12571
12572 copy(buf[b:], Data[:len(Data)])
12573 b += int(len(Data))
12574
12575 return buf
12576 }
12577
12578
12579 type QueryBestSizeCookie struct {
12580 *xgb.Cookie
12581 }
12582
12583
12584
12585 func QueryBestSize(c *xgb.Conn, Class byte, Drawable Drawable, Width uint16, Height uint16) QueryBestSizeCookie {
12586 cookie := c.NewCookie(true, true)
12587 c.NewRequest(queryBestSizeRequest(c, Class, Drawable, Width, Height), cookie)
12588 return QueryBestSizeCookie{cookie}
12589 }
12590
12591
12592
12593 func QueryBestSizeUnchecked(c *xgb.Conn, Class byte, Drawable Drawable, Width uint16, Height uint16) QueryBestSizeCookie {
12594 cookie := c.NewCookie(false, true)
12595 c.NewRequest(queryBestSizeRequest(c, Class, Drawable, Width, Height), cookie)
12596 return QueryBestSizeCookie{cookie}
12597 }
12598
12599
12600 type QueryBestSizeReply struct {
12601 Sequence uint16
12602 Length uint32
12603
12604 Width uint16
12605 Height uint16
12606 }
12607
12608
12609 func (cook QueryBestSizeCookie) Reply() (*QueryBestSizeReply, error) {
12610 buf, err := cook.Cookie.Reply()
12611 if err != nil {
12612 return nil, err
12613 }
12614 if buf == nil {
12615 return nil, nil
12616 }
12617 return queryBestSizeReply(buf), nil
12618 }
12619
12620
12621 func queryBestSizeReply(buf []byte) *QueryBestSizeReply {
12622 v := new(QueryBestSizeReply)
12623 b := 1
12624
12625 b += 1
12626
12627 v.Sequence = xgb.Get16(buf[b:])
12628 b += 2
12629
12630 v.Length = xgb.Get32(buf[b:])
12631 b += 4
12632
12633 v.Width = xgb.Get16(buf[b:])
12634 b += 2
12635
12636 v.Height = xgb.Get16(buf[b:])
12637 b += 2
12638
12639 return v
12640 }
12641
12642
12643
12644 func queryBestSizeRequest(c *xgb.Conn, Class byte, Drawable Drawable, Width uint16, Height uint16) []byte {
12645 size := 12
12646 b := 0
12647 buf := make([]byte, size)
12648
12649 buf[b] = 97
12650 b += 1
12651
12652 buf[b] = Class
12653 b += 1
12654
12655 xgb.Put16(buf[b:], uint16(size/4))
12656 b += 2
12657
12658 xgb.Put32(buf[b:], uint32(Drawable))
12659 b += 4
12660
12661 xgb.Put16(buf[b:], Width)
12662 b += 2
12663
12664 xgb.Put16(buf[b:], Height)
12665 b += 2
12666
12667 return buf
12668 }
12669
12670
12671 type QueryColorsCookie struct {
12672 *xgb.Cookie
12673 }
12674
12675
12676
12677 func QueryColors(c *xgb.Conn, Cmap Colormap, Pixels []uint32) QueryColorsCookie {
12678 cookie := c.NewCookie(true, true)
12679 c.NewRequest(queryColorsRequest(c, Cmap, Pixels), cookie)
12680 return QueryColorsCookie{cookie}
12681 }
12682
12683
12684
12685 func QueryColorsUnchecked(c *xgb.Conn, Cmap Colormap, Pixels []uint32) QueryColorsCookie {
12686 cookie := c.NewCookie(false, true)
12687 c.NewRequest(queryColorsRequest(c, Cmap, Pixels), cookie)
12688 return QueryColorsCookie{cookie}
12689 }
12690
12691
12692 type QueryColorsReply struct {
12693 Sequence uint16
12694 Length uint32
12695
12696 ColorsLen uint16
12697
12698 Colors []Rgb
12699 }
12700
12701
12702 func (cook QueryColorsCookie) Reply() (*QueryColorsReply, error) {
12703 buf, err := cook.Cookie.Reply()
12704 if err != nil {
12705 return nil, err
12706 }
12707 if buf == nil {
12708 return nil, nil
12709 }
12710 return queryColorsReply(buf), nil
12711 }
12712
12713
12714 func queryColorsReply(buf []byte) *QueryColorsReply {
12715 v := new(QueryColorsReply)
12716 b := 1
12717
12718 b += 1
12719
12720 v.Sequence = xgb.Get16(buf[b:])
12721 b += 2
12722
12723 v.Length = xgb.Get32(buf[b:])
12724 b += 4
12725
12726 v.ColorsLen = xgb.Get16(buf[b:])
12727 b += 2
12728
12729 b += 22
12730
12731 v.Colors = make([]Rgb, v.ColorsLen)
12732 b += RgbReadList(buf[b:], v.Colors)
12733
12734 return v
12735 }
12736
12737
12738
12739 func queryColorsRequest(c *xgb.Conn, Cmap Colormap, Pixels []uint32) []byte {
12740 size := xgb.Pad((8 + xgb.Pad((len(Pixels) * 4))))
12741 b := 0
12742 buf := make([]byte, size)
12743
12744 buf[b] = 91
12745 b += 1
12746
12747 b += 1
12748
12749 xgb.Put16(buf[b:], uint16(size/4))
12750 b += 2
12751
12752 xgb.Put32(buf[b:], uint32(Cmap))
12753 b += 4
12754
12755 for i := 0; i < int(len(Pixels)); i++ {
12756 xgb.Put32(buf[b:], Pixels[i])
12757 b += 4
12758 }
12759
12760 return buf
12761 }
12762
12763
12764 type QueryExtensionCookie struct {
12765 *xgb.Cookie
12766 }
12767
12768
12769
12770 func QueryExtension(c *xgb.Conn, NameLen uint16, Name string) QueryExtensionCookie {
12771 cookie := c.NewCookie(true, true)
12772 c.NewRequest(queryExtensionRequest(c, NameLen, Name), cookie)
12773 return QueryExtensionCookie{cookie}
12774 }
12775
12776
12777
12778 func QueryExtensionUnchecked(c *xgb.Conn, NameLen uint16, Name string) QueryExtensionCookie {
12779 cookie := c.NewCookie(false, true)
12780 c.NewRequest(queryExtensionRequest(c, NameLen, Name), cookie)
12781 return QueryExtensionCookie{cookie}
12782 }
12783
12784
12785 type QueryExtensionReply struct {
12786 Sequence uint16
12787 Length uint32
12788
12789 Present bool
12790 MajorOpcode byte
12791 FirstEvent byte
12792 FirstError byte
12793 }
12794
12795
12796 func (cook QueryExtensionCookie) Reply() (*QueryExtensionReply, error) {
12797 buf, err := cook.Cookie.Reply()
12798 if err != nil {
12799 return nil, err
12800 }
12801 if buf == nil {
12802 return nil, nil
12803 }
12804 return queryExtensionReply(buf), nil
12805 }
12806
12807
12808 func queryExtensionReply(buf []byte) *QueryExtensionReply {
12809 v := new(QueryExtensionReply)
12810 b := 1
12811
12812 b += 1
12813
12814 v.Sequence = xgb.Get16(buf[b:])
12815 b += 2
12816
12817 v.Length = xgb.Get32(buf[b:])
12818 b += 4
12819
12820 if buf[b] == 1 {
12821 v.Present = true
12822 } else {
12823 v.Present = false
12824 }
12825 b += 1
12826
12827 v.MajorOpcode = buf[b]
12828 b += 1
12829
12830 v.FirstEvent = buf[b]
12831 b += 1
12832
12833 v.FirstError = buf[b]
12834 b += 1
12835
12836 return v
12837 }
12838
12839
12840
12841 func queryExtensionRequest(c *xgb.Conn, NameLen uint16, Name string) []byte {
12842 size := xgb.Pad((8 + xgb.Pad((int(NameLen) * 1))))
12843 b := 0
12844 buf := make([]byte, size)
12845
12846 buf[b] = 98
12847 b += 1
12848
12849 b += 1
12850
12851 xgb.Put16(buf[b:], uint16(size/4))
12852 b += 2
12853
12854 xgb.Put16(buf[b:], NameLen)
12855 b += 2
12856
12857 b += 2
12858
12859 copy(buf[b:], Name[:NameLen])
12860 b += int(NameLen)
12861
12862 return buf
12863 }
12864
12865
12866 type QueryFontCookie struct {
12867 *xgb.Cookie
12868 }
12869
12870
12871
12872 func QueryFont(c *xgb.Conn, Font Fontable) QueryFontCookie {
12873 cookie := c.NewCookie(true, true)
12874 c.NewRequest(queryFontRequest(c, Font), cookie)
12875 return QueryFontCookie{cookie}
12876 }
12877
12878
12879
12880 func QueryFontUnchecked(c *xgb.Conn, Font Fontable) QueryFontCookie {
12881 cookie := c.NewCookie(false, true)
12882 c.NewRequest(queryFontRequest(c, Font), cookie)
12883 return QueryFontCookie{cookie}
12884 }
12885
12886
12887 type QueryFontReply struct {
12888 Sequence uint16
12889 Length uint32
12890
12891 MinBounds Charinfo
12892
12893 MaxBounds Charinfo
12894
12895 MinCharOrByte2 uint16
12896 MaxCharOrByte2 uint16
12897 DefaultChar uint16
12898 PropertiesLen uint16
12899 DrawDirection byte
12900 MinByte1 byte
12901 MaxByte1 byte
12902 AllCharsExist bool
12903 FontAscent int16
12904 FontDescent int16
12905 CharInfosLen uint32
12906 Properties []Fontprop
12907
12908 CharInfos []Charinfo
12909 }
12910
12911
12912 func (cook QueryFontCookie) Reply() (*QueryFontReply, error) {
12913 buf, err := cook.Cookie.Reply()
12914 if err != nil {
12915 return nil, err
12916 }
12917 if buf == nil {
12918 return nil, nil
12919 }
12920 return queryFontReply(buf), nil
12921 }
12922
12923
12924 func queryFontReply(buf []byte) *QueryFontReply {
12925 v := new(QueryFontReply)
12926 b := 1
12927
12928 b += 1
12929
12930 v.Sequence = xgb.Get16(buf[b:])
12931 b += 2
12932
12933 v.Length = xgb.Get32(buf[b:])
12934 b += 4
12935
12936 v.MinBounds = Charinfo{}
12937 b += CharinfoRead(buf[b:], &v.MinBounds)
12938
12939 b += 4
12940
12941 v.MaxBounds = Charinfo{}
12942 b += CharinfoRead(buf[b:], &v.MaxBounds)
12943
12944 b += 4
12945
12946 v.MinCharOrByte2 = xgb.Get16(buf[b:])
12947 b += 2
12948
12949 v.MaxCharOrByte2 = xgb.Get16(buf[b:])
12950 b += 2
12951
12952 v.DefaultChar = xgb.Get16(buf[b:])
12953 b += 2
12954
12955 v.PropertiesLen = xgb.Get16(buf[b:])
12956 b += 2
12957
12958 v.DrawDirection = buf[b]
12959 b += 1
12960
12961 v.MinByte1 = buf[b]
12962 b += 1
12963
12964 v.MaxByte1 = buf[b]
12965 b += 1
12966
12967 if buf[b] == 1 {
12968 v.AllCharsExist = true
12969 } else {
12970 v.AllCharsExist = false
12971 }
12972 b += 1
12973
12974 v.FontAscent = int16(xgb.Get16(buf[b:]))
12975 b += 2
12976
12977 v.FontDescent = int16(xgb.Get16(buf[b:]))
12978 b += 2
12979
12980 v.CharInfosLen = xgb.Get32(buf[b:])
12981 b += 4
12982
12983 v.Properties = make([]Fontprop, v.PropertiesLen)
12984 b += FontpropReadList(buf[b:], v.Properties)
12985
12986 b = (b + 3) & ^3
12987
12988 v.CharInfos = make([]Charinfo, v.CharInfosLen)
12989 b += CharinfoReadList(buf[b:], v.CharInfos)
12990
12991 return v
12992 }
12993
12994
12995
12996 func queryFontRequest(c *xgb.Conn, Font Fontable) []byte {
12997 size := 8
12998 b := 0
12999 buf := make([]byte, size)
13000
13001 buf[b] = 47
13002 b += 1
13003
13004 b += 1
13005
13006 xgb.Put16(buf[b:], uint16(size/4))
13007 b += 2
13008
13009 xgb.Put32(buf[b:], uint32(Font))
13010 b += 4
13011
13012 return buf
13013 }
13014
13015
13016 type QueryKeymapCookie struct {
13017 *xgb.Cookie
13018 }
13019
13020
13021
13022 func QueryKeymap(c *xgb.Conn) QueryKeymapCookie {
13023 cookie := c.NewCookie(true, true)
13024 c.NewRequest(queryKeymapRequest(c), cookie)
13025 return QueryKeymapCookie{cookie}
13026 }
13027
13028
13029
13030 func QueryKeymapUnchecked(c *xgb.Conn) QueryKeymapCookie {
13031 cookie := c.NewCookie(false, true)
13032 c.NewRequest(queryKeymapRequest(c), cookie)
13033 return QueryKeymapCookie{cookie}
13034 }
13035
13036
13037 type QueryKeymapReply struct {
13038 Sequence uint16
13039 Length uint32
13040
13041 Keys []byte
13042 }
13043
13044
13045 func (cook QueryKeymapCookie) Reply() (*QueryKeymapReply, error) {
13046 buf, err := cook.Cookie.Reply()
13047 if err != nil {
13048 return nil, err
13049 }
13050 if buf == nil {
13051 return nil, nil
13052 }
13053 return queryKeymapReply(buf), nil
13054 }
13055
13056
13057 func queryKeymapReply(buf []byte) *QueryKeymapReply {
13058 v := new(QueryKeymapReply)
13059 b := 1
13060
13061 b += 1
13062
13063 v.Sequence = xgb.Get16(buf[b:])
13064 b += 2
13065
13066 v.Length = xgb.Get32(buf[b:])
13067 b += 4
13068
13069 v.Keys = make([]byte, 32)
13070 copy(v.Keys[:32], buf[b:])
13071 b += int(32)
13072
13073 return v
13074 }
13075
13076
13077
13078 func queryKeymapRequest(c *xgb.Conn) []byte {
13079 size := 4
13080 b := 0
13081 buf := make([]byte, size)
13082
13083 buf[b] = 44
13084 b += 1
13085
13086 b += 1
13087 xgb.Put16(buf[b:], uint16(size/4))
13088 b += 2
13089
13090 return buf
13091 }
13092
13093
13094 type QueryPointerCookie struct {
13095 *xgb.Cookie
13096 }
13097
13098
13099
13100 func QueryPointer(c *xgb.Conn, Window Window) QueryPointerCookie {
13101 cookie := c.NewCookie(true, true)
13102 c.NewRequest(queryPointerRequest(c, Window), cookie)
13103 return QueryPointerCookie{cookie}
13104 }
13105
13106
13107
13108 func QueryPointerUnchecked(c *xgb.Conn, Window Window) QueryPointerCookie {
13109 cookie := c.NewCookie(false, true)
13110 c.NewRequest(queryPointerRequest(c, Window), cookie)
13111 return QueryPointerCookie{cookie}
13112 }
13113
13114
13115 type QueryPointerReply struct {
13116 Sequence uint16
13117 Length uint32
13118 SameScreen bool
13119 Root Window
13120 Child Window
13121 RootX int16
13122 RootY int16
13123 WinX int16
13124 WinY int16
13125 Mask uint16
13126
13127 }
13128
13129
13130 func (cook QueryPointerCookie) Reply() (*QueryPointerReply, error) {
13131 buf, err := cook.Cookie.Reply()
13132 if err != nil {
13133 return nil, err
13134 }
13135 if buf == nil {
13136 return nil, nil
13137 }
13138 return queryPointerReply(buf), nil
13139 }
13140
13141
13142 func queryPointerReply(buf []byte) *QueryPointerReply {
13143 v := new(QueryPointerReply)
13144 b := 1
13145
13146 if buf[b] == 1 {
13147 v.SameScreen = true
13148 } else {
13149 v.SameScreen = false
13150 }
13151 b += 1
13152
13153 v.Sequence = xgb.Get16(buf[b:])
13154 b += 2
13155
13156 v.Length = xgb.Get32(buf[b:])
13157 b += 4
13158
13159 v.Root = Window(xgb.Get32(buf[b:]))
13160 b += 4
13161
13162 v.Child = Window(xgb.Get32(buf[b:]))
13163 b += 4
13164
13165 v.RootX = int16(xgb.Get16(buf[b:]))
13166 b += 2
13167
13168 v.RootY = int16(xgb.Get16(buf[b:]))
13169 b += 2
13170
13171 v.WinX = int16(xgb.Get16(buf[b:]))
13172 b += 2
13173
13174 v.WinY = int16(xgb.Get16(buf[b:]))
13175 b += 2
13176
13177 v.Mask = xgb.Get16(buf[b:])
13178 b += 2
13179
13180 b += 2
13181
13182 return v
13183 }
13184
13185
13186
13187 func queryPointerRequest(c *xgb.Conn, Window Window) []byte {
13188 size := 8
13189 b := 0
13190 buf := make([]byte, size)
13191
13192 buf[b] = 38
13193 b += 1
13194
13195 b += 1
13196
13197 xgb.Put16(buf[b:], uint16(size/4))
13198 b += 2
13199
13200 xgb.Put32(buf[b:], uint32(Window))
13201 b += 4
13202
13203 return buf
13204 }
13205
13206
13207 type QueryTextExtentsCookie struct {
13208 *xgb.Cookie
13209 }
13210
13211
13212
13213 func QueryTextExtents(c *xgb.Conn, Font Fontable, String []Char2b, StringLen uint16) QueryTextExtentsCookie {
13214 cookie := c.NewCookie(true, true)
13215 c.NewRequest(queryTextExtentsRequest(c, Font, String, StringLen), cookie)
13216 return QueryTextExtentsCookie{cookie}
13217 }
13218
13219
13220
13221 func QueryTextExtentsUnchecked(c *xgb.Conn, Font Fontable, String []Char2b, StringLen uint16) QueryTextExtentsCookie {
13222 cookie := c.NewCookie(false, true)
13223 c.NewRequest(queryTextExtentsRequest(c, Font, String, StringLen), cookie)
13224 return QueryTextExtentsCookie{cookie}
13225 }
13226
13227
13228 type QueryTextExtentsReply struct {
13229 Sequence uint16
13230 Length uint32
13231 DrawDirection byte
13232 FontAscent int16
13233 FontDescent int16
13234 OverallAscent int16
13235 OverallDescent int16
13236 OverallWidth int32
13237 OverallLeft int32
13238 OverallRight int32
13239 }
13240
13241
13242 func (cook QueryTextExtentsCookie) Reply() (*QueryTextExtentsReply, error) {
13243 buf, err := cook.Cookie.Reply()
13244 if err != nil {
13245 return nil, err
13246 }
13247 if buf == nil {
13248 return nil, nil
13249 }
13250 return queryTextExtentsReply(buf), nil
13251 }
13252
13253
13254 func queryTextExtentsReply(buf []byte) *QueryTextExtentsReply {
13255 v := new(QueryTextExtentsReply)
13256 b := 1
13257
13258 v.DrawDirection = buf[b]
13259 b += 1
13260
13261 v.Sequence = xgb.Get16(buf[b:])
13262 b += 2
13263
13264 v.Length = xgb.Get32(buf[b:])
13265 b += 4
13266
13267 v.FontAscent = int16(xgb.Get16(buf[b:]))
13268 b += 2
13269
13270 v.FontDescent = int16(xgb.Get16(buf[b:]))
13271 b += 2
13272
13273 v.OverallAscent = int16(xgb.Get16(buf[b:]))
13274 b += 2
13275
13276 v.OverallDescent = int16(xgb.Get16(buf[b:]))
13277 b += 2
13278
13279 v.OverallWidth = int32(xgb.Get32(buf[b:]))
13280 b += 4
13281
13282 v.OverallLeft = int32(xgb.Get32(buf[b:]))
13283 b += 4
13284
13285 v.OverallRight = int32(xgb.Get32(buf[b:]))
13286 b += 4
13287
13288 return v
13289 }
13290
13291
13292
13293 func queryTextExtentsRequest(c *xgb.Conn, Font Fontable, String []Char2b, StringLen uint16) []byte {
13294 size := xgb.Pad((8 + xgb.Pad((len(String) * 2))))
13295 b := 0
13296 buf := make([]byte, size)
13297
13298 buf[b] = 48
13299 b += 1
13300
13301 buf[b] = byte((int(StringLen) & 1))
13302 b += 1
13303
13304 xgb.Put16(buf[b:], uint16(size/4))
13305 b += 2
13306
13307 xgb.Put32(buf[b:], uint32(Font))
13308 b += 4
13309
13310 b += Char2bListBytes(buf[b:], String)
13311
13312
13313
13314 return buf
13315 }
13316
13317
13318 type QueryTreeCookie struct {
13319 *xgb.Cookie
13320 }
13321
13322
13323
13324 func QueryTree(c *xgb.Conn, Window Window) QueryTreeCookie {
13325 cookie := c.NewCookie(true, true)
13326 c.NewRequest(queryTreeRequest(c, Window), cookie)
13327 return QueryTreeCookie{cookie}
13328 }
13329
13330
13331
13332 func QueryTreeUnchecked(c *xgb.Conn, Window Window) QueryTreeCookie {
13333 cookie := c.NewCookie(false, true)
13334 c.NewRequest(queryTreeRequest(c, Window), cookie)
13335 return QueryTreeCookie{cookie}
13336 }
13337
13338
13339 type QueryTreeReply struct {
13340 Sequence uint16
13341 Length uint32
13342
13343 Root Window
13344 Parent Window
13345 ChildrenLen uint16
13346
13347 Children []Window
13348 }
13349
13350
13351 func (cook QueryTreeCookie) Reply() (*QueryTreeReply, error) {
13352 buf, err := cook.Cookie.Reply()
13353 if err != nil {
13354 return nil, err
13355 }
13356 if buf == nil {
13357 return nil, nil
13358 }
13359 return queryTreeReply(buf), nil
13360 }
13361
13362
13363 func queryTreeReply(buf []byte) *QueryTreeReply {
13364 v := new(QueryTreeReply)
13365 b := 1
13366
13367 b += 1
13368
13369 v.Sequence = xgb.Get16(buf[b:])
13370 b += 2
13371
13372 v.Length = xgb.Get32(buf[b:])
13373 b += 4
13374
13375 v.Root = Window(xgb.Get32(buf[b:]))
13376 b += 4
13377
13378 v.Parent = Window(xgb.Get32(buf[b:]))
13379 b += 4
13380
13381 v.ChildrenLen = xgb.Get16(buf[b:])
13382 b += 2
13383
13384 b += 14
13385
13386 v.Children = make([]Window, v.ChildrenLen)
13387 for i := 0; i < int(v.ChildrenLen); i++ {
13388 v.Children[i] = Window(xgb.Get32(buf[b:]))
13389 b += 4
13390 }
13391
13392 return v
13393 }
13394
13395
13396
13397 func queryTreeRequest(c *xgb.Conn, Window Window) []byte {
13398 size := 8
13399 b := 0
13400 buf := make([]byte, size)
13401
13402 buf[b] = 15
13403 b += 1
13404
13405 b += 1
13406
13407 xgb.Put16(buf[b:], uint16(size/4))
13408 b += 2
13409
13410 xgb.Put32(buf[b:], uint32(Window))
13411 b += 4
13412
13413 return buf
13414 }
13415
13416
13417 type RecolorCursorCookie struct {
13418 *xgb.Cookie
13419 }
13420
13421
13422
13423 func RecolorCursor(c *xgb.Conn, Cursor Cursor, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16) RecolorCursorCookie {
13424 cookie := c.NewCookie(false, false)
13425 c.NewRequest(recolorCursorRequest(c, Cursor, ForeRed, ForeGreen, ForeBlue, BackRed, BackGreen, BackBlue), cookie)
13426 return RecolorCursorCookie{cookie}
13427 }
13428
13429
13430
13431 func RecolorCursorChecked(c *xgb.Conn, Cursor Cursor, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16) RecolorCursorCookie {
13432 cookie := c.NewCookie(true, false)
13433 c.NewRequest(recolorCursorRequest(c, Cursor, ForeRed, ForeGreen, ForeBlue, BackRed, BackGreen, BackBlue), cookie)
13434 return RecolorCursorCookie{cookie}
13435 }
13436
13437
13438
13439 func (cook RecolorCursorCookie) Check() error {
13440 return cook.Cookie.Check()
13441 }
13442
13443
13444
13445 func recolorCursorRequest(c *xgb.Conn, Cursor Cursor, ForeRed uint16, ForeGreen uint16, ForeBlue uint16, BackRed uint16, BackGreen uint16, BackBlue uint16) []byte {
13446 size := 20
13447 b := 0
13448 buf := make([]byte, size)
13449
13450 buf[b] = 96
13451 b += 1
13452
13453 b += 1
13454
13455 xgb.Put16(buf[b:], uint16(size/4))
13456 b += 2
13457
13458 xgb.Put32(buf[b:], uint32(Cursor))
13459 b += 4
13460
13461 xgb.Put16(buf[b:], ForeRed)
13462 b += 2
13463
13464 xgb.Put16(buf[b:], ForeGreen)
13465 b += 2
13466
13467 xgb.Put16(buf[b:], ForeBlue)
13468 b += 2
13469
13470 xgb.Put16(buf[b:], BackRed)
13471 b += 2
13472
13473 xgb.Put16(buf[b:], BackGreen)
13474 b += 2
13475
13476 xgb.Put16(buf[b:], BackBlue)
13477 b += 2
13478
13479 return buf
13480 }
13481
13482
13483 type ReparentWindowCookie struct {
13484 *xgb.Cookie
13485 }
13486
13487
13488
13489 func ReparentWindow(c *xgb.Conn, Window Window, Parent Window, X int16, Y int16) ReparentWindowCookie {
13490 cookie := c.NewCookie(false, false)
13491 c.NewRequest(reparentWindowRequest(c, Window, Parent, X, Y), cookie)
13492 return ReparentWindowCookie{cookie}
13493 }
13494
13495
13496
13497 func ReparentWindowChecked(c *xgb.Conn, Window Window, Parent Window, X int16, Y int16) ReparentWindowCookie {
13498 cookie := c.NewCookie(true, false)
13499 c.NewRequest(reparentWindowRequest(c, Window, Parent, X, Y), cookie)
13500 return ReparentWindowCookie{cookie}
13501 }
13502
13503
13504
13505 func (cook ReparentWindowCookie) Check() error {
13506 return cook.Cookie.Check()
13507 }
13508
13509
13510
13511 func reparentWindowRequest(c *xgb.Conn, Window Window, Parent Window, X int16, Y int16) []byte {
13512 size := 16
13513 b := 0
13514 buf := make([]byte, size)
13515
13516 buf[b] = 7
13517 b += 1
13518
13519 b += 1
13520
13521 xgb.Put16(buf[b:], uint16(size/4))
13522 b += 2
13523
13524 xgb.Put32(buf[b:], uint32(Window))
13525 b += 4
13526
13527 xgb.Put32(buf[b:], uint32(Parent))
13528 b += 4
13529
13530 xgb.Put16(buf[b:], uint16(X))
13531 b += 2
13532
13533 xgb.Put16(buf[b:], uint16(Y))
13534 b += 2
13535
13536 return buf
13537 }
13538
13539
13540 type RotatePropertiesCookie struct {
13541 *xgb.Cookie
13542 }
13543
13544
13545
13546 func RotateProperties(c *xgb.Conn, Window Window, AtomsLen uint16, Delta int16, Atoms []Atom) RotatePropertiesCookie {
13547 cookie := c.NewCookie(false, false)
13548 c.NewRequest(rotatePropertiesRequest(c, Window, AtomsLen, Delta, Atoms), cookie)
13549 return RotatePropertiesCookie{cookie}
13550 }
13551
13552
13553
13554 func RotatePropertiesChecked(c *xgb.Conn, Window Window, AtomsLen uint16, Delta int16, Atoms []Atom) RotatePropertiesCookie {
13555 cookie := c.NewCookie(true, false)
13556 c.NewRequest(rotatePropertiesRequest(c, Window, AtomsLen, Delta, Atoms), cookie)
13557 return RotatePropertiesCookie{cookie}
13558 }
13559
13560
13561
13562 func (cook RotatePropertiesCookie) Check() error {
13563 return cook.Cookie.Check()
13564 }
13565
13566
13567
13568 func rotatePropertiesRequest(c *xgb.Conn, Window Window, AtomsLen uint16, Delta int16, Atoms []Atom) []byte {
13569 size := xgb.Pad((12 + xgb.Pad((int(AtomsLen) * 4))))
13570 b := 0
13571 buf := make([]byte, size)
13572
13573 buf[b] = 114
13574 b += 1
13575
13576 b += 1
13577
13578 xgb.Put16(buf[b:], uint16(size/4))
13579 b += 2
13580
13581 xgb.Put32(buf[b:], uint32(Window))
13582 b += 4
13583
13584 xgb.Put16(buf[b:], AtomsLen)
13585 b += 2
13586
13587 xgb.Put16(buf[b:], uint16(Delta))
13588 b += 2
13589
13590 for i := 0; i < int(AtomsLen); i++ {
13591 xgb.Put32(buf[b:], uint32(Atoms[i]))
13592 b += 4
13593 }
13594
13595 return buf
13596 }
13597
13598
13599 type SendEventCookie struct {
13600 *xgb.Cookie
13601 }
13602
13603
13604
13605 func SendEvent(c *xgb.Conn, Propagate bool, Destination Window, EventMask uint32, Event string) SendEventCookie {
13606 cookie := c.NewCookie(false, false)
13607 c.NewRequest(sendEventRequest(c, Propagate, Destination, EventMask, Event), cookie)
13608 return SendEventCookie{cookie}
13609 }
13610
13611
13612
13613 func SendEventChecked(c *xgb.Conn, Propagate bool, Destination Window, EventMask uint32, Event string) SendEventCookie {
13614 cookie := c.NewCookie(true, false)
13615 c.NewRequest(sendEventRequest(c, Propagate, Destination, EventMask, Event), cookie)
13616 return SendEventCookie{cookie}
13617 }
13618
13619
13620
13621 func (cook SendEventCookie) Check() error {
13622 return cook.Cookie.Check()
13623 }
13624
13625
13626
13627 func sendEventRequest(c *xgb.Conn, Propagate bool, Destination Window, EventMask uint32, Event string) []byte {
13628 size := 44
13629 b := 0
13630 buf := make([]byte, size)
13631
13632 buf[b] = 25
13633 b += 1
13634
13635 if Propagate {
13636 buf[b] = 1
13637 } else {
13638 buf[b] = 0
13639 }
13640 b += 1
13641
13642 xgb.Put16(buf[b:], uint16(size/4))
13643 b += 2
13644
13645 xgb.Put32(buf[b:], uint32(Destination))
13646 b += 4
13647
13648 xgb.Put32(buf[b:], EventMask)
13649 b += 4
13650
13651 copy(buf[b:], Event[:32])
13652 b += int(32)
13653
13654 return buf
13655 }
13656
13657
13658 type SetAccessControlCookie struct {
13659 *xgb.Cookie
13660 }
13661
13662
13663
13664 func SetAccessControl(c *xgb.Conn, Mode byte) SetAccessControlCookie {
13665 cookie := c.NewCookie(false, false)
13666 c.NewRequest(setAccessControlRequest(c, Mode), cookie)
13667 return SetAccessControlCookie{cookie}
13668 }
13669
13670
13671
13672 func SetAccessControlChecked(c *xgb.Conn, Mode byte) SetAccessControlCookie {
13673 cookie := c.NewCookie(true, false)
13674 c.NewRequest(setAccessControlRequest(c, Mode), cookie)
13675 return SetAccessControlCookie{cookie}
13676 }
13677
13678
13679
13680 func (cook SetAccessControlCookie) Check() error {
13681 return cook.Cookie.Check()
13682 }
13683
13684
13685
13686 func setAccessControlRequest(c *xgb.Conn, Mode byte) []byte {
13687 size := 4
13688 b := 0
13689 buf := make([]byte, size)
13690
13691 buf[b] = 111
13692 b += 1
13693
13694 buf[b] = Mode
13695 b += 1
13696
13697 xgb.Put16(buf[b:], uint16(size/4))
13698 b += 2
13699
13700 return buf
13701 }
13702
13703
13704 type SetClipRectanglesCookie struct {
13705 *xgb.Cookie
13706 }
13707
13708
13709
13710 func SetClipRectangles(c *xgb.Conn, Ordering byte, Gc Gcontext, ClipXOrigin int16, ClipYOrigin int16, Rectangles []Rectangle) SetClipRectanglesCookie {
13711 cookie := c.NewCookie(false, false)
13712 c.NewRequest(setClipRectanglesRequest(c, Ordering, Gc, ClipXOrigin, ClipYOrigin, Rectangles), cookie)
13713 return SetClipRectanglesCookie{cookie}
13714 }
13715
13716
13717
13718 func SetClipRectanglesChecked(c *xgb.Conn, Ordering byte, Gc Gcontext, ClipXOrigin int16, ClipYOrigin int16, Rectangles []Rectangle) SetClipRectanglesCookie {
13719 cookie := c.NewCookie(true, false)
13720 c.NewRequest(setClipRectanglesRequest(c, Ordering, Gc, ClipXOrigin, ClipYOrigin, Rectangles), cookie)
13721 return SetClipRectanglesCookie{cookie}
13722 }
13723
13724
13725
13726 func (cook SetClipRectanglesCookie) Check() error {
13727 return cook.Cookie.Check()
13728 }
13729
13730
13731
13732 func setClipRectanglesRequest(c *xgb.Conn, Ordering byte, Gc Gcontext, ClipXOrigin int16, ClipYOrigin int16, Rectangles []Rectangle) []byte {
13733 size := xgb.Pad((12 + xgb.Pad((len(Rectangles) * 8))))
13734 b := 0
13735 buf := make([]byte, size)
13736
13737 buf[b] = 59
13738 b += 1
13739
13740 buf[b] = Ordering
13741 b += 1
13742
13743 xgb.Put16(buf[b:], uint16(size/4))
13744 b += 2
13745
13746 xgb.Put32(buf[b:], uint32(Gc))
13747 b += 4
13748
13749 xgb.Put16(buf[b:], uint16(ClipXOrigin))
13750 b += 2
13751
13752 xgb.Put16(buf[b:], uint16(ClipYOrigin))
13753 b += 2
13754
13755 b += RectangleListBytes(buf[b:], Rectangles)
13756
13757 return buf
13758 }
13759
13760
13761 type SetCloseDownModeCookie struct {
13762 *xgb.Cookie
13763 }
13764
13765
13766
13767 func SetCloseDownMode(c *xgb.Conn, Mode byte) SetCloseDownModeCookie {
13768 cookie := c.NewCookie(false, false)
13769 c.NewRequest(setCloseDownModeRequest(c, Mode), cookie)
13770 return SetCloseDownModeCookie{cookie}
13771 }
13772
13773
13774
13775 func SetCloseDownModeChecked(c *xgb.Conn, Mode byte) SetCloseDownModeCookie {
13776 cookie := c.NewCookie(true, false)
13777 c.NewRequest(setCloseDownModeRequest(c, Mode), cookie)
13778 return SetCloseDownModeCookie{cookie}
13779 }
13780
13781
13782
13783 func (cook SetCloseDownModeCookie) Check() error {
13784 return cook.Cookie.Check()
13785 }
13786
13787
13788
13789 func setCloseDownModeRequest(c *xgb.Conn, Mode byte) []byte {
13790 size := 4
13791 b := 0
13792 buf := make([]byte, size)
13793
13794 buf[b] = 112
13795 b += 1
13796
13797 buf[b] = Mode
13798 b += 1
13799
13800 xgb.Put16(buf[b:], uint16(size/4))
13801 b += 2
13802
13803 return buf
13804 }
13805
13806
13807 type SetDashesCookie struct {
13808 *xgb.Cookie
13809 }
13810
13811
13812
13813 func SetDashes(c *xgb.Conn, Gc Gcontext, DashOffset uint16, DashesLen uint16, Dashes []byte) SetDashesCookie {
13814 cookie := c.NewCookie(false, false)
13815 c.NewRequest(setDashesRequest(c, Gc, DashOffset, DashesLen, Dashes), cookie)
13816 return SetDashesCookie{cookie}
13817 }
13818
13819
13820
13821 func SetDashesChecked(c *xgb.Conn, Gc Gcontext, DashOffset uint16, DashesLen uint16, Dashes []byte) SetDashesCookie {
13822 cookie := c.NewCookie(true, false)
13823 c.NewRequest(setDashesRequest(c, Gc, DashOffset, DashesLen, Dashes), cookie)
13824 return SetDashesCookie{cookie}
13825 }
13826
13827
13828
13829 func (cook SetDashesCookie) Check() error {
13830 return cook.Cookie.Check()
13831 }
13832
13833
13834
13835 func setDashesRequest(c *xgb.Conn, Gc Gcontext, DashOffset uint16, DashesLen uint16, Dashes []byte) []byte {
13836 size := xgb.Pad((12 + xgb.Pad((int(DashesLen) * 1))))
13837 b := 0
13838 buf := make([]byte, size)
13839
13840 buf[b] = 58
13841 b += 1
13842
13843 b += 1
13844
13845 xgb.Put16(buf[b:], uint16(size/4))
13846 b += 2
13847
13848 xgb.Put32(buf[b:], uint32(Gc))
13849 b += 4
13850
13851 xgb.Put16(buf[b:], DashOffset)
13852 b += 2
13853
13854 xgb.Put16(buf[b:], DashesLen)
13855 b += 2
13856
13857 copy(buf[b:], Dashes[:DashesLen])
13858 b += int(DashesLen)
13859
13860 return buf
13861 }
13862
13863
13864 type SetFontPathCookie struct {
13865 *xgb.Cookie
13866 }
13867
13868
13869
13870 func SetFontPath(c *xgb.Conn, FontQty uint16, Font []Str) SetFontPathCookie {
13871 cookie := c.NewCookie(false, false)
13872 c.NewRequest(setFontPathRequest(c, FontQty, Font), cookie)
13873 return SetFontPathCookie{cookie}
13874 }
13875
13876
13877
13878 func SetFontPathChecked(c *xgb.Conn, FontQty uint16, Font []Str) SetFontPathCookie {
13879 cookie := c.NewCookie(true, false)
13880 c.NewRequest(setFontPathRequest(c, FontQty, Font), cookie)
13881 return SetFontPathCookie{cookie}
13882 }
13883
13884
13885
13886 func (cook SetFontPathCookie) Check() error {
13887 return cook.Cookie.Check()
13888 }
13889
13890
13891
13892 func setFontPathRequest(c *xgb.Conn, FontQty uint16, Font []Str) []byte {
13893 size := xgb.Pad((8 + StrListSize(Font)))
13894 b := 0
13895 buf := make([]byte, size)
13896
13897 buf[b] = 51
13898 b += 1
13899
13900 b += 1
13901
13902 xgb.Put16(buf[b:], uint16(size/4))
13903 b += 2
13904
13905 xgb.Put16(buf[b:], FontQty)
13906 b += 2
13907
13908 b += 2
13909
13910 b += StrListBytes(buf[b:], Font)
13911
13912 return buf
13913 }
13914
13915
13916 type SetInputFocusCookie struct {
13917 *xgb.Cookie
13918 }
13919
13920
13921
13922 func SetInputFocus(c *xgb.Conn, RevertTo byte, Focus Window, Time Timestamp) SetInputFocusCookie {
13923 cookie := c.NewCookie(false, false)
13924 c.NewRequest(setInputFocusRequest(c, RevertTo, Focus, Time), cookie)
13925 return SetInputFocusCookie{cookie}
13926 }
13927
13928
13929
13930 func SetInputFocusChecked(c *xgb.Conn, RevertTo byte, Focus Window, Time Timestamp) SetInputFocusCookie {
13931 cookie := c.NewCookie(true, false)
13932 c.NewRequest(setInputFocusRequest(c, RevertTo, Focus, Time), cookie)
13933 return SetInputFocusCookie{cookie}
13934 }
13935
13936
13937
13938 func (cook SetInputFocusCookie) Check() error {
13939 return cook.Cookie.Check()
13940 }
13941
13942
13943
13944 func setInputFocusRequest(c *xgb.Conn, RevertTo byte, Focus Window, Time Timestamp) []byte {
13945 size := 12
13946 b := 0
13947 buf := make([]byte, size)
13948
13949 buf[b] = 42
13950 b += 1
13951
13952 buf[b] = RevertTo
13953 b += 1
13954
13955 xgb.Put16(buf[b:], uint16(size/4))
13956 b += 2
13957
13958 xgb.Put32(buf[b:], uint32(Focus))
13959 b += 4
13960
13961 xgb.Put32(buf[b:], uint32(Time))
13962 b += 4
13963
13964 return buf
13965 }
13966
13967
13968 type SetModifierMappingCookie struct {
13969 *xgb.Cookie
13970 }
13971
13972
13973
13974 func SetModifierMapping(c *xgb.Conn, KeycodesPerModifier byte, Keycodes []Keycode) SetModifierMappingCookie {
13975 cookie := c.NewCookie(true, true)
13976 c.NewRequest(setModifierMappingRequest(c, KeycodesPerModifier, Keycodes), cookie)
13977 return SetModifierMappingCookie{cookie}
13978 }
13979
13980
13981
13982 func SetModifierMappingUnchecked(c *xgb.Conn, KeycodesPerModifier byte, Keycodes []Keycode) SetModifierMappingCookie {
13983 cookie := c.NewCookie(false, true)
13984 c.NewRequest(setModifierMappingRequest(c, KeycodesPerModifier, Keycodes), cookie)
13985 return SetModifierMappingCookie{cookie}
13986 }
13987
13988
13989 type SetModifierMappingReply struct {
13990 Sequence uint16
13991 Length uint32
13992 Status byte
13993 }
13994
13995
13996 func (cook SetModifierMappingCookie) Reply() (*SetModifierMappingReply, error) {
13997 buf, err := cook.Cookie.Reply()
13998 if err != nil {
13999 return nil, err
14000 }
14001 if buf == nil {
14002 return nil, nil
14003 }
14004 return setModifierMappingReply(buf), nil
14005 }
14006
14007
14008 func setModifierMappingReply(buf []byte) *SetModifierMappingReply {
14009 v := new(SetModifierMappingReply)
14010 b := 1
14011
14012 v.Status = buf[b]
14013 b += 1
14014
14015 v.Sequence = xgb.Get16(buf[b:])
14016 b += 2
14017
14018 v.Length = xgb.Get32(buf[b:])
14019 b += 4
14020
14021 return v
14022 }
14023
14024
14025
14026 func setModifierMappingRequest(c *xgb.Conn, KeycodesPerModifier byte, Keycodes []Keycode) []byte {
14027 size := xgb.Pad((4 + xgb.Pad(((int(KeycodesPerModifier) * 8) * 1))))
14028 b := 0
14029 buf := make([]byte, size)
14030
14031 buf[b] = 118
14032 b += 1
14033
14034 buf[b] = KeycodesPerModifier
14035 b += 1
14036
14037 xgb.Put16(buf[b:], uint16(size/4))
14038 b += 2
14039
14040 for i := 0; i < int((int(KeycodesPerModifier) * 8)); i++ {
14041 buf[b] = byte(Keycodes[i])
14042 b += 1
14043 }
14044
14045 return buf
14046 }
14047
14048
14049 type SetPointerMappingCookie struct {
14050 *xgb.Cookie
14051 }
14052
14053
14054
14055 func SetPointerMapping(c *xgb.Conn, MapLen byte, Map []byte) SetPointerMappingCookie {
14056 cookie := c.NewCookie(true, true)
14057 c.NewRequest(setPointerMappingRequest(c, MapLen, Map), cookie)
14058 return SetPointerMappingCookie{cookie}
14059 }
14060
14061
14062
14063 func SetPointerMappingUnchecked(c *xgb.Conn, MapLen byte, Map []byte) SetPointerMappingCookie {
14064 cookie := c.NewCookie(false, true)
14065 c.NewRequest(setPointerMappingRequest(c, MapLen, Map), cookie)
14066 return SetPointerMappingCookie{cookie}
14067 }
14068
14069
14070 type SetPointerMappingReply struct {
14071 Sequence uint16
14072 Length uint32
14073 Status byte
14074 }
14075
14076
14077 func (cook SetPointerMappingCookie) Reply() (*SetPointerMappingReply, error) {
14078 buf, err := cook.Cookie.Reply()
14079 if err != nil {
14080 return nil, err
14081 }
14082 if buf == nil {
14083 return nil, nil
14084 }
14085 return setPointerMappingReply(buf), nil
14086 }
14087
14088
14089 func setPointerMappingReply(buf []byte) *SetPointerMappingReply {
14090 v := new(SetPointerMappingReply)
14091 b := 1
14092
14093 v.Status = buf[b]
14094 b += 1
14095
14096 v.Sequence = xgb.Get16(buf[b:])
14097 b += 2
14098
14099 v.Length = xgb.Get32(buf[b:])
14100 b += 4
14101
14102 return v
14103 }
14104
14105
14106
14107 func setPointerMappingRequest(c *xgb.Conn, MapLen byte, Map []byte) []byte {
14108 size := xgb.Pad((4 + xgb.Pad((int(MapLen) * 1))))
14109 b := 0
14110 buf := make([]byte, size)
14111
14112 buf[b] = 116
14113 b += 1
14114
14115 buf[b] = MapLen
14116 b += 1
14117
14118 xgb.Put16(buf[b:], uint16(size/4))
14119 b += 2
14120
14121 copy(buf[b:], Map[:MapLen])
14122 b += int(MapLen)
14123
14124 return buf
14125 }
14126
14127
14128 type SetScreenSaverCookie struct {
14129 *xgb.Cookie
14130 }
14131
14132
14133
14134 func SetScreenSaver(c *xgb.Conn, Timeout int16, Interval int16, PreferBlanking byte, AllowExposures byte) SetScreenSaverCookie {
14135 cookie := c.NewCookie(false, false)
14136 c.NewRequest(setScreenSaverRequest(c, Timeout, Interval, PreferBlanking, AllowExposures), cookie)
14137 return SetScreenSaverCookie{cookie}
14138 }
14139
14140
14141
14142 func SetScreenSaverChecked(c *xgb.Conn, Timeout int16, Interval int16, PreferBlanking byte, AllowExposures byte) SetScreenSaverCookie {
14143 cookie := c.NewCookie(true, false)
14144 c.NewRequest(setScreenSaverRequest(c, Timeout, Interval, PreferBlanking, AllowExposures), cookie)
14145 return SetScreenSaverCookie{cookie}
14146 }
14147
14148
14149
14150 func (cook SetScreenSaverCookie) Check() error {
14151 return cook.Cookie.Check()
14152 }
14153
14154
14155
14156 func setScreenSaverRequest(c *xgb.Conn, Timeout int16, Interval int16, PreferBlanking byte, AllowExposures byte) []byte {
14157 size := 12
14158 b := 0
14159 buf := make([]byte, size)
14160
14161 buf[b] = 107
14162 b += 1
14163
14164 b += 1
14165
14166 xgb.Put16(buf[b:], uint16(size/4))
14167 b += 2
14168
14169 xgb.Put16(buf[b:], uint16(Timeout))
14170 b += 2
14171
14172 xgb.Put16(buf[b:], uint16(Interval))
14173 b += 2
14174
14175 buf[b] = PreferBlanking
14176 b += 1
14177
14178 buf[b] = AllowExposures
14179 b += 1
14180
14181 return buf
14182 }
14183
14184
14185 type SetSelectionOwnerCookie struct {
14186 *xgb.Cookie
14187 }
14188
14189
14190
14191 func SetSelectionOwner(c *xgb.Conn, Owner Window, Selection Atom, Time Timestamp) SetSelectionOwnerCookie {
14192 cookie := c.NewCookie(false, false)
14193 c.NewRequest(setSelectionOwnerRequest(c, Owner, Selection, Time), cookie)
14194 return SetSelectionOwnerCookie{cookie}
14195 }
14196
14197
14198
14199 func SetSelectionOwnerChecked(c *xgb.Conn, Owner Window, Selection Atom, Time Timestamp) SetSelectionOwnerCookie {
14200 cookie := c.NewCookie(true, false)
14201 c.NewRequest(setSelectionOwnerRequest(c, Owner, Selection, Time), cookie)
14202 return SetSelectionOwnerCookie{cookie}
14203 }
14204
14205
14206
14207 func (cook SetSelectionOwnerCookie) Check() error {
14208 return cook.Cookie.Check()
14209 }
14210
14211
14212
14213 func setSelectionOwnerRequest(c *xgb.Conn, Owner Window, Selection Atom, Time Timestamp) []byte {
14214 size := 16
14215 b := 0
14216 buf := make([]byte, size)
14217
14218 buf[b] = 22
14219 b += 1
14220
14221 b += 1
14222
14223 xgb.Put16(buf[b:], uint16(size/4))
14224 b += 2
14225
14226 xgb.Put32(buf[b:], uint32(Owner))
14227 b += 4
14228
14229 xgb.Put32(buf[b:], uint32(Selection))
14230 b += 4
14231
14232 xgb.Put32(buf[b:], uint32(Time))
14233 b += 4
14234
14235 return buf
14236 }
14237
14238
14239 type StoreColorsCookie struct {
14240 *xgb.Cookie
14241 }
14242
14243
14244
14245 func StoreColors(c *xgb.Conn, Cmap Colormap, Items []Coloritem) StoreColorsCookie {
14246 cookie := c.NewCookie(false, false)
14247 c.NewRequest(storeColorsRequest(c, Cmap, Items), cookie)
14248 return StoreColorsCookie{cookie}
14249 }
14250
14251
14252
14253 func StoreColorsChecked(c *xgb.Conn, Cmap Colormap, Items []Coloritem) StoreColorsCookie {
14254 cookie := c.NewCookie(true, false)
14255 c.NewRequest(storeColorsRequest(c, Cmap, Items), cookie)
14256 return StoreColorsCookie{cookie}
14257 }
14258
14259
14260
14261 func (cook StoreColorsCookie) Check() error {
14262 return cook.Cookie.Check()
14263 }
14264
14265
14266
14267 func storeColorsRequest(c *xgb.Conn, Cmap Colormap, Items []Coloritem) []byte {
14268 size := xgb.Pad((8 + xgb.Pad((len(Items) * 12))))
14269 b := 0
14270 buf := make([]byte, size)
14271
14272 buf[b] = 89
14273 b += 1
14274
14275 b += 1
14276
14277 xgb.Put16(buf[b:], uint16(size/4))
14278 b += 2
14279
14280 xgb.Put32(buf[b:], uint32(Cmap))
14281 b += 4
14282
14283 b += ColoritemListBytes(buf[b:], Items)
14284
14285 return buf
14286 }
14287
14288
14289 type StoreNamedColorCookie struct {
14290 *xgb.Cookie
14291 }
14292
14293
14294
14295 func StoreNamedColor(c *xgb.Conn, Flags byte, Cmap Colormap, Pixel uint32, NameLen uint16, Name string) StoreNamedColorCookie {
14296 cookie := c.NewCookie(false, false)
14297 c.NewRequest(storeNamedColorRequest(c, Flags, Cmap, Pixel, NameLen, Name), cookie)
14298 return StoreNamedColorCookie{cookie}
14299 }
14300
14301
14302
14303 func StoreNamedColorChecked(c *xgb.Conn, Flags byte, Cmap Colormap, Pixel uint32, NameLen uint16, Name string) StoreNamedColorCookie {
14304 cookie := c.NewCookie(true, false)
14305 c.NewRequest(storeNamedColorRequest(c, Flags, Cmap, Pixel, NameLen, Name), cookie)
14306 return StoreNamedColorCookie{cookie}
14307 }
14308
14309
14310
14311 func (cook StoreNamedColorCookie) Check() error {
14312 return cook.Cookie.Check()
14313 }
14314
14315
14316
14317 func storeNamedColorRequest(c *xgb.Conn, Flags byte, Cmap Colormap, Pixel uint32, NameLen uint16, Name string) []byte {
14318 size := xgb.Pad((16 + xgb.Pad((int(NameLen) * 1))))
14319 b := 0
14320 buf := make([]byte, size)
14321
14322 buf[b] = 90
14323 b += 1
14324
14325 buf[b] = Flags
14326 b += 1
14327
14328 xgb.Put16(buf[b:], uint16(size/4))
14329 b += 2
14330
14331 xgb.Put32(buf[b:], uint32(Cmap))
14332 b += 4
14333
14334 xgb.Put32(buf[b:], Pixel)
14335 b += 4
14336
14337 xgb.Put16(buf[b:], NameLen)
14338 b += 2
14339
14340 b += 2
14341
14342 copy(buf[b:], Name[:NameLen])
14343 b += int(NameLen)
14344
14345 return buf
14346 }
14347
14348
14349 type TranslateCoordinatesCookie struct {
14350 *xgb.Cookie
14351 }
14352
14353
14354
14355 func TranslateCoordinates(c *xgb.Conn, SrcWindow Window, DstWindow Window, SrcX int16, SrcY int16) TranslateCoordinatesCookie {
14356 cookie := c.NewCookie(true, true)
14357 c.NewRequest(translateCoordinatesRequest(c, SrcWindow, DstWindow, SrcX, SrcY), cookie)
14358 return TranslateCoordinatesCookie{cookie}
14359 }
14360
14361
14362
14363 func TranslateCoordinatesUnchecked(c *xgb.Conn, SrcWindow Window, DstWindow Window, SrcX int16, SrcY int16) TranslateCoordinatesCookie {
14364 cookie := c.NewCookie(false, true)
14365 c.NewRequest(translateCoordinatesRequest(c, SrcWindow, DstWindow, SrcX, SrcY), cookie)
14366 return TranslateCoordinatesCookie{cookie}
14367 }
14368
14369
14370 type TranslateCoordinatesReply struct {
14371 Sequence uint16
14372 Length uint32
14373 SameScreen bool
14374 Child Window
14375 DstX int16
14376 DstY int16
14377 }
14378
14379
14380 func (cook TranslateCoordinatesCookie) Reply() (*TranslateCoordinatesReply, error) {
14381 buf, err := cook.Cookie.Reply()
14382 if err != nil {
14383 return nil, err
14384 }
14385 if buf == nil {
14386 return nil, nil
14387 }
14388 return translateCoordinatesReply(buf), nil
14389 }
14390
14391
14392 func translateCoordinatesReply(buf []byte) *TranslateCoordinatesReply {
14393 v := new(TranslateCoordinatesReply)
14394 b := 1
14395
14396 if buf[b] == 1 {
14397 v.SameScreen = true
14398 } else {
14399 v.SameScreen = false
14400 }
14401 b += 1
14402
14403 v.Sequence = xgb.Get16(buf[b:])
14404 b += 2
14405
14406 v.Length = xgb.Get32(buf[b:])
14407 b += 4
14408
14409 v.Child = Window(xgb.Get32(buf[b:]))
14410 b += 4
14411
14412 v.DstX = int16(xgb.Get16(buf[b:]))
14413 b += 2
14414
14415 v.DstY = int16(xgb.Get16(buf[b:]))
14416 b += 2
14417
14418 return v
14419 }
14420
14421
14422
14423 func translateCoordinatesRequest(c *xgb.Conn, SrcWindow Window, DstWindow Window, SrcX int16, SrcY int16) []byte {
14424 size := 16
14425 b := 0
14426 buf := make([]byte, size)
14427
14428 buf[b] = 40
14429 b += 1
14430
14431 b += 1
14432
14433 xgb.Put16(buf[b:], uint16(size/4))
14434 b += 2
14435
14436 xgb.Put32(buf[b:], uint32(SrcWindow))
14437 b += 4
14438
14439 xgb.Put32(buf[b:], uint32(DstWindow))
14440 b += 4
14441
14442 xgb.Put16(buf[b:], uint16(SrcX))
14443 b += 2
14444
14445 xgb.Put16(buf[b:], uint16(SrcY))
14446 b += 2
14447
14448 return buf
14449 }
14450
14451
14452 type UngrabButtonCookie struct {
14453 *xgb.Cookie
14454 }
14455
14456
14457
14458 func UngrabButton(c *xgb.Conn, Button byte, GrabWindow Window, Modifiers uint16) UngrabButtonCookie {
14459 cookie := c.NewCookie(false, false)
14460 c.NewRequest(ungrabButtonRequest(c, Button, GrabWindow, Modifiers), cookie)
14461 return UngrabButtonCookie{cookie}
14462 }
14463
14464
14465
14466 func UngrabButtonChecked(c *xgb.Conn, Button byte, GrabWindow Window, Modifiers uint16) UngrabButtonCookie {
14467 cookie := c.NewCookie(true, false)
14468 c.NewRequest(ungrabButtonRequest(c, Button, GrabWindow, Modifiers), cookie)
14469 return UngrabButtonCookie{cookie}
14470 }
14471
14472
14473
14474 func (cook UngrabButtonCookie) Check() error {
14475 return cook.Cookie.Check()
14476 }
14477
14478
14479
14480 func ungrabButtonRequest(c *xgb.Conn, Button byte, GrabWindow Window, Modifiers uint16) []byte {
14481 size := 12
14482 b := 0
14483 buf := make([]byte, size)
14484
14485 buf[b] = 29
14486 b += 1
14487
14488 buf[b] = Button
14489 b += 1
14490
14491 xgb.Put16(buf[b:], uint16(size/4))
14492 b += 2
14493
14494 xgb.Put32(buf[b:], uint32(GrabWindow))
14495 b += 4
14496
14497 xgb.Put16(buf[b:], Modifiers)
14498 b += 2
14499
14500 b += 2
14501
14502 return buf
14503 }
14504
14505
14506 type UngrabKeyCookie struct {
14507 *xgb.Cookie
14508 }
14509
14510
14511
14512 func UngrabKey(c *xgb.Conn, Key Keycode, GrabWindow Window, Modifiers uint16) UngrabKeyCookie {
14513 cookie := c.NewCookie(false, false)
14514 c.NewRequest(ungrabKeyRequest(c, Key, GrabWindow, Modifiers), cookie)
14515 return UngrabKeyCookie{cookie}
14516 }
14517
14518
14519
14520 func UngrabKeyChecked(c *xgb.Conn, Key Keycode, GrabWindow Window, Modifiers uint16) UngrabKeyCookie {
14521 cookie := c.NewCookie(true, false)
14522 c.NewRequest(ungrabKeyRequest(c, Key, GrabWindow, Modifiers), cookie)
14523 return UngrabKeyCookie{cookie}
14524 }
14525
14526
14527
14528 func (cook UngrabKeyCookie) Check() error {
14529 return cook.Cookie.Check()
14530 }
14531
14532
14533
14534 func ungrabKeyRequest(c *xgb.Conn, Key Keycode, GrabWindow Window, Modifiers uint16) []byte {
14535 size := 12
14536 b := 0
14537 buf := make([]byte, size)
14538
14539 buf[b] = 34
14540 b += 1
14541
14542 buf[b] = byte(Key)
14543 b += 1
14544
14545 xgb.Put16(buf[b:], uint16(size/4))
14546 b += 2
14547
14548 xgb.Put32(buf[b:], uint32(GrabWindow))
14549 b += 4
14550
14551 xgb.Put16(buf[b:], Modifiers)
14552 b += 2
14553
14554 b += 2
14555
14556 return buf
14557 }
14558
14559
14560 type UngrabKeyboardCookie struct {
14561 *xgb.Cookie
14562 }
14563
14564
14565
14566 func UngrabKeyboard(c *xgb.Conn, Time Timestamp) UngrabKeyboardCookie {
14567 cookie := c.NewCookie(false, false)
14568 c.NewRequest(ungrabKeyboardRequest(c, Time), cookie)
14569 return UngrabKeyboardCookie{cookie}
14570 }
14571
14572
14573
14574 func UngrabKeyboardChecked(c *xgb.Conn, Time Timestamp) UngrabKeyboardCookie {
14575 cookie := c.NewCookie(true, false)
14576 c.NewRequest(ungrabKeyboardRequest(c, Time), cookie)
14577 return UngrabKeyboardCookie{cookie}
14578 }
14579
14580
14581
14582 func (cook UngrabKeyboardCookie) Check() error {
14583 return cook.Cookie.Check()
14584 }
14585
14586
14587
14588 func ungrabKeyboardRequest(c *xgb.Conn, Time Timestamp) []byte {
14589 size := 8
14590 b := 0
14591 buf := make([]byte, size)
14592
14593 buf[b] = 32
14594 b += 1
14595
14596 b += 1
14597
14598 xgb.Put16(buf[b:], uint16(size/4))
14599 b += 2
14600
14601 xgb.Put32(buf[b:], uint32(Time))
14602 b += 4
14603
14604 return buf
14605 }
14606
14607
14608 type UngrabPointerCookie struct {
14609 *xgb.Cookie
14610 }
14611
14612
14613
14614 func UngrabPointer(c *xgb.Conn, Time Timestamp) UngrabPointerCookie {
14615 cookie := c.NewCookie(false, false)
14616 c.NewRequest(ungrabPointerRequest(c, Time), cookie)
14617 return UngrabPointerCookie{cookie}
14618 }
14619
14620
14621
14622 func UngrabPointerChecked(c *xgb.Conn, Time Timestamp) UngrabPointerCookie {
14623 cookie := c.NewCookie(true, false)
14624 c.NewRequest(ungrabPointerRequest(c, Time), cookie)
14625 return UngrabPointerCookie{cookie}
14626 }
14627
14628
14629
14630 func (cook UngrabPointerCookie) Check() error {
14631 return cook.Cookie.Check()
14632 }
14633
14634
14635
14636 func ungrabPointerRequest(c *xgb.Conn, Time Timestamp) []byte {
14637 size := 8
14638 b := 0
14639 buf := make([]byte, size)
14640
14641 buf[b] = 27
14642 b += 1
14643
14644 b += 1
14645
14646 xgb.Put16(buf[b:], uint16(size/4))
14647 b += 2
14648
14649 xgb.Put32(buf[b:], uint32(Time))
14650 b += 4
14651
14652 return buf
14653 }
14654
14655
14656 type UngrabServerCookie struct {
14657 *xgb.Cookie
14658 }
14659
14660
14661
14662 func UngrabServer(c *xgb.Conn) UngrabServerCookie {
14663 cookie := c.NewCookie(false, false)
14664 c.NewRequest(ungrabServerRequest(c), cookie)
14665 return UngrabServerCookie{cookie}
14666 }
14667
14668
14669
14670 func UngrabServerChecked(c *xgb.Conn) UngrabServerCookie {
14671 cookie := c.NewCookie(true, false)
14672 c.NewRequest(ungrabServerRequest(c), cookie)
14673 return UngrabServerCookie{cookie}
14674 }
14675
14676
14677
14678 func (cook UngrabServerCookie) Check() error {
14679 return cook.Cookie.Check()
14680 }
14681
14682
14683
14684 func ungrabServerRequest(c *xgb.Conn) []byte {
14685 size := 4
14686 b := 0
14687 buf := make([]byte, size)
14688
14689 buf[b] = 37
14690 b += 1
14691
14692 b += 1
14693 xgb.Put16(buf[b:], uint16(size/4))
14694 b += 2
14695
14696 return buf
14697 }
14698
14699
14700 type UninstallColormapCookie struct {
14701 *xgb.Cookie
14702 }
14703
14704
14705
14706 func UninstallColormap(c *xgb.Conn, Cmap Colormap) UninstallColormapCookie {
14707 cookie := c.NewCookie(false, false)
14708 c.NewRequest(uninstallColormapRequest(c, Cmap), cookie)
14709 return UninstallColormapCookie{cookie}
14710 }
14711
14712
14713
14714 func UninstallColormapChecked(c *xgb.Conn, Cmap Colormap) UninstallColormapCookie {
14715 cookie := c.NewCookie(true, false)
14716 c.NewRequest(uninstallColormapRequest(c, Cmap), cookie)
14717 return UninstallColormapCookie{cookie}
14718 }
14719
14720
14721
14722 func (cook UninstallColormapCookie) Check() error {
14723 return cook.Cookie.Check()
14724 }
14725
14726
14727
14728 func uninstallColormapRequest(c *xgb.Conn, Cmap Colormap) []byte {
14729 size := 8
14730 b := 0
14731 buf := make([]byte, size)
14732
14733 buf[b] = 82
14734 b += 1
14735
14736 b += 1
14737
14738 xgb.Put16(buf[b:], uint16(size/4))
14739 b += 2
14740
14741 xgb.Put32(buf[b:], uint32(Cmap))
14742 b += 4
14743
14744 return buf
14745 }
14746
14747
14748 type UnmapSubwindowsCookie struct {
14749 *xgb.Cookie
14750 }
14751
14752
14753
14754 func UnmapSubwindows(c *xgb.Conn, Window Window) UnmapSubwindowsCookie {
14755 cookie := c.NewCookie(false, false)
14756 c.NewRequest(unmapSubwindowsRequest(c, Window), cookie)
14757 return UnmapSubwindowsCookie{cookie}
14758 }
14759
14760
14761
14762 func UnmapSubwindowsChecked(c *xgb.Conn, Window Window) UnmapSubwindowsCookie {
14763 cookie := c.NewCookie(true, false)
14764 c.NewRequest(unmapSubwindowsRequest(c, Window), cookie)
14765 return UnmapSubwindowsCookie{cookie}
14766 }
14767
14768
14769
14770 func (cook UnmapSubwindowsCookie) Check() error {
14771 return cook.Cookie.Check()
14772 }
14773
14774
14775
14776 func unmapSubwindowsRequest(c *xgb.Conn, Window Window) []byte {
14777 size := 8
14778 b := 0
14779 buf := make([]byte, size)
14780
14781 buf[b] = 11
14782 b += 1
14783
14784 b += 1
14785
14786 xgb.Put16(buf[b:], uint16(size/4))
14787 b += 2
14788
14789 xgb.Put32(buf[b:], uint32(Window))
14790 b += 4
14791
14792 return buf
14793 }
14794
14795
14796 type UnmapWindowCookie struct {
14797 *xgb.Cookie
14798 }
14799
14800
14801
14802 func UnmapWindow(c *xgb.Conn, Window Window) UnmapWindowCookie {
14803 cookie := c.NewCookie(false, false)
14804 c.NewRequest(unmapWindowRequest(c, Window), cookie)
14805 return UnmapWindowCookie{cookie}
14806 }
14807
14808
14809
14810 func UnmapWindowChecked(c *xgb.Conn, Window Window) UnmapWindowCookie {
14811 cookie := c.NewCookie(true, false)
14812 c.NewRequest(unmapWindowRequest(c, Window), cookie)
14813 return UnmapWindowCookie{cookie}
14814 }
14815
14816
14817
14818 func (cook UnmapWindowCookie) Check() error {
14819 return cook.Cookie.Check()
14820 }
14821
14822
14823
14824 func unmapWindowRequest(c *xgb.Conn, Window Window) []byte {
14825 size := 8
14826 b := 0
14827 buf := make([]byte, size)
14828
14829 buf[b] = 10
14830 b += 1
14831
14832 b += 1
14833
14834 xgb.Put16(buf[b:], uint16(size/4))
14835 b += 2
14836
14837 xgb.Put32(buf[b:], uint32(Window))
14838 b += 4
14839
14840 return buf
14841 }
14842
14843
14844 type WarpPointerCookie struct {
14845 *xgb.Cookie
14846 }
14847
14848
14849
14850 func WarpPointer(c *xgb.Conn, SrcWindow Window, DstWindow Window, SrcX int16, SrcY int16, SrcWidth uint16, SrcHeight uint16, DstX int16, DstY int16) WarpPointerCookie {
14851 cookie := c.NewCookie(false, false)
14852 c.NewRequest(warpPointerRequest(c, SrcWindow, DstWindow, SrcX, SrcY, SrcWidth, SrcHeight, DstX, DstY), cookie)
14853 return WarpPointerCookie{cookie}
14854 }
14855
14856
14857
14858 func WarpPointerChecked(c *xgb.Conn, SrcWindow Window, DstWindow Window, SrcX int16, SrcY int16, SrcWidth uint16, SrcHeight uint16, DstX int16, DstY int16) WarpPointerCookie {
14859 cookie := c.NewCookie(true, false)
14860 c.NewRequest(warpPointerRequest(c, SrcWindow, DstWindow, SrcX, SrcY, SrcWidth, SrcHeight, DstX, DstY), cookie)
14861 return WarpPointerCookie{cookie}
14862 }
14863
14864
14865
14866 func (cook WarpPointerCookie) Check() error {
14867 return cook.Cookie.Check()
14868 }
14869
14870
14871
14872 func warpPointerRequest(c *xgb.Conn, SrcWindow Window, DstWindow Window, SrcX int16, SrcY int16, SrcWidth uint16, SrcHeight uint16, DstX int16, DstY int16) []byte {
14873 size := 24
14874 b := 0
14875 buf := make([]byte, size)
14876
14877 buf[b] = 41
14878 b += 1
14879
14880 b += 1
14881
14882 xgb.Put16(buf[b:], uint16(size/4))
14883 b += 2
14884
14885 xgb.Put32(buf[b:], uint32(SrcWindow))
14886 b += 4
14887
14888 xgb.Put32(buf[b:], uint32(DstWindow))
14889 b += 4
14890
14891 xgb.Put16(buf[b:], uint16(SrcX))
14892 b += 2
14893
14894 xgb.Put16(buf[b:], uint16(SrcY))
14895 b += 2
14896
14897 xgb.Put16(buf[b:], SrcWidth)
14898 b += 2
14899
14900 xgb.Put16(buf[b:], SrcHeight)
14901 b += 2
14902
14903 xgb.Put16(buf[b:], uint16(DstX))
14904 b += 2
14905
14906 xgb.Put16(buf[b:], uint16(DstY))
14907 b += 2
14908
14909 return buf
14910 }
14911
View as plain text