Пример #1
0
def GCValues(arg):
    return rq.ValueList(
        arg, 4, 0,
        rq.Set('function', 1,
               (X.GXclear, X.GXand, X.GXandReverse, X.GXcopy, X.GXandInverted,
                X.GXnoop, X.GXxor, X.GXor, X.GXnor, X.GXequiv, X.GXinvert,
                X.GXorReverse, X.GXcopyInverted, X.GXorInverted, X.GXnand,
                X.GXset)), rq.Card32('plane_mask'), rq.Card32('foreground'),
        rq.Card32('background'), rq.Card16('line_width'),
        rq.Set('line_style', 1,
               (X.LineSolid, X.LineOnOffDash, X.LineDoubleDash)),
        rq.Set('cap_style', 1,
               (X.CapNotLast, X.CapButt, X.CapRound, X.CapProjecting)),
        rq.Set('join_style', 1, (X.JoinMiter, X.JoinRound, X.JoinBevel)),
        rq.Set(
            'fill_style', 1,
            (X.FillSolid, X.FillTiled, X.FillStippled, X.FillOpaqueStippled)),
        rq.Set('fill_rule', 1, (X.EvenOddRule, X.WindingRule)),
        rq.Pixmap('tile'), rq.Pixmap('stipple'),
        rq.Int16('tile_stipple_x_origin'), rq.Int16('tile_stipple_y_origin'),
        rq.Font('font'),
        rq.Set('subwindow_mode', 1, (X.ClipByChildren, X.IncludeInferiors)),
        rq.Bool('graphics_exposures'), rq.Int16('clip_x_origin'),
        rq.Int16('clip_y_origin'), rq.Pixmap('clip_mask'),
        rq.Card16('dash_offset'), rq.Card8('dashes'),
        rq.Set('arc_mode', 1, (X.ArcChord, X.ArcPieSlice)))
Пример #2
0
class GetWindowAttributes(rq.ReplyRequest):
    _request = rq.Struct(
        rq.Opcode(3),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Window('window')
        )

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Card8('backing_store'),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.Card32('visual'),
        rq.Card16('win_class'),
        rq.Card8('bit_gravity'),
        rq.Card8('win_gravity'),
        rq.Card32('backing_bit_planes'),
        rq.Card32('backing_pixel'),
        rq.Card8('save_under'),
        rq.Card8('map_is_installed'),
        rq.Card8('map_state'),
        rq.Card8('override_redirect'),
        rq.Colormap('colormap', (X.NONE, )),
        rq.Card32('all_event_masks'),
        rq.Card32('your_event_mask'),
        rq.Card16('do_not_propagate_mask'),
        rq.Pad(2),
        )
Пример #3
0
class AllocColorPlanes(rq.ReplyRequest):
    _request = rq.Struct(
        rq.Opcode(87),
        rq.Bool('contiguous'),
        rq.RequestLength(),
        rq.Colormap('cmap'),
        rq.Card16('colors'),
        rq.Card16('red'),
        rq.Card16('green'),
        rq.Card16('blue'),
        )

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.LengthOf('pixels', 2),
        rq.Pad(2),
        rq.Card32('red_mask'),
        rq.Card32('green_mask'),
        rq.Card32('blue_mask'),
        rq.Pad(8),
        rq.List('pixels', rq.Card32Obj),
        )
Пример #4
0
class SetSelectionOwner(rq.Request):
    _request = rq.Struct(
        rq.Opcode(22),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Window('window'),
        rq.Card32('selection'),
        rq.Card32('time'),
        )
Пример #5
0
class ConvertSelection(rq.Request):
    _request = rq.Struct(
        rq.Opcode(24),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Window('requestor'),
        rq.Card32('selection'),
        rq.Card32('target'),
        rq.Card32('property'),
        rq.Card32('time'),
        )
Пример #6
0
class SelectionClear(rq.Event):
    _code = X.SelectionClear
    _fields = rq.Struct(
        rq.Card8('type'),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.Card32('time'),
        rq.Window('window'),
        rq.Card32('atom'),
        rq.Pad(16),
    )
Пример #7
0
class PropertyNotify(rq.Event):
    _code = X.PropertyNotify
    _fields = rq.Struct(
        rq.Card8('type'),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.Window('window'),
        rq.Card32('atom'),
        rq.Card32('time'),
        rq.Card8('state'),
        rq.Pad(15),
    )
Пример #8
0
class ChangeProperty(rq.Request):
    _request = rq.Struct(
        rq.Opcode(18),
        rq.Set('mode', 1, (X.PropModeReplace, X.PropModePrepend, X.PropModeAppend)),
        rq.RequestLength(),
        rq.Window('window'),
        rq.Card32('property'),
        rq.Card32('type'),
        rq.Format('data', 1),
        rq.Pad(3),
        rq.LengthOf('data', 4),
        rq.PropertyData('data'),
        )
