0x0000000000000000
  9   l=J*e8pB Fha=J*e8pB F      0
  +   	li~d
j"Tr@ţ_I|+ ?     	/*
 * This file generated automatically from shape.xml by c_client.py.
 * Edit at your peril.
 */

/**
 * @defgroup XCB_Shape_API XCB Shape API
 * @brief Shape XCB Protocol Implementation.
 * @{
 **/

#ifndef __SHAPE_H
#define __SHAPE_H

#include "xcb.h"
#include "xproto.h"

#ifdef __cplusplus
extern "C" {
#endif

#define XCB_SHAPE_MAJOR_VERSION 1
#define XCB_SHAPE_MINOR_VERSION 1

extern xcb_extension_t xcb_shape_id;

typedef uint8_t xcb_shape_op_t;

/**
 * @brief xcb_shape_op_iterator_t
 **/
typedef struct xcb_shape_op_iterator_t {
    xcb_shape_op_t *data;
    int             rem;
    int             index;
} xcb_shape_op_iterator_t;

typedef uint8_t xcb_shape_kind_t;

/**
 * @brief xcb_shape_kind_iterator_t
 **/
typedef struct xcb_shape_kind_iterator_t {
    xcb_shape_kind_t *data;
    int               rem;
    int               index;
} xcb_shape_kind_iterator_t;

typedef enum xcb_shape_so_t {
    XCB_SHAPE_SO_SET = 0,
    XCB_SHAPE_SO_UNION = 1,
    XCB_SHAPE_SO_INTERSECT = 2,
    XCB_SHAPE_SO_SUBTRACT = 3,
    XCB_SHAPE_SO_INVERT = 4
} xcb_shape_so_t;

typedef enum xcb_shape_sk_t {
    XCB_SHAPE_SK_BOUNDING = 0,
    XCB_SHAPE_SK_CLIP = 1,
    XCB_SHAPE_SK_INPUT = 2
} xcb_shape_sk_t;

/** Opcode for xcb_shape_notify. */
#define XCB_SHAPE_NOTIFY 0

/**
 * @brief xcb_shape_notify_event_t
 **/
typedef struct xcb_shape_notify_event_t {
    uint8_t          response_type;
    xcb_shape_kind_t shape_kind;
    uint16_t         sequence;
    xcb_window_t     affected_window;
    int16_t          extents_x;
    int16_t          extents_y;
    uint16_t         extents_width;
    uint16_t         extents_height;
    xcb_timestamp_t  server_time;
    uint8_t          shaped;
    uint8_t          pad0[11];
} xcb_shape_notify_event_t;

/**
 * @brief xcb_shape_query_version_cookie_t
 **/
typedef struct xcb_shape_query_version_cookie_t {
    unsigned int sequence;
} xcb_shape_query_version_cookie_t;

/** Opcode for xcb_shape_query_version. */
#define XCB_SHAPE_QUERY_VERSION 0

/**
 * @brief xcb_shape_query_version_request_t
 **/
typedef struct xcb_shape_query_version_request_t {
    uint8_t  major_opcode;
    uint8_t  minor_opcode;
    uint16_t length;
} xcb_shape_query_version_request_t;

/**
 * @brief xcb_shape_query_version_reply_t
 **/
typedef struct xcb_shape_query_version_reply_t {
    uint8_t  response_type;
    uint8_t  pad0;
    uint16_t sequence;
    uint32_t length;
    uint16_t major_version;
    uint16_t minor_version;
} xcb_shape_query_version_reply_t;

/** Opcode for xcb_shape_rectangles. */
#define XCB_SHAPE_RECTANGLES 1

/**
 * @brief xcb_shape_rectangles_request_t
 **/
typedef struct xcb_shape_rectangles_request_t {
    uint8_t          major_opcode;
    uint8_t          minor_opcode;
    uint16_t         length;
    xcb_shape_op_t   operation;
    xcb_shape_kind_t destination_kind;
    uint8_t          ordering;
    uint8_t          pad0;
    xcb_window_t     destination_window;
    int16_t          x_offset;
    int16_t          y_offset;
} xcb_shape_rectangles_request_t;

/** Opcode for xcb_shape_mask. */
#define XCB_SHAPE_MASK 2

/**
 * @brief xcb_shape_mask_request_t
 **/
typedef struct xcb_shape_mask_request_t {
    uint8_t          major_opcode;
    uint8_t          minor_opcode;
    uint16_t         length;
    xcb_shape_op_t   operation;
    xcb_shape_kind_t destination_kind;
    uint8_t          pad0[2];
    xcb_window_t     destination_window;
    int16_t          x_offset;
    int16_t          y_offset;
    xcb_pixmap_t     source_bitmap;
} xcb_shape_mask_request_t;

/** Opcode for xcb_shape_combine. */
#define XCB_SHAPE_COMBINE 3

/**
 * @brief xcb_shape_combine_request_t
 **/
typedef struct xcb_shape_combine_request_t {
    uint8_t          major_opcode;
    uint8_t          minor_opcode;
    uint16_t         length;
    xcb_shape_op_t   operation;
    xcb_shape_kind_t destination_kind;
    xcb_shape_kind_t source_kind;
    uint8_t          pad