298 lines
8.0 KiB
Python
298 lines
8.0 KiB
Python
# 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')
|
|
|