Пример #9
0
class SelectionNotify(rq.Event):
    _code = X.SelectionNotify
    _fields = rq.Struct(
        rq.Card8('type'),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.Card32('time'),
        rq.Window('requestor'),
        rq.Card32('selection'),
        rq.Card32('target'),
        rq.Card32('property'),
        rq.Pad(8),
    )
Пример #10
0
class ConnectionSetupRequest(rq.GetAttrData):
    _request = rq.Struct(rq.Set('byte_order', 1, (0x42, 0x6c)), rq.Pad(1),
                         rq.Card16('protocol_major'),
                         rq.Card16('protocol_minor'),
                         rq.LengthOf('auth_prot_name', 2),
                         rq.LengthOf('auth_prot_data', 2), rq.Pad(2),
                         rq.String8('auth_prot_name'),
                         rq.String8('auth_prot_data'))

    _reply = rq.Struct(rq.Card8('status'), rq.Card8('reason_length'),
                       rq.Card16('protocol_major'),
                       rq.Card16('protocol_minor'),
                       rq.Card16('additional_length'))

    _success_reply = rq.Struct(
        rq.Card32('release_number'),
        rq.Card32('resource_id_base'),
        rq.Card32('resource_id_mask'),
        rq.Card32('motion_buffer_size'),
        rq.LengthOf('vendor', 2),
        rq.Card16('max_request_length'),
        rq.LengthOf('roots', 1),
        rq.LengthOf('pixmap_formats', 1),
        rq.Card8('image_byte_order'),
        rq.Card8('bitmap_format_bit_order'),
        rq.Card8('bitmap_format_scanline_unit'),
        rq.Card8('bitmap_format_scanline_pad'),
        rq.Card8('min_keycode'),
        rq.Card8('max_keycode'),
        rq.Pad(4),
        rq.String8('vendor'),
        rq.List('pixmap_formats', PixmapFormat),
        rq.List('roots', Screen),
    )

    def __init__(self, display, *args, **keys):
        self._binary = apply(self._request.to_binary, args, keys)
        self._data = None

        # Don't bother about locking, since no other threads have
        # access to the display yet

        display.request_queue.append((self, 1))

        # However, we must lock send_and_recv, but we don't have
        # to loop.

        display.send_recv_lock.acquire()
        display.send_and_recv(request=-1)
Пример #11
0
class AllocNamedColor(rq.ReplyRequest):
    _request = rq.Struct(
        rq.Opcode(85),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Colormap('cmap'),
        rq.LengthOf('name', 2),
        rq.Pad(2),
        rq.String8('name'),
        )

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.Card32('pixel'),
        rq.Card16('exact_red'),
        rq.Card16('exact_green'),
        rq.Card16('exact_blue'),
        rq.Card16('screen_red'),
        rq.Card16('screen_green'),
        rq.Card16('screen_blue'),
        rq.Pad(8),
        )
Пример #12
0
class UngrabPointer(rq.Request):
    _request = rq.Struct(
        rq.Opcode(27),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Card32('time')
        )
Пример #13
0
class UngrabKeyboard(rq.Request):
    _request = rq.Struct(
        rq.Opcode(32),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Card32('time')
        )
Пример #14
0
class DeleteProperty(rq.Request):
    _request = rq.Struct(
        rq.Opcode(19),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Window('window'),
        rq.Card32('property'),
        )
Пример #15
0
class SendEvent(rq.Request):
    _request = rq.Struct(
        rq.Opcode(25),
        rq.Bool('propagate'),
        rq.RequestLength(),
        rq.Window('destination'),
        rq.Card32('event_mask'),
        rq.EventField('event'),
        )
Пример #16
0
class CopyGC(rq.Request):
    _request = rq.Struct(
        rq.Opcode(57),
        rq.Pad(1),
        rq.RequestLength(),
        rq.GC('src_gc'),
        rq.GC('dst_gc'),
        rq.Card32('mask'),
        )
Пример #17
0
class FreeColors(rq.Request):
    _request = rq.Struct(
        rq.Opcode(88),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Colormap('cmap'),
        rq.Card32('plane_mask'),
        rq.List('pixels', rq.Card32Obj),
        )
Пример #18
0
class CreateColormap(rq.Request):
    _request = rq.Struct(
        rq.Opcode(78),
        rq.Set('alloc', 1, (X.AllocNone, X.AllocAll)),
        rq.RequestLength(),
        rq.Colormap('mid'),
        rq.Window('window'),
        rq.Card32('visual'),
        )
Пример #19
0
class SetInputFocus(rq.Request):
    _request = rq.Struct(
        rq.Opcode(42),
        rq.Set('revert_to', 1, (X.RevertToNone, X.RevertToPointerRoot,
                                X.RevertToParent)),
        rq.RequestLength(),
        rq.Window('focus'),
        rq.Card32('time'),
        )
