1
# Xlib.protocol.request -- definitions of core requests
3
# Copyright (C) 2000-2002 Peter Liljenberg <petli@ctrl-c.liu.se>
5
# This program is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 2 of the License, or
8
# (at your option) any later version.
10
# This program is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
15
# You should have received a copy of the GNU General Public License
16
# along with this program; if not, write to the Free Software
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
# Xlib.protocol modules
28
class CreateWindow(rq.Request):
39
rq.Card16('border_width'),
40
rq.Set('window_class', 2, (X.CopyFromParent, X.InputOutput, X.InputOnly)),
42
structs.WindowValues('attrs'),
45
class ChangeWindowAttributes(rq.Request):
51
structs.WindowValues('attrs'),
54
class GetWindowAttributes(rq.ReplyRequest):
64
rq.Card8('backing_store'),
65
rq.Card16('sequence_number'),
68
rq.Card16('win_class'),
69
rq.Card8('bit_gravity'),
70
rq.Card8('win_gravity'),
71
rq.Card32('backing_bit_planes'),
72
rq.Card32('backing_pixel'),
73
rq.Card8('save_under'),
74
rq.Card8('map_is_installed'),
75
rq.Card8('map_state'),
76
rq.Card8('override_redirect'),
77
rq.Colormap('colormap', (X.NONE, )),
78
rq.Card32('all_event_masks'),
79
rq.Card32('your_event_mask'),
80
rq.Card16('do_not_propagate_mask'),
84
class DestroyWindow(rq.Request):
92
class DestroySubWindows(rq.Request):
100
class ChangeSaveSet(rq.Request):
101
_request = rq.Struct(
103
rq.Set('mode', 1, (X.SetModeInsert, X.SetModeDelete)),
108
class ReparentWindow(rq.Request):
109
_request = rq.Struct(
119
class MapWindow(rq.Request):
120
_request = rq.Struct(
127
class MapSubwindows(rq.Request):
128
_request = rq.Struct(
135
class UnmapWindow(rq.Request):
136
_request = rq.Struct(
143
class UnmapSubwindows(rq.Request):
144
_request = rq.Struct(
151
class ConfigureWindow(rq.Request):
152
_request = rq.Struct(
157
rq.ValueList( 'attrs', 2, 2,
162
rq.Int16('border_width'),
163
rq.Window('sibling'),
164
rq.Set('stack_mode', 1,
165
(X.Above, X.Below, X.TopIf,
166
X.BottomIf, X.Opposite))
170
class CirculateWindow(rq.Request):
171
_request = rq.Struct(
173
rq.Set('direction', 1, (X.RaiseLowest, X.LowerHighest)),
178
class GetGeometry(rq.ReplyRequest):
179
_request = rq.Struct(
183
rq.Drawable('drawable')
189
rq.Card16('sequence_number'),
196
rq.Card16('border_width'),
200
class QueryTree(rq.ReplyRequest):
201
_request = rq.Struct(
211
rq.Card16('sequence_number'),
214
rq.Window('parent', (X.NONE, )),
215
rq.LengthOf('children', 2),
217
rq.List('children', rq.WindowObj),
220
class InternAtom(rq.ReplyRequest):
221
_request = rq.Struct(
223
rq.Bool('only_if_exists'),
225
rq.LengthOf('name', 2),
233
rq.Card16('sequence_number'),
240
class GetAtomName(rq.ReplyRequest):
241
_request = rq.Struct(
251
rq.Card16('sequence_number'),
253
rq.LengthOf('name', 2),
258
class ChangeProperty(rq.Request):
259
_request = rq.Struct(
261
rq.Set('mode', 1, (X.PropModeReplace, X.PropModePrepend, X.PropModeAppend)),
264
rq.Card32('property'),
266
rq.Format('data', 1),
268
rq.LengthOf('data', 4),
269
rq.PropertyData('data'),
272
class DeleteProperty(rq.Request):
273
_request = rq.Struct(
278
rq.Card32('property'),
281
class GetProperty(rq.ReplyRequest):
282
_request = rq.Struct(
287
rq.Card32('property'),
289
rq.Card32('long_offset'),
290
rq.Card32('long_length'),
295
rq.Format('value', 1),
296
rq.Card16('sequence_number'),
298
rq.Card32('property_type'),
299
rq.Card32('bytes_after'),
300
rq.LengthOf('value', 4),
302
rq.PropertyData('value'),
305
class ListProperties(rq.ReplyRequest):
306
_request = rq.Struct(
316
rq.Card16('sequence_number'),
318
rq.LengthOf('atoms', 2),
320
rq.List('atoms', rq.Card32Obj),
323
class SetSelectionOwner(rq.Request):
324
_request = rq.Struct(
329
rq.Card32('selection'),
333
class GetSelectionOwner(rq.ReplyRequest):
334
_request = rq.Struct(
338
rq.Card32('selection')
344
rq.Card16('sequence_number'),
346
rq.Window('owner', (X.NONE, )),
350
class ConvertSelection(rq.Request):
351
_request = rq.Struct(
355
rq.Window('requestor'),
356
rq.Card32('selection'),
358
rq.Card32('property'),
362
class SendEvent(rq.Request):
363
_request = rq.Struct(
365
rq.Bool('propagate'),
367
rq.Window('destination'),
368
rq.Card32('event_mask'),
369
rq.EventField('event'),
372
class GrabPointer(rq.ReplyRequest):
373
_request = rq.Struct(
375
rq.Bool('owner_events'),
377
rq.Window('grab_window'),
378
rq.Card16('event_mask'),
379
rq.Set('pointer_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
380
rq.Set('keyboard_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
381
rq.Window('confine_to', (X.NONE, )),
382
rq.Cursor('cursor', (X.NONE, )),
389
rq.Card16('sequence_number'),
394
class UngrabPointer(rq.Request):
395
_request = rq.Struct(
402
class GrabButton(rq.Request):
403
_request = rq.Struct(
405
rq.Bool('owner_events'),
407
rq.Window('grab_window'),
408
rq.Card16('event_mask'),
409
rq.Set('pointer_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
410
rq.Set('keyboard_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
411
rq.Window('confine_to', (X.NONE, )),
412
rq.Cursor('cursor', (X.NONE, )),
415
rq.Card16('modifiers'),
418
class UngrabButton(rq.Request):
419
_request = rq.Struct(
423
rq.Window('grab_window'),
424
rq.Card16('modifiers'),
428
class ChangeActivePointerGrab(rq.Request):
429
_request = rq.Struct(
435
rq.Card16('event_mask'),
439
class GrabKeyboard(rq.ReplyRequest):
440
_request = rq.Struct(
442
rq.Bool('owner_events'),
444
rq.Window('grab_window'),
446
rq.Set('pointer_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
447
rq.Set('keyboard_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
454
rq.Card16('sequence_number'),
459
class UngrabKeyboard(rq.Request):
460
_request = rq.Struct(
467
class GrabKey(rq.Request):
468
_request = rq.Struct(
470
rq.Bool('owner_events'),
472
rq.Window('grab_window'),
473
rq.Card16('modifiers'),
475
rq.Set('pointer_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
476
rq.Set('keyboard_mode', 1, (X.GrabModeSync, X.GrabModeAsync)),
480
class UngrabKey(rq.Request):
481
_request = rq.Struct(
485
rq.Window('grab_window'),
486
rq.Card16('modifiers'),
490
class AllowEvents(rq.Request):
491
_request = rq.Struct(
493
rq.Set('mode', 1, (X.AsyncPointer,
505
class GrabServer(rq.Request):
506
_request = rq.Struct(
512
class UngrabServer(rq.Request):
513
_request = rq.Struct(
519
class QueryPointer(rq.ReplyRequest):
520
_request = rq.Struct(
529
rq.Card8('same_screen'),
530
rq.Card16('sequence_number'),
533
rq.Window('child', (X.NONE, )),
542
class GetMotionEvents(rq.ReplyRequest):
543
_request = rq.Struct(
555
rq.Card16('sequence_number'),
557
rq.LengthOf('events', 4),
559
rq.List('events', structs.TimeCoord),
562
class TranslateCoords(rq.ReplyRequest):
563
_request = rq.Struct(
567
rq.Window('src_wid'),
568
rq.Window('dst_wid'),
575
rq.Card8('same_screen'),
576
rq.Card16('sequence_number'),
578
rq.Window('child', (X.NONE, )),
584
class WarpPointer(rq.Request):
585
_request = rq.Struct(
589
rq.Window('src_window'),
590
rq.Window('dst_window'),
593
rq.Card16('src_width'),
594
rq.Card16('src_height'),
599
class SetInputFocus(rq.Request):
600
_request = rq.Struct(
602
rq.Set('revert_to', 1, (X.RevertToNone, X.RevertToPointerRoot,
609
class GetInputFocus(rq.ReplyRequest):
610
_request = rq.Struct(
618
rq.Card8('revert_to'),
619
rq.Card16('sequence_number'),
621
rq.Window('focus', (X.NONE, X.PointerRoot)),
625
class QueryKeymap(rq.ReplyRequest):
626
_request = rq.Struct(
635
rq.Card16('sequence_number'),
637
rq.FixedList('map', 32, rq.Card8Obj),
641
class OpenFont(rq.Request):
642
_request = rq.Struct(
647
rq.LengthOf('name', 2),
652
class CloseFont(rq.Request):
653
_request = rq.Struct(
660
class QueryFont(rq.ReplyRequest):
661
_request = rq.Struct(
671
rq.Card16('sequence_number'),
673
rq.Object('min_bounds', structs.CharInfo),
675
rq.Object('max_bounds', structs.CharInfo),
677
rq.Card16('min_char_or_byte2'),
678
rq.Card16('max_char_or_byte2'),
679
rq.Card16('default_char'),
680
rq.LengthOf('properties', 2),
681
rq.Card8('draw_direction'),
682
rq.Card8('min_byte1'),
683
rq.Card8('max_byte1'),
684
rq.Card8('all_chars_exist'),
685
rq.Int16('font_ascent'),
686
rq.Int16('font_descent'),
687
rq.LengthOf('char_infos', 4),
688
rq.List('properties', structs.FontProp),
689
rq.List('char_infos', structs.CharInfo),
692
class QueryTextExtents(rq.ReplyRequest):
693
_request = rq.Struct(
695
rq.OddLength('string'),
698
rq.String16('string'),
703
rq.Card8('draw_direction'),
704
rq.Card16('sequence_number'),
706
rq.Int16('font_ascent'),
707
rq.Int16('font_descent'),
708
rq.Int16('overall_ascent'),
709
rq.Int16('overall_descent'),
710
rq.Int32('overall_width'),
711
rq.Int32('overall_left'),
712
rq.Int32('overall_right'),
716
class ListFonts(rq.ReplyRequest):
717
_request = rq.Struct(
721
rq.Card16('max_names'),
722
rq.LengthOf('pattern', 2),
723
rq.String8('pattern'),
729
rq.Card16('sequence_number'),
731
rq.LengthOf('fonts', 2),
733
rq.List('fonts', rq.Str),
737
class ListFontsWithInfo(rq.ReplyRequest):
738
_request = rq.Struct(
742
rq.Card16('max_names'),
743
rq.LengthOf('pattern', 2),
744
rq.String8('pattern'),
749
rq.LengthOf('name', 1),
750
rq.Card16('sequence_number'),
752
rq.Object('min_bounds', structs.CharInfo),
754
rq.Object('max_bounds', structs.CharInfo),
756
rq.Card16('min_char_or_byte2'),
757
rq.Card16('max_char_or_byte2'),
758
rq.Card16('default_char'),
759
rq.LengthOf('properties', 2),
760
rq.Card8('draw_direction'),
761
rq.Card8('min_byte1'),
762
rq.Card8('max_byte1'),
763
rq.Card8('all_chars_exist'),
764
rq.Int16('font_ascent'),
765
rq.Int16('font_descent'),
766
rq.Card32('replies_hint'),
767
rq.List('properties', structs.FontProp),
772
# Somebody must have smoked some really wicked weed when they
773
# defined the ListFontsWithInfo request:
774
# The server sends a reply for _each_ matching font...
775
# It then sends a special reply (name length == 0) to indicate
776
# that there are no more fonts in the reply.
778
# This means that we have to do some special parsing to see if
779
# we have got the end-of-reply reply. If we haven't, we
780
# have to reinsert the request in the front of the
781
# display.sent_request queue to catch the next response.
785
def __init__(self, *args, **keys):
787
apply(ReplyRequest.__init__, (self, ) + args, keys)
789
def _parse_response(self, data):
791
if ord(data[1]) == 0:
792
self._response_lock.acquire()
793
self._data = self._fonts
795
self._response_lock.release()
798
r, d = self._reply.parse_binary(data)
799
self._fonts.append(r)
801
self._display.sent_requests.insert(0, self)
804
# Override the default __getattr__, since it isn't usable for
805
# the list reply. Instead provide a __getitem__ and a __len__.
807
def __getattr__(self, attr):
808
raise AttributeError(attr)
810
def __getitem__(self, item):
811
return self._data[item]
814
return len(self._data)
817
class SetFontPath(rq.Request):
818
_request = rq.Struct(
822
rq.LengthOf('path', 2),
824
rq.List('path', rq.Str),
827
class GetFontPath(rq.ReplyRequest):
828
_request = rq.Struct(
837
rq.Card16('sequence_number'),
839
rq.LengthOf('paths', 2),
841
rq.List('paths', rq.Str),
844
class CreatePixmap(rq.Request):
845
_request = rq.Struct(
850
rq.Drawable('drawable'),
855
class FreePixmap(rq.Request):
856
_request = rq.Struct(
863
class CreateGC(rq.Request):
864
_request = rq.Struct(
869
rq.Drawable('drawable'),
870
structs.GCValues('attrs'),
873
class ChangeGC(rq.Request):
874
_request = rq.Struct(
879
structs.GCValues('attrs'),
882
class CopyGC(rq.Request):
883
_request = rq.Struct(
892
class SetDashes(rq.Request):
893
_request = rq.Struct(
898
rq.Card16('dash_offset'),
899
rq.LengthOf('dashes', 2),
900
rq.List('dashes', rq.Card8Obj),
903
class SetClipRectangles(rq.Request):
904
_request = rq.Struct(
906
rq.Set('ordering', 1, (X.Unsorted, X.YSorted, X.YXSorted, X.YXBanded)),
909
rq.Int16('x_origin'),
910
rq.Int16('y_origin'),
911
rq.List('rectangles', structs.Rectangle),
914
class FreeGC(rq.Request):
915
_request = rq.Struct(
922
class ClearArea(rq.Request):
923
_request = rq.Struct(
925
rq.Bool('exposures'),
934
class CopyArea(rq.Request):
935
_request = rq.Struct(
939
rq.Drawable('src_drawable'),
940
rq.Drawable('dst_drawable'),
950
class CopyPlane(rq.Request):
951
_request = rq.Struct(
955
rq.Drawable('src_drawable'),
956
rq.Drawable('dst_drawable'),
964
rq.Card32('bit_plane'),
967
class PolyPoint(rq.Request):
968
_request = rq.Struct(
970
rq.Set('coord_mode', 1, (X.CoordModeOrigin, X.CoordModePrevious)),
972
rq.Drawable('drawable'),
974
rq.List('points', structs.Point),
977
class PolyLine(rq.Request):
978
_request = rq.Struct(
980
rq.Set('coord_mode', 1, (X.CoordModeOrigin, X.CoordModePrevious)),
982
rq.Drawable('drawable'),
984
rq.List('points', structs.Point),
988
class PolySegment(rq.Request):
989
_request = rq.Struct(
993
rq.Drawable('drawable'),
995
rq.List('segments', structs.Segment),
999
class PolyRectangle(rq.Request):
1000
_request = rq.Struct(
1004
rq.Drawable('drawable'),
1006
rq.List('rectangles', structs.Rectangle),
1009
class PolyArc(rq.Request):
1010
_request = rq.Struct(
1014
rq.Drawable('drawable'),
1016
rq.List('arcs', structs.Arc),
1019
class FillPoly(rq.Request):
1020
_request = rq.Struct(
1024
rq.Drawable('drawable'),
1026
rq.Set('shape', 1, (X.Complex, X.Nonconvex, X.Convex)),
1027
rq.Set('coord_mode', 1, (X.CoordModeOrigin, X.CoordModePrevious)),
1029
rq.List('points', structs.Point),
1032
class PolyFillRectangle(rq.Request):
1033
_request = rq.Struct(
1037
rq.Drawable('drawable'),
1039
rq.List('rectangles', structs.Rectangle),
1042
class PolyFillArc(rq.Request):
1043
_request = rq.Struct(
1047
rq.Drawable('drawable'),
1049
rq.List('arcs', structs.Arc),
1052
class PutImage(rq.Request):
1053
_request = rq.Struct(
1055
rq.Set('format', 1, (X.XYBitmap, X.XYPixmap, X.ZPixmap)),
1057
rq.Drawable('drawable'),
1060
rq.Card16('height'),
1063
rq.Card8('left_pad'),
1069
class GetImage(rq.ReplyRequest):
1070
_request = rq.Struct(
1072
rq.Set('format', 1, (X.XYPixmap, X.ZPixmap)),
1074
rq.Drawable('drawable'),
1078
rq.Card16('height'),
1079
rq.Card32('plane_mask'),
1085
rq.Card16('sequence_number'),
1087
rq.Card32('visual'),
1092
class PolyText8(rq.Request):
1093
_request = rq.Struct(
1097
rq.Drawable('drawable'),
1101
rq.TextElements8('items'),
1104
class PolyText16(rq.Request):
1105
_request = rq.Struct(
1109
rq.Drawable('drawable'),
1113
rq.TextElements16('items'),
1116
class ImageText8(rq.Request):
1117
_request = rq.Struct(
1119
rq.LengthOf('string', 1),
1121
rq.Drawable('drawable'),
1125
rq.String8('string'),
1128
class ImageText16(rq.Request):
1129
_request = rq.Struct(
1131
rq.LengthOf('string', 1),
1133
rq.Drawable('drawable'),
1137
rq.String16('string'),
1140
class CreateColormap(rq.Request):
1141
_request = rq.Struct(
1143
rq.Set('alloc', 1, (X.AllocNone, X.AllocAll)),
1146
rq.Window('window'),
1147
rq.Card32('visual'),
1150
class FreeColormap(rq.Request):
1151
_request = rq.Struct(
1158
class CopyColormapAndFree(rq.Request):
1159
_request = rq.Struct(
1164
rq.Colormap('src_cmap'),
1167
class InstallColormap(rq.Request):
1168
_request = rq.Struct(
1175
class UninstallColormap(rq.Request):
1176
_request = rq.Struct(
1183
class ListInstalledColormaps(rq.ReplyRequest):
1184
_request = rq.Struct(
1194
rq.Card16('sequence_number'),
1196
rq.LengthOf('cmaps', 2),
1198
rq.List('cmaps', rq.ColormapObj),
1201
class AllocColor(rq.ReplyRequest):
1202
_request = rq.Struct(
1206
rq.Colormap('cmap'),
1216
rq.Card16('sequence_number'),
1226
class AllocNamedColor(rq.ReplyRequest):
1227
_request = rq.Struct(
1231
rq.Colormap('cmap'),
1232
rq.LengthOf('name', 2),
1240
rq.Card16('sequence_number'),
1243
rq.Card16('exact_red'),
1244
rq.Card16('exact_green'),
1245
rq.Card16('exact_blue'),
1246
rq.Card16('screen_red'),
1247
rq.Card16('screen_green'),
1248
rq.Card16('screen_blue'),
1252
class AllocColorCells(rq.ReplyRequest):
1253
_request = rq.Struct(
1255
rq.Bool('contiguous'),
1257
rq.Colormap('cmap'),
1258
rq.Card16('colors'),
1259
rq.Card16('planes'),
1265
rq.Card16('sequence_number'),
1267
rq.LengthOf('pixels', 2),
1268
rq.LengthOf('masks', 2),
1270
rq.List('pixels', rq.Card32Obj),
1271
rq.List('masks', rq.Card32Obj),
1274
class AllocColorPlanes(rq.ReplyRequest):
1275
_request = rq.Struct(
1277
rq.Bool('contiguous'),
1279
rq.Colormap('cmap'),
1280
rq.Card16('colors'),
1289
rq.Card16('sequence_number'),
1291
rq.LengthOf('pixels', 2),
1293
rq.Card32('red_mask'),
1294
rq.Card32('green_mask'),
1295
rq.Card32('blue_mask'),
1297
rq.List('pixels', rq.Card32Obj),
1300
class FreeColors(rq.Request):
1301
_request = rq.Struct(
1305
rq.Colormap('cmap'),
1306
rq.Card32('plane_mask'),
1307
rq.List('pixels', rq.Card32Obj),
1310
class StoreColors(rq.Request):
1311
_request = rq.Struct(
1315
rq.Colormap('cmap'),
1316
rq.List('items', structs.ColorItem),
1319
class StoreNamedColor(rq.Request):
1320
_request = rq.Struct(
1324
rq.Colormap('cmap'),
1326
rq.LengthOf('name', 2),
1331
class QueryColors(rq.ReplyRequest):
1332
_request = rq.Struct(
1336
rq.Colormap('cmap'),
1337
rq.List('pixels', rq.Card32Obj),
1343
rq.Card16('sequence_number'),
1345
rq.LengthOf('colors', 2),
1347
rq.List('colors', structs.RGB),
1350
class LookupColor(rq.ReplyRequest):
1351
_request = rq.Struct(
1355
rq.Colormap('cmap'),
1356
rq.LengthOf('name', 2),
1364
rq.Card16('sequence_number'),
1366
rq.Card16('exact_red'),
1367
rq.Card16('exact_green'),
1368
rq.Card16('exact_blue'),
1369
rq.Card16('screen_red'),
1370
rq.Card16('screen_green'),
1371
rq.Card16('screen_blue'),
1376
class CreateCursor(rq.Request):
1377
_request = rq.Struct(
1382
rq.Pixmap('source'),
1384
rq.Card16('fore_red'),
1385
rq.Card16('fore_green'),
1386
rq.Card16('fore_blue'),
1387
rq.Card16('back_red'),
1388
rq.Card16('back_green'),
1389
rq.Card16('back_blue'),
1394
class CreateGlyphCursor(rq.Request):
1395
_request = rq.Struct(
1402
rq.Card16('source_char'),
1403
rq.Card16('mask_char'),
1404
rq.Card16('fore_red'),
1405
rq.Card16('fore_green'),
1406
rq.Card16('fore_blue'),
1407
rq.Card16('back_red'),
1408
rq.Card16('back_green'),
1409
rq.Card16('back_blue'),
1412
class FreeCursor(rq.Request):
1413
_request = rq.Struct(
1420
class RecolorCursor(rq.Request):
1421
_request = rq.Struct(
1425
rq.Cursor('cursor'),
1426
rq.Card16('fore_red'),
1427
rq.Card16('fore_green'),
1428
rq.Card16('fore_blue'),
1429
rq.Card16('back_red'),
1430
rq.Card16('back_green'),
1431
rq.Card16('back_blue'),
1434
class QueryBestSize(rq.ReplyRequest):
1435
_request = rq.Struct(
1437
rq.Set('item_class', 1, (X.CursorShape, X.TileShape, X.StippleShape)),
1439
rq.Drawable('drawable'),
1441
rq.Card16('height'),
1447
rq.Card16('sequence_number'),
1450
rq.Card16('height'),
1454
class QueryExtension(rq.ReplyRequest):
1455
_request = rq.Struct(
1459
rq.LengthOf('name', 2),
1467
rq.Card16('sequence_number'),
1469
rq.Card8('present'),
1470
rq.Card8('major_opcode'),
1471
rq.Card8('first_event'),
1472
rq.Card8('first_error'),
1476
class ListExtensions(rq.ReplyRequest):
1477
_request = rq.Struct(
1485
rq.LengthOf('names', 1),
1486
rq.Card16('sequence_number'),
1489
rq.List('names', rq.Str),
1492
class ChangeKeyboardMapping(rq.Request):
1493
_request = rq.Struct(
1495
rq.LengthOf('keysyms', 1),
1497
rq.Card8('first_keycode'),
1498
rq.Format('keysyms', 1),
1500
rq.KeyboardMapping('keysyms'),
1503
class GetKeyboardMapping(rq.ReplyRequest):
1504
_request = rq.Struct(
1508
rq.Card8('first_keycode'),
1515
rq.Format('keysyms', 1),
1516
rq.Card16('sequence_number'),
1519
rq.KeyboardMapping('keysyms'),
1523
class ChangeKeyboardControl(rq.Request):
1524
_request = rq.Struct(
1528
rq.ValueList( 'attrs', 4, 0,
1529
rq.Int8('key_click_percent'),
1530
rq.Int8('bell_percent'),
1531
rq.Int16('bell_pitch'),
1532
rq.Int16('bell_duration'),
1534
rq.Set('led_mode', 1, (X.LedModeOff, X.LedModeOn)),
1536
rq.Set('auto_repeat_mode', 1, (X.AutoRepeatModeOff,
1538
X.AutoRepeatModeDefault))
1542
class GetKeyboardControl(rq.ReplyRequest):
1543
_request = rq.Struct(
1551
rq.Card8('global_auto_repeat'),
1552
rq.Card16('sequence_number'),
1554
rq.Card32('led_mask'),
1555
rq.Card8('key_click_percent'),
1556
rq.Card8('bell_percent'),
1557
rq.Card16('bell_pitch'),
1558
rq.Card16('bell_duration'),
1560
rq.FixedList('auto_repeats', 32, rq.Card8Obj),
1563
class Bell(rq.Request):
1564
_request = rq.Struct(
1570
class ChangePointerControl(rq.Request):
1571
_request = rq.Struct(
1575
rq.Int16('accel_num'),
1576
rq.Int16('accel_denum'),
1577
rq.Int16('threshold'),
1578
rq.Bool('do_accel'),
1579
rq.Bool('do_thresh'),
1582
class GetPointerControl(rq.ReplyRequest):
1583
_request = rq.Struct(
1592
rq.Card16('sequence_number'),
1594
rq.Card16('accel_num'),
1595
rq.Card16('accel_denom'),
1596
rq.Card16('threshold'),
1600
class SetScreenSaver(rq.Request):
1601
_request = rq.Struct(
1605
rq.Int16('timeout'),
1606
rq.Int16('interval'),
1607
rq.Set('prefer_blank', 1, (X.DontPreferBlanking,
1609
X.DefaultBlanking)),
1610
rq.Set('allow_exposures', 1, (X.DontAllowExposures,
1612
X.DefaultExposures)),
1616
class GetScreenSaver(rq.ReplyRequest):
1617
_request = rq.Struct(
1626
rq.Card16('sequence_number'),
1628
rq.Card16('timeout'),
1629
rq.Card16('interval'),
1630
rq.Card8('prefer_blanking'),
1631
rq.Card8('allow_exposures'),
1635
class ChangeHosts(rq.Request):
1636
_request = rq.Struct(
1638
rq.Set('mode', 1, (X.HostInsert, X.HostDelete)),
1640
rq.Set('host_family', 1, (X.FamilyInternet, X.FamilyDECnet, X.FamilyChaos)),
1642
rq.LengthOf('host', 2),
1643
rq.List('host', rq.Card8Obj)
1646
class ListHosts(rq.ReplyRequest):
1647
_request = rq.Struct(
1656
rq.Card16('sequence_number'),
1658
rq.LengthOf('hosts', 2),
1660
rq.List('hosts', structs.Host),
1663
class SetAccessControl(rq.Request):
1664
_request = rq.Struct(
1666
rq.Set('mode', 1, (X.DisableAccess, X.EnableAccess)),
1670
class SetCloseDownMode(rq.Request):
1671
_request = rq.Struct(
1673
rq.Set('mode', 1, (X.DestroyAll, X.RetainPermanent, X.RetainTemporary)),
1677
class KillClient(rq.Request):
1678
_request = rq.Struct(
1682
rq.Resource('resource')
1685
class RotateProperties(rq.Request):
1686
_request = rq.Struct(
1690
rq.Window('window'),
1691
rq.LengthOf('properties', 2),
1693
rq.List('properties', rq.Card32Obj),
1696
class ForceScreenSaver(rq.Request):
1697
_request = rq.Struct(
1699
rq.Set('mode', 1, (X.ScreenSaverReset, X.ScreenSaverActive)),
1703
class SetPointerMapping(rq.ReplyRequest):
1704
_request = rq.Struct(
1706
rq.LengthOf('map', 1),
1708
rq.List('map', rq.Card8Obj),
1714
rq.Card16('sequence_number'),
1719
class GetPointerMapping(rq.ReplyRequest):
1720
_request = rq.Struct(
1728
rq.LengthOf('map', 1),
1729
rq.Card16('sequence_number'),
1732
rq.List('map', rq.Card8Obj),
1735
class SetModifierMapping(rq.ReplyRequest):
1736
_request = rq.Struct(
1738
rq.Format('keycodes', 1),
1740
rq.ModifierMapping('keycodes')
1746
rq.Card16('sequence_number'),
1751
class GetModifierMapping(rq.ReplyRequest):
1752
_request = rq.Struct(
1760
rq.Format('keycodes', 1),
1761
rq.Card16('sequence_number'),
1764
rq.ModifierMapping('keycodes')
1767
class NoOperation(rq.Request):
1768
_request = rq.Struct(
1777
2: ChangeWindowAttributes,
1778
3: GetWindowAttributes,
1780
5: DestroySubWindows,
1786
11: UnmapSubwindows,
1787
12: ConfigureWindow,
1788
13: CirculateWindow,
1797
22: SetSelectionOwner,
1798
23: GetSelectionOwner,
1799
24: ConvertSelection,
1805
30: ChangeActivePointerGrab,
1814
39: GetMotionEvents,
1815
40: TranslateCoords,
1823
48: QueryTextExtents,
1825
50: ListFontsWithInfo,
1834
59: SetClipRectangles,
1845
70: PolyFillRectangle,
1855
80: CopyColormapAndFree,
1856
81: InstallColormap,
1857
82: UninstallColormap,
1858
83: ListInstalledColormaps,
1860
85: AllocNamedColor,
1861
86: AllocColorCells,
1862
87: AllocColorPlanes,
1865
90: StoreNamedColor,
1869
94: CreateGlyphCursor,
1875
100: ChangeKeyboardMapping,
1876
101: GetKeyboardMapping,
1877
102: ChangeKeyboardControl,
1878
103: GetKeyboardControl,
1880
105: ChangePointerControl,
1881
106: GetPointerControl,
1882
107: SetScreenSaver,
1883
108: GetScreenSaver,
1886
111: SetAccessControl,
1887
112: SetCloseDownMode,
1889
114: RotateProperties,
1890
115: ForceScreenSaver,
1891
116: SetPointerMapping,
1892
117: GetPointerMapping,
1893
118: SetModifierMapping,
1894
119: GetModifierMapping,