You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

298 lines
7.7 KiB

2 years ago
# Automatically generated file; DO NOT EDIT.
# Generated from: /usr/share/xcb/shape.xml
from Xlib.protocol import rq, structs
extname = 'SHAPE'
OP = rq.Card8
class SO:
Set = 0
Union = 1
Intersect = 2
Subtract = 3
Invert = 4
class SK:
Bounding = 0
Clip = 1
Input = 2
class KIND(rq.Set):
def __init__(self, name):
super(KIND, self).__init__(name, 1,
values=(SK.Bounding,
SK.Clip,
SK.Input))
class NotifyEventData(rq.Event):
_code = None
_fields = rq.Struct(
rq.Card8('type'),
KIND('shape_kind'),
rq.Card16('sequence_number'),
rq.Window('affected_window'),
rq.Int16('extents_x'),
rq.Int16('extents_y'),
rq.Card16('extents_width'),
rq.Card16('extents_height'),
rq.Card32('server_time'),
rq.Card8('shaped'),
rq.Pad(11),
)
class QueryVersion(rq.ReplyRequest):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(0),
rq.RequestLength(),
)
_reply = rq.Struct(
rq.ReplyCode(),
rq.Pad(1),
rq.Card16('sequence_number'),
rq.ReplyLength(),
rq.Card16('major_version'),
rq.Card16('minor_version'),
)
class Rectangles(rq.Request):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(1),
rq.RequestLength(),
OP('operation'),
KIND('destination_kind'),
rq.Card8('ordering'),
rq.Pad(1),
rq.Window('destination_window'),
rq.Int16('x_offset'),
rq.Int16('y_offset'),
rq.List('rectangles', structs.Rectangle, pad=0),
)
class Mask(rq.Request):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(2),
rq.RequestLength(),
OP('operation'),
KIND('destination_kind'),
rq.Pad(2),
rq.Window('destination_window'),
rq.Int16('x_offset'),
rq.Int16('y_offset'),
rq.Pixmap('source_bitmap'),
)
class Combine(rq.Request):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(3),
rq.RequestLength(),
OP('operation'),
KIND('destination_kind'),
KIND('source_kind'),
rq.Pad(1),
rq.Window('destination_window'),
rq.Int16('x_offset'),
rq.Int16('y_offset'),
rq.Window('source_window'),
)
class Offset(rq.Request):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(4),
rq.RequestLength(),
KIND('destination_kind'),
rq.Pad(3),
rq.Window('destination_window'),
rq.Int16('x_offset'),
rq.Int16('y_offset'),
)
class QueryExtents(rq.ReplyRequest):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(5),
rq.RequestLength(),
rq.Window('destination_window'),
)
_reply = rq.Struct(
rq.ReplyCode(),
rq.Pad(1),
rq.Card16('sequence_number'),
rq.ReplyLength(),
rq.Card8('bounding_shaped'),
rq.Card8('clip_shaped'),
rq.Pad(2),
rq.Int16('bounding_shape_extents_x'),
rq.Int16('bounding_shape_extents_y'),
rq.Card16('bounding_shape_extents_width'),
rq.Card16('bounding_shape_extents_height'),
rq.Int16('clip_shape_extents_x'),
rq.Int16('clip_shape_extents_y'),
rq.Card16('clip_shape_extents_width'),
rq.Card16('clip_shape_extents_height'),
)
class SelectInput(rq.Request):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(6),
rq.RequestLength(),
rq.Window('destination_window'),
rq.Card8('enable'),
rq.Pad(3),
)
class InputSelected(rq.ReplyRequest):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(7),
rq.RequestLength(),
rq.Window('destination_window'),
)
_reply = rq.Struct(
rq.ReplyCode(),
rq.Card8('enabled'),
rq.Card16('sequence_number'),
rq.ReplyLength(),
)
class GetRectangles(rq.ReplyRequest):
_request = rq.Struct(
rq.Card8('opcode'),
rq.Opcode(8),
rq.RequestLength(),
rq.Window('window'),
KIND('source_kind'),
rq.Pad(3),
)
_reply = rq.Struct(
rq.ReplyCode(),
rq.Card8('ordering'),
rq.Card16('sequence_number'),
rq.ReplyLength(),
rq.LengthOf('rectangles', 4),
rq.Pad(20),
rq.List('rectangles', structs.Rectangle, pad=0),
)
class Event:
# Sub events.
Notify = 0
def combine(self, operation, destination_kind, source_kind, x_offset, y_offset):
Combine(
display=self.display,
opcode=self.display.get_extension_major(extname),
source_window=self,
operation=operation,
destination_kind=destination_kind,
source_kind=source_kind,
x_offset=x_offset,
y_offset=y_offset,
)
def get_rectangles(self, source_kind):
return GetRectangles(
display=self.display,
opcode=self.display.get_extension_major(extname),
window=self,
source_kind=source_kind,
)
def input_selected(self, ):
return InputSelected(
display=self.display,
opcode=self.display.get_extension_major(extname),
destination_window=self,
)
def mask(self, operation, destination_kind, x_offset, y_offset, source_bitmap):
Mask(
display=self.display,
opcode=self.display.get_extension_major(extname),
destination_window=self,
operation=operation,
destination_kind=destination_kind,
x_offset=x_offset,
y_offset=y_offset,
source_bitmap=source_bitmap,
)
def offset(self, destination_kind, x_offset, y_offset):
Offset(
display=self.display,
opcode=self.display.get_extension_major(extname),
destination_window=self,
destination_kind=destination_kind,
x_offset=x_offset,
y_offset=y_offset,
)
def query_extents(self, ):
return QueryExtents(
display=self.display,
opcode=self.display.get_extension_major(extname),
destination_window=self,
)
def query_version(self, ):
return QueryVersion(
display=self.display,
opcode=self.display.get_extension_major(extname),
)
def rectangles(self, operation, destination_kind, ordering, x_offset, y_offset, rectangles):
Rectangles(
display=self.display,
opcode=self.display.get_extension_major(extname),
destination_window=self,
operation=operation,
destination_kind=destination_kind,
ordering=ordering,
x_offset=x_offset,
y_offset=y_offset,
rectangles=rectangles,
)
def select_input(self, enable):
SelectInput(
display=self.display,
opcode=self.display.get_extension_major(extname),
destination_window=self,
enable=enable,
)
def init(disp, info):
disp.extension_add_method('window', 'shape_combine', combine)
disp.extension_add_method('window', 'shape_get_rectangles', get_rectangles)
disp.extension_add_method('window', 'shape_input_selected', input_selected)
disp.extension_add_method('window', 'shape_mask', mask)
disp.extension_add_method('window', 'shape_offset', offset)
disp.extension_add_method('window', 'shape_query_extents', query_extents)
disp.extension_add_method('display', 'shape_query_version', query_version)
disp.extension_add_method('window', 'shape_rectangles', rectangles)
disp.extension_add_method('window', 'shape_select_input', select_input)
disp.extension_add_event(info.first_event + Event.Notify, NotifyEventData, 'ShapeNotify')