Пример #20
0
class AllowEvents(rq.Request):
    _request = rq.Struct(
        rq.Opcode(35),
        rq.Set(
            'mode', 1,
            (X.AsyncPointer, X.SyncPointer, X.ReplayPointer, X.AsyncKeyboard,
             X.SyncKeyboard, X.ReplayKeyboard, X.AsyncBoth, X.SyncBoth)),
        rq.RequestLength(),
        rq.Card32('time'),
    )
Пример #21
0
class ClientMessage(rq.Event):
    _code = X.ClientMessage
    _fields = rq.Struct(
        rq.Card8('type'),
        rq.Format('data', 1),
        rq.Card16('sequence_number'),
        rq.Window('window'),
        rq.Card32('client_type'),
        rq.FixedPropertyData('data', 20),
    )
Пример #22
0
class GetMotionEvents(rq.ReplyRequest):
    _request = rq.Struct(
        rq.Opcode(39),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Window('window'),
        rq.Card32('start'),
        rq.Card32('stop'),
        )

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.LengthOf('events', 4),
        rq.Pad(20),
        rq.List('events', structs.TimeCoord),
        )
Пример #23
0
class ChangeActivePointerGrab(rq.Request):
    _request = rq.Struct(
        rq.Opcode(30),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Cursor('cursor'),
        rq.Card32('time'),
        rq.Card16('event_mask'),
        rq.Pad(2),
        )
Пример #24
0
class StoreNamedColor(rq.Request):
    _request = rq.Struct(
        rq.Opcode(90),
        rq.Card8('flags'),
        rq.RequestLength(),
        rq.Colormap('cmap'),
        rq.Card32('pixel'),
        rq.LengthOf('name', 2),
        rq.Pad(2),
        rq.String8('name'),
        )
Пример #25
0
class GetSelectionOwner(rq.ReplyRequest):
    _request = rq.Struct(rq.Opcode(23), rq.Pad(1), rq.RequestLength(),
                         rq.Card32('selection'))

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.Window('owner', (X.NONE, )),
        rq.Pad(20),
    )
Пример #26
0
class GetAtomName(rq.ReplyRequest):
    _request = rq.Struct(rq.Opcode(17), rq.Pad(1), rq.RequestLength(),
                         rq.Card32('atom'))

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Pad(1),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.LengthOf('name', 2),
        rq.Pad(22),
        rq.String8('name'),
    )
Пример #27
0
class GetImage(rq.ReplyRequest):
    _request = rq.Struct(
        rq.Opcode(73),
        rq.Set('format', 1, (X.XYPixmap, X.ZPixmap)),
        rq.RequestLength(),
        rq.Drawable('drawable'),
        rq.Int16('x'),
        rq.Int16('y'),
        rq.Card16('width'),
        rq.Card16('height'),
        rq.Card32('plane_mask'),
        )

    _reply = rq.Struct(
        rq.ReplyCode(),
        rq.Card8('depth'),
        rq.Card16('sequence_number'),
        rq.ReplyLength(),
        rq.Card32('visual'),
        rq.Pad(20),
        rq.String8('data'),
        )
Пример #28
0
class CopyPlane(rq.Request):
    _request = rq.Struct(
        rq.Opcode(63),
        rq.Pad(1),
        rq.RequestLength(),
        rq.Drawable('src_drawable'),
        rq.Drawable('dst_drawable'),
        rq.GC('gc'),
        rq.Int16('src_x'),
        rq.Int16('src_y'),
        rq.Int16('dst_x'),
        rq.Int16('dst_y'),
        rq.Card16('width'),
        rq.Card16('height'),
        rq.Card32('bit_plane'),
        )
Пример #29
0
class CreateWindow(rq.Request):
    _request = rq.Struct(
        rq.Opcode(1),
        rq.Card8('depth'),
        rq.RequestLength(),
        rq.Window('wid'),
        rq.Window('parent'),
        rq.Int16('x'),
        rq.Int16('y'),
        rq.Card16('width'),
        rq.Card16('height'),
        rq.Card16('border_width'),
        rq.Set('window_class', 2, (X.CopyFromParent, X.InputOutput, X.InputOnly)),
        rq.Card32('visual'),
        structs.WindowValues('attrs'),
        )
Пример #30
0
class EnterLeave(rq.Event):
    _code = None
    _fields = rq.Struct(
        rq.Card8('type'),
        rq.Card8('detail'),
        rq.Card16('sequence_number'),
        rq.Card32('time'),
        rq.Window('root'),
        rq.Window('window'),
        rq.Window('child', (X.NONE, )),
        rq.Int16('root_x'),
        rq.Int16('root_y'),
        rq.Int16('event_x'),
        rq.Int16('event_y'),
        rq.Card16('state'),
        rq.Card8('mode'),
        rq.Card8('flags'),
    )